我在JBoss 7.1上运行的Java应用程序。 它是使用超过20 JMS队列。
我的配置来设置JMS队列:
<jms-queue name="MX.EQ.DT.MT.OUT">
<entry name="queue/MX.EQ.DT.MT.OUT"/>
<entry name="java:jboss/exported/jms/queue/MX.EQ.DT.MT.OUT"/>
</jms-queue>
<jms-queue name="MX.EQ.DS.XML.OUT">
<entry name="queue/MX.EQ.DS.XML.OUT"/>
<entry name="java:jboss/exported/jms/queue/MX.EQ.DS.XML.OUT"/>
</jms-queue>
现在,我想配置上述两个队列死信队列。 我有什么价值,使用的比赛?
我不能使用#
,因为这将是适用于所有的JMS队列,但我只希望两个。
<address-setting match="jms.queue.MX.EQ.*.*.OUT">
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
<redelivery-delay>0</redelivery-delay>
<max-size-bytes>10485760</max-size-bytes>
<address-full-policy>BLOCK</address-full-policy>
<message-counter-history-day-limit>10</message-counter-history-day-limit>
</address-setting>
也有反正从死信队列推回消息始发队列?
我使用的黄蜂队列版本2.2.13,并希望使用通配符作为MX.EQ.*.*.OUT
。 如果我把*
或#
中的人物之间,服务器抛出启动过程中的异常。
据了解HornetQ通配符的语法 :
一个HornetQ的通配符表达式包含由字符分隔的单词'.'
(句号)。
特殊字符'#'
和'*'
也有特殊的意义,可作为一个单词的地方。
字符'#'
的意思是“匹配的零个或多个词语的任何序列”。
字符'*'
的意思是“一个单词”。
因此,通配符'news.europe.#'
将匹配'news.europe'
, 'news.europe.sport'
, 'news.europe.politics'
,和'news.europe.politics.regional'
但是不匹配'news.usa'
, 'news.usa.sport'
也不'entertainment'
。
通配符'news.*'
将匹配'news.europe'
,而不是'news.europe.sport'
。
通配符'news.*.sport'
将匹配'news.europe.sport'
也'news.usa.sport'
,而不是'news.europe.politics'
。
在您的配置,你可以使用wilcard *
,但在JBoss的7.1.1当你把一个值与字符cofiguration解析器抛出一个异常*
。
该错误是类似于:
JBAS015956: Caught exception during boot: org.jboss.as.controller.PathElement$OperationClientIllegalArgumentException: JBAS014719: Invalid value specification
:当你在值使用空间,这个问题在描述出现同样的问题记录器类不能有空格
现在,一种选择是升级到JBoss 7.1.2或更高版本,或创建一个队列,例如名称的不同的命名:
<jms-queue name="group1.q1">
<entry name="queue/group1.q1"/>
<entry name="java:jboss/exported/jms/queue/group1.q1"/>
</jms-queue>
<jms-queue name="group1.q2">
<entry name="queue/group1.q2"/>
<entry name="java:jboss/exported/jms/queue/group1.q2"/>
</jms-queue>
和address-setting
:
<address-setting match="group1.#">
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
<redelivery-delay>0</redelivery-delay>
<max-size-bytes>10485760</max-size-bytes>
<address-full-policy>BLOCK</address-full-policy>
<message-counter-history-day-limit>10</message-counter-history-day-limit>
</address-setting>
该wilcard #
只能是在比赛的最终用途。