BLOG ARTICLE JMS | 2 ARTICLE FOUND

  1. 2008/09/01 Asynch Request-Reponse Model on JMS (2)
  2. 2008/04/25 JMS Queue Extractor

사용자 삽입 이미지
팁코 랑데뷰같은 시스템을 사용하시다가 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

JMS Queue Extractor

DEVELOPMENT 2008/04/25 13:32

사용자 삽입 이미지



예전에 이런 질문이 들어왔습니다.

고객사에서 현재 다양한 요구사항이 있습니다만 -EAI에 대해 어슬프게 알아서- 선무당들이 엔지니어 잡습니다.

메세지 큐 제어에 관한 기술적인 방법에 관한 것 인데요...

Queue의 최대 보관할 수 있는 개수가 100개 라고 가정하고, 50개의 메시지가 Queue에 찼을 경우 Receiver가 Queue에서 메시지를 추출해서 처리하는 요건입니다.

Source에서 EAI로 보내게 되면 즉시 Target으로 전송하지 않고 EAI가 메시지를 Holding 하고 있다가 어떤 조건에 만족하게 되면 그 메시지(들)을 전송하게끔 하는게 목적입니다. Source에서 제어하면 되는데 굳이 EAI에서 처리해 주기를 원하는 것 입니다.

일반적인 큐 제어 방법으로, Source coding 수준(Java sample code)의 질의 응답을 바라고 메일 드리는 겁니다.^^;

감사합니다.

제가 한 답변은 다음과 같습니다.

 

큐에 일정한 메시지가 차게 되면 그 수만큼을 추출하는 JMS Program입니다.
JMS Configuration의 flow control도 비슷한 기법이나 정확한 메시지 갯수를 추출해오는 것은 어려워 보입니다.

첨부된 파일은 QueueExtractor와 JMS에 데이터를 보내고 받을 수 있는 샘플파일입니다.
모두 compile, run script를 포함시켜 놓았습니다.

QueueExtractor기법은 JMX라는 것을 이용하여 해당 queue의 current message size를 모니터링하고 있다가
큐에 일정 메시지(10개)가 차게 되면 Receiver program을 구동시켜 synchronous하게 데이터를 추출합니다.

QueueExtractor.zip파일의 run 파일을 여신 후 JMS와 WebLogic Host설정 정보를 입력하신 후 테스트해보세요.
ServerName과 추출갯수, receiver의 host url, jms queue명은 하드 코딩 되어 있으니 필요하다면 고치셔야 합니다.

엔지니어 중에 자바와 WebLogic JMS에 대하여 경험있는 엔지니어에게 테스트를 시키십시오.

궁금하신 사항은 바로 전화해 주세요.
감사합니다.

첨부되는 소스(Queue Extractor) :




크리에이티브 커먼즈 라이센스
Creative Commons License
2008/04/25 13:32 2008/04/25 13:32