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には、次の主要なコンポーネントが含まれます。

  • genjesprofile

    Oracle Tuxedoアプリケーションのセキュリティ・プロファイルを生成します

  • genjesacl

    TuxJESシステム用に暗号化されたジョブ・アクセス認可構成ファイルを生成します:

  • artjesadmin

    TuxJESコマンド・インタフェース。Oracle Tuxedoクライアントです

  • ARTJESADM

    TuxJES管理サーバー。Oracle Tuxedoサーバーです。

  • ARTJESCONV

    TuxJES変換サーバー。Oracle Tuxedoサーバーです。

  • ARTJESINITIATOR

    JobTuxJESイニシエータ。Oracle Tuxedoサーバーです。

  • ARTJESPURGE

    TuxJESパージ・サーバー。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が、正しく構成される必要があります。

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サーバーが含まれている必要があります。

  • ARTJESADM
  • ARTJESCONV
  • ARTJESINITIATOR
  • ARTJESPURGE

ノート:

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関連のドキュメントを参照してください。

4.2.1.1.1 TuxJES用のUBBCONFIG内のブロック・タイム
ジョブ操作(ジョブ発行を除く)については、SCANUNITBLOCKTIMEパラメータを設定して、メッセージ・ブロックのタイムアウト時間などのシステム活動を指定できます。割り当てる値は5の倍数の正数である必要があります。

表4-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秒を超えてブロックされることはありません。

ジョブ発行のタイムアウトの制御は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を調整して、タイムアウトが発生しないようにします。

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 (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

ノート:

キュー領域の使用率が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の設定
TuxJESで/Qの代替としてデータベースを使用して、バッチ・ジョブのメタデータを格納および管理できます。このモードではTuxJESに/Qが不要になり、パフォーマンスの向上と完全なデータ整合性が提供されます。

ノート:

現在はOracle Databaseのみがサポートされています。
4.2.2.1.1 UBBCONFIG

TuxJESでは/Qではなくデータベースを使用してジョブが格納されるため、/QおよびサーバーTMQUEUE/TMS_QMのグループを使用する必要がありません。他のすべてのサーバーおよびグループは影響を受けません。

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モードと同じです。
リスト6 JESCONFIGの例
JESROOT=/nfs/users/john_doe/jreroot
USE_DB=ORACLE
DEFAULTJOBCLASS=B
DEFAULTJOBPRIORITY=9
EVENTPOST=S,C,E,P,L,A
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_name
  • instance_name

たとえば、orcl12cまたは//bej301420.cn.myexample.com:1522/orcl.cn.myexample.comを使用できます。

出力は、JESROOTディレクトリの非表示ファイル.jessysprofileです。

DBスキーマは、ユーザーが入力するためのオプションのパラメータです。これが指定されている場合、TuxJESはバッチ・ジョブのメタデータを指定されたスキーマに格納して管理します。

ノート:

  • データベースがその場所に存在せず、SQLNETを通じて接続する必要がある場合は、ホスト、ポートおよびserver_nameを//host:port/server_nameの書式で指定する必要があります。
  • gensysprofileは、JES管理者またはOSルート・ユーザーのみが実行できます。
4.2.2.2.2 表の作成

Oracle Databaseを使用してジョブ管理データを格納するには、最初に表JES2_JOBNUMおよびJES2_JOB_PARAMを作成する必要があります。これらの2つの表を作成および削除するために、2つの外部シェル・スクリプトが提供されています。2つのスクリプトは$JESDIR/toolsにあります。

  • CreateTableJobDataOra.sh

    このシェル・スクリプトでは表JES2_JOB_PARAMが作成され、フィールドJOBNAMECLASSPRTYSTATUSSUBMITTIMEGRPIDおよび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>

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が構成されています。

リスト8 フェイルオーバーのサンプル構成
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)
)
)
)
4.2.2.3 DB2データベースの設定

ノート:

JESCONFIGUSE_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はバッチ・ジョブのメタデータを指定されたスキーマに格納して管理します。
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.
4.2.2.3.3 DB2でのジョブの管理

