What does Connection Pooling True do on IBM i?
Database connections via LSXLC use a native connector on IBM i to connect to DB2/i. This connector SQLCLI then connects to remote DB2 systems using another OS function DRDA.
If ConnectionPooling is set to TRUE, Domino will hold open the SQLCLI handles to either local or remote DB2 connections.
On remote connections that will hold open the DRDA TCP session to the remote server,
If that connection fails, or is closed due to inactivity, any SQLCLI call using that request will fail.
Locally or remote SQLCLI cleans up the session state information on SQLCLose, if connection Pooling is enabled, it is possible that data from a prior session might remain in the connection result set from prior use, unless the application developer is careful to drop/close every LSX object allocated not relying on SQLCLOSE to clean up the objects.
A final thought, Connection POOLING on IBM i has almost no performance value,
The SQLCLI connection from the Domino server costs less than 0.000001 seconds on average to create,
The TCP Session CREATE adds 20-40 MS seconds, as such LOCAL DB2 connections have NO tracable performance impact, while remote DRDA connections have a tracable but not end user observable performance impact
For all the above reasons IBM recommends running with connection pooling disabled on IBM I for LSXLC applications