Web ロジック環境で実行されている commonJ ワーク マネージャーを使用しています。
私のセットアップは次のとおりです。
私の春のアプリケーションコンテキスト
<bean id="workManagerTaskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor"> <property name="workManagerName" value="java:comp/env/wm/UVWorkManager" /> </bean>
WEB-INF の私の web.xml ファイル
<resource-ref> <res-ref-name>wm/UVWorkManager</res-ref-name> <res-type>commonj.work.WorkManager</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
および WEB-INF の weblogic.xml ファイル
<work-manager>
<name>wm/UVWorkManager</name>
<min-threads-constraint>
<name>min threads</name>
<count>30</count>
</min-threads-constraint>
<max-threads-constraint>
<name>max threads</name>
<count>200</count>
</max-threads-constraint>
<capacity>
<name>max capacity</name>
<count>20</count>
</capacity>
<work-manager-shutdown-trigger>
<max-stuck-thread-time>600</max-stuck-thread-time>
<stuck-thread-count>100</stuck-thread-count>
</work-manager-shutdown-trigger>
</work-manager>
しばらくして SOAP-UI からサービスを呼び出します。次のエラーが表示されます
commonj.work.WorkException: commonj.work.WorkRejectedException: [WorkManager:002912]OverloadManager max capacity rejected request as current length 20 exceeds max capacity of 20
最大値が設定されているため拒否されることはわかっていますが、それらのスレッドを再利用しないのはなぜですか? 15 分待っても、新しいリクエストを送信できません。サービスを再起動する必要があります。