この機能を使用するには、次の手順を実行します。

  • DB2環境の設定

    JESドメインを起動する前に、DB2環境の準備を完了させる必要があります。db2profileを使用するか($source /home/db2b004/sqllib/db2profileのように)、LD_LIBRARY_PATHPATH (および他のDB2環境変数を1つずつ)を設定することをお薦めします。詳細は、DB2のドキュメントを参照してください。

  • JESドメインの起動

    tmbootを実行してJESドメインを起動してから、artjesadminを使用してジョブの送信または管理を行います。

4.2.2.4 BDBデータベースの設定

ノート:

JESCONFIGUSE_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"になります。

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>

4.2.3 MPモードでのTuxJESの設定

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

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

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

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に関する項を参照してください。

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内のブロック・タイム」を参照してください。

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: すべてのジョブを保留します

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: すべてのジョブを解放します

4.3.5 ジョブの取消し

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

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

-n jobname: 指定されたジョブ名を持つジョブを取り消します

-j jobid: 個別のジョブを取り消します

-c job_class: 特定のクラス・ジョブを取り消します

-a: すべてのジョブを取り消します

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 自動ジョブ・パージ
キュー領域内の使用可能な領域がすべて使用されている場合は、新しいジョブは発行できません。新しいジョブの発行を有効化するには、ユーザーは一部のジョブを手動でパージし、使用率を低下する必要があります。ただし、これは、アプリケーション管理者に不都合が生じ、大きな労力がかかる場合があります。もう1つの強化、自動パージを導入できます。自動パージを有効にした場合、キュー領域の使用率が警告レベルしきい値に達すると、OUTPUTキューにある指定した数のジョブが自動的にパージされます。自動パージは有効または無効(デフォルト)にできます。ユーザーは自動パージされるすべてのジョブのファイルをバックアップするのか、完全に削除するのかを選択できます。

ノート:

自動パージは、あるジョブがキュー領域に正常に挿入され、キューの使用率が警告しきい値に到した時点でのみ発生します。この時点でOUTPUTキューにジョブが存在しない場合は、ジョブは自動パージされません。極端な例として、あるジョブが発行された後に、キュー領域の状態が「使用可能な領域がすべて使用されています」および「OUTPUTキューにジョブがありません」に変更された場合は、この最後のジョブの発行によってジョブが自動パージされることはありません。この状況では、自動パージは実行されないため、ユーザーは一部のジョブを手動でパージする必要があります。そうでない場合は、新しいジョブを発行できません。

ジョブの発行が失敗すると、自動パージは起動されません。

自動パージは現在のジョブの発行に影響しません。

JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドで自動パージを実行することはありません。

TSAMPlusプラグインを使用したOEM統合は、ジョブ・ログとsysoutの自動アーカイブをサポートしています。ジョブがパージされると、主要なジョブ情報とジョブ・ログはEM管理リポジトリで入手可能になります。

キュー領域の使用率のチェック動作は、あるジョブがキュー領域に正常に挿入された時点でのみ発生します。ジョブの発行のみが、このチェック動作を起動できます。ジョブの発行が失敗すると、このチェック動作は起動されません。

チェック結果は現在のジョブの発行に影響しません。

JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドでキュー領域の使用率のチェックを実行することはありません。

4.3.6.1.1 キュー領域の警告しきい値の設定

キュー領域の使用率の警告しきい値を設定します。このしきい値はファイルjesconfigで構成できます。新しいジョブを発行すると、JESは、キュー領域の現在の使用率が警告しきい値に達していないかをチェックします。

  1. jesconfigファイルで自動パージが有効になっている場合は、自動パージを起動します。
  2. 「ジョブは正常に発行されました」というメッセージに続けて、1行の警告メッセージがartjesadminコンソールに出力されます。これは、ユーザーに一部のジョブをパージするよう示しています。または、自動パージされたジョブの数が表示されます(自動パージが有効になっている場合)。
この機能は、tuxedo /Qの新機能の1つです。現在のキュー領域の使用率がパーセンテージで返されます。

ノート:

