2017-04-21 6 views
2

WebSphere MQ에서 topic을 구독하는 마이크로 서비스가 있습니다. 구독은 manageddurable입니다. subscription name을 명시 적으로 설정하여 마이크로 서비스 실패를 복구 한 후 다시 대기열에 연결하는 데 사용할 수 있습니다. 구독은 예상대로 작동합니다.Websphere MQ - 여러 소비자가있는 주제 서브 스크립 션

하지만 마이크로 서비스를 확장하고 여러 인스턴스를 실행해야 할 수도 있습니다. 이 경우 동일한 주제에 대해 여러 소비자를 보유하게 될 것입니다. 하지만 여기서 오류 2429 : MQRC_SUBSCRIPTION_IN_USE으로 실패합니다. 주제 구독에 둘 이상의 소비자를 돌릴 수 없습니다. 참고 : 메시지는 소비자 중 한 명에게만 보내야합니다.

의견이 있으십니까?

IBM Websphere 버전 : 7.5 C 클라이언트 API를 사용하여 MQ에 연결합니다.

답변

6

사용자를 설명 할 때 IBM MQ 클래스 for JMS API를 통해서만 지원됩니다. v7.0 이상에서는 복제 된 구독 (JMS 사양의 IBM 확장)을 사용할 수 있으며 MQ v8.0 이상에서는 JMS 2.0 사양의 일부인 공유 구독을 대신 사용할 수 있습니다. 이 두 가지 옵션을 사용하면 여러 구독자를 동일한 구독에 연결할 수 있으며 그 중 하나만 게시 된 각 메시지를 받게됩니다. 이 APAR IV96489: XMS.NET DOESN'T ALLOW SHARED SUBSCRIPTIONS EVEN WHEN CLONESUP PROPERTY IS ENABLED 따르면


UPDATE 20,170,710

, XMS.NET는 복제 된 등록을 지원하도록되어 있지만 인해 결함이 8.0.0.8 또는 9.0까지 지원되지 않을 것이다 .0.2 또는 위의 APAR에 대해 IFIX를 요청한 경우.


대신 주제에 가입의 큐에서 얻을 수 있도록 마이크로 서비스를 변환하여 C와 같은 다른 API와 비슷한을 수행 할 수 있습니다.

  1. 설정 큐 관리자에 대한 관리 가입 :

    는 두 가지 옵션이 큐에 게시 된 메시지를 얻으려면. 몇 가지 방법으로이 작업을 수행 할 수 있습니다. 아래 예제는 MQSC 명령을 사용하는 것입니다.

    DEFINE SUB('XYZ') TOPICSTR('SOME/TOPIC') DEST(SOME.QUEUE)

  2. 큐를 열고이 제공 큐와 내구성 구독을 만들 수있는 유틸리티 응용 프로그램을 만들고,이 응용 프로그램의 유일한 목적은 구독하고 제공된 큐를 취소하는 것, 그것은 사용되지 않을 것이다 게시 된 메시지를 사용합니다. 상기 방법을 사용


각 문서 메시지는 하나 개의 스레드 또는 프로세스에 의해 큐에서 (GET)을 판독 할 수있다.