사용자 삽입 이미지
팁코 랑데뷰같은 시스템을 사용하시다가 JMS Messaging을 이용할 경우 sync방식의 처리가 애매하다고 생각하실 수 있는 데 아래와 같은 방식으로 request-reploy 방식을 구성하여 사용할 수 있습니다. 고객사 요청으로 답변해 드린 내용입니다.

/* Message Session and Message create */
m.setText(request);
m.setJMSReplyTo(replyQueue);
myId = /* generate a unique id */
m.setJMSCorrelationID(myId)

/* send the JMS message */
QueueReceiver receiver = qsession.createReceiver(replyQueue, "JMSCorrelationID = '"+myId+"'");

Then at the other end you do this:

reply.setJMSCorrelationID(request.getJMSCorrelationID());
/* send the JMS reply message */

위의 unique ID는 UUID generator 같은 것을 이용하여 고유의 아이디를 만드세요. 특정한 Web Application Server에 따라 단순히 m.getMessageID() 해서는 엔진이 메시지 ID를 다시 생성해서 correlationID로 교체해버리는 경우가 있습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/09/01 16:55 2008/09/01 16:55
http://www.javapattern.info/trackback/151
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. jerry 2008/09/03 00:12  댓글주소  수정/삭제  댓글쓰기

    간단한 코드인데 말야... 예전 bmt 때 correlationId 가 없어도 Sender 쓰레드로 응답이 정상적으로 올거라 생각하는 사람, 한 줄로 끝나는 메시지 selector 대신 queue browser 로 메시지를 다 뒤져서 꺼내오는 사람을 봤지 ㅋㅋ
    rss client 를 하나 깔았는데 이거 정말 편한데... FeedDemon

  2. 놀새~ 2008/09/04 06:13  댓글주소  수정/삭제  댓글쓰기

    간단한 코드들이 너무 생각이 안나서 문제인 것 알잖아요. 흐흐. RSS Client. 나도 hanrss로 jerry 사이트 보고 있음.

    "누군가 당신을 지켜보고 있소~"

[로그인][오픈아이디란?]