2014-12-29 3 views
1

JBoss 7.1에서 실행되는 Java 응용 프로그램이 있습니다. 그것은 20 개 이상의 JMS 대기열을 사용합니다. 설정에JBoss 7.1의 여러 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으로 사용하려고합니다. * 또는 #을 문자 사이에 넣으면 부팅하는 동안 서버에서 예외가 발생합니다. Understanding the HornetQ Wildcard Syntax 따르면

답변

2

는 :

HornetQ 와일드 카드 표현식은 문자 '.' (마침표)로 구분 단어가 포함되어 있습니다.

특수 문자 '#''*'은 특별한 의미가 있으며 은 단어 대신 사용할 수 있습니다.
문자 '#'은 '0 개 이상의 단어 순서와 일치'를 의미합니다.
문자 '*'은 '한 단어와 일치'를 의미합니다.

그래서 와일드 카드 '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 *를 사용하지만, 보스 당신이 문자 *에 값을 넣을 때 기기 구성 파서는 예외를 throw 7.1.1 수 있습니다.

오류가 비슷합니다 : 당신이 값에 공백을 사용할 때

JBAS015956: Caught exception during boot: org.jboss.as.controller.PathElement$OperationClientIllegalArgumentException: JBAS014719: Invalid value specification 

같은 문제가 발생,이 문제에 설명되어 있습니다 : Logger category cannot have spaces

이제 하나의 옵션이 업데이트는 보스 7.1이다 .이 이상은, 또는 예를 들어, 큐의 이름을 다른 명칭을 만듭니다

<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 #은 경기의 마지막에 사용 될 수 있습니다.

관련 문제