Undeploy application vs JDBC pool


I’m interesting in how undeploying application works related to JDBC pool. What payara does with running sql queries during undeploy? During deployment of new release, we undeployed application, but some session on oracle db stayed opened. My expectation is that undeploy of application destroy JDBC session in pool.

It seems, that payara still wait for session until session is committed. I wrote the test, to start updating one row through payara then thread.sleep(2minutes) , after 2 minutes the data are commited. During this I opened another session from SQL developer to perform the same update. Yes, of course the second session was waiting. Immediately I undeployed application (it took few seconds and application was removed from the list in payara admin console), but the second session was waiting whole 2minutes. My expectation was that the seconds session could perform update immediately after undeployment. Then I saw in payara server log this message:

[#|2021-11-16T08:42:13.173+0000|WARNING|Payara 5.201|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=766;_ThreadName=__ejb-thread-pool1;_TimeMillis=1637052133173;_LevelValue=900;|NON-NULL TX IN AFTER_EXECUTE. TX STATUS: 0|#]

Any help? Thanks.

@ciment, it seems that no one has experienced the issue you were encountering when you raised the issue. However, I’d like to clarify that application unemployment does not warrant connections being destroyed in the pool, as logical connections can be reused for other applications that are configured to use the same pool.

If this is a pressing issue on your end, I’d recommend getting help via Payara Enterprise support.