這是什麼意思?Weblogic JMS異常055167「不能支持多個同步消息預取消費者」。
我繼承了一個失敗的集成測試的複雜Java庫。這個庫使用了一個通用的發佈/訂閱範例,但是當涉及到這些Weblogic/JMS/Spring的東西時,我必須承認我很缺乏經驗。測試應用程序在一臺服務器上運行,並通過JNI從C++調用Java,並通過fork(通過JNI/Java發佈)啓動子發佈器進程。主應用程序通過Spring進行配置,並與安裝在另一臺服務器上的Weblogic JMS進行通信(Weblogic JMS服務器由我們項目中的另一個組控制)。我設法打開了spring jms調試,這有點幫助。所以我的日誌文件被我展示的事件順序是這樣的:
(My App) Publishing...
org.springframework.jms.connection.CachingConnectionFactory Creating cached JMS MessageProducer for destination [MY-JMS-Module!DataTest2]: [email protected]
...
(My App) Publishing...
org.springframework.jms.connection.CachingConnectionFactory Found cached JMS MessageProducer for destination [MY-JMS-Module!DataTest2]: [email protected]
...
(My App) Publishing...
org.springframework.jms.connection.CachingConnectionFactory Found cached JMS MessageProducer for destination [MY-JMS-Module!DataTest2]: [email protected]
...
(My App) Subscribing to DataTest2
org.springframework.jndi.JndiTemplate Looking up JNDI object with name [DataTest2]
(My App) Launching publisher process...
org.springframework.jms.support.destination.JndiDestinationResolver Located object with JNDI name [DataTest2]
org.springframework.jms.connection.CachingConnectionFactory Creating cached JMS MessageConsumer for destination [MY-JMS-Module!DataTest2]: [email protected]
(My App) Publishing....
org.springframework.jms.connection.CachingConnectionFactory Creating cached JMS MessageProducer for destination [MY-JMS-Module!DataTest2]
...
WARN 2011-11-14 22:01:00,421 org.springframework.jms.listener.DefaultMessageListenerContainer Setup of JMS message listener invoker failed for destination 'DataTest2' - trying to recover. Cause: [JMSClientExceptions:055167]Single session cannot support more than one synchronous message-prefetching consumer.
java.lang.UnsupportedOperationException: [JMSClientExceptions:055167]Single session cannot support more than one synchronous message-prefetching consumer.
at weblogic.jms.client.JMSConsumer.receiveInternal(JMSConsumer.java:587)
at weblogic.jms.client.JMSConsumer.receive(JMSConsumer.java:526)
at weblogic.jms.client.WLConsumerImpl.receive(WLConsumerImpl.java:184)
at org.springframework.jms.connection.CachedMessageConsumer.receive(CachedMessageConsumer.java:74)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveMessage(AbstractPollingMessageListenerContainer.java:429)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:310)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
at java.lang.Thread.run(Thread.java:636)
我當然希望我有訪問WebLogic JMS源代碼一下吧向下運行該異常。任何幫助或建議,將不勝感激。就像我說的那樣,代碼有點複雜,所以我不確定我能否提供比上面截斷的日誌更多的信息,而不會將它變成小說。
我做找到BEA錯誤描述。奇怪的是,我一直在查看這個測試代碼,並且沒有發現多個消費者,無論如何都是相同的目的地名稱。當然,我假設異常不會說謊,所以必須在代碼中隱藏另一個代碼。 –