ユーザー・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

Tuxedo Job Enqueueing Service (TuxJES)の使用

この章には次のトピックが含まれます:

 


概要

バッチ・ジョブ・システムは、重要なメインフレーム・ビジネス・アプリケーション・モデルです。Tuxedo Job Enqueueing Service (TuxJES)エミュレーション・アプリケーションを使用すると、メインフレーム・アプリケーションをオープン・システムへ円滑に移行できます。TuxJESは、メインフレームJES2関数のサブセットを実装しています(ジョブの送信、ジョブの表示、ジョブの保留、ジョブの解放、ジョブの取消しなど)。

TuxJESは、次のバッチ・ジョブ・フェーズに対処しています。

要件

TuxJESはOracle Tuxedoアプリケーションであり、TuxJESを実行するためにはOracle Tuxedoが必要です。

分散環境でTuxJESをデプロイするためには、共有ファイル・システム(NFSなど)が必要です。

TuxJESコンポーネント

TuxJESには、次の主要なコンポーネントが含まれます。

 


TuxJESシステムの構成

Oracle TuxedoアプリケーションとしてのTuxJESの設定

TuxJESは、Oracle Tuxedoアプリケーションです。大部分のTuxJESコンポーネントは、Oracle TuxedoクライアントまたはOracle Tuxedoサーバーです。まずTuxJESをOracle Tuxedoアプリケーションとして構成する必要があります。TuxJESがインストールされたディレクトリを参照する環境変数JESDIRが、正しく構成される必要があります。

Oracle Tuxedo構成ファイル

リスト1に、TuxJESシステムのためのOracle Tuxedo構成ファイル(UBBCONFIG)例の一部を示します。

リスト1 TuxJESシステムのためのOracle Tuxedo UBBCONFIGファイルの例
*GROUPS
QG
                LMID=L1 GRPNO=2 TMSNAME=TMS_QM TMSCOUNT=2
                OPENINFO="TUXEDO/QM:/jes2queue/QUE:JES2QSPACE"
ARTG
                LMID=L1 GRPNO=4
EVTG
                LMID=L1 GRPNO=8
*SERVERS
DEFAULT:
                CLOPT="-A"
TMUSREVT        SRVGRP=EVTG SRVID=1 CLOPT="-A"
TMQUEUE
                SRVGRP = QG  SRVID = 1
                RESTART = Y CONV = N MAXGEN=10
                CLOPT = "-s JES2QSPACE:TMQUEUE -- -t 5 "
ARTJESADM			SRVGRP =ARTG  SRVID = 1 MIN=1 MAX=1
                CLOPT = "-A -- -i jesconfig"
ARTJESCONV			SRVGRP =ARTG  SRVID = 20 MIN=1 MAX=1
                CLOPT = "-A --"
ARTJESINITIATOR			SRVGRP =ARTG  SRVID = 30
                CLOPT = "-A -- -c ABCDEFG
ARTJESPURGE			SRVGRP =ARTG  SRVID = 100
                CLOPT = "-A --"

Oracle Tuxedo構成ファイル(UBBCONFIG)には、次のTuxJESサーバーが含まれている必要があります。

注意: ARTJESADMARTJESCNOVARTJESINITIATORおよびARTJESPURGEの複数のインスタンスを構成できます。

TuxJES管理サーバーARTJESADMの場合、-i オプションを使用してTuxJES構成ファイルを指定する必要があります。ARTJESADMは、Oracle Tuxedo構成ファイル(UBBCONFIG)で、ARTJESCONVARTJESINITIATORまたはARTJESPURGEの各サーバーより前に構成される必要があります。

詳細情報は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』を参照してください。

TuxJESはOracle Tuxedo /Qコンポーネントを使用するため、UBBCONFIGファイル内に、TMS_QMが構成されたOracle Tuxedoメッセージング・サーバーTMQUEUEを持つOracle Tuxedoグループが必要です。/Qキュー・スペースの名前は、JES2QSPACEと構成する必要があります。

