Назад | Перейти на главную страницу

JBossMQ - Кластерные очереди / NameNotFoundException: ошибка QueueConnectionFactory

Я пытаюсь заставить приложение работать в кластере JBoss. Он использует очереди внутри, и разработчик утверждает, что он должен правильно работать в кластерной среде. У меня есть настройка jbossmq как ha-singleton в кластере. Приложение работает правильно на том узле, на котором в данный момент работает очередь, но дает сбой на других узлах с ошибкой: «javax.naming.NameNotFoundException: QueueConnectionFactory not bound». Я могу посмотреть на JNDIview из jmx-console и увидеть, что класс QueueConnectionFactory действительно появляется только на основном узле в глобальном контексте. Есть ли способ увидеть список JNDI кластера вместо каждого сервера?

Шаги, которые я предпринял при установке Jboss 4.2.3.GA по умолчанию, заключались в использовании конфигурации «все». Затем удалил /server/all/deploy/hsqldb-ds.xml и /deploy-hasingleton/jms/hsqldb-jdbc2-service.xml, скопировав файл example / jms / mysq-jdbc2-service.xml на его место (отредактировав это файл для использования DefaultDS вместо MySqlDS). Наконец, я создал файл mysql-ds.xml в каталоге развертывания, указав "DefaultDS" на пустую базу данных. Я создал файл -services.xml в каталоге развертывания с определением очереди. как показано ниже:

<server>
        <mbean code="org.jboss.mq.server.jmx.Queue"
                name="jboss.mq.destination:service=Queue,name=myfirstqueue">
                <depends optional-attribute-name="DestinationManager">
                        jboss.mq:service=DestinationManager
                </depends>
        </mbean>
</server>

Все остальные функции кластера работают, серверы перечисляют друг друга в представлении, а сеансы реплицируются туда и обратно. Документация JBoss немного светлая в этой области, есть ли еще один параметр, который я мог пропустить? Или, скорее всего, это проблема кода (есть ли другой код для поиска JNDI в кластерной среде?)

Спасибо

Проблема была в коде. Синтаксис @resource явно не совместим с кластером. Разработчик попробовал другой способ, и он работает правильно.