Почему мой мост сообщений JMS в WLS останавливается/запускается каждые 30 секунд

У меня проблема, из-за которой мой мост сообщений JMS останавливается и перезапускается WLS каждые тридцать секунд.

Насколько я могу судить, мост на самом деле работает правильно, и консоль WLS сообщает об этом как «Активно, пересылка сообщений». Обе очереди на концах моста, насколько мне известно, работают нормально.

Сообщения, которые появляются в моем журнале WLS каждые 30 секунд, выглядят следующим образом. Эти шесть рядов повторяются каждый раз.

####<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.

Обновление: Соответствующая конфигурация от 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>

person henko    schedule 20.09.2011    source источник
comment
Можете ли вы опубликовать определенный MessagingBridge из конфигурации?   -  person JoseK    schedule 22.09.2011


Ответы (1)


Согласно этому документу поддержки Oracle (требуется учетная запись Oracle), это нормально поведение для асинхронных мостов JMS.

Проблема в документе описана так:

С WebLogic Server 9.2 и более поздних версий; в домене с настроенным JMS и настроенным JMS Messaging Bridge журнал для JMS Message Bridge показывает отключение и повторное подключение к исходному пункту назначения каждые 30 секунд.

С точки зрения Oracle это нормальное ожидаемое поведение:

Это своего рода механизм опроса, который обычно происходит, когда в исходном пункте назначения нет сообщений и когда Message Bridge находится в состоянии ожидания.

Поскольку это ожидается с асинхронными мостами, способ предотвратить это — отключить параметр «Асинхронный режим включен» для моста обмена сообщениями JMS, что остановит его опрос.

person Mike    schedule 03.08.2013
comment
Мой первоначальный ответ был удален модератором, поэтому я не мог запросить его восстановление после редактирования. Я переписал свой ответ, чтобы лучше ответить на вопрос. - person Mike; 03.08.2013