在Jboss EAP 5.1中,使特定MDB的maxSession属性可配置化。

5
如何使MDB的maxSession值可由用户配置?
有一个MDB监听特定队列的消息,它被定义为注释。
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "5")。
要更改maxSession的值,必须每次编译代码。
是否有一种方法使其可由用户配置,无需构建并且不需要重新启动jboss?
请帮忙。
3个回答

4
这是从ear外部化此设置的方法: https://community.jboss.org/thread/178162 但仍需重新启动。
更新
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>

在这种情况下,只需要重新部署ear文件,无需进行完整的JBoss重启。

这适用于所有JBoss版本,直到JBoss AS 7:https://issues.jboss.org/browse/AS7-3816

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


自 JBoss AS 7.1.2 开始,重新引入了系统属性扩展支持。 - Vadzim

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。这可以用于将会话数量和实例池大小外部化。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接