目次 前 次 PDF


Tuxedo Job Enqueueing Service (TuxJES)の使用

Tuxedo Job Enqueueing Service (TuxJES)の使用
この章には次のトピックが含まれます:
概要
バッチ・ジョブ・システムは、重要なメインフレーム・ビジネス・アプリケーション・モデルです。Tuxedo Job Enqueueing Service (TuxJES)エミュレーション・アプリケーションを使用すると、メインフレーム・アプリケーションをオープン・システムに円滑に移行できます。TuxJESは、メインフレームJES2関数のサブセットを実装しています(ジョブの発行、ジョブの表示、ジョブの保留、ジョブの解放、ジョブの取消しなど)。
TuxJESは、次のバッチ・ジョブ・フェーズに対処しています。
要件
TuxJESはOracle Tuxedoアプリケーションであり、TuxJESを実行するためにはOracle Tuxedoが必要です。
分散環境でTuxJESをデプロイするためには、共有ファイル・システム(NFSなど)が必要です。
TuxJESコンポーネント
TuxJESには、次の主要なコンポーネントが含まれます。
Oracle Tuxedoアプリケーションのセキュリティ・プロファイルを生成します
TuxJESシステム用に暗号化されたジョブ・アクセス認可構成ファイルを生成します
TuxJESコマンド・インタフェース。これはOracle Tuxedoクライアントです
TuxJES管理サーバー。これはOracle Tuxedoサーバーです。
TuxJES変換サーバー。これはOracle Tuxedoサーバーです。
TuxJESジョブ・イニシエータ。これはOracle Tuxedoサーバーです。
TuxJESパージ・サーバー。これはOracle Tuxedoサーバーです。
詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』を参照してください。
TuxJESシステムの構成
Oracle TuxedoアプリケーションとしてのTuxJESの設定(/Qを使用)
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"
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 SHMアプリケーション、または複数のマシン上で動作するOracle Tuxedo MPアプリケーションのいずれかです。
Oracle Tuxedoアプリケーションを設定する方法に関する詳細な情報は、Oracle Tuxedo関連のドキュメントを参照してください。
TuxJES用のUBBCONFIG内のブロック・タイム
ジョブ操作(ジョブ発行を除く)については、SCANUNITBLOCKTIMEパラメータを設定して、メッセージ・ブロックのタイムアウト時間などのシステム活動を指定できます。割り当てる値は5の倍数の正数である必要があります。
 
チェック間隔とタイムアウトをきめ細かく制御します。SCANUNITは、0から60秒の間の5の倍数である必要があります。
例: SCANUNIT 20
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秒を超えてブロックされることはありません。
ジョブ発行のタイムアウトの制御はBLOCKTIMESCANUNITではなく、artjesadminコマンドラインで指定します。例:
artjesadmin -t 60 -i JOBA
この例では、JOBAの発行が60秒間で終了しなかった場合、タイムアウトが返されます。
TuxJESではジョブを表すメッセージを格納または取得するために/Qを使用します。TuxJES内部での/Q操作のタイムアウト・メカニズムは、UBBCONFIG RESOURCESセクションのMAXTRANTIMEのみによって制御されます。
UBBCONFIGMAXTRANTIMEを明示的に指定する必要があります。指定しなかった場合、Tuxedoは自動的にデフォルト値を使用します(この値はTuxedoリリースによって異なる可能性があります)。
このMAXTRANTIME値は、特定のシステム・ロードに基づいて設定します。次の例はMAXTRANTIMEを5分に設定しています。
リスト3 例: MAXTRANTIMEを使用したタイムアウトの制御
*RESOURCES
IPCKEY 133770
DOMAINID jessample
MASTER SITE1
MODEL SHM
MAXTRANTIME 300 # 300 seconds
 
