2015-11-10 4 views
0

Я пытаюсь настроить MDB в составе WAR для подключения к IBM MQ.Конфигурирование MDB для подключения к IBM MQ в JBoss EAP6.1

Я использую @ActivationConfigProperty и пытаюсь определить значения как системное свойство. Но это не работает.

Просмотрев документацию, я обнаружил, что мне нужно определить, как показано ниже в файле standalong-full.xml. Но это не имеет никакого смысла для меня, поскольку я добавляю свойства приложения в JBoss. Если я переустановить JBoss, я также должен помнить о том, чтобы добавить эти вещи.

<resource-adapter> 
<archive> 
wm q.jm sra-VERSION.rar 
</archive> 
<transaction-support>NoTransaction</transaction-support> 
<connection-definitions> 
<connection-definition classname="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl" jndi-name="java:jboss/MQ.CONNECTIONFACTORY.NAME" 
pool-nam e="MQ.CONNECTIONFACTORY 

Может кто угодно посоветует любой альтернативный подход.

Заранее благодарю вас за помощь.

С наилучшими пожеланиями - Рой

ответ

0

Рой, Вам не нужно изменять автономные-full.xml непосредственно. Этот файл перезаписывается JBoss. Предпочтительный подход - сделать эти обновления через cli, интерфейс командной строки. Любые изменения, внесенные вами через cli, будут записаны в ваш standalone-full.xml. После того, как вы кли вы можете выдавать команды, как

/subsystem=resource-adapters/resource-adapter=mymq:add(archive="wm q.jm sra-VERSION.rar",transaction-support="NoTransaction") 
/subsystem=resource-adapters/resource-adapter=mymq/connection-definitions="TopicConnection":add(class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl",jndi-name="java:jboss/MQ.CONNECTIONFACTORY.NAME",enabled="true",use-java-context="true",use-ccm="true",min-pool-size=1,max-pool-size=20) 

Кстати, почему у вас есть место в вашем имени архива «WM q.jm», это не может быть проблемой, просто любопытно.

0

Вам нужно будет развернуть IBM MQ JCA в JBoss. Это можно сделать через веб-интерфейс или CLI. Это приведет к записи в вашем автономном файле конфигурация аналогична:

<deployments> 
    <deployment name="wmq.jmsra-7.5.0.5.rar" runtime-name="wmq.jmsra-7.5.0.5.rar"> 
     <content sha1="b6f5a197dcda61c38215ffc24666d2d028341323"/> 
    </deployment> 

Затем вам нужно будет создать раздел конфигурации адаптера соответствующего ресурса:

 <subsystem xmlns="urn:jboss:domain:resource-adapters:1.1"> 
     <resource-adapters> 
      <resource-adapter id="wmq.jmsra-7.5.0.5.rar"> 
       <archive> 
        wmq.jmsra-7.5.0.5.rar 
       </archive> 
       <transaction-support>XATransaction</transaction-support> 
       <config-property name="maxConnections"> 
        100 
       </config-property> 
       <config-property name="reconnectionRetryCount"> 
        1000 
       </config-property> 
       <config-property name="reconnectionRetryInterval"> 
        30000 
       </config-property> 
      </resource-adapter> 
     </resource-adapters> 
    </subsystem> 

Обратите внимание, что имя wmq.jmsra-7.5.0.5.rar используется последовательно.

В вашем MDB, вы бы тогда:

@MessageDriven(name = "WebSphereMQ", activationConfig = { 
    @ActivationConfigProperty(propertyName = "maxPoolDepth", propertyValue="100"), 
    @ActivationConfigProperty(propertyName = "maxMessages", propertyValue="1"), 
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), 
    @ActivationConfigProperty(propertyName = "hostName", propertyValue = "10.0.0.150"), 
    @ActivationConfigProperty(propertyName = "port", propertyValue = "1414"), 
    @ActivationConfigProperty(propertyName = "channel", propertyValue = "SYSTEM.DEF.SVRCONN"), 
    @ActivationConfigProperty(propertyName = "queueManager", propertyValue = "QUEUE.MANAGER"), 
    @ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "false"), 
    @ActivationConfigProperty(propertyName = "destination", propertyValue = "${the.queue.name}"), 
    @ActivationConfigProperty(propertyName = "transportType", propertyValue = "CLIENT") }) 

@ResourceAdapter(value="wmq.jmsra-7.5.0.5.rar") 
public class WebSphereMQ implements MessageListener { 
... 
... 
... 
} 

Обратите внимание на @ResourceAdapter и ${the.queue.name}.

Замещение свойства для аннотации должна быть включено в автономном файле конфигурации:

<subsystem xmlns="urn:jboss:domain:ee:1.2"> 
     <spec-descriptor-property-replacement>true</spec-descriptor-property-replacement> 
     <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> 
     <annotation-property-replacement>true</annotation-property-replacement> 
    </subsystem> 
  • Дуга
Смежные вопросы