문제

2 개의 메시지 구동 콩이 있습니다. 이 콩의 2 개의 활성화 사양. 하나의 메시지 버스가 있고 활성화 사양이 모두이 버스로 구성됩니다. 해당 하나의 메시지 버스에 대해 2 개의 다른 대기열과 하나의 큐 연결 공장이 있습니다.

이제 큐를 결정한 후 런타임시 큐 중 하나에 메시지를 보내기 위해 코드를 작성했습니다. 그러나 두 MDB는 동일한 메시지를받습니다. 이 구성은 일반적으로 어떻게 수행됩니까? 항상 1 개의 큐 -> 1 큐 연결 공장 -> 1 메시지 버스 -> 1 MDB를 구성합니까? 모두 일대일 관계입니까?

오, 나는 이것을 언급하는 것을 잊었다 : 나는 WebSphere Application Server v6.1을 사용하고있다.

도움이 되었습니까?

해결책

일반적으로 개념은 다음과 같습니다.

  1. 메시지가 전송 (대기열)/게시 (주제)로 대상 (대기열/주제)
  2. activationspec은 특정 목적지 (대기열/주제)에서 메시지를 듣습니다.
  3. ActivationSpec : 대상은 1 : 1 관계입니다
  4. Bean (소비자 인 MDB)은 ActivationSpec을 듣도록 구성됩니다.

이것이 의미하는 바는 사실상 Bean은 ActivationSpec에서 제공하는 간접 층이있는 대상과 연결되어 있다는 것입니다.

버스는 어디에 들어오나요 - Sibus는이 모든 것을 가능하게하는 메시징 인프라입니다. 목적지는 버스에서 개최됩니다.

질문에 대한 정보 - 활성화 PEC는 메시지가 전송 될 버스의 목적지를 듣도록 구성됩니다. Connection Factory는 메시지가 전송 될 버스를 결정합니다. 대상 이름이 고유하고 특정 대기열을 대상으로하는 한 (JMS 큐는 버스의 대상과 연결되어 있음) 하나의 ActivationSpec에 의해서만 수신됩니다.

버스에서 얼마나 많은 목적지 (Sibus 링크가 관리 콘솔에)가 만들어 졌습니까? 구성이 올바른지 확인/유효성을 확인할 수 있습니까?

질문에 답하기 위해 - "활성화 사양 당 하나의 버스와 대기열 당 하나의 큐 연결 공장입니다." - 내 대답은 아니오 야.

  1. 버스는 "N"목적지를 주최 할 수있는 기본 인프라입니다. 하나의 activationspec은 하나의 대상을 듣습니다.
  2. 큐 연결 공장은 큐를 만드는 공장 (J2EE 공장 패턴)입니다.

다른 팁

두 MDB가 같은 메시지를 받기를 원한다고 생각합니다.

이 경우 MDBS가 주제 아니에요 대기줄.

또는 메시지를 전달하기 위해 IBM MQ를 구성 할 수있는 방법이 있으므로 예를 들어 특정 메시지에 게시 된 메시지가 있습니다. 대기줄 다시 게시 할 수 있습니다 N 다른 대기열, 그러나 나는 재 포장 전에 어떤 종류의 메시지 농축이 발생할 때만 사용되는 것을 보았으므로, 당신이 달성하려는 것에 대해 과도한 일이라고 생각합니다.

메시지 버스가 필요한 이유는 무엇입니까?

보통 나는 MDB를 대기열과 연관시킨다 - 그것은 1 : 1 관계이다. 대기열에 메시지를 보내면 청취자가 가져옵니다. 버스는 당신을 구입하는 것은 무엇입니까?

나는 Weblogic과 함께 JMS를 수행했으며, 메시지 버스와 같은 구조물은 필요하지 않습니다. 나는 그것이 IBM이라고 생각합니다.

여기에 있습니다 스프링으로 JM을 수행하는 방법의 예. 그것이 내가 진행하는 것을 추천하는 방법입니다.

업데이트 : 귀하의 질문을 잘못 해석했습니다. 두 줄이 같은 메시지를 받고 있다고 말했을 때, 나는 그것이 원하는 행동이라고 생각하지 않았습니다. 그렇다면 주제는 올바른 방법입니다. 대기열은 지점 간 메시지입니다. 주제는 게시/구독입니다.

나는 당신이 가진 구성이 당신이 생각하는 방식으로 설정되지 않았다고 생각합니다. 우리는 많은 MDB (대기열 및 활성화 사양 포함), 단일 공장 및 메시지 버스와 함께 설명 된 동일한 구성을 사용하며 모든 것이 예상대로 작동합니다.

동일한 메시지를 두 큐에 보내거나 대기열 대신 주제를 정의하지 않으면 실제로보고있는 동작을 얻는 것은 실제로 불가능합니다. 나는 두 MDB가 동일한 대기열에서 읽고 있더라도 큐가 포인트 to 포인트 메시징 만 지원하기 때문에 메시지를받을 것이라고 확신합니다. 당신이 묘사 한 것은 주제 기반 행동입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top