Jacorb зависает, чтобы ответить на удаленный вызов API
Мы используем Jacorb 2.2.3 реализацию Corba. В большинстве случаев все работает нормально, в некотором параллельном сценарии Jacorb периодически зависает при вызове API на объекте сервера Corba.
Я попытался воссоздать его, настроив Jacorb.properties. И даже попытки работать с закрытыми объектами на стороне сервера, но тщетно.
Из дампа потоков сервера заметил, что потоки RequestProcessor, которые Jacorb использовал для обработки одновременных запросов, заблокированы, как показано ниже
"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 в дампе потока
1 ответ
После этой версии JacORB было несколько исправлений. Некоторые были вокруг кода синхронизации. Текущая версия 3.8; Я рекомендую вам попытаться воспроизвести вашу проблему на этом. Вы можете найти http://www.jacorb.org/contact.html полезным для сообщения о проблемах с JacORB