TuxJESはOracle Tuxedo Eventコンポーネントを使用するため、Oracle Tuxedoユーザー・イベント・サーバーTMUSREVTが、UBBCONFIGファイルにある必要があります。

TuxJESシステムは、単一のマシン上で動作するOracle Tuxedo SHMアプリケーション、または複数のマシン上で動作するOracle Tuxedo MPアプリケーションのいずれかです。

Oracle Tuxedoアプリケーションを設定する方法に関する詳細な情報は、Oracle Tuxedo関連のドキュメントを参照してください。

TuxJES用のUBBCONFIG内のブロック・タイム

SCANUNITおよびBLOCKTIMEパラメータを設定することで、ブロッキング・メッセージ、トランザクションおよびその他のシステム・アクティビティのタイムアウト期間数を指定できます。割り当てる値は5の倍数の正数である必要があります。

表1 SCANUNITおよびBLOCKTIMEパラメータの特性
パラメータ
特性
SCANUNIT
チェック間隔とタイムアウトをきめ細かく制御します。SCANUNITは、0から60秒の間の2または5の倍数である必要があります。
例: SCANUNIT 20
デフォルトは10
BLOCKTIME
BLOCKTIMEは、メッセージがタイムアウトする前にブロックできる時間を制御します。
SCANUNIT * BLOCKTIMEが32767以下である必要があります。
デフォルトでは、SCANUNIT * BLOCKTIMEが約60秒になるように設定されます。

リスト2 設定例
*RESOURCES
IPCKEY         113333
DOMAINID       jesdomain
MASTER         SITE1
MODEL          SHM
MAXACCESSERS   200
MAXSERVERS     50
NOTIFY         SIGNAL
SCANUNIT       20 
BLOCKTIME      50

この例では、サニティ・スキャンは20秒ごとに実行され、リクエストが20 * 50 = 1000秒を超えてブロックされることはありません。

Oracle Tuxedo /Qキュー・スペースとキューの作成

1つのTuxJESシステムにつき、JES2QSPACEという名前を持つ/Qキュー・スペースが1つ作成される必要があります。また、このキュー・スペースの中に、いくつかの/Qキューが作成される必要があります。TuxJESには、キュー・スペース(JES2QSPACE)とキューを作成するサンプル・シェル・スクリプト(jesqinit)が用意されています。詳細情報は、『Oracle Tuxedo Application Runtime Batchリファレンス・ガイド』を参照してください。

ファイル・システム構成

TuxJESは、ファイル・システムを使用して、バッチ実行エンジンと通信します。TuxJESとバッチ実行エンジンの間の通信のために、ファイル・システム上にディレクトリが作成されます。ディレクトリの名前は、TuxJES構成ファイルで指定されている必要があります。複数のマシン上にTuxJESシステムをデプロイする場合、このディレクトリは共有ファイル・システム(たとえば、NFS)に存在する必要があります。

TuxJES構成ファイル

TuxJES管理サーバーARTJESADMに対して構成ファイルを指定できます。構成ファイルでは、次のパラメータを構成できます。

JESROOT

ジョブ情報を格納するルート・ディレクトリ。必須の属性です。このディレクトリが存在しない場合、ARTJESADMが自動的に作成します。

DEFAULTJOBCLASS

JCLでジョブ・クラスが設定されていない場合のデフォルト・ジョブ・クラス。オプションの属性です。この属性が設定されていない場合、デフォルト・ジョブ・クラスはAです。

DEFAULTJOBPRIORITY

JCLでジョブ優先度が設定されていない場合のデフォルトのジョブ優先度。オプションの属性です。この属性が設定されていない場合、デフォルトのジョブ優先度は0です。

DUPL_JOB=NODELAY

設定されていない場合、あるジョブ名に対して、1つのジョブだけが実行ステータスであることができます。NODELAYは、依存性チェックを削除します。デフォルト値は、遅延実行です。

NJESUPPORT=ON

設定されない場合、NJEサポートは無効となり、バッチ・ランタイムAPI m_JobSetExecLocationで指定されるサーバー・グループでジョブを実行できません。デフォルト値はOFFです。

