在JBoss 7.1中为多个JMS队列配置相同的死信队列
我有一个java应用程序在JBoss7.1上运行。它使用了20多个JMS队列 设置JMS队列的配置:在JBoss 7.1中为多个JMS队列配置相同的死信队列,jms,jboss7.x,dead-letter,Jms,Jboss7.x,Dead Letter,我有一个java应用程序在JBoss7.1上运行。它使用了20多个JMS队列 设置JMS队列的配置: 现在,我想为上述两个队列配置死信队列。我必须为比赛使用什么值 我不能使用#,因为它将适用于所有JMS队列,但我只需要这两个队列 jms.queue.DLQ jms.queue.ExpiryQueue 0 10485760 块 10 另外,是否还有将消息从死信队列推回到原始队列的方法 我使用的是hornet queue 2.2.13版,希望使用通配符作为MX.EQ.*.OUT。 如果我将*
现在,我想为上述两个队列配置死信队列。我必须为比赛使用什么值
我不能使用#
,因为它将适用于所有JMS队列,但我只需要这两个队列
jms.queue.DLQ
jms.queue.ExpiryQueue
0
10485760
块
10
另外,是否还有将消息从死信队列推回到原始队列的方法
我使用的是hornet queue 2.2.13版,希望使用通配符作为MX.EQ.*.OUT
。
如果我将*
或#
放在字符之间,则服务器在引导过程中抛出异常。根据:
HornetQ通配符表达式包含由
字符。
(句号)
特殊字符“#”
和“*”
也有特殊的含义和含义
可以代替一个词。字符
“#”的意思是“匹配零个或多个单词的任意序列”。
字符“*”
表示“匹配单个单词”
所以通配符'news.europe.#'
将与'news.europe'
匹配,
“新闻.欧洲.体育”
,“新闻.欧洲.政治”
,以及
'news.european.politics.regional'
但与'news.usa'
不匹配,
'news.usa.sport'
或'entertainment'
通配符'news.*'
将匹配'news.europe'
,但不匹配
“新闻.欧洲.体育”
通配符'news.*.sport'
将匹配'news.europe.sport'
和
同样是'news.usa.sport'
,但不是'news.europe.politics'
在您的配置中,您可以使用wilcard*
,但在JBoss 7.1.1中,当您使用字符*
输入值时,联合配置解析器会引发异常
错误类似于:
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>
wilcard#
只能在比赛结束时使用
<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>