Problem
The extensions class loader for IBM® WebSphere® Application Server is where the Application Server itself is loaded. In previous versions of the Application Server, the run time was loaded by this single class loader. However, beginning with WebSphere Application Server Version 6.1, the Application Server is packaged as a set of OSGi bundles. Each OSGi bundle is loaded separately by its own class loader. This network of OSGi class loaders is then connected to the extensions class loader and the rest of the class loader hierarchy.
Cause
Due to this architectural change in the internals of how the Application Server loads its own classes, there are special considerations for a Java™ 2 Platform, Enterprise Edition (J2EE) application client that uses multithreads. The main thread of the application must not return until all of the other user non-daemon threads stop. The OSGi bundle class loaders shut down immediately after the main thread of the application has returned.
Resolving the problem
If the application logic does not allow the main thread to wait for all of the other user threads to stop, there is an alternative way to keep the OSGi bundle class loaders from shutting down. Use the -JVMOptions argument in the launchClient command to set the -Dosgi.noShutdown=true system property. The OSGi bundle class loaders do not shut down with this property set, but the application must call the System.exit method to stop the Java virtual machine.This problem has been fixed in WebSphere Application Server Version 6.1.0.9. See APAR PK42668.
No comments:
Post a Comment