EVENTPOST=S,C,E,P,L,A

個別のステージで、ジョブに対してイベントがポストされるかどうかを指定します。
S: ジョブ送信イベント。
C: ジョブ変換完了イベント。
E: ジョブ実行完了イベント。
P: ジョブ・パージ・イベント。
L: ジョブ取消し完了イベント。
A: サポートされているすべてのイベント
EVENTPOSTが指定されない場合、イベントはポストされません。イベントのポストでのデータ・バッファはFML32タイプで、フィールドはtuxjes/include/jesflds.hで定義されます。

JOBREPOSITORY

ジョブが格納されるジョブ・リポジトリのパス。設定された場合、ジョブ送信で入力されたスクリプト・ファイル・パスに、JOBREPOSITORY内の相対パスを使用できます。

PRIVILEGE_MODE

ユーザー代入を有効化するかどうか、およびその方法を指定します(「TuxJESユーザー代入」を参照してください)。値は次のとおりです。
NONE: デフォルト値。ジョブがJESシステムを起動するOSユーザーによって実行されることを示します。これは、JESシステム上のこれまでの実装すべてと互換性があります。
USER_IDENTICAL: ジョブが、JESシステムに参加するJESクライアントを使用してOracle Tuxedoユーザーによって実行されることを示します。この値を選択する前に、Oracle Tuxedoの各ユーザーが既存のOSユーザーに対応することを確認します。
USER_MAPPING: この値を指定すると、JESシステムはTuxJESユーザー・マッピング・ファイルを参照し、JESシステムに参加するJESクライアントを使用してOracle Tuxedoユーザーに対応するOSユーザーを検出して、このOSユーザーをジョブの実行者として指名します。

USER_MAPPING_FILE

TuxJESユーザー・マッピング・ファイルの保存場所のフルパス。PRIVILEGE_MODEとともに使用されます(その値がUSER_MAPPINGの場合)。

TuxJES セキュリティ構成

TuxJESでは、Oracle Tuxedoセキュリティ・メカニズムを活用して認証を実装します。認証が有効の場合、genapprofileユーティリティを使用してセキュリティ・プロファイルを生成し、それをartjesadminパラメータとして使用して、TuxJESシステムにアクセスしてください。プロファイルで使用されるユーザーは、ジョブ所有者です。ジョブを管理(取消し、パージ、保留および解放)できるのは、所有者だけです。ジョブは、誰でも表示できます。ジョブに所有者がない場合、誰でも操作できます。

Oracle Tuxedoアプリケーションはセキュリティが構成されていない場合でも、genjesprofileユーティリティを使用してジョブ所有者権限のチェックを強制し、データベース接続MT_DB_LOGINを格納できます。

TuxJESユーザー・マッピング・ファイル

PRIVILEGE_MODE値をMAPPING_CREDENTIALに指定する場合、ユーザー・マッピング・ファイルがロードされ有効になります。Oracle TuxedoユーザーとOSユーザーの間のマッピング関係を定義します。マッピング・ファイル内のすべての行は次のフォーマットになります。

tuxedousername OSusername

ユーザー・マッピング・ファイルの所有者はルート、ファイル権限は「-rw-------」にすることをお薦めします。

リスト3に、TuxJESシステム用ユーザー・マッピング・ファイルのセグメント例を示します。

リスト3 TuxJESシステム用ユーザー・マッピング・ファイル例
tuxedouser1 OSuser1
tuxedouser2 OSuser2

MPモードでのTuxJESの設定

TuxJESは、MPモード内で容易に構成できるようになりました。ただし、ジョブを実行するには、EJRとTuxJESの両方で、ジョブを異なるマシンで同時に実行できるように構成を調整する必要があります。この項では、MPモードでバッチ・ランタイムを構成するための必須の構成について具体的に説明します。

