4 Tuxedo Job Enqueueing Service (TuxJES)の使用
この章のトピックは、次のとおりです:
4.1 概要
TuxJESは、次のバッチ・ジョブ・フェーズに対処しています。
- 入力
- 変換
- 処理
- パージ
バッチ・ジョブ・システムは、重要なメインフレーム・ビジネス・アプリケーション・モデルです。Tuxedo Job Enqueueing Service (TuxJES)エミュレーション・アプリケーションを使用すると、メインフレーム・アプリケーションをオープン・システムへ円滑に移行できます。TuxJESは、メインフレームJES2関数のサブセットを実装しています(ジョブの送信、ジョブの表示、ジョブの保留、ジョブの解放、ジョブの取消しなど)。
4.1.1 要件
TuxJESはOracle Tuxedoアプリケーションであり、TuxJESを実行するためにはOracle Tuxedoが必要です。
分散環境でTuxJESをデプロイするためには、共有ファイル・システム(NFSなど)が必要です。
親トピック: 概要
4.1.2 TuxJESコンポーネント
TuxJESには、次の主要なコンポーネントが含まれます。
genjesprofileOracle Tuxedoアプリケーションのセキュリティ・プロファイルを生成します
genjesaclTuxJESシステム用に暗号化されたジョブ・アクセス認可構成ファイルを生成します:
artjesadminTuxJESコマンド・インタフェース。Oracle Tuxedoクライアントです
ARTJESADMTuxJES管理サーバー。Oracle Tuxedoサーバーです。
ARTJESCONVTuxJES変換サーバー。Oracle Tuxedoサーバーです。
ARTJESINITIATORJobTuxJESイニシエータ。Oracle Tuxedoサーバーです。
ARTJESPURGETuxJESパージ・サーバー。Oracle Tuxedoサーバーです。
詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』を参照してください
親トピック: 概要
4.2 TuxJESシステムの構成
この項には次の情報が含まれます:
4.2.1 Oracle TuxedoアプリケーションとしてのTuxJESの設定(/Qを使用)
TuxJESは、Oracle Tuxedoアプリケーションです。大部分のTuxJESコンポーネントは、Oracle TuxedoクライアントまたはOracle Tuxedoサーバーです。まずTuxJESをOracle Tuxedoアプリケーションとして構成する必要があります。TuxJESがインストールされたディレクトリを参照する環境変数JESDIRが、正しく構成される必要があります。
- Oracle Tuxedo構成ファイル
- Oracle Tuxedo /Qキュー・スペースとキュー作成
- ファイル・システム構成
- TuxJES構成ファイル
- TuxJESセキュリティ構成
- TuxJESユーザー・マッピング・ファイル
親トピック: TuxJESシステムの構成
4.2.1.1 Oracle Tuxedo構成ファイル
次のリストに、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"
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サーバーが含まれている必要があります。
ARTJESADMARTJESCONVARTJESINITIATORARTJESPURGE
ノート:
ARTJESADM、ARTJESCNOV、ARTJESINITIATORおよびARTJESPURGEの複数のインスタンスを構成できます。
TuxJES管理サーバーARTJESADMの場合、-i オプションを使用してTuxJES構成ファイルを指定する必要があります。ARTJESADMは、Oracle Tuxedo構成ファイル(UBBCONFIG)で、ARTJESCONV、ARTJESINITIATORまたはARTJESPURGEの各サーバーより前に構成される必要があります。
詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』を参照してください
TuxJESはOracle Tuxedo /Qコンポーネントを使用するため、UBBCONFIGファイル内に、TMS_QMが構成されたOracle Tuxedoメッセージング・サーバーTMQUEUEを持つOracle Tuxedoグループが必要です。/Qキュー・スペースの名前は、JES2QSPACEと構成する必要があります。
TuxJESシステムは、単一のマシン上で動作するOracle Tuxedo SHMアプリケーション、または複数のマシン上で動作するOracle Tuxedo MPアプリケーションのいずれかです。
Oracle Tuxedoアプリケーションを設定する方法に関する詳細な情報は、Oracle Tuxedo関連のドキュメントを参照してください。
4.2.1.1.1 TuxJES用のUBBCONFIG内のブロック・タイム
SCANUNITやBLOCKTIMEパラメータを設定して、メッセージ・ブロックのタイムアウト時間などのシステム活動を指定できます。割り当てる値は5の倍数の正数である必要があります。
表4-1 SCANUNITおよびBLOCKTIMEパラメータの特性
| パラメータ | 特性 |
|---|---|
SCANUNIT
|
チェック間隔とタイムアウトをきめ細かく制御します。SCANUNITは、0から60秒の間の2または5の倍数である必要があります。
例: デフォルトは |
BLOCKTIME
|
デフォルトでは、 |
リスト2 設定例
*RESOURCES
IPCKEY 113333
DOMAINID jesdomain
MASTER SITE1
MODEL SHM
MAXACCESSERS 200
MAXSERVERS 50
NOTIFY SIGNAL
SCANUNIT 20
BLOCKTIME 50この例では、サニティ・スキャンは20秒ごとに実行され、リクエストが20 * 50 = 1000秒を超えてブロックされることはありません。
ジョブ発行のタイムアウトの制御はBLOCKTIMEやSCANUNITではなく、artjesadminコマンドラインで指定します。たとえば:
artjesadmin -t 60 -i JOBA
この例では、JOBAの発行が60秒間で終了しなかった場合、タイムアウトが戻されます。
TuxJESは/Qに従って、ジョブを表すメッセージの保存や取得を行います。TuxJES内部での/Q操作のタイムアウト・メカニズムを制御するのは、UBBCONFIG RESOURCESセクションのMAXTRANTIMEだけです。
UBBCONFIGでMAXTRANTIMEを明確に指定する必要があります。指定しなかった場合、Tuxedoは自動的にデフォルト値を使用します(デフォルト値はTuxedoリリースによって異なる可能性があります)。
このMAXTRANTIMEの値は、具体的なシステム・ロードに基づいて設定します。次の例はMAXTRANTIMEを5分に設定しています。
リスト3 例: MAXTRANTIMEを使用したタイムアウトの制御
*RESOURCES
IPCKEY 133770
DOMAINID jessample
MASTER SITE1
MODEL SHM
MAXTRANTIME 300 # 300 secondsUBBCONFIG RESOURCESセクションのMAXTRANTIMEの詳細は、Tuxedoドキュメントの「UBBCONFIG(5)」を参照してください。
tpdequeue()やtpenqueue()など、/Q操作でタイムアウトが発生した場合、MAXTRANTIMEを調整して、タイムアウトが発生しないようにします。
親トピック: Oracle Tuxedo構成ファイル
4.2.1.2 Oracle Tuxedo /Qキュー・スペースとキュー作成
TuxJESシステム用にJES2QSPACEという名前の/Qキュー・スペースを作成する必要があります(このキュー・スペースに/Qキューの一部を作成する必要があります)。TuxJESには、キュー・スペース(JES2QSPACE)とキューを作成するサンプル・シェル・スクリプト(jesqinit)が用意されています。詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』を参照してください
4.2.1.3 ファイル・システム構成
TuxJESは、ファイル・システムを使用して、バッチ実行エンジンと通信します。TuxJESとバッチ実行エンジンの間の通信のために、ファイル・システム上にディレクトリが作成されます。ディレクトリの名前は、TuxJES構成ファイルで指定されている必要があります。複数のマシン上にTuxJESシステムをデプロイする場合、このディレクトリは共有ファイル・システム(たとえば、NFS)に存在する必要があります。
4.2.1.4 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で定義されます。
JES_ACL_FILE
ジョブ・アクセス認可構成ファイルのフルパス。このファイルは暗号化されていてもいなくても構いません。詳細は、「JES_ACL_FILE_TYPE」を参照してください。
JES_ACL_FILE_TYPE
JES_ACL_FILEファイルの書式。これはPLAINまたはENCRYPTEDに設定できます(大文字と小文字は区別されます)。デフォルト値はPLAINです。
JES_ACL_MODE
ユーザー、操作、およびジョブのタプルについて、JES_ACL_FILEに一致ルールが見つからなかった場合のアクション。これはMAC (Mandatory Access Control)またはDAC (Discretionary Access Control)に設定できます。デフォルト値はMACです。
JOBLANG
JCLまたはKSH。
JCL: JCLジョブをサポート、ユーザーはJCLジョブのみを発行できます。
KSH: KSHジョブをサポート、ユーザーはKSHジョブのみを発行できます。
未設定: KSHが設定された場合と同様に機能します。
JOBREPOSITORY
ジョブが格納されるジョブ・リポジトリのパス。設定された場合、ジョブ送信で入力されたスクリプト・ファイル・パスに、JOBREPOSITORY内の相対パスを使用できます。
複数のパス名をコロン(:)で区切って指定できます。たとえば、JOBREPOSITORY=<path1>:<path2>:<path3>などです。送信するジョブを見つけるために、バッチ・ランタイムは、(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ユーザーをジョブの実行者として指名します。
USE_COBOL_SERVER
これがYに設定されている場合、TuxJES COBOL サーバー(ARTJESCOBOLDB2MF/ARTJESCOBOLDB2CIT)はユーザー・プログラムを呼び出します。これがNに設定されているか、何も設定されていない場合、TuxJES COBOLサーバーはユーザー・プログラムを呼び出しません。USE_COBOL_SERVER構成がサポートされるのは、データベース・モードのJCLジョブに限定されます。
USER_MAPPING_FILE
TuxJESユーザー・マッピング・ファイルの保存場所のフルパス。PRIVILEGE_MODEと共に使用されます(その値がUSER_MAPPINGの場合)。
USE_DB
ORACLEまたはDB2。
ORACLE: Oracle Databaseを使用してジョブ管理データを格納します。
DB2: (サポートされていません) DB2データベースを使用してジョブ管理データを格納します。
未設定: /Qを使用してジョブ情報を格納します。
SYSLOG=OFF,ON,DAILY,WEEKLY,MONTHLY
OFF:ログを指定しません。
ON:SYSLOGへの書込みを指定します。デフォルト値。このSYSLOGにはjessys.logという名前が付けられます。SYSLOG_PATHを使用して、このファイルのパスをデフォルトの$JESROOT/jessys.logから別のディレクトリに変更できます。
DAILY:SYSLOGへの書込みを指定します。毎日、新しいログ・ファイルが作成されます。このSYSLOGにはjessys.log.<mmddyy>という名前が付けられます。たとえば、「jessys.log.032715」という名前のSYSLOGは、2015年3月27日に作成されたログ・ファイルを表します。SYSLOG_PATHを使用して、このファイルのパスをデフォルトの$JESROOT/jessyslog/jessys.log.<mmddyy>から別のディレクトリに変更できます。
WEEKLY:SYSLOGへの書込みを指定します。毎週、新しいログ・ファイルが作成されます。このSYSLOGにはjessys.log.<mmddyy>という名前が付けられます。ここで、ddにはその週の最初の日を意味します(1週間は日曜日に始まります)。たとえば、「jessys.log.032215」という名前のSYSLOGは、2015年3月22日(日曜日)から2015年3月28日(土曜日)に作成されたログ・ファイルを表します。SYSLOG_PATHを使用して、このファイルのパスをデフォルトの$JESROOT/jessyslog/jessys.log.<mmddyy>から別のディレクトリに変更できます。
MONTHLY:SYSLOGへの書込みを指定します。毎月、新しいログ・ファイルが作成されます。このSYSLOGにはjessys.log.<mmddyy>という名前が付けられます。ここで、ddにはその月の最初の日を意味します。たとえば、「jessys.log.030115」という名前のSYSLOGは、2015年3月に作成されたログ・ファイルを表します。SYSLOG_PATHを使用して、このファイルのパスをデフォルトの$JESROOT/jessyslog/jessys.log.<mmddyy>から別のディレクトリに変更できます。
SYSLOG_PATH
SYSLOGファイルのパスを表します。
SYSLOG=ONが設定されている場合、$SYSLOG_PATH/jessys.logという名前のSYSLOGが、このSYSLOG_PATHで指定されたディレクトリに配置されます。
SYSLOG=DAILY,WEEKLY,MONTHLYが設定されている場合、$SYSLOG_PATH/jessys.log.<mmddyy>という名前のSYSLOGが、このSYSLOG_PATHで指定されたディレクトリに配置されます。jessys.log.<mmddyy>はSYSLOG=DAILY,WEEKLY,MONTHLYのネーミング規則に従って名づけられます。
SYSLOG_PATHを指定しなかった場合、デフォルトでは、SYSLOGファイルはそのまま$JESROOT/jessyslog (SYSLOGがDAILY、WEEKLY、またはMONTHLYに設定されている場合)、または$JESROOT (SYSLOGがONに設定されている場合)に残ります。
QSPACE_THRESHOLD
パーセンテージ: 1-99。これはキュー領域使用率のしきい値です。キュー領域の使用率がこのしきい値に達すると、新しいジョブは発行できますが、artjesadminの出力時に警告メッセージが表示されます。また、有効な場合は、自動パージが実行されます。デフォルトは、80です。
AUTOPURGE
整数値: 0-32767 (2^15-1)。
0: 自動パージを無効化します。デフォルト値。
N(>=1): 自動パージを有効化し、最初に終了したN個のジョブを一度にパージします。
N>=(OUTPUTキューのサイズ)の場合、OUTPUTキュー内のすべてのジョブがパージされます。
AUTOPURGE_KEEPFILES
ON:: 自動パージ中に、フォルダ<JESROOT>/<JOB_ID>を<JESROOT>/<JOB_ID>.bakにバックアップします。関連するメッセージをOUTPUTキューから削除します。
AUTOPURGE=0の場合、この項目は無視されます。デフォルト値。
OFF: 自動パージ中に、ジョブに属するファイル(フォルダ<JESROOT>/<JOB_ID>に存在)をすべて削除します。
JESROOT=/nfs/users/john_doe/jreroot
DEFAULTJOBCLASS=B
DEFAULTJOBPRIORITY=9
EVENTPOST=S,C,E,P,L,A
QSPACE_MAX_USAGE=80
AUTOPURGE=10
AUTOPURGE_KEEPFILES=ONノート:
キュー領域の使用率が80%に達すると、最初に終了した10個のジョブが自動的にパージされます。自動パージ・ジョブについては、フォルダ<JESROOT>/<JOB_ID>にあるすべてのファイルが <JESROOT>/<JOB_ID>.bakとしてバックアップされます
4.2.1.5 TuxJESセキュリティ構成
TuxJESでは、Oracle Tuxedoセキュリティ・メカニズムを活用して認証を実装します。認証が有効の場合、genapprofileユーティリティを使用してセキュリティ・プロファイルを生成し、それをartjesadminパラメータとして使用して、TuxJESシステムにアクセスしてください。プロファイルで使用されるユーザーは、ジョブ所有者です。ジョブを管理(取消し、パージ、保留および解放)できるのは、所有者だけです。ジョブは、誰でも表示できます。ジョブに所有者がない場合、誰でも操作できます。
Oracle Tuxedoアプリケーションはセキュリティが構成されていない場合でも、genjesprofileユーティリティを使用してジョブ所有者権限のチェックを強制し、データベース接続MT_DB_LOGINを格納できます。
このセキュリティ・メカニズムに基づき、ART for Batchは、ユーザーのジョブ操作アクションを制御するための軽量ジョブ・アクセス認可メカニズムを提供します。この認可に必要なのはシンプルな構成のみです。認可サーバーやサードパーティのセキュリティ製品さえ必要ではありません。詳細は、「TuxJESジョブ・アクセスの認可」を参照してください。
4.2.1.6 TuxJESユーザー・マッピング・ファイル
PRIVILEGE_MODE値をMAPPING_CREDENTIALに指定する場合、ユーザー・マッピング・ファイルがロードされ有効になります。Oracle TuxedoユーザーとOSユーザーの間のマッピング関係を定義します。マッピング・ファイル内のすべての行は次のフォーマットになります。
tuxedousername OSusername
ユーザー・マッピング・ファイルの所有者はルート、ファイル権限は「-rw-------」にすることをお薦めします。
次のリストに、TuxJESシステム用ユーザー・マッピング・ファイルのセグメント例を示します。
リスト5 TuxJESシステム用ユーザー・マッピング・ファイル例
tuxedouser1 OSuser1
tuxedouser2 OSuser2
4.2.2 Oracle TuxedoアプリケーションとしてのTuxJESの設定(データベースを使用)
この項には次の情報が含まれます:
4.2.2.1 TuxJESの設定
ノート:
現在はOracle Databaseのみがサポートされています。4.2.2.1.1 UBBCONFIG
TuxJESでは/Qではなくデータベースを使用してジョブが格納されるため、/QおよびサーバーTMQUEUE/TMS_QMのグループを使用する必要がありません。他のすべてのサーバーおよびグループは影響を受けません。
Parent topic: TuxJESの設定
4.2.2.1.2 JESCONFIG
データベースを使用できるようにするために、USE_DBという名前の新しい構成項目がJESCONFIGファイルに追加されました。次の表に、USE_DBの値を示します。リスト6に例を示します。
表4-2 USE_DBの値
| 名前 | 値 | 説明 |
|---|---|---|
USE_DB
|
ORACLE
|
Oracle Databaseを使用してジョブ管理データを格納します。 |
DB2
|
DB2を記憶域として使用してジョブ情報を格納します。 | |
BDB
|
BDBを記憶域として使用してジョブ情報を格納します。 | |
NOT SET |
/Qを使用してジョブ情報を格納します。 |
ノート:
autopurgeはデータベース・モードではサポートされていません。autopurgeの設定はすべて無視されます。- NJEはデータベース・モードではサポートされていません。
- 他の設定はすべて/Qモードと同じです。
JESROOT=/nfs/users/john_doe/jreroot
USE_DB=ORACLE
DEFAULTJOBCLASS=B
DEFAULTJOBPRIORITY=9
EVENTPOST=S,C,E,P,L,AParent topic: TuxJESの設定
4.2.2.2 Oracle Databaseの設定
この項には次の情報が含まれます:
4.2.2.2.1 データベース資格証明の取得
データベースを記憶域として使用する場合は、接続情報が必要です。これは暗号化され、JESROOTディレクトリの別の非表示ファイル(JESROOT/.jessysprofile)に格納されます。このファイルを生成するには、gensysprofileユーティリティを使用します。
使用方法は次のとおりです。
gensysprofile -d <JESROOT>
gensysprofileが起動されると、ユーザー名、パスワード、(データベース)サーバー名およびDBスキーマを入力するよう求められます。画面上のプロンプトを示します。
リスト7 画面プロンプト
User name:
Password:
Server name:
DB Schema(Optional):
(データベース)サーバー名の文字列はデータベース・サーバーが存在する場所を示し、通常、データベース・インスタンスの名前です。構文は、TWO_TASK環境変数の設定に使用されるものと同じです。書式は次のいずれかです。
//host:port/server_nameinstance_name
たとえば、orcl12cまたは//bej301420.cn.myexample.com:1522/orcl.cn.myexample.comを使用できます。
出力は、JESROOTディレクトリの非表示ファイル.jessysprofileです。
ノート:
- データベースがその場所に存在せず、
SQLNETを通じて接続する必要がある場合は、ホスト、ポートおよびserver_nameを//host:port/server_nameの書式で指定する必要があります。 gensysprofileは、JES管理者またはOSルート・ユーザーのみが実行できます。
親トピック: Oracleデータベースの設定
4.2.2.2.2 表の作成
Oracle Databaseを使用してジョブ管理データを格納するには、最初に表JES2_JOBNUMおよびJES2_JOB_PARAMを作成する必要があります。これらの2つの表を作成および削除するために、2つの外部シェル・スクリプトが提供されています。2つのスクリプトは$JESDIR/toolsにあります。
CreateTableJobDataOra.shこのシェル・スクリプトでは表
JES2_JOB_PARAMが作成され、フィールドJOBNAME、CLASS、PRTY、STATUS、SUBMITTIME、GRPIDおよびSRVIDの索引が作成されます。表JES2_JOBNUMも作成され、JES2_JOBNUM内のレコードが初期化されます。スキーマ名はオプションのパラメータです。スキーマ名が指定されている場合、表JES2_JOBNUMおよび表JES2_JOB_PARAMは指定されたスキーマに作成されます。使用方法は次のとおりです。CreateTableJobDataOra.sh <DB_LOGIN_PARAMETER> <schema>DropTableJobDataOra.shこのシェル・スクリプトでは、表
JES2_JOBNUMおよび表JES2_JOB_PARAMが削除されます。スキーマ名はオプションのパラメータです。スキーマ名が指定されている場合、表JES2_JOBNUMおよび表JES2_JOB_PARAMは指定されたスキーマで削除されます。使用方法は次のとおりです。DropTableJobDataOra.sh <DB_LOGIN_PARAMETER> <schema>
親トピック: Oracleデータベースの設定
4.2.2.2.3 OracleのデータベースTAFの設定(オプション)
Oracle Database TAF (Transparent Application Failure)が有効な場合、データベース・サーバーがクラッシュすると、データベースのリカバリ後、TuxJESドメインを再起動しなくてもTuxJESは継続してサービスを提供できます。TAFが有効でない場合、データベース接続が切断されたら、データベースのリカバリ後にTuxJESドメインを再起動する必要があります。
TAFは、クライアント側とサーバー側の両方で構成できます。両方とも構成した場合、サーバー側の設定が優先されます。
TAF構成の詳細は、Oracle Databaseのドキュメントを参照してください。次にTAFの簡単な説明を示します。
クライアント側でTAFを構成するには、接続記述子のCONNECT_DATAの部分にFAILOVER_MODEパラメータを含めます。
クライアント側でTAFオプションを構成するには、tnsnames.oraファイルにOracle Netパラメータを追加する必要があります。TAFオプションを実行するパラメータは、接続記述子のCONNECT_DATAセクションにあるFAILOVER_MODEです。FAILOVER_MODEには、次のパラメータが含まれる場合があります。
表4-3 tnsnames.oraファイルのパラメータ
| パラメータ | 説明 |
|---|---|
TYPE
|
フェイルオーバーのタイプを指定します。 |
METHOD
|
プライマリ・ノードからバックアップ・ノードにフェイルオーバーが行われる速さを設定します。 |
BACKUP
|
バックアップ接続として使用する別のネット・サービス名を指定します。 |
RETRIES
|
接続を試行する回数を指定します。 |
DELAY
|
接続試行の間隔を秒数で指定します。 |
次のリストにサンプルを示します。このサンプルでは、FAILOVER_MODEにフェイルオーバー・タイプsessionおよびメソッドbasicが構成されています。
TNSNAMES.ora
ART =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = bej301738.cn.myexample.com)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = art)
(FAILOVER_MODE =
(TYPE = session)
(METHOD = basic)
)
)
)親トピック: Oracleデータベースの設定
4.2.2.3 DB2データベースの設定
ノート:
JESCONFIGでUSE_DB=DB2を構成する必要があります。詳細は、「TuxJESの設定」を参照してください。
DB2データベースを設定するには、次の手順を実行します。
4.2.2.3.1 データベース資格証明の取得
データベースを記憶域として使用する場合は、接続情報が必要です。これは暗号化され、JESROOTディレクトリの別の非表示ファイル(JESROOT/.jessysprofile)に格納されます。このファイルを生成するには、gensysprofileユーティリティを使用します。
使用方法は次のとおりです。
gensysprofile -d <JESROOT>
リスト9にサンプルを示します。
リスト9 DB2データベース資格証明を取得するためのサンプル
gensysprofile -d /home/testuser1/work_batchrt/jesroot
gensysprofile will create a profile "/home/testuser1/work_batchrt/jesroot/.jessysprofile"
User name (0~30 characters):db2b004
User Password (0~31 characters):
Confirm User Password (0~31 characters):
Database instance name:artbatch
DB Schema(Optional):db2b002
/home/testuser1/work_batchrt/jesroot/.jessysprofile is created successfullyノート:
DBスキーマは、ユーザーが入力するためのオプションのパラメータです。これが指定されている場合、TuxJESはバッチ・ジョブのメタデータを指定されたスキーマに格納して管理します。親トピック: DB2データベースの設定
4.2.2.3.2 表の作成
次のコマンドラインを使用して、DB2で必要な表を作成します。
$JESDIR/tools/CreateTableJobDataDb2.sh <DB CONN STRING> <schema>
次のコマンドラインを使用して、これらの表を削除できます。
$JESDIR/tools/DropTableJobDataDb2.sh <DB CONN STRING> <schema>
次のリストに、DB2で表を作成するためのサンプルを示します。
リスト10 DB2で表を作成するためのサンプル
$JESDIR/tools/CreateTableJobDataDb2.sh "artbatch user db2b004 using db2b004"
<<omit some msg here>>
db2 => db2 (cont.) => db2 (cont.) => CREATE TABLE JES2_JOBNUM ( JOBNUM INT )
DB20000I The SQL command completed successfully.
db2 => INSERT INTO JES2_JOBNUM VALUES ('0')
DB20000I The SQL command completed successfully.
db2 => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => db2 (cont.) => CREATE TABLE JES2_JOB_PARAM ( JOBID INT NOT NULL, JOBNAME VARCHAR(32), CLASS INT, PRTY INT, STATUS VARCHAR(32), SUBMITTIME INT, TYPRUN VARCHAR(8), OWNER VARCHAR(32), JOBTYPE VARCHAR(3), EXECGRP VARCHAR(32), MACHINE INT, GRPID INT, SRVID INT, SRVPID INT, EXECTIME INT, ENDTIME INT, JOBPID INT, JOBRC VARCHAR(5), USRSEC INT, USRUSEC INT, SYSSEC INT, SYSUSEC INT, JOBSCRIPT VARCHAR(2048), EJROPTION VARCHAR(128), SHELLOPTION VARCHAR(128), INPUTTYPE INT, CLIENTMODE VARCHAR(32), CLTIDDATA1 INT, CLTIDDATA2 INT, CLTIDDATA3 INT, CLTIDDATA4 INT, PROFILECONTENT VARCHAR(1024), JOBENV VARCHAR(1024), Reserve1 INT, Reserve2 INT, Reserve3 VARCHAR(128), Reserve4 VARCHAR(128), CONSTRAINT PK_JES2_JOB_PARAM PRIMARY KEY (JOBID) )
DB20000I The SQL command completed successfully.
db2 => CREATE INDEX JES2_JOB_PARAM_JNAME on JES2_JOB_PARAM (JOBNAME)
DB20000I The SQL command completed successfully.
db2 => CREATE INDEX JES2_JOB_PARAM_CLASS on JES2_JOB_PARAM (CLASS ASC)
DB20000I The SQL command completed successfully.
db2 => CREATE INDEX JES2_JOB_PARAM_PRTY on JES2_JOB_PARAM (PRTY DESC)
DB20000I The SQL command completed successfully.
db2 => CREATE INDEX JES2_JOB_PARAM_STATUS on JES2_JOB_PARAM (STATUS)
DB20000I The SQL command completed successfully.
db2 => CREATE INDEX JES2_JOB_PARAM_SUBTIME on JES2_JOB_PARAM (SUBMITTIME ASC)
DB20000I The SQL command completed successfully.
db2 => CREATE INDEX JES2_JOB_PARAM_GRPID on JES2_JOB_PARAM (GRPID)
DB20000I The SQL command completed successfully.
db2 => CREATE INDEX JES2_JOB_PARAM_SRVID on JES2_JOB_PARAM (SRVID)
DB20000I The SQL command completed successfully.
db2 => commit
DB20000I The SQL command completed successfully.
db2 => DB20000I The TERMINATE command completed successfully.親トピック: DB2データベースの設定
4.2.2.3.3 DB2でのジョブの管理
この機能を使用するには、次の手順を実行します。
- DB2環境の設定
JESドメインを起動する前に、DB2環境の準備を完了させる必要があります。
db2profileを使用するか($source /home/db2b004/sqllib/db2profileのように)、LD_LIBRARY_PATHとPATH(および他のDB2環境変数を1つずつ)を設定することをお薦めします。詳細は、DB2のドキュメントを参照してください。 - JESドメインの起動
tmbootを実行してJESドメインを起動してから、artjesadminを使用してジョブの送信または管理を行います。
親トピック: DB2データベースの設定
4.2.2.4 BDBデータベースの設定
ノート:
JESCONFIGでUSE_DB=BDBを構成する必要があります。詳細は、「TuxJESの設定」を参照してください。
BDBデータベースを設定するには、次の手順を実行します。
4.2.2.4.1 データベース資格証明の取得
データベースを記憶域として使用する場合は、接続情報が必要です。これは暗号化され、JESROOTディレクトリの別の非表示ファイル(JESROOT/.jessysprofile)に格納されます。このファイルを生成するには、gensysprofileユーティリティを使用します。
使用方法は次のとおりです。
gensysprofile -d <JESROOT>
BDBにはユーザー名とパスワードがないため、usernameフィールドとpasswordフィールドを空のままにして、直接[ENTER]を押してください。instance nameフィールドには、BDB DBファイルのファイル名を入力する必要があります(パスは含めないでください)。たとえば、BDB DBファイルが"/home/testuser1/appdir/jesroot/jesbdb"の場合、対応するデータベース・インスタンス名は"jesbdb"になります。
親トピック: BDBデータベースの設定
4.2.2.4.2 表の作成
次のコマンドラインを使用して、BDBで必要な表を作成します。BDBの場合、データベースはディスク上のファイルであり、このファイルは<JESROOT>フォルダに置く必要があります。
$JESDIR/tools/CreateTableJobDataBdb.sh <BDB FILE FULL PATH>
例:
$JESDIR/tools/CreateTableJobDataBdb.sh "/home/testuser1/appdir/jesroot/jesbdb"
次のコマンドラインを使用して、これらの表を削除できます。
$JESDIR/tools/DropTableJobDataBdb.sh <BDB FILE PATH>
親トピック: BDBデータベースの設定
4.2.3 MPモードでのTuxJESの設定
TuxJESは、MPモード内で容易に構成できるようになりました。ただし、ジョブを実行するには、EJRとTuxJESの両方で、ジョブを異なるマシンで同時に実行できるように構成を調整する必要があります。この項では、MPモードでバッチ・ランタイムを構成するための必須の構成について具体的に説明します。
TuxJESドメインの異なるマシン上のすべてのサーバーで共有されるジョブのデータは、共有記憶域(NFS)に置いて、ドメイン内のすべてのマシンでアクセスできるようにする必要があります。さらに、NFSはすべてのマシンで同じマウント・ポイントでマウントする必要があります。最後に、JESROOTは、各ノードで共有JESルート・ディレクトリを指すように正しく構成する必要があります。実行時には、すべてのマシン上のTuxJESサーバーが、そのような共有JESROOTに対してデータの書込みや取得を行います。
MPモードでのEJRの構成の詳細は、「バッチ・ランタイムの使用」の 「MPモードでのバッチ・ランタイムの構成」を参照してください。
親トピック: TuxJESシステムの構成
4.3 TuxJESの使用
TuxJESシステムが起動したら、artjesadminユーティリティを使用して、ジョブの送信、保留、解放、取消し、パージ、ジョブ情報の表示、ジョブ・ステータス変更のためのイベントのサブスクライブを行うことができます。
4.3.1 ジョブの送信
artjesadmin のサブコマンドsubmitjobを使用して、ジョブを送信できます。
submitjob (smj) -i|-I scriptfilename [-t timeout] [-o ejr option]
-i scriptfilename:スクリプト・ファイル。
-I scriptfilename: JCLジョブの送信のために指定されるオプション。
-t timeout: ジョブを送信するときに、タイムアウトしきい値を制御するために指定します。
-o ejr option: EJRスクリプト・ファイルに渡すオプションを指定します。
artjesadmin -yオプションを使用して、ジョブを同期的に発行することができます。
詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』のartjesadminに関する項を参照してください。
親トピック: TuxJESの使用
4.3.2 ジョブ情報の表示
artjesadminのサブコマンドprintjobを使用して、単独のジョブまたは一連のジョブの情報を表示することができます。
printjob(ptj) -n jobname | -j jobid | -c job_class |-a [-v] [-m] | -l
-n jobname: 指定されたジョブ名を持つジョブを表示します
-j jobid: 個別のジョブ情報を表示します
-c job_class: 個別のクラス・ジョブ情報を表示します
-a: すべてのジョブを表示します
-v: 冗長モード
-m: あるジョブの各ステップのCPU時間使用率を出力します
-l: ジョブ・ステータスのタイプごとに各ジョブ・クラスのジョブ数を表示します
ノート:
-lオプションは、/Qを使用してバッチ・ジョブのメタデータを格納および管理する場合はサポートされません。
printjobサブコマンドの出力には、次の内容が含まれます。
- JOBNAME: ジョブ名
- JobID: TuxJESシステムによって生成されるJob ID
- Owner: ジョブの送信ユーザー
- Prty: ジョブの優先度
- C: ジョブ・クラス
- Status: ジョブ・ステータス
EXECUTING: ジョブは実行中ですCONVING: ジョブは変換を待機していますWAITING: ジョブは実行を待機していますDONE: ジョブは、正常に完了しましたFAIL: ジョブは完了しましたが、失敗しましたHOLD_WAITING: ジョブは、変換後、保留状態ですHOLD_CONVING: ジョブは、変換なしの保留状態ですINDOUBT: ジョブは、イニシエータが再起動されたため、インダウト状態ですCANCELED: ジョブはキャンセルされました
- Submit time: ジョブの送信時刻
- Step: 現在の実行中ジョブ・ステップ。実行中ジョブにのみ適用されます。
- Type Run:ジョブの
TYPRUN定義。 - Machine: 実行中/完了/失敗ジョブの場合のみ。ジョブが実行されている/されたマシン名です。
- CPU usage: ジョブ実行のためのユーザーCPU使用率とシステムCPU使用率。
- Result: ジョブ操作の結果で、「OK」またはエラー・メッセージです。
ノート:
JES2システムにあるジョブが多すぎる場合、コンソールですべてのジョブのステータスを出力するときにタイムアウトが発生する可能性があります。この状況を回避するには、JESのubbconfigに十分長いブロック・タイムを設定する必要があります。ブロック・タイムの設定の詳細は、「TuxJES用のUBBCONFIG内のブロック・タイム」を参照してください。
親トピック: TuxJESの使用
4.3.2.1 ジョブ・ステータスの取得(同期)
ジョブ・ステータスを同期的に取得するには、次の書式でartjesadminを使用します。
artjesadmin [-f [security_profile]] -p -j jobid
-pと-j
オプション-pと-jは、artjesadminコンソールを使用せずにジョブ・ステータスを取得するために追加されたオプションです。
終了コード
次の表に、-pの場合のartjesadminの終了コードを示します。
表4-4 終了コード
| 終了コード | 説明 | ノート |
|---|---|---|
| 0 | ジョブが正常に終了しました。ジョブ・ステータス= DONE
|
ジョブが正常に終了しました。 |
| 1 | コマンド実行が失敗しました。 | 失敗の原因は、内部エラー、ネットワーク・エラーまたは構文エラーのいずれかです。 |
| 3 | ジョブ・ステータス= FAIL
|
ジョブ実行が失敗しました。 |
| 4 | ジョブ・ステータス= CANCEL
|
ジョブがキャンセルされました。 |
| 5 | ジョブ・ステータス= CONVING
|
ジョブは変換を待機しています。 |
| 6 | ジョブ・ステータス= EXECUTING
|
ジョブは実行中です。 |
| 7 | ジョブ・ステータス= HOLD_CONVING
|
ジョブは、変換なしの保留状態です。 |
| 8 | ジョブ・ステータス= HOLD_WAITING
|
ジョブは、変換後の保留状態です。 |
| 9 | ジョブ・ステータス= WAITING
|
ジョブは実行を待機しています。 |
| 10 | ジョブ・ステータス= DISCARD
|
このステータスは、tpenqueue()が失敗したときに発生します。
|
| 11 | ジョブ・ステータス= INDOUBT
|
ジョブが実行されているときに、JESサーバーARTJESINITIATORがシャットダウンして再起動した場合、ジョブ・ステータスはINDOUBTになります。
|
| 22 | ジョブが存在しません。 | なし |
標準出力
表5に示す情報は、次の書式でstdoutに出力されます。
<JOBID>,<JOBNAME>,<JOBSTATUS>,<JOB RETURN CODE>
表4-5 標準出力
| 出力内容 | 説明 | サンプル |
|---|---|---|
<JOBID>
|
ジョブID | 00005097
|
<JOBNAME>
|
ジョブ名 | JOBA
|
<JOBSTATUS>
|
ジョブの現在のステータス | DONE
|
<JOB RETURN CODE> |
EJRから返された、ジョブのリターン・コード(ジョブが完了した場合のみ) | C000
|
リスト11 例: ジョブが正常に終了しました
00000002,JOBA,DONE,C0000
リスト12 例: ジョブは終了しましたが、失敗しています
00000002,JOBA,FAILED,U0568
リスト13 例: ジョブが実行中です
00000002,JOBA,EXECUTING
親トピック: ジョブ情報の表示
4.3.3 ジョブの保留
artjesadminのサブコマンドholdjobを使用して、CONVINGまたはWAITINGステータスにあるジョブまたは一連のジョブを保留することができます:
holdjob(hj) -n job name | -j jobid | -c job_class | -a
-n jobname: 指定されたジョブ名を持つジョブを保留します
-j jobid: 特定のジョブを保留します
-c job_class: 個別のクラス・ジョブを保留します
-a: すべてのジョブを保留します
親トピック: TuxJESの使用
4.3.4 ジョブの解放
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: すべてのジョブを解放します
親トピック: TuxJESの使用
4.3.5 ジョブの取消し
artjesadmin のサブコマンドcanceljobを使用して、単独のジョブまたは一連のジョブを取り消すことができます。
canceljob(cj) -n job name | -j jobid | -c job_class | -a
-n jobname: 指定されたジョブ名を持つジョブを取り消します
-j jobid: 個別のジョブを取り消します
-c job_class: 特定のクラス・ジョブを取り消します
-a: すべてのジョブを取り消します
親トピック: TuxJESの使用
4.3.6 ジョブのパージ
artjesadmin のサブコマンドpurgejobを使用して、単独のジョブまたは一連のジョブの情報をパージすることができます。
purgejob(pgj) -n job name |-j jobid | -c job class | -s job status | -a
-n jobname: 指定されたジョブ名を持つジョブをパージします
-j jobid: 特定のジョブをパージします
-c job class:指定されたジョブ・クラスのジョブをパージします
-s job status:指定されたジョブ・ステータスのジョブをパージします
-a: すべてのジョブをパージします
DONEまたはFAILステータスの完了されたジョブが、パージ・キューへ移動されます。他のジョブの場合、purgejobが、canceljobと同じ効果を持っています。purgejobコマンドは、ジョブを直接パージしません。ARTJESPURGEサーバーが、TuxJESシステムからジョブを削除します。
4.3.6.1 自動ジョブ・パージ
ノート:
自動パージは、あるジョブがキュー領域に正常に挿入され、キューの使用率が警告しきい値に到した時点でのみ発生します。この時点でOUTPUTキューにジョブが存在しない場合は、ジョブは自動パージされません。極端な例として、あるジョブが発行された後に、キュー領域の状態が「使用可能な領域がすべて使用されています」および「OUTPUTキューにジョブがありません」に変更された場合は、この最後のジョブの発行によってジョブが自動パージされることはありません。この状況では、自動パージは実行されないため、ユーザーは一部のジョブを手動でパージする必要があります。そうでない場合は、新しいジョブを発行できません。ジョブの発行が失敗すると、自動パージは起動されません。
自動パージは現在のジョブの発行に影響しません。
JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドで自動パージを実行することはありません。
TSAMPlusプラグインを使用したOEM統合は、ジョブ・ログとsysoutの自動アーカイブをサポートしています。ジョブがパージされると、主要なジョブ情報とジョブ・ログはEM管理リポジトリで入手可能になります。
キュー領域の使用率のチェック動作は、あるジョブがキュー領域に正常に挿入された時点でのみ発生します。ジョブの発行のみが、このチェック動作を起動できます。ジョブの発行が失敗すると、このチェック動作は起動されません。
チェック結果は現在のジョブの発行に影響しません。
JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドでキュー領域の使用率のチェックを実行することはありません。
親トピック: ジョブのパージ
4.3.6.1.1 キュー領域の警告しきい値の設定
キュー領域の使用率の警告しきい値を設定します。このしきい値はファイルjesconfigで構成できます。新しいジョブを発行すると、JESは、キュー領域の現在の使用率が警告しきい値に達していないかをチェックします。
- jesconfigファイルで自動パージが有効になっている場合は、自動パージを起動します。
- 「ジョブは正常に発行されました」というメッセージに続けて、1行の警告メッセージがartjesadminコンソールに出力されます。これは、ユーザーに一部のジョブをパージするよう示しています。または、自動パージされたジョブの数が表示されます(自動パージが有効になっている場合)。
ノート:
キュー領域の使用率のチェック動作は、あるジョブがキュー領域に正常に挿入された時点でのみ発生します。ジョブの発行のみが、このチェック動作を起動できます。キュー領域が警告しきい値を超えているものの100よりも小さい場合は、使用可能な領域がすべて使用されているわけではないため、新しいジョブの発行は許可されますが、警告メッセージがartjesadminコンソールに表示されます。
ジョブの発行が失敗すると、このチェック動作は起動されません。
チェック結果は現在のジョブの発行に影響しません。
JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドでキュー領域の使用率のチェックを実行することはありません。
親トピック: 自動ジョブ・パージ
4.3.7 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: 最大同時実行ジョブ数
親トピック: TuxJESの使用
4.3.8 ARTJESINITIATORサーバーの制御
artjesadminのサブコマンドshowjobexecを使用して、ジョブを実行するARTJESINITIATORサーバーの最大数を表示することができます。
showjobexec(she) [-n machine] | [-g groupid [-i serverid]]
-n machine
ARTJESINITIATORサーバーが稼働しているTuxedo論理マシン名。
-g groupid:
ARTJESINITIATORサーバーのTuxedoグループID
-i serverid:
ARTJESINITIATORサーバーのTuxedoサーバーID
ノート:
オプションが何も指定されている場合、すべてのARTJESINITIATORサーバーで実行されているジョブが表示されます。
ARTJESINITIATORサーバーによる、新たに実行するジョブの取得を停止できます。ただし、サーバーは現在仕掛中のジョブの仕上げを続けます。
stopjobexec(ste) [-n machine] | [-g groupid [-i serverid]]
-n machine:
ARTJESINITIATORサーバーが稼働しているTuxedo論理マシン名。
-g groupid:
ARTJESINITIATORサーバーのTuxedoグループID。
-i serverid:
ARTJESINITIATORサーバーのTuxedoサーバーID。
ノート:
オプションが何も指定されていない場合、すべてのARTJESINITIATORサーバーが新しいジョブの取得を停止します。
ARTJESINITIATORサーバーによる新しいジョブの取得と実行を再開します。
resumejobexec(rse) [-n machine] | [-g groupid [-i serverid]]
-n machine:
ARTJESINITIATORサーバーが稼働しているTuxedo論理マシン名。
-g groupid:
ARTJESINITIATORサーバーのTuxedoグループID
-i serverid:
ARTJESINITIATORサーバーのTuxedoサーバーID
ノート:
オプションが何も指定されていない場合、すべてのARTJESINITIATORサーバーが再開します。
4.3.8.1 ARTJESINITIATORサーバーの制御(同期)
artjesadminを次の書式で使用して、ARTJESINITIATORサーバーを同期的に制御することができます。
artjesadmin [-f [security_profile]] -x showjobexec|resumejobexec|stopjobexec [[lmid=machine|grpid=groupid|grpid=groupid,srvid=serverid];...]
-x showjobexec [[lmid=machine|grpid=groupid|grpid=groupid,srvid=serverid];...]:
すべてのARTJESINITIATORサーバー、論理マシン・サーバー、グループID別サーバー、またはグループIDとサーバーID別サーバーについて、実行中のジョブ数を表示します。
-x stopjobexec [[lmid=machine|grpid=groupid|grpid=groupid,srvid=serverid];...]:
すべてのARTJESINITIATORサーバー、論理マシン・サーバー、グループID別サーバー、またはグループIDとサーバーID別サーバーについて、実行する新しいジョブの取得を停止します。
-x resumejobexec [[lmid=machine|grpid=groupid|grpid=groupid,srvid=serverid];...]:
すべてのARTJESINITIATORサーバー、論理マシン・サーバー、グループID別サーバー、またはグループIDとサーバーID別サーバーについて、実行する新しいジョブの取得を再開します。
親トピック: ARTJESINITIATORサーバーの制御
4.3.9 イベントのサブスクライブ/サブスクライブ解除
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コンソール上に通知されます。
親トピック: TuxJESの使用
4.4 TuxJESジョブ・アクセスの認可
TuxJESセキュリティ・メカニズムに基づき、ART for Batchは、ユーザーのジョブ操作アクションを制御するための軽量ジョブ・アクセス認可メカニズムを提供します。この認可に必要なのはシンプルな構成のみです。認可サーバーやサードパーティのセキュリティ製品さえ必要ではありません。
このメカニズムでは、管理者はTuxJESジョブ操作認可ルールを使用して、特定のユーザーに特定のジョブ操作の実行を認可します。
あるOracle TuxedoユーザーがUnix/Linuxのrootにマップされている(または、これに相当する)場合、このユーザーはスーパー・ユーザーとして扱われます。このスーパー・ユーザーはどのようなジョブ操作でも、認可チェックなしに実行を許可されます。
4.4.1 ジョブ・アクセス認可メカニズムの構成
TuxJESジョブ・アクセス認可メカニズムを有効化するには、次のように構成する必要があります。
JESCONFIGにJES_ACL_FILEを設定しますこれは、ジョブ・アクセス認可構成ファイルのフルパスを指定します。例:
JES_ACL_FILE=/home/user/simpjob/jesaclJES_ACL_FILEを正常に開くことができなかった場合、または不正な書式ルールが含まれていた場合、ARTJESADMをブートできません。
ノート:
ジョブ・アクセス認可メカニズムの構成は、その他のスタンドアロンのACL認可サーバーよりも優先されますので、EAUTHSVRなど他の認可サーバーを使用する場合、またはいかなる種類の認可も使用したくない場合は、JES_ACL_FILEを構成しないでください。
前述のJES_ACL_FILE構成のほか、TuxJESセキュリティ・メカニズムを有効化するための構成の設定も必要です。たとえば、JESCONFIGでPRIVILEGE_MODEをUSER_IDENTICALまたはUSER_MAPPINGに設定し、UBBCONFIGファイルでSECURITYをUSER_AUTH、ACL、またはMANDATORY_ACLに設定します。
このメカニズムを使用する場合、次の構成は省略可能です。
JES_ACL_FILEを暗号化するかどうかを指定するには、JESCONFIGでJES_ACL_FILE_TYPEをPLAIN(デフォルト)またはENCRYPTEDに指定します。- ルール・ファイルに一致するルールが見つからなかった場合のアクションを指定するには、
JESCONFIGでJES_ACL_MODEをMAC(デフォルト)またはDACに指定します。例については、「JES_ACL_MODEの使用例」を参照してください。
また、TuxJESシステムで使用する暗号化済みのルール・ファイルを生成するにはgenjesaclツールを使用します。
詳細は、「ARTJESADM」と「genjesacl」を参照してください。
親トピック: TuxJESジョブ・アクセスの認可
4.4.2 ジョブ操作認可ルールの使用
この項の内容は次のとおりです。
親トピック: TuxJESジョブ・アクセスの認可
4.4.2.1 ルールの設定
ルールを暗号化するかしないかを設定するJES_ACL_FILEファイル。
4.4.2.1.1 プレーンなJES_ACL_FILEファイル
JES_ACL_FILEで指定されたプレーン・テキスト・ファイルにジョブ操作認可ルールを設定します。次のCSV形式を使用します。
permission; user-list; operation-list; jobname-list
- permission
- user-list
- operation-list
- jobname-list
いくつかの例を示します。
- リスト14この例では、ユーザー
tpuser1は、あらゆるジョブで、あらゆる種類の操作を実行することを認可されています。 - リスト15この例では、ユーザー
tpuser2は、名前に接頭辞JOBZを含むジョブに対する操作を認可されています。 - リスト16: この例では、ジョブのパージを認可されているユーザーはいません。
リスト14 ルール設定の例
ALLOW; tpuser1; *; *
リスト15 ルール設定の例
ALLOW; tpuser2; *; JOBZ*
リスト16 ルール設定の例
DENY;*; PURGE;*
permission
permissionにはALLOWまたはDENYを指定します。
このフィールドでは、大文字/小文字が区別されます。
user-list
Oracle Tuxedoのユーザー名を指定します。ユーザー名を指定する場合、Oracle Tuxedoのネーミング要件だけでなく、次の要件にも従う必要があります。
- ユーザー名にはセミコロン(;)を使用できません。
- ユーザー名をアスタリスク1つのみ(*)にすることはできません。
複数のユーザーは":"で区切ります。アスタリスク(*)はすべてのOracle Tuxedoユーザーを意味します。このフィールドではワイルドカードはサポートされていません。たとえば、tpuser*は、名前がtpuserで始まるすべてのユーザーを意味するものではありません。Oracle Tuxedoのネーミング要件については、『Oracle Tuxedoコマンド・リファレンス』を参照してください。
operation-list
ジョブ操作を指定します。指定できるジョブ操作は、SUBMIT、CANCEL、PURGE、HOLD、およびRELEASEです。
これら5種類のジョブ操作のうち、最も重要なのはSUBMITで、残りの4つのジョブ操作の前提条件です。その理由は、ユーザーがジョブを取消し、パージ、保留、またはリリースしようとした場合、TuxJESはまず、このユーザーがそのジョブの所有者であるかどうかをチェックするからです(ユーザーがSUBMITの権限を付与されていて、ジョブの発行に成功した場合のみ、このユーザーはこのジョブの所有者になり、TuxJESシステムからパージされるまでジョブを所有し続けます)。
複数の操作は「:」で区切ります。アスタリスク(*)はこれらの操作すべてを意味します(SUBMIT:CANCEL:PURGE:HOLD:RELEASEに同じです)。このフィールドではワイルドカードはサポートされていません。このフィールドでは、大文字/小文字が区別されます。
jobname-list
ジョブ名を指定します。ジョブ名はジョブのファイル名ではありません。これはm_JobBeginで指定された内部的なジョブ名で、JCLの/<NAME> JOB文から変換されたものです。
複数のジョブ名は、:で区切ります。ワイルドカード「*」(0個以上の文字)、および「?」(1文字のみ)がサポートされています。
Parent topic: ルールの設定
4.4.2.1.2 暗号化されたJES_ACL_FILEファイル
JES_ACL_FILE_TYPE=ENCRYPTEDを設定した場合、JES_ACL_FILEファイルを暗号化されたファイルとして構成する必要があります。この暗号化されたファイルはgenjesaclツールで生成可能です。
詳細は、「JESCONFIG」と「genjesacl」を参照してください。
Parent topic: ルールの設定
4.4.2.2 ルールの処理
複数の一致ルールが存在する場合、先頭の一致ルールが最優先されます。一致ルールは、ユーザー、操作、ジョブ・フィールドがすべて一致することを意味します。
ユーザー、操作、およびジョブに一致するルールが見つからない場合、JESCONFIGファイルのJES_ACL_MODEが有効になります。JES_ACL_MODEが設定されていない場合、そのデフォルト値で、操作が拒否されることを意味するJES_ACL_MODE=MACが有効になります。
リスト17 ルール処理の例
ALLOW; tpuser1;*;*
DENY; tpuser1;*; JOBA
前述のルールは2つとも一致ルールですが、1つめの一致ルールが優先されます。つまり、tpuser1にJOBAへの操作が認可され、2つめの一致ルールは有効になりません。
ユーザーtpuser1に、JOBAのジョブを除くすべてのジョブの操作をさせたい場合は、前述の2つのルールの順番を入れ替えます。
親トピック: ジョブ操作認可ルールの使用
4.4.2.3 ルールへのコメントの追加
文字#で始まる行はコメントとみなされます(先行するスペースは無視されます)。例:
# This is comment # This is also comment.ALLOW;tpuser1;*;JOBA:JOBB
ルールの直後、同じ行にコメントを書かないでください。たとえば、次の行の#Cはコメントとはみなされません。
ALLOW;tpuser1;*;JOBA:JOBB#C
親トピック: ジョブ操作認可ルールの使用
4.4.2.4 例
例のリストを次に示します。
4.4.2.4.1 様々な方法でルールを設定した例
名前がJOBAA、JOBBB、およびJOBCCで始まるジョブを保護する必要があるとします。tpuser1とtpuser2に名前がJOBAAで始まるジョブへの権限を、tpuser3とtpuser4に名前がJOBBBおよびJOBCCで始まるジョブへの権限を付与します。その他のジョブは保護の必要がありません。
この要件を満足させるルールは次のようになります。
ALLOW;tpuser1:tpuser2;*;JOBAA*
ALLOW;tpuser3:tpuser4;*;JOBBB*:JOBCC*
DENY;*;*;JOBAA*:JOBBB*:JOBCC*
ALLOW;*;*;*
次のルールもこの要件を満足させます。
ALLOW;tpuser1:tpuser2;*;JOBAA*
ALLOW;tpuser3:tpuser4;*;JOBBB*:JOBCC*
DENY;*;*;JOBAA*:JOBBB*:JOBCC*
次に、JESCONFIGファイルにJES_ACL_MODE=DACを設定します。
親トピック: 例
4.4.2.4.2 ワイルドカードを使ってルールを設定した例
システムに3人のOracle Tuxedoユーザー、tpuser1、tpuser2、tpuser3と30個のジョブJOBX01からJOBX10、JOBY01からJOBY10、JOBZ01からJOBZ10があるとします。
tpuser1とtpuser2にはすべてのジョブを操作する権限を与え、tpuser3にはJOBX10、JOBY10、JOBZ01からJOBZ10の12個のジョブだけを操作する権限を与えたいと思います。
様々な解決方法があります。
オプションA:
DENY;tpuser3;*;JOBX0?:JOBY0?
ALLOW;*;*;*
オプションB:
ALLOW;tpuser3;*;JOBX10:JOBY10:JOBZ*
ALLOW;tpuser1:tpuser2;*;*
このケースでは、オプションAは今後、新しく追加されるユーザーに高い権限を認可してしまうため、お薦めできません。
親トピック: 例
4.4.2.4.3 JES_ACL_MODEの使用例
ルール・ファイルに含まれるルールがたった1行だけだとします。
ALLOW; tpuser1; *; JOBA
ユーザーtpuser1がJOBBを発行、ユーザーtpuser2がJOBA発行しようとした場合、これらの要件に対する一致ルールはありません。したがって、JES_ACL_MODEの設定が有効になります。
デフォルトでは、JES_ACL_MODEはMACに設定されているため、このようなアクションは拒否されます。しかし、JES_ACL_MODEをDACに設定すると、前述の操作は許可されます。
親トピック: 例
4.4.3 artjesadminを使用してジョブ・アクセス認可を動的に変更
artjesadminコマンドを使用して、ジョブ・アクセス認可を動的に変更することができます。
artjesadmin -f [security_profile] -x setjesacl aclfile=rulepath[,aclfiletype=PLAIN|ENCRYPTED[,aclmode=MAC|DAC]]
また、artjesadminサブ・コマンドも使用できます。
setjesacl (sja) -f rulepath [-t PLAIN|ENCRYPTED] [-m MAC|DAC]
たとえば、DACモードでジョブ・アクセス認可のルール・ファイルを別のファイル(aclrule.new)に変更する場合、リスト18のとおりartjesadminコマンドを使用するか、またはリスト19のとおりartjesadminサブコマンドを使用します。
リスト18 artjesadminコマンドを使用してジョブ・アクセス認可を動的に変更する例
artjesadmin -f jesprofile -x setjesacl aclfile=aclrule.new,aclmode=DAC
リスト19 artjesadminサブコマンドを使用してジョブ・アクセス認可を動的に変更する例
artjesadmin -f jesprofile
setjesacl -f aclrule.new -m DAC
親トピック: TuxJESジョブ・アクセスの認可
4.5 TuxJESのトレース
ART for Batchは、TuxJESクライアントおよびサーバーで生成されたメッセージ(エラー・メッセージ、警告メッセージ、情報メッセージ、デバッグ・メッセージ)のトレースをサポートします。これらのメッセージは書式設定されて、TuxJESトレース・ファイルに保存されます。表示するメッセージの決定には、4種類のトレース・レベル(ERROR、WARN、INFO、DEBUG)を使用できます。
4.5.1 環境変数の設定
Batch Runtimeを実行する前に、次の環境変数を設定できます。
表4-6 TuxJESのトレースで使用可能な環境変数
| 変数 | 使用方法 |
|---|---|
JES_TRACE_PATH |
TuxJESトレース・ファイルが保存されているディレクトリ。デフォルト・ディレクトリは${APPDIR}/Logsです。
|
JESTRACE
|
TuxJESトレース・メッセージの表示レベル。次のいずれかを設定します。
デフォルト値は
- TuxJESはエラー・メッセージと警告メッセージを出力します。 |
親トピック: TuxJESのトレース
4.5.2 TuxJESトレース・ファイルの理解
TuxJESサーバーとクライアントには、それぞれ専用のTuxJESトレース・ファイルがあります。これらのトレース・ファイルには、TuxJESクライアントやサーバーにより生成されたメッセージ(エラー・メッセージ、警告メッセージ、情報メッセージ、デバッグ・メッセージ)が保存されます。
デフォルトでは、JESトレース・ファイルは${APPDIR}/Logsディレクトリに保存されます。Batch Runtimeを実行する前に、環境変数JES_TRACE_PATHを設定して、このディレクトリを変更できます。
TuxJESサーバーのトレース・ファイルには、サーバー名、グループID、サーバーID、固定の接尾辞「jestrace」を組み合わせた名前が付けられます。例:
ARTJESADM.1.1.jestraceは、ARTJESADMサーバーのjestraceファイル名です。このサーバーはグループ1に属し、そのサーバーIDは1です。ARTJESCONV.1.20.jestraceは、ARTJESCONVサーバーのjestraceファイル名です。このサーバーはグループ1に属し、そのサーバーIDは20です。
TuxJESクライアントのトレース・ファイルには、クライアント名と固定の接尾辞「jestrace」を組み合わせた名前が付けられます。例:
artjesadmin.jestraceは、あるTuxJESクライアントのjestraceファイル名です。
親トピック: TuxJESのトレース
4.5.3 TuxJESトレース・メッセージ形式の理解
TuxJESトレース・メッセージは次のフィールドから構成されています。
表4-7 TuxJESトレース・メッセージ形式
| フィールド | コンテンツ |
|---|---|
| 1 | プロセスID (PID) |
| 2 | スレッドID (TID) |
| 3 | 現在のタイムスタンプ |
| 4 | トレース・メッセージ・レベル。詳細は、「TuxJESトレース・メッセージ・レベルの理解」と「TuxJESトレース・メッセージ・レベルの制御」を参照してください。 |
| 5 | メッセージを表示できる関数 |
| 6 | 考えられる動的な値とともに表示されるメッセージ |
親トピック: TuxJESのトレース
4.5.4 TuxJESトレース・メッセージ・レベルの理解
TuxJESトレース・メッセージ・レベルには次の4種類があります。
- ERRORレベル
TuxJESはエラー・メッセージのみを出力します。
- WARNレベル(デフォルト・レベル)
TuxJESは、エラー・メッセージと警告メッセージを出力します。
- INFOレベル
TuxJESは、エラー・メッセージ、警告メッセージ、情報メッセージを出力します。
- DEBUGレベル
TuxJESはすべてのメッセージを出力します。
親トピック: TuxJESのトレース
4.5.5 TuxJESトレース・メッセージ・レベルの制御
環境変数JESTRACEを使用して、TuxJESトレース・メッセージ・レベルを設定したり、artjesadminコマンドを使用して動的に変更したりして、どのレベルのメッセージが表示されるかを決定できます。
4.5.5.1 JESTRACEを使用してTuxJESトレース・メッセージ・レベルを設定
Batch Runtimeを実行する前に、環境変数JESTRACEを設定する必要があります。JESTRACEを設定すると、UBBCONFIG SERVERSセクションに指定されている、すべてのTuxJESクライアントとサーバーのTuxJESトレース・メッセージ・レベルが設定されます。
JESTRACEの詳細は、「環境変数の設定」を参照してください。
親トピック: TuxJESトレース・メッセージ・レベルの制御
4.5.5.2 artjesadminを使用してTuxJESトレース・メッセージ・レベルを動的に変更
artjesadminコマンドを使用して、TuxJESトレース・メッセージ・レベルを動的に変更することができます。
artjesadmin [-f [security_profile]] -x settracelevel [trclvl=trace_level[,[lmid=machine|grpid=groupid|grpid=groupid,srvid=serverid];...]]
また、artjesadminサブ・コマンドも使用できます。
settracelevel(stl) -t tracelevel [-n machine] | [-g groupid [-i serverid]]
パラメータtrclvlと-tには、0、1、2、または3を設定できます。0はERRORレベル、1はWARNレベル、2はINFOレベル、3はDEBUGレベルを表します。
machine、groupid、およびserveridパラメータのいずれも指定されていない場合、artjesadminは現在のクライアントとすべてのサーバーについて、UBBCONFIG SERVERSセクションで指定されているTuxJESトレース・メッセージ・レベルを変更します。1つまたは複数のパラメータを指定すると、artjesadminは、指定されたサーバーのTuxJESトレース・メッセージ・レベルの実を変更します。現在のクライアントは変更されません。
- 例A:現在のクライアントと、
UBBCONFIG SERVERSセクションに指定されているすべてのサーバーについて、TuxJESトレース・メッセージ・レベルをDEBUGに変更します。リスト20のようにartjesadminコマンドを使用するか、リスト21のようにartjesadminサブ・コマンドを使用できます。 - 例B:
SITE1マシンで稼働しているTuxJESサーバーのTuxJESトレース・メッセージ・レベルをERRORに変更します。リスト22のようにartjesadminコマンドを使用するか、リスト23のようにartjesadminサブ・コマンドを使用します - 例C:グループ1に属するすべてのTuxJES管理サーバーのTuxJESトレース・メッセージ・レベルを
INFOに変更します。リスト24のようにartjesadminコマンドを使用するか、リスト25のようにartjesadminサブ・コマンドを使用します - 例D:グループ1に属し、サーバーIDが1であるTuxJES管理サーバーのTuxJESトレース・メッセージ・レベルを
INFOに変更します。リスト26のようにartjesadminコマンドを使用するか、リスト27のようにartjesadminサブ・コマンドを使用します
詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』のartjesadminに関する項を参照してください。
リスト20 例A: artjesadminコマンド
artjesadmin -x settracelevel trclvl=3
リスト21 例A: artjesadminサブコマンド
artjesadmin
settracelevel -t 3
リスト22 例B: artjesadminコマンド
artjesadmin -x settraceleveltrclvl=0,lmid=SITE1
リスト23 例B: artjesadminサブコマンド
artjesadmin
settracelevel -t 0 -n SITE1
リスト24 例C: artjesadminコマンド
artjesadmin -x settracelevel trclvl=2,grpid=1
リスト25 例C: artjesadminサブコマンド
artjesadmin
settracelevel -t 2 -g 1
リスト26 例D: artjesadminコマンド
artjesadmin -x settracelevel trclvl=2,grpid=1,srvid=1
リスト27 例D: artjesadminサブコマンド
artjesadmin
settracelevel -t 2 -g 1 -i 1