Automatically Close an Idle Vertica Session

SarahLSarahL Administrator, Moderator, Employee, Registered User, VerticaExpert, CABuser
edited March 27 in Vertica Tips

This tip was authored by Jim Knicely.

The IDLESESSIONTIMEOUT parameter can be used to close a session that has been idle for a period of time. An idle session is one that has no queries running.

Example:

dbadmin=> CREATE USER jim IDLESESSIONTIMEOUT '10 seconds';
CREATE USER

dbadmin=> \c - jim
You are now connected as user "jim".

dbadmin=> SELECT current_session();
        current_session
-------------------------------
v_test2_node0001-3667:0x2a19e
(1 row)

dbadmin=> -- Wait 10 Seconds

dbadmin=> SELECT COUNT(*) FROM sessions;
FATAL 7540:  Session idle for more than 10000 ms. Session Timed Out!
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.

The DC_ERRORS data collector table tracks sessions that were closed because of an idle timeout:

dbadmin=> SELECT user_name, message, error_level_name FROM dc_errors WHERE session_id = 'v_test2_node0001-3667:0x2a19e';
 user_name |                         message                         | error_level_name
-----------+---------------------------------------------------------+------------------
 jim       | Session idle for more than 10000 ms. Session Timed Out! | FATAL
(1 row)  

Have Fun!

Sign In or Register to comment.