UBBCONFIG RESOURCESセクションのMAXTRANTIMEの詳細は、Tuxedoドキュメントの「UBBCONFIG(5)」を参照してください。
tpdequeue()tpenqueue()など、/Q操作でタイムアウトが発生した場合、MAXTRANTIMEを調整して、タイムアウトが発生しないようにします。
Oracle Tuxedo /Qキュー・スペースとキューの作成
TuxJESシステム用にJES2QSPACEという名前の/Qキュー・スペースを作成する必要があります(このキュー・スペースにいくつかの/Qキューを作成する必要があります)。TuxJESには、キュー・スペース(JES2QSPACE)とキューを作成するサンプル・シェル・スクリプト(jesqinit)が用意されています。詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』を参照してください。
ファイル・システム構成
TuxJESは、ファイル・システムを使用して、バッチ実行エンジンと通信します。TuxJESとバッチ実行エンジンとの通信用に、ファイル・システム上にディレクトリが作成されます。ディレクトリの名前は、TuxJES構成ファイルで指定する必要があります。複数のマシン上にTuxJESシステムをデプロイする場合、このディレクトリは共有ファイル・システム(NFSなど)に存在する必要があります。
TuxJES構成ファイル
TuxJES管理サーバーARTJESADMに対して構成ファイルを指定できます。構成ファイルでは、次のパラメータを構成できます。
JESROOT
ジョブ情報を格納するルート・ディレクトリ。これは必須の属性です。このディレクトリが存在しない場合、ARTJESADMによって自動的に作成されます。
DEFAULTJOBCLASS
JCLでジョブ・クラスが設定されていない場合のデフォルトのジョブ・クラス。これはオプションの属性です。この属性が設定されていない場合、デフォルトのジョブ・クラスはAです。
DEFAULTJOBPRIORITY
JCLでジョブ優先度が設定されていない場合のデフォルトのジョブ優先度。これはオプションの属性です。この属性が設定されていない場合、デフォルトのジョブ優先度は0です。
DUPL_JOB=NODELAY
これが設定されていない場合、1つのジョブ名に対して、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ユーザー・マッピング・ファイルが格納される場所のフルパス。これは、その値がUSER_MAPPINGの場合は、PRIVILEGE_MODEとともに使用されます。
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 (SYSLOGDAILYWEEKLY、またはMONTHLYに設定されている場合)、または$JESROOT (SYSLOGONに設定されている場合)に配置されます。
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>に存在)をすべて削除します。
リスト4 jesconfigの例
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
 
注意:
自動パージ・ジョブについては、フォルダ<JESROOT>/<JOB_ID>にあるすべてのファイルが<JESROOT>/<JOB_ID>.bakとしてバックアップされます
TuxJESセキュリティ構成
TuxJESでは、Oracle Tuxedoセキュリティ・メカニズムを活用して認証を実装します。認証が有効の場合、genapprofileユーティリティを使用してセキュリティ・プロファイルを生成し、それをartjesadminパラメータとして使用して、TuxJESシステムにアクセスしてください。プロファイルで使用されるユーザーは、ジョブ所有者です。ジョブを管理(取消し、パージ、保留および解放)できるのは、所有者だけです。ジョブは、誰でも表示できます。ジョブに所有者がない場合、誰でも操作できます。
Oracle Tuxedoアプリケーションはセキュリティが構成されていない場合でも、genjesprofileユーティリティを使用してジョブ所有者権限のチェックを強制し、データベース接続MT_DB_LOGINを格納できます。
このセキュリティ・メカニズムに基づき、ART for Batchは、ユーザーのジョブ操作アクションを制御するための軽量ジョブ・アクセス認可メカニズムを提供します。この認可に必要なのは、認可サーバーやサード・パーティのセキュリティ製品を使用しないシンプルな構成のみです。詳細は、「TuxJESジョブ・アクセスの認可」を参照してください。
TuxJESユーザー・マッピング・ファイル
PRIVILEGE_MODE値をMAPPING_CREDENTIALに指定すると、ユーザー・マッピング・ファイルがロードされ有効になります。これは、Oracle TuxedoユーザーとOSユーザーの間のマッピング関係を定義します。マッピング・ファイル内のすべての行は次のフォーマットになります。
tuxedousername OSusername
ユーザー・マッピング・ファイルの所有者はroot、ファイル権限は-rw-------にすることをお薦めします。
リスト5に、TuxJESシステム用ユーザー・マッピング・ファイルの一部の例を示します。
リスト5 TuxJESシステム用ユーザー・マッピング・ファイル例
tuxedouser1 OSuser1
tuxedouser2 OSuser2
 
