0

spring-ws コンポーネントで Apache Camel 2.10.0 を使用して、いくつかの (20 以上の) WS/SOAP 操作をルーティングします。サンプル コードは次のようになります。

from("spring-ws:rootqname:{http://my/name/space}myOperation1?endpointMapping=#endpointMapping")
from("spring-ws:rootqname:{http://my/name/space}myOperation2?endpointMapping=#endpointMapping")
from("spring-ws:rootqname:{http://my/name/space}myOperation3?endpointMapping=#endpointMapping")

操作は通常、複数の DB にアクセスし、最大数秒続く可能性があります

完全に機能しますが、新しい要件があります。3 つの操作を同期する必要があります。

たとえば、client2 が operation1 を呼び出す 1 ミリ秒前に client1 が operation1 を呼び出した場合、client1 の呼び出しは client2 の呼び出しを開始する前に終了する必要があります。

2 つの異なる操作を呼び出す 1 つのクライアントに対しても同じことが有効です。

例: client1 が operation2 を呼び出す 1 ミリ秒前に operation1 を呼び出した場合、operation1 の呼び出しは operation2 の呼び出しを開始する前に終了する必要があります。クライアントは WS を非同期的に呼び出し、これは変更できません

アプリケーションは WebLogic 10.3.5 で実行されています。

コンテナー スレッドを 1 つだけに減らすとすべての操作に影響するため、これら 3 つの操作のみにカスタム キュー (JMS スタイル) を追加することを考えていました。

もっと良いアイデアはありますか?

4

2 に答える 2

0

すべての呼び出しが最初にキューに入れられるように見えます。次に、どれを呼び出すかを決定できます。

于 2013-11-13T09:10:45.570 に答える