在JBOSS中配置MDB

时间:2009-06-26 11:55:41

标签: jboss ejb-3.0 jboss-mdb

maxMessages属性如何影响MDB? 例如:

@ActivationConfigProperty(propertyName = "maxMessages", propertyValue="5"). 

如果maxSessions为10,该值会如何影响?

3 个答案:

答案 0 :(得分:2)

JBoss docs对此有点啰嗦,他们说MaxMessages被定义为

  

要等待的消息数   在尝试交付之前   会话,每条消息仍然是   在单独的交易中交付   (默认1)

我认为你想知道它是否会影响线程或并发会话的数量,而不是一次可以通过MDB,但似乎这个参数与该行为无关,所以没有冲突。

答案 1 :(得分:2)

我认为你很困惑,maxSessions指的是可以同时向MDB传递消息的最大JMS会话数。

答案 2 :(得分:1)

在xml配置文件标准jboss.xml中,您可以设置Maximum Size来设置并发消息的数量。在这种情况下,我将其设置为150.但是,这会影响所有MDB。

 <invoker-proxy-binding>
      <name>message-driven-bean</name>
      <invoker-mbean>default</invoker-mbean>
      <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
      <proxy-factory-config>
        <JMSProviderAdapterJNDI>DefaultJMSProvider</JMSProviderAdapterJNDI>
        <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
        <CreateJBossMQDestination>true</CreateJBossMQDestination>
        <!-- WARN: Don't set this to zero until a bug in the pooled executor is fixed -->
        <MinimumSize>1</MinimumSize>
        **<MaximumSize>150</MaximumSize>**
        <KeepAliveMillis>30000</KeepAliveMillis>
        <MaxMessages>1</MaxMessages>
        <MDBConfig>
          <ReconnectIntervalSec>10</ReconnectIntervalSec>
          <DLQConfig>
            <DestinationQueue>queue/DLQ</DestinationQueue>
            <MaxTimesRedelivered>200</MaxTimesRedelivered>
            <TimeToLive>0</TimeToLive>
          </DLQConfig>
        </MDBConfig>
      </proxy-factory-config>
    </invoker-proxy-binding>