我遇到了一个问题,我的JMS消息桥似乎每30秒由WLS停止并重新启动。
据我所知,桥实际上工作正常,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.> 在查看了配置之后,唯一与此相关的数字是“事务超时”(Transaction),它被设置为30。这意味着桥直接打开一个事务,然后失败(或者因为我配置错了什么,或者仅仅因为什么都没有发生),然后关闭事务/桥并重新启动它。我不希望这种行为,但也许这就是它的工作方式?
我用的是10.3.0.0。
更新:来自config.xml的相关配置
<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>发布于 2013-08-03 17:39:11
根据这个Oracle支持文档 (需要Oracle ),这是异步JMS桥的正常行为。
该文件中的问题被描述为:
使用JMSServer9.2及更高版本;在配置了WebLogic并设置了的域中,的日志记录显示每30秒断开和重新连接到源目的地。
从Oracle的角度来看,这是正常的、预期的行为:
这是一种轮询机制,通常发生在源目的地中没有消息以及Message处于空闲状态时。
由于异步桥接器预期会出现这种情况,因此阻止这种情况的方法是禁用JMS消息桥的“异步模式启用”选项,该选项将停止其轮询。
https://stackoverflow.com/questions/7484090
复制相似问题