OSBも実行している多数のweblogicノードで複製されたキャッシュを実行しています。キャッシュは、サーバーをスタートアップクラスとして開始します。オブジェクトの非常に単純なキャッシュがあり、ブール属性「使用可能」でオブジェクトが使用されているかどうかを追跡するだけです。
OSBから、同じクラスにJavaコールアウトを作成しています。このクラスは、オブジェクトを使用不可としてマークし、Thread.sleep(31000)を実行するプロセッサを使用して、キャッシュで「invoke」を呼び出します。これは、後で追加したいいくつかの長い処理のプレースホルダーです。
私がしたいのは、invoke()呼び出しに時間がかかりすぎる場合、プロセスがタイムアウトして、例外を返すかスローする必要があるということです。そのため、これをテストするために30000ミリ秒の要求タイムアウトを構成しようとしています。残念ながら、このタイムアウトを発生させる方法がわかりません。
私が試してみました:
プロセッサをPriorityProcessorでラップし、invoke()の前にsetRequestTimeout(30000)を呼び出します
キャッシュ構成の>要素に
<request-timeout
>30000</request-timeout
>を追加する<replicated-scheme/
キャッシュ構成の>要素に
<tasktimeout
>30000</tasktimeout
>を追加する<replicated-scheme/
キャッシュ構成の>要素に
<guardian-timeout
>30000</guardian-timeout
>を追加する<replicated-scheme/
tangosol-coherence-override.xmlを作成し、「type」がキャッシュ構成のサービス「name」と一致
<init-param
する>要素にguardian-timeout>を追加します。<service
sleep()呼び出しをThread.sleep(310000)に変更して、すぐに使用できるデフォルトが5分後に起動するかどうかを確認します。
これらのいずれもタイムアウトにはなりません。プロセッサは、私が指示した時間だけスリープし、エラーなしで戻ります。
誰かが以前に似たようなことをしたことがあり、私にアドバイスを与えることができますか?よろしくお願いします。
ありがとう
ジェームズ