|
Hello Christopher, Could you share the destroy() method code ? Best regards, Vengoal Christopher J. Jewell wrote:
Just to follow up on this - David was right in speculating that the issue was associated with the database connections not shutting down. I resolved this by overriding the destroy() method in the Controller Servlet and explicitly shutting down the thread. I'm pretty sure I have a timeout on the database connections (c3p0 via Hibernate) and so would have expected the QP0ZSPWT to end normally after the expected interval when shutting down Tomcat. It's obviously good practise to shutdown the application in a controlled manner and so the solution was perfect, with the job submitted to start Tomcat ending normally. As far as being able to identify the QP0ZSPWT job, it seems that it is impossible to do so using native iSeries commands or apis. However, you can use the QSH to execute the command 'ps' to list processes 'grepping' on some known attribute of your Job - this reveals Process Id's which could be parsed out and input to the 'kill' command. Interestingly, if you use QSH to 'kill' the original job submitted to start Tomcat, all spawned threads are shutdown, including the stubbornly persistent QP0ZSPWT job - this behavior is different from an ENDJOB *IMMED on the job. Thanks for your consideration - all is now resolved. Chris J. -----Original Message----- From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx]On Behalf Of David Morris Sent: Wednesday, October 26, 2005 12:03 PM To: java400-l@xxxxxxxxxxxx Subject: RE: Unable to end the QP0ZSPWT job when shutting down Tomcat Chris, Every time I have run into this it was a JDBC shutdown issue. You might try disabling any connection pool or connections and running shutdown. --David Morrisjewellcj@xxxxxxxxxxxxxxxxx 10/26/05 11:47 AM >>>Thanks for this, Pierce. I have only one copy of Tomcat installed on the system. The web application is fully started with jars attached at the time the 'end' is submitted. After ending, a NETSTAT *CNN indicates the Tomcat-associated ports are indeed shutdown. The Tomcat log indicates that all Web Applications are 'removed'. So, I guess the issue is that the JVM is not shutting down due to a programmatically spawned thread from the web application (and the still open port is indeed the port associated with the spawned thread). My programmatic thread is created as a daemon thread thus supposedly causing the JVM to shutdown when all other non-daemon threads (in this case, Tomcat threads) have died. To resolve this, I think I will need to program a shut down of the spawned thread thereby shutting down the JVM. Either that or discover some way of accurately identifying the QP0ZSPWT job that does not involve creating and running in a new subsystem. My sense now is that this is more of a Tomcat issue and so likely more appropriate for a Tomcat forum. Again, thanks for your help. Chris Jewell -- This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/java400-l or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/java400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.