設定¶
保存場所¶
非同期処理機能で使用するデータはシステムストレージサービス内の指定された場所に保存されます。
この内容は、たとえintra-mart Accel Platformが稼働していない状態であっても編集しないようにしてください。
危険
intra-mart Accel Platform停止中にシステムストレージサービス内の非同期処理機能で使用するディレクトリを削除すれば初期化されますが、コンテキストの情報が残ってしまいます。
task-queue-storage-config.xml¶
task-queue-storage-config
root-directory-name
非同期処理機能で使用する各種保存先です。
<System Storage> のルートからの相対パスで指定します。
parallelized-task-queue-info
root-directory-name
並列処理機能で使用する各種保存先です。
<task-queue-storage-config>/ <root-directory-name> からの相対パスで指定します。
queue-file-name
並列処理機能の 並列タスクキューの情報を保存するファイル名です。
<task-queue-storage-config>/ <parallelized-task-queue-info>/ <root-directory-name> からの相対パスで指定します。
processing-task-file-name
並列処理機能において処理実行中の タスクの情報を保存するファイル名です。
<task-queue-storage-config>/ <parallelized-task-queue-info>/ <root-directory-name> からの相対パスで指定します。
serialized-task-queue-info
root-directory-name
直列処理機能で使用する各種保存先です。
<task-queue-storage-config>/ <root-directory-name> からの相対パスで指定します。
queue-directory-name
直列処理機能の 直列タスクキューの情報の保存先となるディレクトリ名です。
<task-queue-storage-config>/ <serialized-task-queue-info>/ <root-directory-name> からの相対パスで指定します。
processing-task-directory-name
直列処理機能において処理実行中の タスクの情報の保存先となるディレクトリ名です。
<task-queue-storage-config>/ <serialized-task-queue-info>/ <root-directory-name> からの相対パスで指定します。
実行エンジン(共通)¶
task-runner-config.xml¶
task-runner-config
max-threads
同時実行可能なタスクの数を指定します。
round-interval
タスクキュー管理サービスに対して実行可能なタスクメッセージを問い合わせる間隔を秒単位で指定します。
実行エンジン(実装依存)¶
Resin¶
Resinでは非同期処理のタスク実行エンジンとしてJCA(Java EE Connector Architecture)を利用しています。
task-executor-jca-config.xml¶
task-executor-jca-config
work-manager-resource-info
jndi-name
タスク実行エンジンで利用するリソースアダプタのJNDI参照名を指定します。
resin-web.xml¶
<web-app>/ <resource> に以下の内容を指定します。
<web-app xmlns="http://caucho.com/ns/resin">
<resource jndi-name="jca/work"
type="jp.co.intra_mart.system.asynchronous.impl.executor.work.
resin.ResinResourceAdapter" /> <!-- 実際には1行 -->
</web-app>
jndi-name
task-executor-jca-config.xmlで指定したjndi-nameと同一にします。
type
jp.co.intra_mart.system.asynchronous.impl.executor.work.resin. ResinResourceAdapter固定です。
Commonj (Weblogic)¶
Weblogicでは非同期処理のタスク実行エンジンとしてCommonjを利用しています。
非同期処理機能ではJNDIを通じてCommonjのWorkManagerを取得しています。
非同期処理機能ではタスクだけではなくタスク実行エンジンもWorkManager上で動作しますので、 WorkManagerで同時に実行可能な最大スレッド数は、最低でもtask-runner-config.xmlの<max-threads>で設定した値+ 1にしてください。
task-executor-commonj-config.xml¶
以下の値を設定してください。
task-executor-commonj-config
work-manager-info
jndi-name
CommonjのWorkManagerを参照するJNDI名。web.xmlにもこれに準じたリソース参照名を設定する必要があります。
web.xmlの例¶
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="false">
<resource-ref>
<res-ref-name>wm/WorkManager</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-app>
<web-app>/ <resource-ref>/ <res-ref-name> にはtask-executor-commonj-config.xmlの<jndi-name>で設定したものと同じ値を設定してください。
WorkManagerの設定¶
コラム
Weblogic上でWorkManagerを設定する場合の詳細については、Weblogicに関連するマニュアル等を御覧ください。
ここではweblogic.xmlでWorkManagerを設定する例を説明します。
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
<work-manager>
<name>wm/WorkManager</name>
<min-threads-constraint>
<name>MinThreadsCountFour</name>
<count>4</count>
</min-threads-constraint>
<ignore-stuck-threads>true</ignore-stuck-threads>
</work-manager>
</weblogic-web-app>
- <weblogic-web-app>/ <work-manager>/ <name>にはtask-executor-commonj-config.xmlの<jndi-name>で設定したものと同じ値を設定してください。
- <weblogic-web-app>/ <work-manager>/ <min-threads-constraint>/ <count>には最低でも task-runner-config.xmlの<max-threads>で設定した値+ 1を設定ください。
Commonj (WebSphere)¶
Weblogicでは非同期処理のタスク実行エンジンとしてCommonjを利用しています。
非同期処理機能ではJNDIを通じてCommonjのWorkManagerを取得しています。
非同期処理機能ではタスクだけではなくタスク実行エンジンもWorkManager上で動作しますので、 WorkManagerで同時に実行可能な最大スレッド数は、最低でもtask-runner-config.xmlの<max-threads>で設定した値+ 1にしてください。
task-executor-commonj-config.xml¶
以下の値を設定してください。
task-executor-commonj-config
work-manager-info
jndi-name
CommonjのWorkManagerを参照するJNDI名。web.xmlにもこれに準じたリソース参照名を設定する必要があります。
web.xmlの例¶
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="false">
<resource-ref>
<res-ref-name>wm/WorkManager</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-app>
<web-app> <resource-ref> <res-ref-name>にはtask-executor-commonj-config.xmlの<jndi-name>で設定したものと同じ値を設定してください。
WorkManagerの設定¶
コラム
WebSphere上でWorkManagerを設定する場合の詳細については、WebSphereに関連するマニュアル等を御覧ください。
コンソール画面から[リソース]-[非同期 Bean]-[作業マネージャー]でWorkManagerを設定することが可能です。
デプロイ時には、ここで設定したWorkManagerをtask-executor-commonj-config.xmlで設定したJNDI参照名で参照できるようにしてください。