2011-01-13 2 views
0

jboss 5.1.x를 사용하고 있습니다. mdb의 인스턴스를 늘리려고합니다. 하지만 성공하지 못했습니다.MDB 인스턴스 증가

일부 코드 : 지금

@MessageDriven(activationConfig = 
{ @ActivationConfigProperty(propertyName = "destinationType", propertyValue = 
"javax.jms.Queue"), 
@ActivationConfigProperty(propertyName = "destination", propertyValue = 
Constants.QUEUE_LOOKUP), 
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "50") 
} 

) 

public class ECMSDispatcherMdb implements MessageListener 
    { 
     ... 
    } 

내가 큐 \ MyQueue 인 나무 아래, 콘솔 관리보고 :

Consumer Count 1 The number of consumers on the queue 
Message Count 0 The number of messages in the queue 
  • 소비자 카운트는 단 1
  • 되고 유지

어떤 아이디어가 잘못 되었나요? 또는 내가 올바르게 구성하지 않은 것은 무엇입니까?

레이,

레이.

답변

0

MDB는 하나의 인스턴스를 만들고 onMessage(..) 메서드를 호출하여 처리됩니다. 그렇다면 왜 더 많은 인스턴스가 필요합니까?

+0

MDB에서 인스턴스 변수를 사용하면 어떻게됩니까? 2 개의 개별 스레드에서 호출되면 충돌이 발생할 수 있습니다. – AlexR

+0

인스턴스 변수를 사용하지 않습니다. – Bozho

+0

내 시스템에서 JMS Queue에서 병렬로 작업 할 MDB 인스턴스를 두 개 더 갖고 싶습니다. – rayman

1

아무 잘못 없습니다. 모든 것이 좋습니다. 아무 것도 할 필요가 없을 때 (대기열에있는 0 개의 메시지) MDB 인스턴스가 둘 이상 필요하지 않습니다.

여러 인스턴스를보고 싶다면 서버가 추가 인스턴스를 생성하도록 강제로드 테스트를 수행해야한다고 생각합니다. 아니면 쉽게 할 수 있습니다. MDB에 Thread.sleep (60000)을 추가하십시오. 이제 큐에 2 개의 메시지를 푸시하십시오.

이 경우 각 메시지의 처리에는 1 분이 소요되므로 서버가 동시에 처리해야하므로 추가 인스턴스를 생성해야합니다.

+1

그러면 왜 콘솔에 소비자의 수를 1로 표시합니까? – rayman