Camel を WebSphere に統合しようとしています。1 つを除いて、正常に動作しています。
シナリオは次のようになります: JMS (WMQ) -> ルーティング/変換 -> BEAN (JPA (OpenJPA1.2/DB2) コミットを行います)。
WAS トランザクション マネージャーとマンガ化されたスレッドにプラグインできるようにするために、work manager を taskExecutor として camel に挿入しています。
<!-- Selected parts of the spring config -->
<tx:jta-transaction-manager/>
<bean id="wasTaskExecutor"
class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
<property name="workManagerName" value="wm/default" />
</bean>
<bean id="camelTransactionRequired" class="org.apache.camel.spring.spi.SpringTransactionPolicy" depends-on="transactionManager">
<property name="transactionManager" ref="transactionManager"/>
<property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
</bean>
<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="taskExecutor" ref="wasTaskExecutor"/>
<property name="transacted" value="true"/>
<property name="transactionManager" ref="transactionManager"/>
</bean>
次に、次のようなルートです。
from("jms:queue:MY.QUEUE")
.transacted("camelTransactionRequired")
.log(..)
.bean(storeJPA);
この wasTaskExecutor Bean は、アプリケーション内の 1 つのスタンドアロン Spring メッセージ リスナー (同じ jms プロバイダー、WMQ) で使用され、予想される動作も備えています。
展開/開始すると、1 つのメッセージをこの方法で処理できます (以下の最初のログ行)。その後、スレッドがハングし始めます。
[5/12/12 22:14:55:890 CEST] 00000055 SystemOut O INFO routeFromBackend - キューからメッセージ ボックスにプルされたメッセージ
[5/12/12 22:27:00:638 CEST] 00000031 ThreadMonitor W WSVR0605W: スレッド "デフォルト: 1" (0000001e) が 739306 ミリ秒間アクティブであり、ハングしている可能性があります。サーバーには、ハングしている可能性のあるスレッドが合計 1 つあります。java.lang.Object.wait(Native Method) で java.lang.Object.wait(Object.java:196) で com.ibm.ws.util.BoundedBuffer.waitPut_(BoundedBuffer.java:214) で com.ibm com.ibm.ws.util.ThreadPool.execute(ThreadPool.java:1296) の .ws.util.BoundedBuffer.put(BoundedBuffer.java:324) com.ibm.ws.util.ThreadPool.execute(ThreadPool.java) の:1100) com.ibm.ws.asynchbeans.WorkItemImpl$PoolExecuteProxy.run(WorkItemImpl.java:198) com.ibm.ws.asynchbeans.WorkItemImpl.executeOnPool(WorkItemImpl.java:219) com.ibm.ws. asynchbeans.WorkManagerImpl.queueWorkItemForDispatch(WorkManagerImpl.java:433) com.
誰もこれを見たことがありますか?