Resolving org.omg.CORBA.NO_RESOURCES exception on JBoss
After many PDF Generator conversions on JBoss, the conversions intermittently fail with an exception. This initially results in intermittent failures, but without a server restart, it can cause all operations to start failing. The error message seen in the logs is as follows:
org.omg.CORBA.NO_RESOURCES: (Pool)[0/1000] no idle threads but maximum number of threads reached (1000) vmcid: 0x0 minor code: 0 completed: No
The issue is caused by jacORB (the ORB bundled with JBoss) keeping a thread waiting to connect to a peer that is no longer available. Repeated occurrences of this situation causes threads to needlessly remain occupied, causing the thread pool to exhaust.
Red Hat provides the JBPAPP-10887 patch to resolve the issue on JBoss EAP 5.2.
The details about the patch are as follows:
- The patch is specific to JBoss EAP 5.2. JBoss EAP 5.2 has been added to the supported platforms for LiveCycle ES4 Service pack 1 (SP1). Therefore, upgrade to LiveCycle ES4 SP1 with JBoss EAP 5.2.
For more information about the service pack, see What's New in LiveCycle ES4 SP1.
- After installing the patch, add a property to server/<servername>/conf/jacorb.properties: 'jacorb.connection.client.eager_close' with its value set to true.
For example: jacorb.connection.client.eager_close=true
- The fix is not available for previous versions of JBoss EAP.
Contact Red Hat support to get the patch ported back to previous branches of JBoss EAP or to inquire about the future versions of JBoss EAP that are likely to include this patch. The workaround is to restart the server when the conversions start failing intermittently with the following error:
org.omg.CORBA.NO_RESOURCES: (Pool)[0/1000] no idle threads but maximum number of threads reached (1000) vmcid : 0x0 minor code: 0 completed: No
You can obtain the patch directly from Red Hat support, and apply it as recommended. If you do not have a support contract with Red Hat, you can contact Adobe Enterprise Support to obtain the patch.