簡體   English   中英

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

[英]Making maxSession property configurable for a specific MDB in JBoss EAP 5.1

如何為MDB用戶配置maxSession值?

有一個MDB可以偵聽來自特定隊列的消息。 它被定義為注釋。

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

為了更改maxSession的值,必須每次都編譯代碼。

有沒有辦法讓用戶可配置,以便不需要構建並且無需重新啟動jboss?

請幫助。

這是從耳朵外部化此設置的方法:

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>

不需要完整的JBoss重啟,在這種情況下只需要重新部署耳朵。

它適用於所有JBoss版本, 直到 JBoss AS 7。

請注意,maxSession必須與最大池大小同步: https ://community.jboss.org/message/549083#549083

另請注意,可以在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。 這可以用於外部化視圖的數量和實例池大小。

根據這個在Jboss中創建了多少消息驅動的Bean? maxSession不能超過StrictMaxPool的設置。 所以在調整maxSession時 - 這個設置也需要改變!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM