I was working on some legacy code in PowerBuilder, when I saw the name of a user interface control (heavily anonymised and fun-ised):
Let’s break that down:
- local (as opposed to global)
- user (I think? User-created as opposed to system/standard)
- static text (the Label equivalent in ASP.NET)
I wonder what was going through that programmer’s mind when he wrote that…
I’m maintaining some Windows programs created by the PowerBuilder software. The original developer didn’t plan for the programs to be used by many people. So the instant one of the programs was run, a database connection to the Sybase database was opened. And left there.
As more programs were created in this manner (and added to the suite of programs my team is in charge of), the number of total users also increased. Since the connections were held in place, table locks between users became a real problem, because a user could be done with an operation, but still hold onto the table. This also meant the database became clogged up with connections, usually non-active.
The better solution is to open the connection when you’re going to do any database operation, and then close it once you’re done. But the original programs were developed like eons ago. If I understand it correctly, client programs back then assumed they had total control over the database. Contrast that with the web applications of today, and let me just say that, I have my work cut out for me…
I decided to write something on this after reading Raymond’s article on cookie licking. So if you’re not using any database functions, please disconnect.