Skip to content

Why Does Elliott User's PSQL Connection Stay Open Even If User Is Out of Elliott?

Release Date: 05/09/2024
Version: All

Q - We are using Elliott 8.6 PowerSearch and Report Desk. We have a separate PSQL Report Engine for those Elliott activities. I see a user connected to our Report Engine server that is not actively logged into Elliott (per the Elliott user list), so does that mean that their sessions are not closing when they logout?  

The weird thing is that it's just one user that's having this issue.  Is there some kind of scenario that would keep the user in to the Report Engine even when logged out?  I don't see any other users with this happening.  Let me know your thoughts on this.

A - This is difficult to say. From my observation, let’s say Elliott crashes or a user uses Task Manager to terminate Elliott. I see PSQL has a way to terminate the connection between the client and the server. I don’t know how PSQL accomplishes that, nor do I know if PSQL can consistently terminate the connection in all similar scenarios. This remains an unknown mystery to me. My conclusion is that when the client side is terminated in a manner preventing communication with the server, then the connection might remain open. For instance, in the event of a power failure without UPS battery backup for the workstation, the client may be unable to communicate with the server to terminate the connection. PSQL (the report engine in this case) needs to maintain the connection and could interpret the client as being idle. Conversely, if Elliott crashes while the operating system is functioning, perhaps the OS oversees the TCP/IP connections and can signal to the server for termination. This is purely speculative on my part, and I cannot definitively explain how this operates.

I posted the following question to ChatGPT: 

When an application on a workstation crashes, does the TCP/IP connection to a server still remain open?

and here is the response:

When an application on a workstation crashes, it depends on various factors whether the TCP/IP connection to a server remains open:

1. Graceful Shutdown: If the application is able to gracefully shut down before crashing, it can properly close its TCP/IP connections, informing the server that the connection is being terminated. In this case, the TCP/IP connection will be closed, and the server will be aware of the termination.

2. Abrupt Termination: If the application crashes abruptly without being able to properly close its TCP/IP connections, the connection may remain open from the server's perspective. The server may not receive a notification that the connection has been terminated, and it may continue to hold resources associated with the connection.

3. Operating System Behavior: The behavior of the operating system also plays a role. In some cases, the operating system may handle the termination of TCP/IP connections initiated by applications. For example, the operating system may detect that an application has crashed and automatically close any associated network connections.

4. Timeout Mechanisms: Even if the TCP/IP connection remains open initially after the application crashes, many servers implement timeout mechanisms to close idle connections. If the server does not receive any activity from the client within a certain period of time, it may close the connection due to inactivity.

5. Server Configuration: The behavior of the server can also impact whether the TCP/IP connection remains open. Some servers may be configured to aggressively close idle connections to conserve resources, while others may keep connections open for longer periods.

Overall, whether the TCP/IP connection remains open after an application crash depends on the specific circumstances, including how the application handles the crash, the behavior of the operating system, and the configuration of the server.



EMK

Feedback and Knowledge Base