TuxJESドメインの異なるマシン上のすべてのサーバーで共有されるジョブのデータは、共有記憶域(NFS)に置いて、ドメイン内のすべてのマシンでアクセスできるようにする必要があります。さらに、NFSはすべてのマシンで同じマウント・ポイントでマウントする必要があります。最後に、JESROOTは、各ノードで共有JESルート・ディレクトリを指すように正しく構成する必要があります。実行時には、すべてのマシン上のTuxJESサーバーが、そのような共有JESROOTに対してデータの書込みや取得を行います。

MPモードでのEJRの構成の詳細は、「バッチ・ランタイムの使用」の「MPモードでのバッチ・ランタイムの構成」を参照してください。

 


TuxJESの使用

TuxJESシステムが起動したら、artjesadminユーティリティを使用して、ジョブの送信、保留、解放、取消し、パージ、ジョブ情報の表示、ジョブ・ステータス変更のためのイベントのサブスクライブを行うことができます。

ジョブの送信

artjesadminのサブコマンドsubmitjobを使用して、ジョブを送信することができます。

submitjob(smj) -i scriptfile

scriptfileパラメータは、送信されるジョブ・スクリプトです。ジョブ・スクリプトは、Oracle Tuxedo ART WorkbenchによってJCLから生成されます。絶対パス形式、現在の作業ディレクトリの相対パス、または、設定されている場合は、JOBREPOSITORYの相対パスを使用できます。その長さは1023に制限されています。artjesadminは、次の書式を使用する直接ジョブ送信もサポートします。
artjesadmin -i scriptfile

submitjob(smj) -I JCLFile

JCLFileパラメータは、送信されるJCLジョブ・スクリプトです。絶対パス形式、現在の作業ディレクトリの相対パス、または、設定されている場合は、JOBREPOSITORYの相対パスを使用できます。その長さは1023に制限されています。artjesadminは、次の書式を使用する直接ジョブ送信もサポートします。 artjesadmin -I JCLFile

ジョブの同期的送信

ジョブを同期的に送信するには、次の書式でartjesadminを使用します。

artjesadmin [-f [security_profile]] [-o ejr_option] [-s shell_option] [-y [-t timeout(s)]] -i/-I scriptfile

注意: ジョブを同期的に送信するには、TuxJES構成ファイル内にEVENTPOST=Aを設定し、UBBCONFIGファイル内でNOTIFYDIPINに設定して、サーバーTMUSREVTを設定する必要があります。

-y-t

説明

オプション-y-tは、ジョブを同期的に送信するために追加されたオプションです。表2に、詳細を示します。

表2 オプション-yと-tの説明
オプション
値の範囲
説明
メモ
-y
なし
ジョブが終了するまで待機する同期モードを有効にします。
なし
-t
1 ~ (2^31 -1)
タイムアウト値を指定します。
オプション。-tを省略すると、artjesadminは無限に待機します。
タイムアウトが発生すると、artjesadminコマンドラインは終了しますが、ジョブはそれに影響されずにJESによって継続して実行されます。

終了コード

表3に、-yを指定したときのartjesadminの終了コードを示します。

表3 終了コード
終了コード
説明
メモ
0
ジョブは正常に完了しました。
なし
1
コマンド実行が失敗しました。
このコードは、無効なタイムアウト値またはコマンドラインの構文エラーのどちらかによって返されます。
2
ジョブ変換が失敗しました。
ジョブは正常に送信されましたが、ジョブ変換が失敗しました。
3
ジョブ実行が失敗しました。
ジョブは正常に送信されましたが、ジョブ実行が失敗しました。
4
ジョブがキャンセルされました。
ジョブは正常に送信されましたが、最終ステータスに到達する前にキャンセルされました。
20
タイムアウトが発生しました。
-tオプションで指定された時間内にジョブが完了しませんでした。

標準出力

表4に示す情報は、次の書式でstdoutに出力されます。
<JOBID>,<JOBNAME>,<JOBSTATUS>,<JOB RETURN CODE>

