2015-01-07 2 views
1

JBOSS 7.1에서 구성된 두 개의 jms 대기열이 있습니다.Jboss 7에서 DLQ의 메시지 읽기

<jms-queue name="APP.QUEUE1"> 
    <entry name="queue/APP.QUEUE1"/> 
    <entry name="java:jboss/exported/jms/queue/APP.QUEUE1"/> 
</jms-queue> 

<jms-queue name="APP.QUEUE2"> 
    <entry name="queue/APP.QUEUE2"/> 
    <entry name="java:jboss/exported/jms/queue/APP.QUEUE2"/> 
</jms-queue> 

메시지를 소비하면서 어떤 일이 잘못되면 메시지가 다음과 같이 구성된 데드 - 레터 대기열로 이동합니다.

<address-setting match="jms.queue.APP#"> 
     <dead-letter-address>jms.queue.DLQ</dead-letter-address> 
     <expiry-address>jms.queue.ExpiryQueue</expiry-address> 
     <redelivery-delay>0</redelivery-delay> 
     <max-delivery-attempts>5</max-delivery-attempts> 
     <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> 

그래서 DLQ에 메시지를 성공적으로 배달했습니다.

이제는 문제가 해결 된 후 메시지를 다시 전송할 수 있도록 데드 레터 대기열에 대한 소비자 정보를 작성했습니다.

메시지를 소비하는 코드 조각은 다음과 같습니다. 문자 메시지에서

QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); 
QueueBrowser browser = session.createBrowser(queue); 
Queue queue1=browser.getQueue(); 
Enumeration messageEnum = browser.getEnumeration(); 
    while (messageEnum.hasMoreElements()) { 
     TextMessage message = (TextMessage) messageEnum.nextElement(); 
     } 

, 내가 메시지 속성에 많이 걱정 밖으로 같은 문자 메시지를 다시 전송 한 있도록 소스 큐 (APP.QUEUE1 또는 APP.QUEUE2)를 얻기의 기회가있다.

내 접근 방식이 올바른지 아닌지, 더 나은 해결 방법을 알려주십시오.

+0

이에 대한 답변을 찾았습니다. 우리는 다음과 같은 속성을가집니다. message.getStringProperty ("_ HQ_ORIG_ADDRESS"); 이 속성은 원래 주소를 제공합니다. – Ananth

답변

0

답을 찾았습니다. 우리는 다음과 같은 속성을 가지고 있습니다. message.getStringProperty ("_ HQ_ORIG_ADDRESS"); 이 속성은 원래 주소를 제공합니다.

관련 문제