OnLine 6.0 & Critical Section
Posted in 1994
> From: jesskung@solomon.technet.sg (Jessica Kung) > Date: 16 Jul 1994 10:47:42 GMT > > Does anyone knows how OnLine 6.0 Dynamic Server handles a client > application when the client is killed abnormally? > > Does it still handles the case called critical section, where OnLine > abort itself? > > In OnLine 5.X, and before, if the a server process is kill abnormally, > eg. using a "kill -9" command, and the server process is in a wait state, > waiting for a latch or a lock to be released, ( this is called a critical > section of a transaction ), OnLine will abort itself with an immediate > shutdown to preserve consistency. > > Does it still behave the same way? Disclaimer: I've never seen 6.0 up close. I've never operated 6.0. I've only been to a few seminars and what not and have talked the assorted Official Informix folks at those events. But, since having a lack of knowledge on a topic has never stopped me before, I'll just dive right in here. One rather significant difference between 5.X and 6.X+ is that Informix has completely eliminated the 'sqlturbo' process. Now, the applications talk directly to a central OnLine process that handles all of the connections and such itself. The is beneficial as it lowers the overall process count on the server when there are bunches of processes running, and it also makes new connections to the server a little bit cheaper and more efficient. So, in theory, your dillema no longer exists. There is no 'sqlturbo' to send a kill -9 to! I imagine that terminating any of the core OnLine processes in 6.0 would be a Bad Thing. Now, my understanding is that if a client process quits prematurely (i.e. doesn't disconnect from the server properly), then the new server will have to effectively "TIME OUT" the connection. When the connection is severed (program crashes, computer crashes, etc), the server may NOT be notified that it's no longer talking to anything. Since 6.0 has several different ways to talk to the server, they'll probably behave a bit differently. So, the system will basically wait for some amount of time until it decides that the connection is no longer valid, where it will then clean it up and free up the connection. > Does OnLine 6.0 Dynamic Server knows that a client application dies, and > releases the various resources gracefully? I'm sure that whenever Online decides that the client has gone away, it will clean up gracefully. The question is how long does it take to find out the client isn't there. I would hope that the new OnLine has the ability to let the DBA monitor connections so they can detect insane queries that may be sucking the life out of your server. So far, I've yet to see a graceful way to terminate a nasty SQL query without bring down the engine. > Any answers would be much appreciated... Oh, you wanted answers? I can only offer opinions based upon hearsay and educated guesses. Hope they help! :-) Will (villy@collinscomp.com)