2016-11-21 76 views
0

我正在嘗試使用JBoss AMQ 6.3來運行託管在大型機上的WebSphere MQ和在分佈式環境中運行的應用程序之間的橋樑。爲了使工作我已經成功地安裝了WebSphere MQ的OSGi的庫和部署般地組件文件:在JBoss AMQ 6.3上部署駝峯組件時出錯

<?xml version="1.0" encoding="UTF-8"?> 
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="eager"> 
    <camelContext xmlns="http://camel.apache.org/schema/blueprint"> 
    <route> 
     <from uri="wmq:queue:DLC1.PBX.LS000004"/> 
     <to uri="activemq:queue:GreenQueue?username=jbamq&amp;password=ThisIsABig10-4"/> 
    </route> 
    <route> 
     <from uri="activemq:queue:BlueQueue?username=jbamq&amp;password=ThisIsABig10-4" /> 
     <to uri="wmq:queue:DLC1.PBX.LE000002" /> 
    </route> 
    </camelContext> 

<bean id="amqConnectionFactory" 
    class="org.apache.activemq.ActiveMQConnectionFactory"> 
    <property name="brokerURL" value="tcp://localhost:61616" /> 
</bean> 


<bean id="pooledConnectionFactory" 
    class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop"> 
    <property name="maxConnections" value="8" /> 
    <property name="connectionFactory" ref="amqConnectionFactory" /> 
</bean> 

<bean id="amqConfig" 
    class="org.apache.camel.component.jms.JmsConfiguration"> 
    <property name="connectionFactory" ref="pooledConnectionFactory"/> 
    <property name="concurrentConsumers" value="10"/> 
</bean> 

<bean id="activemq" 
    class="org.apache.activemq.camel.component.ActiveMQComponent"> 
    <property name="configuration" ref="amqConfig"/> 
</bean> 


<bean id="wmqConnectionFactory" class="com.ibm.mq.jms.MQConnectionFactory"> 
    <property name="hostName" value="DLC1.thisorganization.org" /> 
    <property name="port" value="1414" /> 
    <property name="queueManager" value="DLC1" /> 
    <property name="channel" value="DLC1.PBX010.SVRCONN" /> 
    <property name="transportType" value="1" /> 
    <property name="shareConvAllowed" value="0" /> 
</bean> 

<bean id="wmq" class="org.apache.camel.component.jms.JmsComponent"> 
    <property name="connectionFactory" ref="wmqConnectionFactory"/> 
    <property name="maxConcurrentConsumers" value="5"/> 
    <property name="cacheLevelName" value="CACHE_NONE"/> 
</bean> 
</blueprint> 

在年初剛剛部署的分量開始的JBoss AMQ但一週後,當它不再能夠啓動,拋出了以下錯誤:

2016-11-16 16:24:43,028 | ERROR | FelixStartLevel | BlueprintContainerImpl   | container.BlueprintContainerImpl 409 | 21 - org.apache.aries.blueprint.core - 1.4.5 | Unable to start blueprint container for bundle DeployedQueues.xml/0.0.0 
org.osgi.service.blueprint.container.ComponentDefinitionException: Error setting property: PropertyDescriptor <name: connectionFactory, getter: null, setter: [class org.apache.camel.component.jms.JmsComponent.setConnectionFactory(interface javax.jms.ConnectionFactory)] 
     at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:963)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:929)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:910)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:844)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[21:org.apache.aries.blueprint.core:1.4.5] 
     at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_80] 
     at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:247)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:688)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:383)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:270)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:294)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:263)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:253)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[15:org.apache.aries.util:1.1.0] 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[15:org.apache.aries.util:1.1.0] 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[15:org.apache.aries.util:1.1.0] 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[15:org.apache.aries.util:1.1.0] 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[15:org.apache.aries.util:1.1.0] 
     at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1127)[org.apache.felix.framework-4.4.1.jar:] 
     at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:696)[org.apache.felix.framework-4.4.1.jar:] 
     at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:484)[org.apache.felix.framework-4.4.1.jar:] 
     at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4429)[org.apache.felix.framework-4.4.1.jar:] 
     at org.apache.felix.framework.Felix.startBundle(Felix.java:2100)[org.apache.felix.framework-4.4.1.jar:] 
     at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1299)[org.apache.felix.framework-4.4.1.jar:] 
     at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)[org.apache.felix.framework-4.4.1.jar:] 
     at java.lang.Thread.run(Thread.java:745)[:1.7.0_80] 
