問題タブ [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.
java - Weblogic ワーク マネージャが作業を拒否するのはなぜですか
Web ロジック環境で実行されている commonJ ワーク マネージャーを使用しています。
私のセットアップは次のとおりです。
私の春のアプリケーションコンテキスト
WEB-INF の私の web.xml ファイル
および WEB-INF の weblogic.xml ファイル
しばらくして SOAP-UI からサービスを呼び出します。次のエラーが表示されます
最大値が設定されているため拒否されることはわかっていますが、それらのスレッドを再利用しないのはなぜですか? 15 分待っても、新しいリクエストを送信できません。サービスを再起動する必要があります。
spring - Springs WorkManagerTaskExecutor 用の Websphere 8 で JCA Workmanager を取得する方法
Websphere 8 アプリケーション サーバーを使用しており、Web アプリケーションでサーバー ワークマネージャーを使用したいと考えています。javax.resource.spi.work.Workmanager
Springs で使用するjca workmanager への参照を取得しようとしていますorg.springframework.jca.work.WorkManagerTaskExecutor
。
web.xml の resource-ref は次のようになります。
その構成を使用すると、次の例外が発生します。
ここでは、リソース参照のタイプがcom.ibm.websphere.asynchbeans.WorkManager
orでなければならないと言っていますcommonj.work.WorkManager
。どちらも JCA-Workmanager-Interface から拡張されていません。
commonj.work.WorkManager
リソース タイプをSpringsに切り替えorg.springframework.scheduling.commonj.WorkManagerTaskExecutor
てアプリケーションで使用すると、すべて正常に動作します。
JCA Workmanager を Websphere で動作させるには、サーバー側で何か特別な構成を行う必要がありますか? 実装を切り替えるための設定が管理コンソールに見つかりませんでした。Websphere 8 は Java EE 6 をサポートしているため、JCA を処理できるはずです。
spring-integration - ExecutorChannel スレッド全体で共通のタイムアウト
私たちのアプリケーション統合フローは、スプリッター -> ws ゲートウェイ -> アグリゲーターとして定義されています。スプリッターはリクエストをアカウント番号のリストに分割します。アカウント番号ごとに Web サービス呼び出しが開始され、複数の Web サービス呼び出しからの応答がアグリゲーターに集約されます。異なるスレッド。
各 Web サービス呼び出しにタイムアウトを追加しました。しかし、プロセス全体に対して単一のタイムアウトを設定したいと考えています。つまり、すべての Web サービス呼び出しは、個々の呼び出しごとに 50 秒のタイムアウトを設定するのではなく、たとえば 50 秒で完了する必要があります。commonj WorkManagerTaskExecutor は、コードを介して直接実装された場合、waitForAll(Collection workItems, long timeout_ms) メソッドによってこの機能を提供します。この機能または同様の機能を使用して要件を達成する方法はありますか?
java - WorkEventを例外で完了するときにメインスレッドに通知する方法は?
私はIBM WorkManager (v8.0.0)を使用して、メイン スレッドとは非同期の作業を行っています。
このために、次のコードを使用します。
WorkEvent
が例外なく完了している限り、これは非常にうまく機能します。しかし、それが例外で完了したとき、メインスレッドに通知して、それ以上の WorkItems をWorkManager
.
を発生させてメインスレッドに通知できると思っていRunetimeException
ましたが、ログを分析したところ、その瞬間に例外がスローされ、メインスレッドがすべてWorkItems
を に送信し、メソッドのWorkManager
呼び出しを終了したことがわかりましjoin
たWorkManager
。これでは遅すぎます (ほとんどの場合、 50.000 項目がWorkManager
) によって実行される必要があります。
WorkManager
では、で例外が認識されたときに、メインスレッドを中断して、 にさらにアイテムを送信するのを止めるにはどうすればよいworkCompleted
でしょうか?