Oracle TuxedoアプリケーションとしてのTuxJESの設定(データベースを使用)
TuxJESの設定
TuxJESで/Qのかわりにデータベースを使用して、バッチ・ジョブのメタデータを格納および管理できます。このモードではTuxJESに/Qが不要になるため、パフォーマンスの向上と完全なデータ整合性を実現できます。
注意:
UBBCONFIG
TuxJESでは/Qではなくデータベースを使用してジョブが格納されるため、/QおよびサーバーTMQUEUE/TMS_QMのグループを使用する必要がありません。他のすべてのサーバーおよびグループは影響を受けません。
JESCONFIG
データベースを使用できるようにするために、USE_DBという名前の新しい構成項目がJESCONFIGファイルに追加されました。表2USE_DBの値を示します。リスト6に例を示します。
 
注意:
autopurgeはデータベース・モードではサポートされていません。autopurgeの設定はすべて無視されます。
リスト6 JESCONFIGの例
JESROOT=/nfs/users/john_doe/jreroot
USE_DB=ORACLE
DEFAULTJOBCLASS=B
DEFAULTJOBPRIORITY=9
EVENTPOST=S,C,E,P,L,A
 
Oracle Databaseの設定
データベース資格証明の取得
データベースを記憶域として使用する場合は、接続情報が必要です。これは暗号化され、JESROOTディレクトリの別の非表示ファイル(JESROOT/.jessysprofile)に格納されます。このファイルを生成するには、gensysprofileユーティリティを使用します。
使用方法は次のとおりです。
gensysprofile -d <JESROOT>
gensysprofileが起動されると、ユーザー名、パスワード、(データベース)サーバー名およびDBスキーマを入力するよう求められます。画面上のプロンプトを示します。
リスト7 画面プロンプト
User name:
Password:
Server name:
DB Schema(Optional):
 
(データベース)サーバー名の文字列はデータベース・サーバーが存在する場所を示し、通常、データベース・インスタンスの名前です。構文は、TWO_TASK環境変数の設定に使用されるものと同じです。書式は次のいずれかです。
たとえば、orcl12cまたは//bej301420.cn.oracle.com:1522/orcl.cn.oracle.comを使用できます。
出力は、JESROOTディレクトリの非表示ファイル.jessysprofileです。
DBスキーマは、ユーザーが入力するためのオプションのパラメータです。これが指定されている場合、TuxJESはバッチ・ジョブのメタデータを指定されたスキーマに格納して管理します。
注意:
データベースがその場所に存在せず、SQLNETを介して接続する必要がある場合は、ホスト、ポートおよびserver_nameを//host:port/server_nameの書式で指定する必要があります。
gensysprofileは、JES管理者またはOSルート・ユーザーのみが実行できます。
表の作成
Oracle Databaseを使用してジョブ管理データを格納するには、最初に表JES2_JOBNUMおよびJES2_JOB_PARAMを作成する必要があります。これらの2つの表を作成および削除するために、2つの外部シェル・スクリプトが提供されています。2つのスクリプトは$JESDIR/toolsにあります。
このシェル・スクリプトでは表JES2_JOB_PARAMが作成され、フィールドJOBNAMECLASSPRTYSTATUSSUBMITTIMEGRPIDおよびSRVIDの索引が作成されます。表JES2_JOBNUMも作成され、JES2_JOBNUM内のレコードが初期化されます。スキーマ名はオプションのパラメータです。スキーマ名が指定されている場合、表JES2_JOBNUMおよび表JES2_JOB_PARAMは指定されたスキーマに作成されます。使用方法は次のとおりです。
CreateTableJobDataOra.sh <DB_LOGIN_PARAMETER> <schema>
このシェル・スクリプトでは、表JES2_JOBNUMおよび表JES2_JOB_PARAMが削除されます。スキーマ名はオプションのパラメータです。スキーマ名が指定されている場合、表JES2_JOBNUMおよび表JES2_JOB_PARAMは指定されたスキーマで削除されます。使用方法は次のとおりです。
DropTableJobDataOra.sh <DB_LOGIN_PARAMETER> <schema>
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には、次のパラメータが含まれる場合があります。
 