キュー領域の使用率のチェック動作は、あるジョブがキュー領域に正常に挿入された時点でのみ発生します。ジョブの発行のみが、このチェック動作を起動できます。

キュー領域が警告しきい値を超えているものの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: 最大同時実行ジョブ数

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別サーバーについて、実行する新しいジョブの取得を再開します。

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コンソール上に通知されます。

4.4 TuxJESジョブ・アクセスの認可

TuxJESセキュリティ・メカニズムに基づき、ART for Batchは、ユーザーのジョブ操作アクションを制御するための軽量ジョブ・アクセス認可メカニズムを提供します。この認可に必要なのはシンプルな構成のみです。認可サーバーやサードパーティのセキュリティ製品さえ必要ではありません。

このメカニズムでは、管理者はTuxJESジョブ操作認可ルールを使用して、特定のユーザーに特定のジョブ操作の実行を認可します。

あるOracle TuxedoユーザーがUnix/Linuxのrootにマップされている(または、これに相当する)場合、このユーザーはスーパー・ユーザーとして扱われます。このスーパー・ユーザーはどのようなジョブ操作でも、認可チェックなしに実行を許可されます。

4.4.1 ジョブ・アクセス認可メカニズムの構成

TuxJESジョブ・アクセス認可メカニズムを有効化するには、次のように構成する必要があります。

  • JESCONFIGJES_ACL_FILEを設定します

    これは、ジョブ・アクセス認可構成ファイルのフルパスを指定します。例:

    JES_ACL_FILE=/home/user/simpjob/jesacl

    JES_ACL_FILEを正常に開くことができなかった場合、または不正な書式ルールが含まれていた場合、ARTJESADMをブートできません。

ノート:

ジョブ・アクセス認可メカニズムの構成は、その他のスタンドアロンのACL認可サーバーよりも優先されますので、EAUTHSVRなど他の認可サーバーを使用する場合、またはいかなる種類の認可も使用したくない場合は、JES_ACL_FILEを構成しないでください。

前述のJES_ACL_FILE構成のほか、TuxJESセキュリティ・メカニズムを有効化するための構成の設定も必要です。たとえば、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」を参照してください。

4.4.2 ジョブ操作認可ルールの使用

この項の内容は次のとおりです。

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

ジョブ操作を指定します。指定できるジョブ操作は、SUBMITCANCELPURGE、HOLD、およびRELEASEです。

これら5種類のジョブ操作のうち、最も重要なのはSUBMITで、残りの4つのジョブ操作の前提条件です。その理由は、ユーザーがジョブを取消し、パージ、保留、またはリリースしようとした場合、TuxJESはまず、このユーザーがそのジョブの所有者であるかどうかをチェックするからです(ユーザーがSUBMITの権限を付与されていて、ジョブの発行に成功した場合のみ、このユーザーはこのジョブの所有者になり、TuxJESシステムからパージされるまでジョブを所有し続けます)。

複数の操作は「:」で区切ります。アスタリスク(*)はこれらの操作すべてを意味します(SUBMIT:CANCEL:PURGE:HOLD:RELEASEに同じです)。このフィールドではワイルドカードはサポートされていません。このフィールドでは、大文字/小文字が区別されます。

jobname-list

ジョブ名を指定します。ジョブ名はジョブのファイル名ではありません。これはm_JobBeginで指定された内部的なジョブ名で、JCLの/<NAME> JOB文から変換されたものです。

複数のジョブ名は、:で区切ります。ワイルドカード「*」(0個以上の文字)、および「?」(1文字のみ)がサポートされています。

4.4.2.1.2 暗号化されたJES_ACL_FILEファイル

JES_ACL_FILE_TYPE=ENCRYPTEDを設定した場合、JES_ACL_FILEファイルを暗号化されたファイルとして構成する必要があります。この暗号化されたファイルはgenjesaclツールで生成可能です。

詳細は、「JESCONFIG」「genjesacl」を参照してください。

4.4.2.2 ルールの処理

複数の一致ルールが存在する場合、先頭の一致ルールが最優先されます。一致ルールは、ユーザー、操作、ジョブ・フィールドがすべて一致することを意味します。

