我们使用Jacorb 2.2.3实现的Corba。在大多数并发情况下,Jacorb在调用Corba服务器对象上的API时会间歇性地挂起,大多数情况下一切正常。

我试图通过调整Jacorb.properties来重新创建它。甚至尝试在服务器端使用封闭对象,但徒劳无功。

从服务器线程转储中,观察到Jacorb用于处理并发请求的RequestProcessor线程被锁定,如下所示

"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)


我在找两件事


Jacorb 2.2.3中是否存在任何已知问题,即在服务器端对象上调用API时客户端进入挂起状态?
我试图通过启动多个并发会话来重新创建RequestProcessor的锁定状态,但是在线程转储中没有看到RequestProcessor的“锁定”状态

最佳答案

自该版本的JacORB以来,已经有多个修复程序。一些已经围绕同步代码。当前版本是3.8;我建议您尝试重现您的问题。您可能会发现http://www.jacorb.org/contact.html对于报告JacORB的问题很有用

10-08 06:40