リスト8にサンプルを示します。このサンプルでは、FAILOVER_MODEにフェイルオーバー・タイプsessionおよびメソッドbasicが構成されています。
リスト8 フェイルオーバーのサンプル構成
TNSNAMES.ora
ART =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = bej301738.cn.oracle.com)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = art)
(FAILOVER_MODE =
(TYPE = session)
(METHOD = basic)
)
)
)
 
DB2データベースの設定
DB2データベースを設定するには、次の手順を実行します。
注意:
JESCONFIGUSE_DB=DB2を構成する必要があります。詳細は、「TuxJESの設定」を参照してください。
データベース資格証明の取得
データベースを記憶域として使用する場合は、接続情報が必要です。これは暗号化され、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
 
注意:
表の作成
次のコマンドラインを使用して、DB2で必要な表を作成します。
$JESDIR/tools/CreateTableJobDataDb2.sh <DB CONN STRING> <schema>
次のコマンドラインを使用して、これらの表を削除できます。
$JESDIR/tools/DropTableJobDataDb2.sh <DB CONN STRING> <schema>
リスト10に、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でのジョブの管理
この機能を使用するには、次の手順を実行します。
JESドメインを起動する前に、DB2環境を準備しておく必要があります。db2profileを使用するか($source /home/db2b004/sqllib/db2profileなど)、LD_LIBRARY_PATHPATH (および他のDB2環境変数を1つずつ)を設定することをお薦めします。詳細は、DB2のドキュメントを参照してください。
tmbootを実行してJESドメインを起動してから、artjesadminを使用してジョブを発行または管理します。
BDBデータベースの設定
BDBデータベースを設定するには、次の手順を実行します。
注意:
JESCONFIGUSE_DB=BDBを構成する必要があります。詳細は、「TuxJESの設定」を参照してください。
データベース資格証明の取得
データベースを記憶域として使用する場合は、接続情報が必要です。これは暗号化され、JESROOTディレクトリの別の非表示ファイル(JESROOT/.jessysprofile)に格納されます。このファイルを生成するには、gensysprofileユーティリティを使用します。
使用方法は次のとおりです。
gensysprofile -d <JESROOT>
BDBにはユーザー名とパスワードがないため、usernameフィールドとpasswordフィールドを空のままにして、直接[Enter]を押してください。instance nameフィールドには、BDB DBファイルのファイル名を入力する必要があります(パスは含めないでください)。たとえば、BDB DBファイルが"/home/testuser1/appdir/jesroot/jesbdb"の場合、対応するデータベース・インスタンス名は"jesbdb"になります。
表の作成
次のコマンドラインを使用して、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>
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|-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に関する項を参照してください。
ジョブ情報の表示
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サブコマンドの出力には、次の内容が含まれます。
EXECUTING: ジョブは実行中です
CONVING: ジョブは変換を待機しています
WAITING: ジョブは実行を待機しています
DONE: ジョブは正常に完了しました
FAIL: ジョブは完了しましたが、失敗しました
HOLD_WAITING: ジョブは、変換後、保留状態です
HOLD_CONVING: ジョブは、変換なしの保留状態です
INDOUBT: ジョブは、イニシエータが再起動されたため、インダウト状態です
CANCELED: ジョブは取り消されました
Type Run: ジョブのTYPRUN定義。
注意:
ブロック・タイムの設定方法の詳細は、「TuxJES用のUBBCONFIG内のブロック・タイム」を参照してください。
ジョブ・ステータスの取得(同期)
ジョブ・ステータスを同期的に取得するには、artjesadminを次の書式で使用します。
artjesadmin [-f [security_profile]] -p -j jobid
-p-j
オプション-p-jは、artjesadminコンソールを使用せずにジョブ・ステータスを取得するために追加されたオプションです。
終了コード
表4に、-pの場合のartjesadminの終了コードを示します。
 
