Why doesn the last connection die off when I set connections=0 and maxconnections to some larger number and let SQL Relay go idle for a long time?
When SQL Relay first starts up, since no connections are started, no connections are registered with the listener. Clients connect, connections fire up to handle them, clients disconnect, the connections time out and die. However, one of the connections will still remain registered with the listener as an “available connection”. This connection cannot die off. It’s really, really complicated why. I tried lots of approaches and couldn’t find one that didn’t have a fundamental problem. Basically, here’s the code: listener: acquireExclusiveAccessToSharedMemoryAmongListenerProcesses(); waitForConnectionToSignalUsToRead(); readRegistration(); signalConnectionThatWeHaveRead(); releaseEclusiveAccessToSharedMemoryAmongListenerProcesses(); connection: acquireExclusiveAccessToSharedMemoryAmongConnectionProcesses(); writeRegistration(); signalListenerToRead(); waitForListenerToSignalUsThatItHasRead(); releaseEclusiveAccessToSharedMemoryAmongConnectionProcesses(); If the connection dies between si
Related Questions
- Why doesn the last connection die off when I set connections=0 and maxconnections to some larger number and let SQL Relay go idle for a long time?
- If I set up SQL Relay to use dynamic scaling, it eventually spawns off as many connections as it can and they never die off. Whats up with that?
- Did the National Health Service Let 20,000 Brits Die?