Fixes are available
8.5.5.4: WebSphere Application Server V8.5.5 Fix Pack 4
8.0.0.10: WebSphere Application Server V8.0 Fix Pack 10
7.0.0.37: WebSphere Application Server V7.0 Fix Pack 37
8.5.5.5: WebSphere Application Server V8.5.5 Fix Pack 5
8.5.5.6: WebSphere Application Server V8.5.5 Fix Pack 6
8.0.0.11: WebSphere Application Server V8.0 Fix Pack 11
8.5.5.7: WebSphere Application Server V8.5.5 Fix Pack 7
7.0.0.39: WebSphere Application Server V7.0 Fix Pack 39
8.5.5.8: WebSphere Application Server V8.5.5 Fix Pack 8
8.0.0.12: WebSphere Application Server V8.0 Fix Pack 12
8.5.5.9: WebSphere Application Server V8.5.5 Fix Pack 9
7.0.0.41: WebSphere Application Server V7.0 Fix Pack 41
8.5.5.10: WebSphere Application Server V8.5.5 Fix Pack 10
8.5.5.11: WebSphere Application Server V8.5.5 Fix Pack 11
8.0.0.13: WebSphere Application Server V8.0 Fix Pack 13
7.0.0.43: WebSphere Application Server V7.0 Fix Pack 43
8.5.5.12: WebSphere Application Server V8.5.5 Fix Pack 12
8.0.0.14: WebSphere Application Server V8.0 Fix Pack 14
8.5.5.13: WebSphere Application Server V8.5.5 Fix Pack 13
7.0.0.45: WebSphere Application Server V7.0 Fix Pack 45
8.0.0.15: WebSphere Application Server V8.0 Fix Pack 15
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
8.5.5.20: WebSphere Application Server V8.5.5.20
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
8.5.5.21: WebSphere Application Server V8.5.5.21
APAR status
Closed as program error.
Error description
The deadlock will be captured in a javacore file. Here is example data that will be generated.... Deadlock detected !!! --------------------- Thread "WorkManager.default : 1504" (0x0000000082A60B00) is waiting for: sys_mon_t:0x00007FAAB83C04C0 infl_mon_t: 0x00007FAAB83C0530: com/ibm/ejs/util/cache/WrapperBucket@0x0000000000D749A0/0x000000 0000D749AC: which is owned by: Thread "WorkManager.default : 1505" (0x0000000081DFDC00) which is waiting for: sys_mon_t:0x00007FAAB83C0420 infl_mon_t: 0x00007FAAB83C0490: java/lang/String@0x000000001CDA4998/0x000000001CDA49A4: which is owned by: Thread "WorkManager.default : 1504" (0x0000000082A60B00) The two threads will have data similar to the following in the upper portion of the method stack.... "WorkManager.default : 1504" J9VMThread:0x0000000082A60B00, j9thread_t:0x00007FAAD405A6D0, java/lang/Thread:0x0000000073745D50, state:B, prio=5 (java/lang/Thread getId:0xC7A, isDaemon:true) (native thread ID:0x2922, native priority:0x5, native policy:UNKNOWN) (native stack address range from:0x00007FAB11D1B000, to:0x00007FAB11D5C000, size:0x41000) Java callstack: at com/ibm/ejs/util/cache/Cache.findAndFault(Cache.java:464(Compile d Code)) at com/ibm/ejs/container/WrapperManager.keyToObject(WrapperManager. java:466(Compiled Code)) at com/ibm/ejs/oa/EJSOAImpl.keyToObject(EJSOAImpl.java:553(Compiled Code)) at com/ibm/ejs/oa/EJSRootOAImpl.keyToObject(EJSRootOAImpl.java:271( Compiled Code)) at com/ibm/rmi/corba/ObjectManager.lookupServant(ObjectManager.java :106(Compiled Code)) at com/ibm/CORBA/iiop/ServerDelegate.getServant(ServerDelegate.java :311(Compiled Code)) at com/ibm/rmi/iiop/ORB.lookupLocalObject(ORB.java:634) at com/ibm/CORBA/iiop/ORB.lookupLocalObject(ORB.java:1468) at com/ibm/rmi/iiop/CDRReader.newObjRef(CDRReader.java:1310) at com/ibm/rmi/iiop/CDRReader.read_Object(CDRReader.java:1151) at com/ibm/rmi/iiop/CDRReader.read_Object(CDRReader.java:1115) at com/ibm/rmi/corba/IorURL.iorbytesToObjref(IorURL.java:105) at com/ibm/rmi/corba/IorURL.resolve(IorURL.java:93) at com/ibm/rmi/corba/ORB.objectURLToObject(ORB.java:3884) at com/ibm/CORBA/iiop/ORB.objectURLToObject(ORB.java:3262(Compiled Code)) at com/ibm/rmi/corba/ORB.string_to_object(ORB.java:3784(Compiled Code)) at com/ibm/ws/naming/ipcos/WsnOptimizedNamingImpl.resolveUnresolved Binding(WsnOptimizedNamingImpl.java:1927(Compiled Code)) at com/ibm/ws/naming/ipcos/WsnOptimizedNamingImpl.resolve_binding(W snOptimizedNamingImpl.java:1681(Compiled Code)) "WorkManager.default : 1505" J9VMThread:0x0000000081DFDC00, j9thread_t:0x00007FAAD405A1E0, java/lang/Thread:0x0000000073745CC8, state:B, prio=5 (java/lang/Thread getId:0xC7B, isDaemon:true) (native thread ID:0x2923, native priority:0x5, native policy:UNKNOWN) (native stack address range from:0x00007FAB121A8000, to:0x00007FAB121E9000, size:0x41000) Java callstack: at com/ibm/ejs/container/HomeRecord.getHomeAndInitialize(HomeRecord .java:421) at com/ibm/ejs/container/EJSContainer.getHomeWrapperCommon(EJSConta iner.java:1549) at com/ibm/ejs/container/EJSContainer.getHomeInstance(EJSContainer. java:1289) at com/ibm/ejs/container/EJSContainer.startBean(EJSContainer.java:1 273) at com/ibm/ws/runtime/component/EJBContainerImpl.startBean(EJBConta inerImpl.java:3519) at com/ibm/ws/runtime/component/EJBContainerImpl.initializeDeferred EJB(EJBContainerImpl.java:4895) at com/ibm/ejs/container/HomeOfHomes$1.run(HomeOfHomes.java:408(Com piled Code)) at com/ibm/ejs/container/HomeOfHomes$1.run(HomeOfHomes.java:406(Com piled Code)) at com/ibm/ws/security/util/AccessController.doPrivileged(AccessCon troller.java:118(Compiled Code)) at com/ibm/ejs/container/HomeOfHomes.getHome(HomeOfHomes.java:405(C ompiled Code)) at com/ibm/ejs/container/HomeOfHomes.getHome(HomeOfHomes.java:340(C ompiled Code)) at com/ibm/ejs/container/BeanId.getBeanId(BeanId.java:915(Compiled Code)) at com/ibm/ejs/container/WrapperManager.faultOnKey(WrapperManager.j ava:543(Compiled Code)) at com/ibm/ejs/util/cache/Cache.findAndFault(Cache.java:498(Compile d Code)) at com/ibm/ejs/container/WrapperManager.keyToObject(WrapperManager. java:466(Compiled Code)) at com/ibm/ejs/oa/EJSOAImpl.keyToObject(EJSOAImpl.java:553(Compiled Code)) at com/ibm/ejs/oa/EJSRootOAImpl.keyToObject(EJSRootOAImpl.java:271( Compiled Code)) at com/ibm/rmi/corba/ObjectManager.lookupServant(ObjectManager.java :106(Compiled Code)) at com/ibm/CORBA/iiop/ServerDelegate.getServant(ServerDelegate.java :311(Compiled Code)) at com/ibm/rmi/iiop/ORB.lookupLocalObject(ORB.java:634) at com/ibm/CORBA/iiop/ORB.lookupLocalObject(ORB.java:1468) ...
Local fix
The initializeEJBsAtStartup setting can be used to disable all deferred EJB starts... Changing enterprise bean types to initialize at application start time using the administrative console http://www-01.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.i bm.websphere.nd.multiplatform.doc/info/ae/ae/tejb_ecnt2.html
Problem summary
**************************************************************** * USERS AFFECTED: All users of Enterprise Java Beans (EJBs) * **************************************************************** * PROBLEM DESCRIPTION: Application logic in EJB constructors * * or static initializers can cause a * * deadlock while looking up another EJB. * **************************************************************** * RECOMMENDATION: * **************************************************************** For historical reasons, the EJB container creates a mock instance of the EJB class when the EJB is started. This mock instance is only created to ensure that the EJB container can successfully call the constructor, and the instance is otherwise unused (subsequent actual uses of the EJB will create new instances of the EJB class). If the EJB class has logic to look up another EJB in its constructor (including member variable initialization) or its class static initializer (including static variable initialization) rather than in a "PostConstruct" method, then this lookup logic can cause a deadlock within the EJB container if the target EJB is also being started at the same time.
Problem conclusion
The EJB class can be modified to look up other EJBs in the "PostConstruct" method rather than the constructor or static initializer. Alternatively, a property has been added to the EJB container to prevent the mock EJB instance from being created when the EJB is started. Use the following instructions: 1. Open the administrative console. 2. Select Servers -> Server Types -> WebSphere application servers. 3. Select the server you want to configure. 4. In the Server Infrastructure area, select Java and Process Management -> Process definition. 5. In the Server Infrastructure area, select Process Definition. 6. In the Additional Properties area, select Java Virtual Machine. 7. In the Additional Properties area, select Custom Properties. 8. Select the New box. 9. In the Name entry field, type: com.ibm.websphere.ejbcontainer.createInstanceAtStart 10. In the Value entry field, type: false 11. Select OK. 12. Restart the server. The fix for this APAR is currently targeted for inclusion in fix packs 7.0.0.37, 8.0.0.10 and 8.5.5.4. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PI23717
Reported component name
WEBS APP SERV N
Reported component ID
5724H8800
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2014-08-12
Closed date
2014-09-05
Last modified date
2014-09-05
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WEBS APP SERV N
Fixed component ID
5724H8800
Applicable component levels
R700 PSY
UP
R800 PSY
UP
R850 PSY
UP
Document Information
Modified date:
28 April 2022