使JBoss EAP 5.1中的特定MDB可配置maxSession属性
如何为MDB用户配置maxSession值?
有一个MDB可以侦听来自特定队列的消息。 它被定义为注释。
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "5")
。
为了更改maxSession的值,必须每次都编译代码。
有没有办法让用户可配置,以便不需要构建,也无需重新启动jboss?
请帮助。
这是从耳朵外部化此设置的方法:
https://community.jboss.org/thread/178162
但仍需要重启。
更新
找到了一种在ejb-jar.xml
应用带有系统属性引用的新maxSession 的方法 :
maxSession ${my.mdb.maxSession:30}
不需要完整的JBoss重启,在这种情况下只需要重新部署耳朵。
它适用于所有JBoss版本, 直到 JBoss AS 7。
请注意,maxSession必须与最大池大小同步: https ://community.jboss.org/message/549083#549083
另请注意,可以在AOP配置文件中指定会话数和实例池大小:
@org.jboss.ejb3.annotation.Pool (value="StrictMaxPool", maxSize=10, timeout=10000) @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")})
然后添加注释:
@AspectDomain("IBMMQ Message Driven Bean")
到您的MDB。 这可以用于外部化视图的数量和实例池大小。
根据这个在Jboss中创建了多少消息驱动的Bean? maxSession不能超过StrictMaxPool的设置。 所以在调整maxSession时 – 这个设置也需要改变!
- 如何在Java中读取格式良好的XML,但是跳过架构?
- Postgres错误方法org.postgresql.jdbc.PgConnection.createClob()未实现
- 使用带有HTTPS的javax.xml.ws.Endpoint
- 具有特定格式的XMLGregorianCalendar的日期
- 尝试从Clojure填充Java类时,“找不到匹配的ctor”
- JavaFX JSObject几分钟后停止工作?
- 使用Class.forName(…)时为什么会出现ClassNotFoundException?
- 如何在Java中交换arrayMap值和键
- 使用lambda表达式时,Java 8generics+exception编译时错误