1
votes

We use Jacorb 2.2.3 implementation of Corba. Everything works fine most of the times, in some concurrent scenario Jacorb hangs intermittently upon calling an API on Corba server object.

I have tried to recreate it by tuning Jacorb.properties. And even attempting to work with closed objects at server side but in vain.

From server thread dump, observed that RequestProcessor threads, which Jacorb used to handle concurrent requests, are locked as shown below

"RequestProcessor-26" ... nid=0x25cc in Object.wait() [0x000000004237f000]                
    java.lang.Thread.State: WAITING (on object monitor)   
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:700)
    - locked <0x0000000150714178> (a org.jacorb.poa.RequestProcessor)

"RequestProcessor-25" ...nid=0x3250 in Object.wait() [0x000000004227f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:700)
    - locked <0x0000000150e90748> (a org.jacorb.poa.RequestProcessor)

I'm looking for two things

  1. Is there any known issue in Jacorb 2.2.3 that client goes into hanging state while invoking an API on server side object?
  2. I tried to recreate locked state of RequestProcessor by launching multiple concurrent sessions but I didn't see "locked" for RequestProcessor in thread dump
1
Is there any reason for not using JacORB 3? Or even the latest one?tuergeist
@tuergeist yes, it's because production environment and upgrading the jar will have to wait for process and approvals. So wondering if there are consistent steps to recreate it on 2.2.3 so that it can be pushed for 3.8 or whatever will be the latest by that timeKiran
@Kiran Did you try to increase the number of worker threads on the server? Also, implementation of server objects can cause this lock up if they're all waiting for the same object.BJovke
Yes, treating it as a workaround, it works. But wanted to know whether there is a known issue hereKiran

1 Answers

0
votes

There have been multiple fixes since that version of JacORB. Some have been around synchronisation code. The current version is 3.8 ; I recommend you try to reproduce your problem on that. You may find http://www.jacorb.org/contact.html useful for reporting issues with JacORB