Hsieh,
If you are doing a Converse, with or without the tsqMod property, it should be deleting the TSQ if the program is "ending" (i.e. equivalent of normal PF3 on a transaction and the whole EGL rununit is terminating (EZECLOS). When I run this way in CICS on z/OS, I see the DELETEQ just before the end of the transaction. The code is shared between z/OS and z/VSE, so would be surprised if this one was not working...but things do surprise me sometimes.
If you are using the tsqMod property, then you will need to create the ELACDELQ yourself using the sample source in the document and that load module needs to be made available to CICS (including program entries if needed). Then the gatewayServlet call is used when the user abandons the web transaction either though no response or closing the browser, etc.
Note that it will not do the delete if the application server is terminated also as the gateway Servlet would no longer be running.
If these are not happening on z/VSE like it is on z/OS, we would need for you to open a PMR and provide something like an Auxtrace in the normal circumstance and the logs from the gateway servlet (hptLogOpt=0 in gw.properties) and the communications file (application.*.traceFlag = 1 in csogw.properties).
And don't know if it matters,but I use the built-in session id manager. This means in gw.properties, I am using hptDisableRMIIDManager=Y. I would recommend running this way. Again, this should only affect what happens if you are using the tsqMod property.
take care.
markevans