ユーザー、操作、およびジョブに一致するルールが見つからない場合、JESCONFIGファイルのJES_ACL_MODEが有効になります。JES_ACL_MODEが設定されていない場合、そのデフォルト値で、操作が拒否されることを意味するJES_ACL_MODE=MACが有効になります。

リスト17 ルール処理の例

ALLOW; tpuser1;*;*

DENY; tpuser1;*; JOBA

前述のルールは2つとも一致ルールですが、1つめの一致ルールが優先されます。つまり、tpuser1JOBAへの操作が認可され、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 様々な方法でルールを設定した例

名前が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を設定します。

4.4.2.4.2 ワイルドカードを使ってルールを設定した例

システムに3人のOracle Tuxedoユーザー、tpuser1tpuser2tpuser3と30個のジョブJOBX01からJOBX10JOBY01からJOBY10JOBZ01からJOBZ10があるとします。

tpuser1tpuser2にはすべてのジョブを操作する権限を与え、tpuser3にはJOBX10JOBY10JOBZ01から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

ユーザーtpuser1JOBBを発行、ユーザーtpuser2JOBA発行しようとした場合、これらの要件に対する一致ルールはありません。したがって、JES_ACL_MODEの設定が有効になります。

デフォルトでは、JES_ACL_MODEMACに設定されているため、このようなアクションは拒否されます。しかし、JES_ACL_MODEDACに設定すると、前述の操作は許可されます。

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

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トレース・メッセージの表示レベル。次のいずれかを設定します。
  • ERRORまたはerror: TuxJESはエラー・メッセージのみを出力します。
  • WARNまたはwarn: TuxJESは、エラー・メッセージと警告メッセージを出力します。
  • INFOまたはinfo: TuxJESは、エラー・メッセージ、警告メッセージ、情報メッセージを出力します。
  • DEBUGまたはdebug: TuxJESはすべてのメッセージを出力します。

デフォルト値はWARNです。

JESTRACEが定義されていない場合、または前述の値のいずれも指定されていない場合には、TuxJESは、JESTRACEWARNが指定されているものとみなします

- 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ファイル名です。

4.5.3 TuxJESトレース・メッセージ形式の理解

TuxJESトレース・メッセージは次のフィールドから構成されています。

表4-7 TuxJESトレース・メッセージ形式

フィールド コンテンツ
1 プロセスID (PID)
2 スレッドID (TID)
3 現在のタイムスタンプ
4 トレース・メッセージ・レベル。詳細は、「TuxJESトレース・メッセージ・レベルの理解」「TuxJESトレース・メッセージ・レベルの制御」を参照してください。
5 メッセージを表示できる関数
6 考えられる動的な値とともに表示されるメッセージ

4.5.4 TuxJESトレース・メッセージ・レベルの理解

TuxJESトレース・メッセージ・レベルには次の4種類があります。

  • ERRORレベル

    TuxJESはエラー・メッセージのみを出力します。

  • WARNレベル(デフォルト・レベル)

    TuxJESは、エラー・メッセージと警告メッセージを出力します。

  • INFOレベル

    TuxJESは、エラー・メッセージ、警告メッセージ、情報メッセージを出力します。

  • DEBUGレベル

    TuxJESはすべてのメッセージを出力します。

4.5.5 TuxJESトレース・メッセージ・レベルの制御

環境変数JESTRACEを使用して、TuxJESトレース・メッセージ・レベルを設定したり、artjesadminコマンドを使用して動的に変更したりして、どのレベルのメッセージが表示されるかを決定できます。

4.5.5.1 JESTRACEを使用してTuxJESトレース・メッセージ・レベルを設定

Batch Runtimeを実行する前に、環境変数JESTRACEを設定する必要があります。JESTRACEを設定すると、UBBCONFIG SERVERSセクションに指定されている、すべてのTuxJESクライアントとサーバーのTuxJESトレース・メッセージ・レベルが設定されます。

JESTRACEの詳細は、「環境変数の設定」を参照してください。

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には、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 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