У меня развернут MDB на Jboss 4.2.2 и клиент на том же сервере, который создает сообщения и ожидает ответа от MDB через временную очередь, созданную до отправки сообщения.
Когда я запускаю клиент, я вижу, что он создает сообщение, помещает его в очередь и ждет ответа (пока проблем нет) ... но когда я проверяю в журналах, я вижу, что истекло время ожидания и никакого ответа не получено. Когда истекает время ожидания и метод клиента завершается, MDB начинает обрабатывать сообщение, которое должно было быть обработано в тот момент, когда клиент помещает его в очередь. Как следствие этой проблемы синхронизации, когда MDB пытается ответить на временную очередь, происходит сбой, так как клиент уже ушел.
Если я запускаю тот же клиент с удаленного сервера, у меня нет проблем ... MDB сразу же получает сообщение из очереди, и клиент получает ответ сразу после завершения обработки.
Я использую транзакции, управляемые контейнером. Я подозреваю, что это как-то связано с этим ... Я думаю, что "отправка сообщения / получение ответа" клиента может рассматриваться как транзакция, прежде чем он помещает сообщение в очередь ... но я не уверен это правильно. Если это так, почему я не вижу того же поведения от удаленного клиента? является ли управляемая клиентом транзакция настройкой по умолчанию, и это то, что использовал мой удаленный сервер?
Есть идеи, как это исправить?
Заранее спасибо!
PJ