このステータスは、tpenqueue()が失敗したときに発生します。
ジョブが実行されているときに、JESサーバーARTJESINITIATORがシャットダウンして再起動した場合、ジョブ・ステータスはINDOUBTになります。
標準出力
表5に示す情報は、次の書式でstdoutに出力されます。
<JOBID>,<JOBNAME>,<JOBSTATUS>,<JOB RETURN CODE>
 
リスト11 例: ジョブが正常に終了しました
00000002,JOBA,DONE,C0000
 
リスト12 例: ジョブは終了しましたが、失敗しています
00000002,JOBA,FAILED,U0568
 
リスト13 例: ジョブが実行中です
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 | -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システムからジョブを削除します。
自動ジョブ・パージ
キュー・スペース内の使用可能なスペースがすべて使用されている場合は、新しいジョブを発行できません。新しいジョブの発行を有効にするには、ユーザーは一部のジョブを手動でパージし、使用率を低下させる必要があります。ただし、これは、アプリケーション管理者に不都合が生じ、大きな労力がかかる場合があります。もう1つの拡張機能である自動パージを導入できます。自動パージを有効にした場合、キュー・スペースの使用率が警告レベルのしきい値に達すると、OUTPUTキューにある指定した数のジョブが自動的にパージされます。自動パージは有効または無効(デフォルト)にできます。ユーザーは自動パージされるすべてのジョブのファイルをバックアップするか、これらを完全に削除するかを選択できます。
注意:
ジョブの発行が失敗すると、自動パージは起動されません。
自動パージは現在のジョブの発行に影響しません。
JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドで自動パージを実行することはありません。
TSAMPlusプラグインを使用したOEM統合は、ジョブ・ログとsysoutの自動アーカイブをサポートしています。ジョブがパージされると、主要なジョブ情報とジョブ・ログはEM管理リポジトリで入手可能になります。
キュー・スペースの使用率のチェック動作は、あるジョブがキュー・スペースに正常に挿入された時点でのみ発生します。ジョブの発行のみが、このチェック動作をアクティブ化できます。ジョブの発行が失敗すると、このチェック動作はアクティブ化されません。
チェック結果は現在のジョブの発行に影響しません。
JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドでキュー領域の使用率のチェックを実行することはありません。
キュー領域の警告しきい値の設定
キュー・スペースの使用率の警告しきい値を設定します。このしきい値はファイルjesconfigで構成できます。新しいジョブを発行すると、JESは、キュー・スペースの現在の使用率が警告しきい値に達していないかをチェックします。
1.
2.
この機能は、tuxedo /Qの新機能の1つです。現在のキュー領域の使用率がパーセンテージで返されます。
注意:
キュー領域が警告しきい値を超えているものの100よりも小さい場合は、使用可能な領域がすべて使用されているわけではないため、新しいジョブの発行は許可されますが、警告メッセージがartjesadminコンソールに表示されます。
ジョブの発行が失敗すると、このチェック動作は起動されません。
チェック結果は現在のジョブの発行に影響しません。
JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドでキュー領域の使用率のチェックを実行することはありません。
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: 最大同時実行ジョブ数
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サーバーが再開します。
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別サーバーについて、実行する新しいジョブの取得を再開します。
イベントのサブスクライブ/サブスクライブ解除
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ジョブ・アクセスの認可
TuxJESセキュリティ・メカニズムに基づき、ART for Batchは、ユーザーのジョブ操作アクションを制御するための軽量ジョブ・アクセス認可メカニズムを提供します。この認可に必要なのは、認可サーバーやサード・パーティのセキュリティ製品を使用しないシンプルな構成のみです。
このメカニズムでは、管理者はTuxJESジョブ操作認可ルールを使用して、特定のユーザーに特定のジョブ操作の実行を認可します。
あるOracle TuxedoユーザーがUNIX/Linuxのrootにマップされている(または、これに相当する)場合、このユーザーはスーパー・ユーザーとして扱われます。このスーパー・ユーザーはどのようなジョブ操作でも、認可チェックなしに実行を許可されます。
ジョブ・アクセス認可メカニズムの構成
TuxJESジョブ・アクセス認可メカニズムを有効化するには、次のように構成する必要があります。
JESCONFIGJES_ACL_FILEを設定します。
これは、ジョブ・アクセス認可構成ファイルのフルパスを指定します。例:
JES_ACL_FILE=/home/user/simpjob/jesacl
JES_ACL_FILEを正常に開くことができなかった場合、または不正な書式ルールが含まれていた場合、ARTJESADMをブートできません。
注意:
ジョブ・アクセス認可メカニズムの構成は、他のスタンドアロンのACL認可サーバーよりも優先されるため、EAUTHSVRなど他の認可サーバーを使用する場合、またはいかなる種類の認可も使用しない場合は、JES_ACL_FILEを構成しないでください。
注意:
TuxJESセキュリティ・メカニズムを有効にするには、前述のJES_ACL_FILE構成に加えて、他の構成の設定も必要です。たとえば、JESCONFIGPRIVILEGE_MODEUSER_IDENTICALまたはUSER_MAPPINGに設定し、UBBCONFIGファイルでSECURITYUSER_AUTHACL、またはMANDATORY_ACLに設定します。
このメカニズムを使用する場合、次の構成は省略可能です。
JES_ACL_FILEを暗号化するかどうかを指定するには、JESCONFIGJES_ACL_FILE_TYPEPLAIN (デフォルト)またはENCRYPTEDに設定します。
ルール・ファイルに一致するルールが見つからなかった場合のアクションを指定するには、JESCONFIGJES_ACL_MODEMAC (デフォルト)またはDACに設定します。例については、「JES_ACL_MODEの使用例」を参照してください。
また、TuxJESシステム用の暗号化されたルール・ファイルを生成するには、genjesaclツールを使用します。
詳細は、「ARTJESADM」「genjesacl」を参照してください。
ジョブ操作認可ルールの使用
ルールの設定
ルールを暗号化するかしないかを設定するJES_ACL_FILEファイル。
プレーンなJES_ACL_FILEファイル
JES_ACL_FILEで指定されたプレーン・テキスト・ファイルにジョブ操作認可ルールを設定します。次のCSV形式を使用します。
permission; user-list; operation-list; jobname-list
次にいくつかの例を示します。
リスト14: この例では、ユーザーtpuser1は、あらゆるジョブで、あらゆる種類の操作を実行することを認可されています。
リスト15: この例では、ユーザーtpuser2は、名前に接頭辞JOBZを含むジョブに対する操作を認可されています。
リスト16: この例では、ジョブのパージを認可されているユーザーはいません。
リスト14 ルール設定の例
ALLOW; tpuser1; *; *
 