表4 標準出力
出力内容
説明
サンプル
<JOBID>
ジョブID
00005097
<JOBNAME>
ジョブ名
JOBA
<JOBSTATUS>
ジョブの最終ステータス(タイムアウトが発生する前に終了した場合のみ)
DONE
<JOB RETURN CODE>
EJRから返された、ジョブのリターン・コード(タイムアウトが発生する前にジョブが完了した場合のみ)
C000

リスト4の例: ジョブが正常に終了しました
00000002,JOBA,DONE,C0000
リスト5の例: ジョブが失敗しました
00000002,JOBA,FAILED,U0568
リスト6の例: タイムアウトが発生しました
00000002,JOBA,Already Timeout!

ジョブ情報の表示

artjesadminのサブコマンドprintjobを使用して、単独のジョブまたは一連のジョブの情報を表示することができます。

printjob(ptj) -n jobname | -j jobid | -c job_class |-a [-v]

-n jobname: 指定されたジョブ名を持つジョブを表示します
-j jobid: 個別のジョブ情報を表示します
-c job_class: 個別のクラス・ジョブ情報を表示します
-a: すべてのジョブを表示します
-v: 冗長モード

printjobサブコマンドの出力には、次の内容が含まれます。

EXECUTING: ジョブは実行中です
CONVING: ジョブは変換を待機しています
WAITING: ジョブは実行を待機しています
DONE: ジョブは、正常に完了しました
FAIL: ジョブは完了しましたが、失敗しました
HOLD_WAITING: ジョブは、変換後、保留状態です
HOLD_CONVING: ジョブは、変換なしの保留状態です
INDOUBT: ジョブは、イニシエータが再起動されたため、インダウト状態です
CANCELED: ジョブはキャンセルされました
注意: JES2システムにあるジョブが多すぎる場合、コンソールですべてのジョブのステータスを出力するときにタイムアウトが発生する可能性があります。この状況を回避するには、JESのubbconfigに十分長いブロック・タイムを設定する必要があります。
注意: ブロック・タイムの設定の詳細は、「TuxJES用のUBBCONFIG内のブロック・タイム」を参照してください。

ジョブ・ステータスの同期的取得

ジョブ・ステータスを同期的に取得するには、次の書式でartjesadminを使用します。

artjesadmin [-f [security_profile]] -p -j jobid

-p-j

説明

オプション-p-jは、artjesadminコンソールを使用せずにジョブ・ステータスを取得するために追加されたオプションです。

終了コード

表5に、-pを指定したときのartjesadminの終了コードを示します。

表5 終了コード
終了コード
説明
メモ
0
ジョブが正常に終了しました。
ジョブ・ステータス= DONE
ジョブが正常に終了しました。
1
コマンド実行が失敗しました。
失敗の原因は、内部エラー、ネットワーク・エラーまたは構文エラーのいずれかです。
3
ジョブ・ステータス= FAIL
JOB実行が失敗しました。
4
ジョブ・ステータス= CANCEL
ジョブがキャンセルされました。
5
ジョブ・ステータス= CONVING
ジョブは変換を待機しています。
6
ジョブ・ステータス= EXECUTING
ジョブは実行中です。
7
ジョブ・ステータス= HOLD_CONVING
ジョブは、変換なしの保留状態です。
8
ジョブ・ステータス= HOLD_WAITING
ジョブは、変換後の保留状態です。
9
ジョブ・ステータス= WAITING
ジョブは実行を待機しています。
10
ジョブ・ステータス= DISCARD
このステータスは、tpenqueue()が失敗したときに発生します。
11
ジョブ・ステータス= INDOUBT
ジョブが実行されているときに、JESサーバーARTJESINITIATORがシャットダウンして再起動した場合、ジョブ・ステータスはINDOUBTになります。
22
ジョブが存在しません。
なし

標準出力

表6に示す情報は、次の書式でstdoutに出力されます。
<JOBID>,<JOBNAME>,<JOBSTATUS>,<JOB RETURN CODE>

表6 標準出力
出力内容
説明
サンプル
<JOBID>
ジョブID
00005097
<JOBNAME>
ジョブ名
JOBA
<JOBSTATUS>
ジョブの現在のステータス
DONE
<JOB RETURN CODE>
EJRから返された、ジョブのリターン・コード(ジョブが完了した場合のみ)
C000

