2011-09-20 61 views
1

我遇到了一個問題,我的JMS消息橋接似乎每隔30秒由WLS停止並重新啓動。爲什麼我的JMS消息橋接在WLS中每30秒停止/啓動

據我所知,網橋實際上工作正常,並且WLS控制檯將其報告爲「活動,轉發消息」。橋的盡頭都是我所知道的最好的工作。

每30秒出現在我的WLS日誌中的消息如下所示。這六行每次都重複。

####<2011-sep-20 kl 12:48 CEST> <Info> <MessagingBridge> <host> <server> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1316515696279> <BEA-200020> <Bridge "NameOfBridge" is stopped.> 
####<2011-sep-20 kl 12:48 CEST> <Info> <MessagingBridge> <host> <server> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1316515696279> <BEA-200033> <Bridge "NameOfBridge" is obtaining connections to the two adapters.> 
####<2011-sep-20 kl 12:48 CEST> <Info> <Common> <host> <server> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1316515696284> <BEA-000628> <Created "1" resources for pool "eis/jms/WLSConnectionFactoryJNDIXA", out of which "1" are available and "0" are unavailable.> 
####<2011-sep-20 kl 12:48 CEST> <Info> <Common> <host> <server> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1316515696340> <BEA-000628> <Created "1" resources for pool "eis/jms/WLSConnectionFactoryJNDIXA", out of which "1" are available and "0" are unavailable.> 
####<2011-sep-20 kl 12:48 CEST> <Info> <MessagingBridge> <host> <server> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1316515696340> <BEA-200032> <Bridge "NameOfBridge" is configured to disallow degradation of its quality of service in cases where the configured quality of service is unreachable.> 
####<2011-sep-20 kl 12:48 CEST> <Info> <MessagingBridge> <host> <server> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1316515696340> <BEA-200030> <Bridge "NameOfBridge" is configured to work in "Exactly-once" mode, and it is actually working in "Exactly-once" mode.> 

通過配置細算,這似乎與唯一的編號爲「事務超時」被設置爲30。這意味着網橋直接打開一個事務,然後失敗(因爲我配置了錯誤的東西,或者只是因爲沒有任何反應),然後關閉事務/網橋並重新啓動它。我不會期待這種行爲,但也許這是它的工作原理?

我正在使用WLS 10.3.0.0。

更新:從​​3210相關配置:

<messaging-bridge> 
    <name>NameOfBridge</name> 
    <target>servercluster</target> 
    <source-destination>NameOfBridgeLocalDest</source-destination> 
    <target-destination>NameOfBridgeRemoteDest</target-destination> 
    <selector></selector> 
    <quality-of-service>Exactly-once</quality-of-service> 
    <started>true</started> 
</messaging-bridge> 
<jms-bridge-destination> 
    <name>NameOfBridgeLocalDest</name> 
    <adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDIXA</adapter-jndi-name> 
    <classpath></classpath> 
    <connection-factory-jndi-name>JmsXA</connection-factory-jndi-name> 
    <initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory> 
    <connection-url></connection-url> 
    <destination-jndi-name>queue/NameOfQueue</destination-jndi-name> 
    <destination-type>Queue</destination-type> 
</jms-bridge-destination> 
<jms-bridge-destination> 
    <name>NameOfBridgeRemoteDest</name> 
    <adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDIXA</adapter-jndi-name> 
    <classpath></classpath> 
    <connection-factory-jndi-name>ConnectionFactory</connection-factory-jndi-name> 
    <initial-context-factory>org.jnp.interfaces.NamingContextFactory</initial-context-factory> 
    <connection-url>jnp://server:port</connection-url> 
    <destination-jndi-name>queue/NameOfQueue</destination-jndi-name> 
    <destination-type>Queue</destination-type> 
</jms-bridge-destination> 
+1

你可以發佈定義的'MessagingBridge'從配置? – JoseK

回答

2

As per this Oracle support document(需要Oracle帳戶),這是異步JMS橋樑的正常行爲。

文檔中的問題被描述爲:

與WebLogic Server 9.2和更高版本;在配置了JMS並設置了JMS消息傳遞橋的域中,記錄JMS消息橋顯示每隔30秒斷開連接並重新連接到源目標。

從Oracle的角度來看,這是正常的,預期的行爲:當有源目的地沒有消息

這是一種輪詢機制,通常發生,而當消息傳遞橋處於空閒狀態。

由於這是異步網橋的預期,停止它的方式是禁用JMS消息傳遞橋的「異步模式啓用」選項,這將停止輪詢。

+0

我的原始答案已被版主刪除,因此我無法要求在編輯後將其刪除。我已經重寫了我的答案,以更好地回答這個問題。 – Mike

相關問題