使JBoss EAP 5.1中的特定MDB可配置maxSession属性

时间:2011-09-07 09:13:01

标签: java jboss jms jboss6.x message-driven-bean

如何为MDB用户配置maxSession值?

有一个MDB侦听来自特定队列的消息。它被定义为注释。

@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "5")

为了更改maxSession的值,必须每次都编译代码。

有没有办法让用户可以配置,这样就不需要构建而不重新启动jboss?

请帮助。

3 个答案:

答案 0 :(得分:4)

这是从耳朵外部化此设置的方法:

https://community.jboss.org/thread/178162

但仍然需要重启。

<强>更新

找到a way以在ejb-jar.xml中应用具有系统属性引用的新maxSession:

<activation-config-property>
   <activation-config-property-name>maxSession</activation-config-property-name>
   <activation-config-property-value>${my.mdb.maxSession:30}</activation-config-property-value>
</activation-config-property>

不需要完整的JBoss重启,在这种情况下只需要重新部署耳机。

适用于所有JBoss版本until JBoss AS 7。

请注意,maxSession必须与最大池大小同步: https://community.jboss.org/message/549083#549083

答案 1 :(得分:0)

另请注意,可以在AOP配置文件中指定会话数和实例池大小:

<?xml version="1.0" encoding="UTF-8"?>
<aop xmlns="urn:jboss:aop-beans:1.0">
   <domain name="IBMMQ Message Driven Bean" extends="Message Driven Bean" inheritBindings="true">
      <annotation expr="class(*)">
          @org.jboss.ejb3.annotation.Pool (value="StrictMaxPool", maxSize=10, timeout=10000)
      </annotation>
      <annotation expr="!class(@org.jboss.ejb3.annotation.DefaultActivationSpecs)">
         @org.jboss.ejb3.annotation.DefaultActivationSpecs (value={@javax.ejb.ActivationConfigProperty(propertyName = "channel", propertyValue = "SSL.CLIENTS"), @javax.ejb.ActivationConfigProperty(propertyName = "queueManager", propertyValue = "SSLQM"), @javax.ejb.ActivationConfigProperty(propertyName = "hostName", propertyValue = "10.0.0.124"), @javax.ejb.ActivationConfigProperty(propertyName = "port", propertyValue = "1415"), @javax.ejb.ActivationConfigProperty(propertyName = "transportType", propertyValue = "CLIENT"), @javax.ejb.ActivationConfigProperty(propertyName = "sslCipherSuite", propertyValue = "SSL_RSA_WITH_3DES_EDE_CBC_SHA")})
      </annotation>
   </domain>
</aop>

然后添加注释:

@AspectDomain("IBMMQ Message Driven Bean")

到您的MDB。这可用于外部化视图数和实例池大小。

答案 2 :(得分:0)

根据此how many Message Driven Beans are created in Jboss? maxSession不能超过StrictMaxPool的设置。因此,在调整maxSession时 - 此设置也需要更改!

相关问题