Как установить порядок развертывания / зависимости для WAR-файлов и -jms.xml ActiveMQ дескрипторов

Я провел последнюю неделю, пытаясь выяснить, как это сделать в JBoss EAP 7 (на самом деле, даже в JBoss AS 7 я не был уверен, как это сделать).

Я читал, что в EAP 'jboss-all.xml' может использоваться для установления порядка WAR в EAR, но в приложении, с которым я имею дело, мы не используем файлы EAR; вместо этого у нас есть набор из 12 WAR, которые развертываются в автономном режиме / развертываниях. Мы также используем 4 разных дескриптора развертывания -jms.xml для создания различных очередей / тем JMS. Кроме того, даже используя этот метод, если зависимости еще не развернуты, зависимая WAR просто потерпит неудачу. Я не хочу этого - я бы хотел установить порядок развертывания в JBoss EAP 7.

Проблема заключается в том, что при запуске некоторые из WAR зависят от очередей / тем JMS, определенных в дескрипторах развертывания -jms.xml, но они неизбежно начинают генерировать страницы сообщений журнала WARN/ERROR, поскольку эти очереди / темы являются еще не создан. В конечном счете, вещи (в большинстве случаев) разворачиваются нормально. Однако моя команда считает, что должен быть какой-то способ установить порядок развертывания среди WAR (и, возможно, дескрипторов -jms.xml). Я попытался перенести содержимое этих файлов -jms.xml в подсистему "обмена сообщениями" в standalone.xml, но это вызывает другой набор проблем (а именно, при закрытии JBoss сначала удаляются темы / очереди, что приводит к равное количество спама в журнале WARN/ERROR от тех WAR, зависящих от тех очередей / тем, которые еще не закрыты).

Короче, я ищу способ:

  1. определите порядок развертывания среди дескрипторов развертывания WAR и -jms.xml в автономном /deployments, чтобы файлы -jms.xml обрабатывались ПЕРЕД развертыванием WAR (поскольку WAR зависят от очередей / тем, определенных в -jms XML-файлы)
  2. в этом порядке убедитесь, что при отключении JBoss WAR-файлы отменяются до уничтожения очередей / тем (определенных в -jms.xml).

Ниже приведена трассировка стека сообщений WARN/ERROR, сгенерированных из одной из WAR, которые зависят от тем / очередей, которые должен создавать -jms.xml, но, поскольку все запускается сразу, когда я запускаю standalone.bat, они еще не существует, поэтому этот журнал спам генерируется:

20:35:30,853 ERROR [org.jboss.as.controller.management-operation] (Queue StatsCollector) WFLYCTL0013: Operation ("read-attribute") failed - address: ([ 
    ("deployment" => "pipe-topics-jms.xml"), 
    ("subsystem" => "messaging-activemq"), 
    ("server" => "default"), 
    ("jms-topic" => "com.leidos.mb.spi.event.NotificationBus") 
]) - failure description: "WFLYCTL0216: Management resource '[(\"deployment\" => \"pipe-topics-jms.xml\")]' not found" 
20:35:30,854 WARN [com.leidos.mb.pipe.QueueController] (Queue StatsCollector) Error retrieving attribute:messagesAdded from:jboss.as.expr:deployment=pipe-topics-jms.xml,subsystem=messaging-activemq,server=default,jms-topic=com.leidos.mb.spi.event.NotificationBus: javax.management.AttributeNotFoundException: "WFLYCTL0216: Management resource '[(\"deployment\" => \"pipe-topics-jms.xml\")]' not found" 
    at org.jboss.as.jmx.model.ModelControllerMBeanHelper.getAttribute(ModelControllerMBeanHelper.java:309) 
    at org.jboss.as.jmx.model.ModelControllerMBeanHelper.getAttribute(ModelControllerMBeanHelper.java:267) 
    at org.jboss.as.jmx.model.ModelControllerMBeanServerPlugin.getAttribute(ModelControllerMBeanServerPlugin.java:133) 
    at org.jboss.as.jmx.PluggableMBeanServerImpl.getAttribute(PluggableMBeanServerImpl.java:388) 
    at com.leidos.mb.pipe.QueueController$QueueInfo.getIntValue(QueueController.java:941) [classes:] 
    at com.leidos.mb.pipe.QueueController$QueueInfo.getCurrentStats(QueueController.java:978) [classes:] 
    at com.leidos.mb.pipe.QueueController$StatsCollector.collect(QueueController.java:1042) [classes:] 
    at com.leidos.mb.pipe.QueueController$StatsCollector.run(QueueController.java:1063) [classes:] 

0 ответов

Другие вопросы по тегам