リスト15 ルール設定の例
ALLOW; tpuser2; *; JOBZ*
 
リスト16 ルール設定の例
DENY;*; PURGE;*
 
permission
権限にはALLOWまたはDENYを指定します。
このフィールドでは大文字と小文字が区別されます。
user-list
Oracle Tuxedoユーザー名を指定します。ユーザー名を指定する場合、Oracle Tuxedoのネーミング要件だけでなく、次の要件にも従う必要があります。
- ユーザー名にはセミコロン(
;)は使用できません。
- アスタリスク(*)のみのユーザー名は使用できません。
複数のユーザー名は:で区切ります。アスタリスクは(*)すべてのOracle Tuxedoユーザーを意味します。このフィールドではワイルドカードはサポートされていません。たとえば、tpuser*tpuserで始まる名前を持つすべてのユーザーの意味ではありません。
Oracle Tuxedoのネーミング要件については、『Oracle Tuxedoコマンド・リファレンス』を参照してください。
operation-list
ジョブ操作を指定します。指定できるジョブ操作は、SUBMITCANCELPURGEHOLDおよびRELEASEです。
これら5種類のジョブ操作のうち、最も重要なのはSUBMITで、残りの4つのジョブ操作の前提条件です。その理由は、ユーザーがジョブを取消し、パージ、保留、またはリリースしようとした場合、TuxJESはまず、このユーザーがそのジョブの所有者であるかどうかをチェックするからです(ユーザーがSUBMITの権限を付与されていて、ジョブの発行に成功した場合のみ、このユーザーはこのジョブの所有者になり、TuxJESシステムからパージされるまでジョブを所有し続けます)。
複数の操作は「:」で区切ります。アスタリスク(*)はこれらの操作すべてを意味します(SUBMIT:CANCEL:PURGE:HOLD:RELEASEに同じです)。このフィールドではワイルドカードはサポートされていません。このフィールドでは、大文字/小文字が区別されます。
jobname-list
ジョブ名を指定します。ジョブ名はジョブのファイル名ではありません。これは、m_JobBeginで指定された内部ジョブ名で、JCLの//<NAME> JOB文から変換されたものです。
複数のジョブ名は:で区切ります。ワイルドカード「*」(0個以上の文字)、および「?」(1文字のみ)がサポートされています。
暗号化されたJES_ACL_FILEファイル
JES_ACL_FILE_TYPE=ENCRYPTEDを設定した場合、JES_ACL_FILEファイルを暗号化されたファイルとして構成する必要があります。この暗号化されたファイルはgenjesaclツールで生成可能です。
詳細は、「JESCONFIG」「genjesacl」を参照してください。
処理ルール
複数の一致ルールが存在する場合、最初の一致ルールが優先されます。一致ルールとは、ユーザー、操作およびジョブ・フィールドがすべて一致することを意味します。
ユーザー、操作およびジョブに一致するルールが見つからない場合、JESCONFIGファイルのJES_ACL_MODEが有効になります。JES_ACL_MODEが設定されていない場合、そのデフォルト値で、操作が拒否されることを意味するJES_ACL_MODE=MACが有効になります。
リスト17に例を示します。
リスト17 ルール処理の例
ALLOW; tpuser1;*;*
DENY; tpuser1;*; JOBA
 
