設定¶
保存場所¶
非同期処理機能で使用するデータはシステムデータベースの以下のテーブルに保存されます。
この内容は、たとえintra-mart Accel Platformが稼働していない状態であっても編集しないようにしてください。
危険
intra-mart Accel Platform停止中にシステムデータベースの非同期処理機能で使用するデータを削除した場合、登録されたタスクが実行されなくなってしまいます。
実行エンジン(共通)¶
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参照名で参照できるようにしてください。