リスト7の例: ジョブが正常に終了しました
00000002,JOBA,DONE,C0000
リスト8の例: ジョブは終了しましたが、失敗しています
00000002,JOBA,FAILED,U0568
リスト9の例: ジョブが実行中です
00000002,JOBA,EXECUTING

ジョブの保留

artjesadminのサブコマンドholdjobを使用して、CONVINGまたはWAITINGステータスにあるジョブまたは一連のジョブを保留することができます。

holdjob(hj) -n job name | -j jobid | -c job_class | -a

-n jobname: 指定されたジョブ名を持つジョブを保留します
-j jobid: 個別のジョブを保留します
-c job_class: 個別のクラス・ジョブを保留します
-a: すべてのジョブを保留します

ジョブの解放

artjesadminのサブコマンドreleasejobを使用して、HOLD_WAITINGまたはHOLD_CONVINGステータスにあるジョブまたは一連のジョブを解放することができます。

releasejob(rlj) -n job name | -j jobid | -c job_class | -a

-n jobname: 指定されたジョブ名のジョブを解放します
-j jobid: 個別のジョブを解放します
-c job_class: 個別のクラス・ジョブを解放します
-a: すべてのジョブを解放します

ジョブの取消し

artjesadminのサブコマンドcanceljobを使用して、単独のジョブまたは一連のジョブの情報を取り消すことができます。

canceljob(cj) -n job name | -j jobid | -c job_class | -a

-n jobname: 指定されたジョブ名を持つジョブを取り消します
-j jobid: 個別のジョブを取り消します
-c job_class: 個別のクラス・ジョブを取り消します
-a: すべてのジョブを取り消します

ジョブのパージ

artjesadminのサブコマンドpurgejobを使用して、単独のジョブまたは一連のジョブの情報をパージすることができます。

purgejob(pgj) -n job name | -j jobid | -a

-n jobname: 指定されたジョブ名を持つジョブをパージします
-j jobid: 個別のジョブをパージします
-a: すべてのジョブをパージします

DONEまたはFAILステータスの完了されたジョブが、パージ・キューへ移動されます。他のジョブの場合、purgejobが、canceljobと同じ効果を持っています。purgejobコマンドは、ジョブを直接パージしません。ARTJESPURGEサーバーが、TuxJESシステムからジョブを削除します。

ARTJESINITIATOR構成の表示/変更

artjesadmin のサブコマンドprintconcurrentを使用して、ARTJESINITIATORサーバーの最大同時実行ジョブ数を表示することができます。

printconcurrent(pco) -g groupname -i serverid

-g groupname: ARTJESINITIATORサーバーのTuxedoグループ名
-i serverid: ARTJESINITIATORサーバーのTuxedoサーバーID

artjesadmin のサブコマンドchangeconcurrentを使用して、ARTJESINITIATORサーバーの最大同時実行ジョブ数を変更することができます。

changeconcurrent(chco) -g groupname -i serverid -n concurrent_num

-g groupname: ARTJESINITIATORサーバーのTuxedoグループ名
-i serverid: ARTJESINITIATORサーバーのTuxedoサーバーID
-n concurrent_num: 最大同時実行ジョブ数

イベントのサブスクライブ/サブスクライブ解除

artjesadmin のサブコマンドeventを使用して、ジョブ・ステータス変更イベントをサブスクライブまたはサブスクライブ解除することができます。

event (et) [-t C,E,P,L,A] on|off

C: ジョブ変換完了イベント。
E:ジョブ実行終了イベント。
P: ジョブ・パージ・イベント。
L: ジョブ取消し完了イベント
A: サポートされているすべてのイベント。イベントがonに設定されている場合、Aがデフォルトです。
on |off: 送信がonまたはoffです。on設定は、-tオプションとともに使用できます。

イベントをサブスクライブすると、対応するイベントが生成したときに、artjesadminコンソール上に通知されます。

 


関連項目


  先頭に戻る       前  次