Weblogic 12.2.1のJavaEE 7アプリケーションでDrools 6.3.0Finalを使用しています。 アプリケーションが最初にデプロイされると、Xが1から8までの8つのスレッド(drools-worker-X)が表示されます(HTのある4コアCPU上)。 アプリケーションを再デプロイすると、8つのスレッドが状態 "Park"に残り、8つの新しいスレッドが作成されます(再び1から8まで番号が付けられます)。これはすべての再デプロイ時に引き続き実行されます。Java EE 7アプリケーションでThreadPoolExecutorを使用するDroolsは、再デプロイ時に問題を引き起こします
パッケージorg.drools.core.concurrentのクラスExecutorProviderImplがcorePoolSizeとmaxPoolSizeの両方をCPUコアの数に設定し、タイムアウトを60に設定して、新しいThreadPoolExecutorを作成しました。 JVMが遅くなり、アプリケーションが正しく実行されなくなったため、一定の回数だけ再デプロイしました。
アプリケーションがシャットダウンしたときにこれらのワーカースレッドを適切にシャットダウンする方法はありますか?
質問のタイトルを変更すると、尋ねていることを伝えることができます。私はEEやdroolsを知らないので推測できますが、私は "droolsアプリケーションをどのように再デプロイするか"、 "ExecutorProviderImplを安全にアプリケーションを使用する方法"などと考えています。 " " –
ThreadPoolExecutorを入手した場合、この方法でシャットダウンすることができます:http://stackoverflow.com/questions/36644043/how-to-forcefully-shutdown-java-executorservice/36644320#36644320 –
Droolsは私たち自身ではなく第三者であるためJava EE 7環境でソフトウェアを安全に使用できるかどうかについては、Droolsの方が多くなっていましたが、これまでに経験したことはありません。 – phivo