Тема JMS на Jboss 4.0.2

Мне нужно изменить конфигурацию уже настроенной среды jboss 4.0.2. Тема, которая уже была создана, нуждалась в смене названия. поэтому я изменил его в нужных местах, таких как файлы свойств в /home/jboss-4.0.2/server/myappinstance/conf/ и основные файлы jboss service.xml, в которых указана тема

mytopic-Destination-service.xml

<server>
  <!-- event publish destination -->
  <mbean code="org.jboss.mq.server.jmx.Topic"
     name="jboss.mq.destination:service=Topic,name=myTopic">
    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
  </mbean>

</server>

и myapp-jms-destinations-service.xml (почти то же самое, не уверен, почему он изначально был разделен)

<?xml version="1.0" encoding="UTF-8"?>
<server>
    <mbean code="org.jboss.naming.NamingAlias" name="jboss.mq:service=NamingAlias,fromName=issues/incomingEvent">
                    <attribute name="ToName">topic/myTopic</attribute>
                    <attribute name="FromName">issues/incomingEvent</attribute>
            </mbean>
   </server

> ошибка, которую я получаю в журнале jboss, выглядит так:

    org.jboss.deployment.DeploymentException: Error during topic setup; - nested throwable: (org.jboss.mq.SpyJMSException: Cannot subscribe to this Destination: ; - nested throwable: (java.lang.NullPointerException)) 
.........
 ......
 .... 

Caused by: org.jboss.mq.SpyJMSException: Cannot subscribe to this Destination: ;
    - nested throwable: (java.lang.NullPointerException)
            at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:66)
            at org.jboss.mq.SpyJMSException.rethrowAsJMSException(SpyJMSException.java:51)
            at org.jboss.mq.Connection.addConsumer(Connection.java:835)
            at org.jboss.mq.SpyConnectionConsumer.<init>(SpyConnectionConsumer.java:95)
            at org.jboss.mq.SpyConnection.createDurableConnectionConsumer(SpyConnection.java:156)
            at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerCreate(JMSContainerInvoker.java:789)
            ... 140 more Caused by: java.lang.NullPointerException
            at org.jboss.mq.sm.AbstractStateManager.setDurableSubscription(AbstractStateManager.java:134)
            at org.jboss.mq.server.JMSTopic.addSubscriber(JMSTopic.java:95)
            at org.jboss.mq.server.ClientConsumer.addSubscription(ClientConsumer.java:133)
            at org.jboss.mq.server.JMSDestinationManager.subscribe(JMSDestinationManager.java:596)

если вы заметили, где написано: org.jboss.mq.SpyJMSException: невозможно подписаться на это место назначения: ;

между «Пункт назначения:» и «;» есть пробел. означает, что имя пункта назначения равно null. Теперь, когда я использую исходное имя, которое было LP1, все было в порядке, когда я меняю его на myTopic, это дает мне эту ошибку. Я искал эту проблему, и кажется, что это проблема с конфигурацией, но я не могу точно определить, в чем проблема.

Я проверил код, название темы также не жестко запрограммировано в коде. я также удалил каталоги work и tmp, чтобы удалить любые кешированные конфигурации.


person sarmahdi    schedule 13.06.2018    source источник
comment
Вы удалили файлы базы данных обмена сообщениями? Или ты отписался от подписки на оригинальное название темы? Я думаю, что код знает о подписке исходное название темы, но тема с таким названием больше не существует.   -  person Doug Grove    schedule 13.06.2018
comment
Что такое файл базы данных сообщений? хм, ваш ответ имеет смысл. Закрываю jboss, не отменит ли подписка на Тему.   -  person sarmahdi    schedule 14.06.2018
comment
Если вы используете гиперзвуковую базу данных «только в памяти» для обмена сообщениями, ваша подписка не выдержит перезагрузки сервера. Если вы используете базу данных для обмена сообщениями, подписка сохраняется после перезапуска базы данных. Посмотрите файлы в каталоге профилей сервера deploy-hasingleton/jms.   -  person Doug Grove    schedule 15.06.2018
comment
Я думаю, что это было. У меня была гиперзвуковая БД с таблицей JMS_SUBSCRPTION, и там название темы было другим, поэтому я исправил это, и это сработало. Благодарность   -  person sarmahdi    schedule 18.06.2018


Ответы (1)


Вы удалили файлы базы данных обмена сообщениями? Или ты отписался от подписки на оригинальное название темы? Я думаю, что код знает о подписке исходное название темы, но тема с таким названием больше не существует.

person Doug Grove    schedule 18.06.2018
comment
Была гиперзвуковая база данных с таблицей под названием JMS_SUBSCRIPTION, в которой имя темы было другим. это была тема, которая использовалась. ваш ответ привел меня к этой БД и заглянуть в ее сценарий. Хотя мне пришлось удалить каталог данных, который был переделан. - person sarmahdi; 19.06.2018