問題タブ [commonj]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - GlassFishおよびSpring3でのCommonJ実装の使用
Websphere7環境とGlassFish3環境の間でデプロイメントを統合するために、GlassFishにCommonJWorkManagerとTimerManagerを実装してみることにしました。しかし、期待どおりに機能していません。私は次のことをしました:
http://commonj.myfoo.de/にあるmyFOOCommonJ実装を使用し、ライブラリをmy domain / libフォルダー(Springライブラリを含む)に含めます。
<resources>
glassfishdomain.xmlのセクションに以下を追加しました。
domain.xmlの<servers>
/セクションに参照を含めます。<server>
テストアプリケーションのweb.xmlに適切なリソース参照を追加します。
次のBeanをapplicationContext.xmlに追加します。
このセットアップがすべて完了すると、すべてのロードが検出され、Webアプリケーションが実行されます。ただし、ThreadTesterクラスはTimerでは実行されません。
myFOOコードをステップ実行し、TimerManager(FooTimerManager.java)のメインループが実行されていますが、30秒ごとにクラスを起動することになっていることを認識していないようです。
私の質問:
GlassFish3とSpringでJSR236/237(CommonJ)を実装した経験のある人はいますか?
myFOO以外に、使用して試すことができる別の実装はありますか?誰かが私がやったことをやろうとしたことがありますか?成功した場合、結果を共有してもよろしいですか?
ありがとう!
編集1:
GlassFishでmyFOOCommonJ実装を使用すると、WorkManagerに関する限り機能することを忘れました。動作しないのはTimerManagerです。これは、オンデマンドでスレッドを正常に起動できますが、トリガーされたスケジューリングが機能しないことを意味します。
編集2:
GlassFish 3.1.1にアップデートしてから、TimerManagerのmyFOOCommonJ実装は正常に機能しています。とても素晴らしい!この質問は、HOWTOガイドのようなものになりました。
multithreading - Weblogic Server でスタックしたスレッドを無視する方法
以下のコードは、Weblogic Application Server 10.3.2 で動作します。timerExpired で実行される長時間実行タスクは、サーバー全体の StuckThreadMaxTime の 600 秒よりも長くかかります。この値を変更したくはありませんが、この特定の処理スレッドのスタック スレッド タイムアウトを無視するだけです。
これは、次のcommonj WorkManager を使用してどのように達成できるかがわかります。
次に、weblogic.xml ファイルの work-manager タグに次を追加します。
<ignore-stuck-threads>true</ignore-stuck-threads>
しかし、Timer/TimerManager に対して同じことを行うにはどうすればよいでしょうか。
web.xml
TestTimer.java:
websphere - 「AsynchBeans サービスが初期化されていません」エラーが WebSphere 7 WorkManager をルックアップしようとしている
WebSphereで管理されていないスレッドを回避するために、CommonJWorkManagerTaskExecutor
をQuartzのタスクエグゼキューターとして使用しようとしています(ここで説明されています-「CommonJを使用したQuartz」セクションまでスクロールします)。残念ながら、デフォルトの WebSphere も、私が作成したものも検索できないようです。CommonJ の Spring Bean :SchedulerFactoryBean
WorkManager
WorkManager
ServiceNotInitializedException: AsynchBeans Service not initialized
エラーとスタック トレースが表示されます。
これを解決するために私ができることはありますか?ありがとう!
java - アプリケーションが Websphere で停止された後もスレッドが実行され続ける
org.springframework.scheduling.commonj.WorkManagerTaskExecutor
Spring を使用して作成され、Websphere Application Server 8 で実行されている実行時間の長いスレッドがあります。
問題は、アプリケーションが停止されても、このスレッドが実行され続けることです。そのスレッドも停止する必要がありますが、それは起こっていません。Thread.currentThread().isInterrupted()
現在のスレッドが中断されたかどうかを確認するために使用しようとしまし たが、常に返されますfalse
。そのため、スレッドを実行し続けるか停止するかをコードから知る方法はありません。
これは、WorkManagerTaskExecutor の私の春の構成です。
スレッドは次のように実行されています。
- 私は何が欠けていますか?
- アプリケーションが停止するたびにアプリケーションのスレッド (アプリケーションによって生成されたスレッド) も停止するようにするにはどうすればよいですか?
コンテナーが JNDI によってリソースとして公開する適切なWorkManagerを使用してスレッドを登録しているため、これはアンマネージド スレッドとは見なされないと思います。
更新: スレッドを作成するコードは次のとおりです。
websphere - asyncHttpClientをcommonjworkmanagerと統合する方法は?
エンドユーザーからの単一のリクエストが他のリモートシステムへの1つ以上のhttpリクエストをトリガーするというユースケースがあります。リモートシステムからのすべての応答は、エンドユーザーへの単一の応答に集約されます。これは、Websphereでcommonjworkmanagerを使用することで実現しました。
ここで、複数の同時http呼び出しを処理するスレッドを少なくするために、asyncHttpClientを使用します。
だから私の質問は:
asyncHttpClientをcommonjworkmanagerと統合する方法は?スレッドプールとしてcommonjを使用する必要があります。これは、wehsphereでスレッドを管理する唯一の方法だからです。
お知らせ下さい。
multithreading - Need sample code explaning Workmanager in Tomcat
I want to know how to use WorkManager in Tomcat 7. I came across the open source library Foo-CommonJ but nowhere i found a sample code explaning the usage. The input parameter for FooWorkManager's constructor is an instance of commonj.work.work class, where as no one provides the commonj.work.work class (neither tomcat nor foo-commonj). Basically i need a sample code explaining usage of WorkManager (FooCommonj jar) in tomcat. And if Foo-Commonj doesn't support workmanager properly, then some alternative.