Настройка свойства maxSession для конкретного MDB в JBoss EAP 5.1 - PullRequest
5 голосов
/ 07 сентября 2011

Как сделать значение maxSession для MDB настраиваемым пользователем?

Существует MDB, который прослушивает сообщение из определенной очереди. Он определяется как аннотация.

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

Чтобы изменить значение maxSession, код должен быть скомпилирован каждый раз.

Есть ли способ сделать его настраиваемым пользователем, чтобы не требовалась сборка и без перезапуска jboss?

Пожалуйста, помогите.

Ответы [ 3 ]

4 голосов
/ 20 марта 2012

Это способ вывести эту настройку из уха:

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

Но перезапуск все еще необходим.

Обновление

Найден способ применить новый maxSession со ссылкой на системное свойство в ejb-jar.xml:

<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

0 голосов
/ 08 апреля 2015

Согласно этому , сколько управляемых сообщениями бинов создаются в Jboss? maxSession не может превышать значение параметра StrictMaxPool. Так что при настройке maxSession - эту настройку тоже нужно изменить!

0 голосов
/ 15 февраля 2015

Также обратите внимание, что в файле конфигурации 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. Это может быть использовано для экстернализации как количества видений, так и размера пула экземпляров.

...