前述のルールは2つとも一致ルールですが、1つ目の一致ルールが優先されます。つまり、ユーザーtpuser1JOBAへの操作が認可され、2つ目の一致ルールは有効になりません。
ユーザーtpuser1に、JOBAを除くすべてのジョブを操作させる場合は、前述の2つのルールの順序を入れ替えます。
ルールへのコメントの追加
文字#で始まる行(先頭のスペースは無視されます)はコメントとみなされます。例:
# This is comment
# This is also comment.
ALLOW;tpuser1;*;JOBA:JOBB
同じ行のルールの直後にはコメントを記述しないでください。たとえば、次の行の#Cはコメントとはみなされません。
ALLOW;tpuser1;*;JOBA:JOBB#C
サンプル
様々な方法でルールを設定した例
名前がJOBAAJOBBBおよびJOBCCで始まるジョブを保護する必要があるとします。tpuser1tpuser2に名前がJOBAAで始まるジョブへの権限を、tpuser3tpuser4に名前が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を構成します。
ワイルドカードを使ってルールを設定した例
システムに3人のOracle Tuxedoユーザー(tpuser1tpuser2tpuser3)と30個のジョブ(JOBX01からJOBX10JOBY01からJOBY10JOBZ01からJOBZ10)があるとします。
tpuser1tpuser2にはすべてのジョブを操作する権限を与え、tpuser3には12個のジョブ(JOBX10JOBY10JOBZ01からJOBZ10)のみを操作する権限を与えることにします。
様々な解決方法があります。
オプションA:
DENY;tpuser3;*;JOBX0?:JOBY0?
ALLOW;*;*;*
オプションB:
ALLOW;tpuser3;*;JOBX10:JOBY10:JOBZ*
ALLOW;tpuser1:tpuser2;*;*
このケースでは、オプションAは今後、新しく追加されるユーザーに高い権限を認可してしまうため、お薦めできません。
JES_ACL_MODEの使用例
ルール・ファイルに含まれるルールがたった1行だけだとします。
ALLOW; tpuser1; *; JOBA
ユーザーtpuser1JOBBを発行し、ユーザーtpuser2JOBAを発行する場合、これらの要件に対する一致ルールがないため、JES_ACL_MODEの設定が有効になります。
デフォルトでは、JES_ACL_MODEMACであるため、これらのアクションは拒否されます。ただし、JES_ACL_MODEDACに指定すると、前述の操作は許可されます。
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のトレース
ART for Batchは、TuxJESクライアントおよびサーバーで生成されたメッセージ(エラー・メッセージ、警告メッセージ、情報メッセージ、デバッグ・メッセージ)のトレースをサポートします。これらのメッセージは書式設定されて、TuxJESトレース・ファイルに保存されます。表示するメッセージの決定には、4種類のトレース・レベル(ERROR、WARN、INFO、DEBUG)を使用できます。
環境変数を設定する
Batch Runtimeを実行する前に、次の環境変数を設定できます。
 