Caused by: java.lang.Exception: Unable to convert value | [email protected] :- 
| | XMSC_ADMIN_OBJECT_TYPE    :- 20 
| | XMSC_ASYNC_EXCEPTIONS    :- 1 
| | XMSC_CLIENT_ID      :- <null> 
| | XMSC_CONNECTION_TYPE    :- 1 
| | XMSC_CONNECTION_TYPE_NAME   :- com.ibm.msg.client.wmq 
| | XMSC_RTT_DIRECT_AUTH    :- 0 
| | XMSC_RTT_PROXY_HOSTNAME   :- <null> 
| | XMSC_RTT_PROXY_PORT    :- 443 
| | XMSC_WMQ_BROKER_CC_SUBQ   :- SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE 
| | XMSC_WMQ_BROKER_CONTROLQ   :- SYSTEM.BROKER.CONTROL.QUEUE 
| | XMSC_WMQ_BROKER_PUBQ    :- SYSTEM.BROKER.DEFAULT.STREAM 
| | XMSC_WMQ_BROKER_QMGR    :- 
| | XMSC_WMQ_BROKER_SUBQ    :- SYSTEM.JMS.ND.SUBSCRIBER.QUEUE 
| | XMSC_WMQ_CCDTURL     :- <null> 
| | XMSC_WMQ_CF_DESCRIPTION   :- <null> 
| | XMSC_WMQ_CHANNEL     :- SQD1.AXB010.SVRCONN 
| | XMSC_WMQ_CLEANUP_INTERVAL   :- 3600000 
| | XMSC_WMQ_CLEANUP_LEVEL    :- 1 
| | XMSC_WMQ_CLIENT_RECONNECT_OPTIONS :- 0 
| | XMSC_WMQ_CLIENT_RECONNECT_TIMEOUT :- 1800 
| | XMSC_WMQ_CLONE_SUPPORT    :- 0 
| | XMSC_WMQ_CONNECTION_MODE   :- 1 
| | XMSC_WMQ_CONNECTION_NAME_LIST_INT :- 
| | | 0 :- SQD1.axa-seguros-es.intraxa(1414) 
| | XMSC_WMQ_CONNECTION_TAG   :- [[email protected] 
| | XMSC_WMQ_CONNECT_OPTIONS   :- 0 
| | XMSC_WMQ_HEADER_COMP    :- 
| | | 0 :- 0 
| | XMSC_WMQ_LOCAL_ADDRESS    :- 
| | XMSC_WMQ_MAP_NAME_STYLE   :- true 
| | XMSC_WMQ_MAX_BUFFER_SIZE   :- 1000 
| | XMSC_WMQ_MESSAGE_RETENTION   :- 1 
| | XMSC_WMQ_MESSAGE_SELECTION   :- 0 
| | XMSC_WMQ_MSG_BATCH_SIZE   :- 10 
| | XMSC_WMQ_MSG_COMP     :- 
| | | 0 :- 0 
| | XMSC_WMQ_OPT_PUB     :- false 
| | XMSC_WMQ_OUTCOME_NOTIFICATION  :- true 
| | XMSC_WMQ_POLLING_INTERVAL   :- 5000 
| | XMSC_WMQ_PROCESS_DURATION   :- 0 
| | XMSC_WMQ_PROVIDER_VERSION   :- unspecified 
| | XMSC_WMQ_PUB_ACK_INTERVAL   :- 25 
| | XMSC_WMQ_QMGR_CCSID    :- 819 
| | XMSC_WMQ_QUEUE_MANAGER    :- SQD1 
| | XMSC_WMQ_RECEIVE_EXIT    :- <null> 
| | XMSC_WMQ_RECEIVE_EXIT_INIT   :- <null> 
| | XMSC_WMQ_RECEIVE_ISOLATION   :- 0 
| | XMSC_WMQ_RESCAN_INTERVAL   :- 5000 
| | XMSC_WMQ_SECURITY_EXIT    :- <null> 
| | XMSC_WMQ_SECURITY_EXIT_INIT  :- <null> 
| | XMSC_WMQ_SEND_CHECK_COUNT   :- 0 
| | XMSC_WMQ_SEND_EXIT     :- <null> 
| | XMSC_WMQ_SEND_EXIT_INIT   :- <null> 
| | XMSC_WMQ_SHARE_CONV_ALLOWED  :- 0 
| | XMSC_WMQ_SPARSE_SUBSCRIPTIONS  :- false 
| | XMSC_WMQ_SSL_CERT_STORES_COL  :- <null> 
| | XMSC_WMQ_SSL_CERT_STORES_STR  :- <null> 
| | XMSC_WMQ_SSL_CIPHER_SUITE   :- <null> 
| | XMSC_WMQ_SSL_FIPS_REQUIRED   :- false 
| | XMSC_WMQ_SSL_KEY_RESETCOUNT  :- 0 
| | XMSC_WMQ_SSL_PEER_NAME    :- <null> 
| | XMSC_WMQ_SSL_SOCKET_FACTORY  :- <null> 
| | XMSC_WMQ_STATUS_REFRESH_INTERVAL :- 60000 
| | XMSC_WMQ_SUBSCRIPTION_STORE  :- 1 
| | XMSC_WMQ_SYNCPOINT_ALL_GETS  :- false 
| | XMSC_WMQ_TARGET_CLIENT_MATCHING :- true 
| | XMSC_WMQ_TEMPORARY_MODEL   :- SYSTEM.DEFAULT.MODEL.QUEUE 
| | XMSC_WMQ_TEMP_Q_PREFIX    :- 
| | XMSC_WMQ_TEMP_TOPIC_PREFIX   :- 
| | XMSC_WMQ_USE_CONNECTION_POOLING :- true 
| | brokerVersion      :- -1 
| | failIfQuiesce      :- 1 
| | multicast       :- 0 
| | version       :- 7 
| | wildcardFormat      :- 0 to type javax.jms.ConnectionFactory 
     at org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:184)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:402)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(ReflectionUtils.java:396)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(ReflectionUtils.java:630)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(ReflectionUtils.java:380)[21:org.apache.aries.blueprint.core:1.4.5] 
     at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:961)[21:org.apache.aries.blueprint.core:1.4.5] 
     ... 28 more 

我懷疑它停止工作,一旦收到WebSphereMQ

+0

那麼,如果它工作了一個星期,然後失敗了,一定會發生一些事情。您的MQ連接沒有變化? –

+0

通常情況下連接沒有被修改(但是隻要我不管理我不知道的WebSphere MQ代理),我想這個問題可能與某些接收到的消息或某些OSGi組件在服務器重啓時未啓動時相關。 – alphamikevictor

+1

您可以使用RFHUTIL工具瀏覽MQ代理和隊列。您可以使用它來查看消息並排除故障。 –

回答

0

的第一條消息。最後我設法用一種變通方法來部署駱駝組成部分。一旦JBoss A-MQ服務器啓動,我登錄Web控制檯並轉到OSGi選項卡,然後選擇顯示所有包並通過jms進行過濾。

JBoss A-MQ console

對於每捆我點擊它,並在下一個屏幕上單擊刷新按鈕:

Reload bundle

好吧,也許並不需要所有這束重新加載,但最後這樣駱駝組件部署