ERRORまたはerror: TuxJESはエラー・メッセージのみを出力します。
WARNまたはwarn: TuxJESは、エラー・メッセージと警告メッセージを出力します。
INFOまたはinfo: TuxJESは、エラー・メッセージ、警告メッセージ、情報メッセージを出力します。
DEBUGまたはdebug: TuxJESはすべてのメッセージを出力します。
デフォルト値はWARNです。
JESTRACEが定義されていない場合、または定義されているが前述の値のいずれも指定されていない場合は、TuxJESは、JESTRACEWARNが指定されているものとみなします。つまり、TuxJESはエラー・メッセージと警告メッセージを出力します。
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トレース・メッセージ形式の理解
TuxJESトレース・メッセージは次のフィールドから構成されています。
 
TuxJESトレース・メッセージ・レベルの理解
TuxJESトレース・メッセージ・レベルには次の4種類があります。
TuxJESはエラー・メッセージのみを出力します。
TuxJESは、エラー・メッセージと警告メッセージを出力します。
TuxJESは、エラー・メッセージ、警告メッセージ、情報メッセージを出力します。
TuxJESはすべてのメッセージを出力します。
TuxJESトレース・メッセージ・レベルの制御
環境変数JESTRACEを使用してTuxJESトレース・メッセージ・レベルを設定したり、artjesadminコマンドを使用してこのレベルを動的に変更し、表示されるメッセージのレベルを決定できます。
JESTRACEを使用してTuxJESトレース・メッセージ・レベルを設定
バッチ・ランタイムを実行する前に、環境変数JESTRACEを設定する必要があります。JESTRACEを設定すると、UBBCONFIG SERVERSセクションに指定されている、すべてのTuxJESクライアントとサーバーのTuxJESトレース・メッセージ・レベルが設定されます。
JESTRACEの詳細は、「環境変数を設定する」を参照してください。
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には、012または3を設定できます。0ERRORレベル、1WARNレベル、2INFOレベル、3DEBUGレベルを表します。
machinegroupidおよび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 settracelevel trclvl=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
 
関連項目

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved