バッチ・ジョブ・システムは、重要なメインフレーム・ビジネス・アプリケーション・モデルです。Tuxedo Job Enqueueing Service (TuxJES)エミュレーション・アプリケーションを使用すると、メインフレーム・アプリケーションをオープン・システムへ円滑に移行できます。TuxJESは、メインフレームJES2関数のサブセットを実装しています(ジョブの送信、ジョブの表示、ジョブの保留、ジョブの解放、ジョブの取消しなど)。
TuxJESは、次のバッチ・ジョブ・フェーズに対処しています。
TuxJESはOracle Tuxedoアプリケーションであり、TuxJESを実行するためにはOracle Tuxedoが必要です。
分散環境でTuxJESをデプロイするためには、共有ファイル・システム(NFSなど)が必要です。
genjesprofile
Oracle Tuxedoアプリケーションのセキュリティ・プロファイルを生成します
genjesacl
TuxJESシステム用に暗号化されたジョブ・アクセス認可構成ファイルを生成します
artjesadmin
TuxJESコマンド・インタフェース。Oracle Tuxedoクライアントです
ARTJESADM
TuxJES管理サーバー。Oracle Tuxedoサーバーです。
ARTJESCONV
TuxJES変換サーバー。Oracle Tuxedoサーバーです。
ARTJESINITIATOR
TuxJESジョブ・イニシエータ。Oracle Tuxedoサーバーです。
ARTJESPURGE
TuxJESパージ・サーバー。Oracle Tuxedoサーバーです。
詳細は、 『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』を参照してください。
TuxJESは、Oracle Tuxedoアプリケーションです。大部分のTuxJESコンポーネントは、Oracle TuxedoクライアントまたはOracle Tuxedoサーバーです。まずTuxJESをOracle Tuxedoアプリケーションとして構成する必要があります。TuxJESがインストールされたディレクトリを参照する環境変数JESDIR
が、正しく構成される必要があります。
リスト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 、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関連のドキュメントを参照してください。
ジョブ操作(ジョブ発行を除く)については、SCANUNIT
やBLOCKTIME
パラメータを設定して、メッセージ・ブロックのタイムアウト時間などのシステム活動を指定できます。割り当てる値は5の倍数の正数である必要があります。
*RESOURCES
IPCKEY 113333
DOMAINID jesdomain
MASTER SITE1
MODEL SHM
MAXACCESSERS 200
MAXSERVERS 50
NOTIFY SIGNAL
SCANUNIT 2
0
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分に設定しています。
*RESOURCES
IPCKEY 133770
DOMAINID jessample
MASTER SITE1
MODEL SHM
MAXTRANTIME 300 # 300 seconds
UBBCONFIG RESOURCES
セクションのMAXTRANTIME
の詳細は、Tuxedoドキュメントの 「UBBCONFIG(5)」を参照してください。
tpdequeue()
やtpenqueue()
など、/Q操作でタイムアウトが発生した場合、MAXTRANTIME
を調整して、タイムアウトが発生しないようにします。
TuxJESシステム用にJES2QSPACE
という名前の/Qキュー・スペースを作成する必要があります(このキュー・スペースに/Qキューの一部を作成する必要があります)。TuxJESには、キュー・スペース(JES2QSPACE
)とキューを作成するサンプル・シェル・スクリプト(jesqinit
)が用意されています。詳細は、Oracle Tuxedo Application Runtime for Batchリファレンス・ガイドを参照してください。
TuxJESは、ファイル・システムを使用して、バッチ実行エンジンと通信します。TuxJESとバッチ実行エンジンの間の通信のために、ファイル・システム上にディレクトリが作成されます。ディレクトリの名前は、TuxJES構成ファイルで指定されている必要があります。複数のマシン上にTuxJESシステムをデプロイする場合、このディレクトリは共有ファイル・システム(たとえば、NFS)に存在する必要があります。
TuxJES管理サーバーARTJESADM
に対して構成ファイルを指定できます。構成ファイルでは、次のパラメータを構成できます。
EVENTPOST
が指定されない場合、イベントはポストされません。イベントのポストでのデータ・バッファはFML32タイプで、フィールドはtuxjes/include/jesflds.hで定義されます。
JES_ACL_FILE
に一致ルールが見つからなかった場合のアクション。これはMAC
(Mandatory Access Control)またはDAC
(Discretionary Access Control)に設定できます。デフォルト値はMAC
です。
JOBREPOSITORY
内の相対パスを使用できます。JOBREPOSITORY=<path1>:<path2>:<path3>
送信するジョブを見つけるために、バッチ・ランタイムは、(JOBREPOSITORY
内で)指定された順序でそれらのパスから検索します。一致するジョブ名が見つかると、バッチ・ランタイムは検索を停止し、この一致したジョブを送信します。
USER_IDENTICAL:
ジョブが、JESシステムに参加するJESクライアントを使用してOracle Tuxedoユーザーによって実行されることを示します。この値を選択する前に、Oracle Tuxedoの各ユーザーが既存のOSユーザーに対応することを確認します。
USER_MAPPING:
この値を指定すると、JESシステムはTuxJESユーザー・マッピング・ファイルを参照し、JESシステムに参加するJESクライアントを使用してOracle Tuxedoユーザーに対応するOSユーザーを検出して、このOSユーザーをジョブの実行者として指名します。
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=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
に設定されている場合)に残ります。
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 としてバックアップされます |
TuxJESでは、Oracle Tuxedoセキュリティ・メカニズムを活用して認証を実装します。認証が有効の場合、genapprofileユーティリティを使用してセキュリティ・プロファイルを生成し、それをartjesadmin
パラメータとして使用して、TuxJESシステムにアクセスしてください。プロファイルで使用されるユーザーは、ジョブ所有者です。ジョブを管理(取消し、パージ、保留および解放)できるのは、所有者だけです。ジョブは、誰でも表示できます。ジョブに所有者がない場合、誰でも操作できます。
Oracle Tuxedoアプリケーションはセキュリティが構成されていない場合でも、genjesprofile
ユーティリティを使用してジョブ所有者権限のチェックを強制し、データベース接続MT_DB_LOGIN
を格納できます。
このセキュリティ・メカニズムに基づき、ART for Batchは、ユーザーのジョブ操作アクションを制御するための軽量ジョブ・アクセス認可メカニズムを提供します。この認可に必要なのはシンプルな構成のみです。認可サーバーやサードパーティのセキュリティ製品さえ必要ではありません。詳細は、「TuxJESジョブ・アクセスの認可」を参照してください。
PRIVILEGE_MODE
値をMAPPING_CREDENTIAL
に指定する場合、ユーザー・マッピング・ファイルがロードされ有効になります。Oracle TuxedoユーザーとOSユーザーの間のマッピング関係を定義します。マッピング・ファイル内のすべての行は次のフォーマットになります。
tuxedousername OSusername
ユーザー・マッピング・ファイルの所有者はルート、ファイル権限は「-rw-------
」にすることをお薦めします。
リスト5に、TuxJESシステム用ユーザー・マッピング・ファイルのセグメント例を示します。
tuxedouser1 OSuser1
tuxedouser2 OSuser2
TuxJESで/Qの代替としてデータベースを使用して、バッチ・ジョブのメタデータを格納および管理できます。このモードでは、TuxJESに/Qが不要になり、パフォーマンスの向上と完全なデータ整合性が提供されます。
注: | 現在はOracle Databaseのみがサポートされています。 |
TuxJESでは/Qではなくデータベースを使用してジョブが格納されるため、/QおよびサーバーTMQUEUE
/TMS_QM
のグループを使用する必要はありません。他のすべてのサーバーおよびグループは影響を受けません。
データベースを使用できるようにするために、USE_DB
という名前の新しい構成項目がJESCONFIG
ファイルに追加されました。表2にUSE_DB
の値を示します。リスト6に例を示します。
注意: |
データベースを記憶域として使用する場合は、接続情報が必要です。これは暗号化され、JESROOT
ディレクトリの別の非表示ファイル(JESROOT/.jessysprofile
)に格納されます。このファイルを生成するために、新しいユーティリティgensysprofile
が追加されました。
gensysprofile -d <JESROOT>
gensysprofile
を起動すると、ユーザー名、パスワードおよび(データベース)サーバー名を入力するよう求められます。画面上のプロンプトを示します。
User name:
Password:
Server name:
(データベース)サーバー名の文字列はデータベース・サーバーが存在する場所を示し、通常、データベース・インスタンスの名前です。構文は、TWO_TASK
環境変数の設定に使用されるものと同じです。書式は次のいずれかです。
たとえば、orcl12c
または//bej301420.cn.oracle.com:1522/orcl.cn.oracle.com
を使用できます。
出力は、JESROOT
ディレクトリの非表示ファイル.jessysprofile
です。
注意: |
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
内のレコードが初期化されます。使用方法は次のとおりです。
CreateTableJobDataOra.sh <DB_LOGIN_PARAMETER>
DropTableJobDataOra.sh
このシェル・スクリプトでは、表JES2_JOBNUM
および表JES2_JOB_PARAM
が削除されます。使用方法は次のとおりです。
DropTableJobDataOra.sh <DB_LOGIN_PARAMETER>
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
が構成されています。
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)
)
)
)
TuxJESは、MPモード内で容易に構成できるようになりました。ただし、ジョブを実行するには、EJRとTuxJESの両方で、ジョブを異なるマシンで同時に実行できるように構成を調整する必要があります。この項では、MPモードでバッチ・ランタイムを構成するための必須の構成について具体的に説明します。
TuxJESドメインの異なるマシン上のすべてのサーバーで共有されるジョブのデータは、共有記憶域(NFS)に置いて、ドメイン内のすべてのマシンでアクセスできるようにする必要があります。さらに、NFSはすべてのマシンで同じマウント・ポイントでマウントする必要があります。最後に、JESROOT
は、各ノードで共有JESルート・ディレクトリを指すように正しく構成する必要があります。実行時には、すべてのマシン上のTuxJESサーバーが、そのような共有JESROOT
に対してデータの書込みや取得を行います。
MPモードでのEJRの構成の詳細は、「バッチ・ランタイムの使用」の「MPモードでのバッチ・ランタイムの構成」を参照してください。
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サブコマンドの出力には、次の内容が含まれます。
注: | JES2システムにあるジョブが多すぎる場合、コンソールですべてのジョブのステータスを出力するときにタイムアウトが発生する可能性があります。この状況を回避するには、JESのubbconfigに十分長いブロック・タイムを設定する必要があります。 |
注意: | ブロック・タイムの設定の詳細は、「TuxJES用のUBBCONFIG内のブロック・タイム」を参照してください。 |
ジョブ・ステータスを同期的に取得するには、次の書式でartjesadmin
を使用します。
artjesadmin [-f [security_profile]] -p -j jobid
00000002,
JOBA,DONE,C0000
00000002,
JOBA,FAILED,U0568
00000002,
JOBA,EXECUTING
artjesadmin
のサブコマンドholdjobを使用して、CONVING
またはWAITING
ステータスにあるジョブまたは一連のジョブを保留することができます。
artjesadmin
のサブコマンドreleasejobを使用して、HOLD_WAITING
またはHOLD_CONVING
ステータスにあるジョブまたは一連のジョブを解放することができます。
releasejob(rlj) -n job name | -j jobid | -c job_class | -a
artjesadmin
のサブコマンドcanceljobを使用して、単独のジョブまたは一連のジョブの情報を取り消すことができます。
canceljob(cj) -n job name | -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キューにある指定した数のジョブが自動的にパージされます。自動パージは有効または無効(デフォルト)にできます。ユーザーは自動パージされるすべてのジョブのファイルをバックアップするのか、完全に削除するのかを選択できます。
注意: | 自動パージは、あるジョブがキュー領域に正常に挿入され、キューの使用率が警告しきい値に到した時点でのみ発生します。この時点でOUTPUTキューにジョブが存在しない場合は、ジョブは自動パージされません。極端な例として、あるジョブが発行された後に、キュー領域の状態が使用可能な領域がすべて使用されていますおよびOUTPUTキューにジョブがありませんに変更された場合は、この最後のジョブの発行によってジョブが自動パージされることはありません。この状況では、自動パージは実行されないため、ユーザーは一部のジョブを手動でパージする必要があります。そうでない場合は、新しいジョブを発行できません。 |
注意: | ジョブの発行が失敗すると、自動パージは起動されません。 |
注意: | 自動パージは現在のジョブの発行に影響しません。 |
注意: | JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドで自動パージを実行することはありません。 |
注意: | TSAMPlusプラグインを使用したOEM統合は、ジョブ・ログとsysoutの自動アーカイブをサポートしています。ジョブがパージされると、主要なジョブ情報とジョブ・ログはEM管理リポジトリで入手可能になります。 |
注意: | キュー領域の使用率のチェック動作は、あるジョブがキュー領域に正常に挿入された時点でのみ発生します。ジョブの発行のみが、このチェック動作を起動できます。ジョブの発行が失敗すると、このチェック動作は起動されません。 |
注意: | チェック結果は現在のジョブの発行に影響しません。 |
注意: | JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドでキュー領域の使用率のチェックを実行することはありません。 |
キュー領域の使用率の警告しきい値を設定します。このしきい値はファイルjesconfigで構成できます。新しいジョブを発行すると、JESは、キュー領域の現在の使用率が警告しきい値に達していないかをチェックします。
この機能は、tuxedo /Qの新機能の1つです。現在のキュー領域の使用率がパーセンテージで返されます。
注意: | キュー領域の使用率のチェック動作は、あるジョブがキュー領域に正常に挿入された時点でのみ発生します。ジョブの発行のみが、このチェック動作を起動できます。 |
注意: | キュー領域が警告しきい値を超えているものの100よりも小さい場合は、使用可能な領域がすべて使用されているわけではないため、新しいジョブの発行は許可されますが、警告メッセージがartjesadminコンソールに表示されます。 |
注意: | ジョブの発行が失敗すると、このチェック動作は起動されません。 |
注意: | チェック結果は現在のジョブの発行に影響しません。 |
注意: | JESシステムは、一定間隔でのチェックなど、他のどの形式でもバックグラウンドでキュー領域の使用率のチェックを実行することはありません。 |
artjesadmin
のサブコマンドprintconcurrentを使用して、同時にジョブを実行するARTJESINITIATOR
サーバーの最大数を表示することができます。
printconcurrent(pco) -g groupname -i serverid
artjesadmin
のサブコマンドchangeconcurrentを使用して、同時にジョブを実行するARTJESINITIATOR
サーバーの最大数を変更することができます。
artjesadmin
のサブコマンドshowjobexec
を使用して、ジョブを実行するARTJESINITIATOR
サーバーの最大数を表示することができます。
showjobexec(she) [-n machine] | [-g groupid [-i serverid]]
注: | オプションが何も指定されている場合、すべてのARTJESINITIATOR サーバーで実行されているジョブが表示されます。 |
ARTJESINITIATOR
サーバーによる、新たに実行するジョブの取得を停止できます。ただし、サーバーは現在仕掛中のジョブの仕上げを続けます。
stopjobexec(ste) [-n machine] | [-g groupid [-i serverid]]
注: | オプションが何も指定されていない場合、すべてのARTJESINITIATOR サーバーが新しいジョブの取得を停止します。 |
ARTJESINITIATOR
サーバーによる新しいジョブの取得と実行を再開します。
resumejobexec(rse) [-n machine] | [-g groupid [-i serverid]]
注: | オプションが何も指定されていない場合、すべてのARTJESINITIATOR サーバーが再開します。 |
artjesadmin
を次の書式で使用して、ARTJESINITIATOR
サーバーを同期的に制御することができます。
artjesadmin [-f [security_profile]] -x showjobexec|resumejobexec|stopjobexec [[lmid=machine|grpid=groupid|grpid=groupid,srvid=serverid];...]
artjesadmin
のサブコマンドeventを使用して、ジョブ・ステータス変更イベントをサブスクライブまたはサブスクライブ解除することができます。
イベントをサブスクライブすると、対応するイベントが生成したときに、artjesadmin
コンソール上に通知されます。
TuxJESセキュリティ・メカニズムに基づき、ART for Batchは、ユーザーのジョブ操作アクションを制御するための軽量ジョブ・アクセス認可メカニズムを提供します。この認可に必要なのはシンプルな構成のみです。認可サーバーやサードパーティのセキュリティ製品さえ必要ではありません。
このメカニズムでは、管理者はTuxJESジョブ操作認可ルールを使用して、特定のユーザーに特定のジョブ操作の実行を認可します。
あるOracle TuxedoユーザーがUnix/Linuxのroot
にマップされている(または、これに相当する)場合、このユーザーはスーパー・ユーザーとして扱われます。このスーパー・ユーザーはどのようなジョブ操作でも、認可チェックなしに実行を許可されます。
TuxJESジョブ・アクセス認可メカニズムを有効化するには、次のように構成する必要があります。
JESCONFIG
にJES_ACL_FILE
を設定します。 これは、ジョブ・アクセス認可構成ファイルのフルパスを指定します。例:
JES_ACL_FILE=/home/user/simpjob/jesacl
JES_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」を参照してください。
ルールを暗号化するかしないかを設定するJES_ACL_FILEファイル。
JES_ACL_FILE
で指定されたプレーン・テキスト・ファイルにジョブ操作認可ルールを設定します。次のCSV形式を使用します。
permission; user-list; operation-list; jobname-list
permission
user-list
;
)は使用できません。*
)のみのユーザー名は使用できません。:
」で区切ります。アスタリスクは(*
)すべてのOracle Tuxedoユーザーを意味します。このフィールドではワイルドカードはサポートされていません。たとえば、tpuser*
はtpuser
で始まる名前を持つすべてのユーザーの意味ではありません。operation-list
SUBMIT
、CANCEL
、PURGE
、HOLD
、およびRELEASE
です。SUBMIT
で、残りの4つのジョブ操作の前提条件です。その理由は、ユーザーがジョブを取消し、パージ、保留、またはリリースしようとした場合、TuxJESはまず、このユーザーがそのジョブの所有者であるかどうかをチェックするからです(ユーザーがSUBMIT
の権限を付与されていて、ジョブの発行に成功した場合のみ、このユーザーはこのジョブの所有者になり、TuxJESシステムからパージされるまでジョブを所有し続けます)。:
」で区切ります。アスタリスク(*
)はこれらの操作すべてを意味します(SUBMIT:CANCEL:PURGE:HOLD:RELEASE
に同じです)。このフィールドではワイルドカードはサポートされていません。このフィールドでは、大文字/小文字が区別されます。
jobname-list
m_JobBegin
で指定された内部的なジョブ名で、JCLの//<NAME> JOB
文から変換されたものです。:
」で区切ります。ワイルドカード「*
」(0個以上の文字)、および「?
」(1文字のみ)がサポートされています。
JES_ACL_FILE_TYPE=ENCRYPTED
を設定した場合、JES_ACL_FILE
ファイルを暗号化されたファイルとして構成する必要があります。この暗号化されたファイルはgenjesacl
ツールで生成可能です。
詳細は、 「JESCONFIG」と 「genjesacl」を参照してください。
複数の一致ルールが存在する場合、先頭の一致ルールが最優先されます。一致ルールは、ユーザー、操作、ジョブ・フィールドがすべて一致することを意味します。
ユーザー、操作、およびジョブに一致するルールが見つからない場合、JESCONFIG
ファイルのJES_ACL_MODE
が有効になります。JES_ACL_MODE
が設定されていない場合、そのデフォルト値で、操作が拒否されることを意味するJES_ACL_MODE=MAC
が有効になります。
リスト15に例を示します。
ALLOW; tpuser1;*;*
DENY; tpuser1;*; JOBA
前述のルールは2つとも一致ルールですが、1つめの一致ルールが優先されます。つまり、tpuser1
にJOBA
への操作が認可され、2つめの一致ルールは有効になりません。
ユーザーtpuser1
に、JOBA
のジョブを除くすべてのジョブの操作をさせたい場合は、前述の2つのルールの順番を入れ替えます。
文字#
で始まる行はコメントとみなされます(先行するスペースは無視されます)。例:
# This is comment
# This is also comment.
ALLOW;tpuser1;*;JOBA:JOBB
ルールの直後、同じ行にコメントを書かないでください。たとえば、次の行の#C
はコメントとはみなされません。
ALLOW;tpuser1;*;JOBA:JOBB#C
名前が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
を設定します。
システムに3人のOracle Tuxedoユーザー、tpuser1
、tpuser2
、tpuser3
と30個のジョブJOBX01からJOBX10
、JOBY01からJOBY10
、JOBZ01からJOBZ10
があるとします。
tpuser1
とtpuser2
にはすべてのジョブを操作する権限を与え、tpuser3
にはJOBX10
、JOBY10
、JOBZ01からJOBZ10
の12個のジョブだけを操作する権限を与えたいと思います。
DENY;tpuser3;*;JOBX0?:JOBY0?
ALLOW;*;*;*
ALLOW;tpuser3;*;JOBX10:JOBY10:JOBZ*
ALLOW;tpuser1:tpuser2;*;*
このケースでは、オプションAは今後、新しく追加されるユーザーに高い権限を認可してしまうため、お薦めできません。
ルール・ファイルに含まれるルールがたった1行だけだとします。
ALLOW; tpuser1; *; JOBA
ユーザーtpuser1
がJOBB
を発行、ユーザーtpuser2
がJOBA
発行しようとした場合、これらの要件に対する一致ルールはありません。したがって、JES_ACL_MODE
の設定が有効になります。
デフォルトでは、JES_ACL_MODE
はMAC
に設定されているため、このようなアクションは拒否されます。しかし、JES_ACL_MODE
をDAC
に設定すると、前述の操作は許可されます。
artjesadmin
コマンドを使用して、ジョブ・アクセス認可を動的に変更することができます。
artjesadmin -f [security_profile] -x setjesacl aclfile=rulepath[,aclfiletype=PLAIN|ENCRYPTED[,aclmode=MAC|DAC]]
setjesacl (sja) -f rulepath [-t PLAIN|ENCRYPTED] [-m MAC|DAC]
たとえば、DACモードでジョブ・アクセス認可のルール・ファイルを別のファイル(aclrule.new
)に変更する場合、リスト16のとおりartjesadmin
コマンドを使用するか、またはリスト17のとおりartjesadmin
サブコマンドを使用します。
artjesadmin -f jesprofile -x setjesacl aclfile=aclrule.new,aclmode=DAC
artjesadmin -f jesprofile
setjesacl -f aclrule.new -m DAC
ART for Batchは、TuxJESクライアントおよびサーバーで生成されたメッセージ(エラー・メッセージ、警告メッセージ、情報メッセージ、デバッグ・メッセージ)のトレースをサポートします。これらのメッセージは書式設定されて、TuxJESトレース・ファイルに保存されます。表示するメッセージの決定には、4種類のトレース・レベル(ERROR、WARN、INFO、DEBUG)を使用できます。
Batch Runtimeを実行する前に、次の環境変数を設定できます。
TuxJESサーバーとクライアントには、それぞれ専用のTuxJESトレース・ファイルがあります。これらのトレース・ファイルには、TuxJESクライアントやサーバーにより生成されたメッセージ(エラー・メッセージ、警告メッセージ、情報メッセージ、デバッグ・メッセージ)が保存されます。
デフォルトでは、JESトレース・ファイルは${APPDIR}/Logs
ディレクトリに保存されます。Batch Runtimeを実行する前に、環境変数JES_TRACE_PATH
を設定して、このディレクトリを変更できます。
TuxJESサーバーのトレース・ファイルには、サーバー名、グループID、サーバーID、固定の接尾辞「jestrace
」を組み合わせた名前が付けられます。例:
TuxJESクライアントのトレース・ファイルには、クライアント名と固定の接尾辞「jestrace
」を組み合わせた名前が付けられます。例:
TuxJESトレース・メッセージは次のフィールドから構成されています。
TuxJESトレース・メッセージ・レベルには次の4種類があります。
環境変数JESTRACE
を使用して、TuxJESトレース・メッセージ・レベルを設定したり、artjesadmin
コマンドを使用して動的に変更したりして、どのレベルのメッセージが表示されるかを決定できます。
Batch Runtimeを実行する前に、環境変数JESTRACE
を設定する必要があります。JESTRACE
を設定すると、UBBCONFIG SERVERS
セクションに指定されている、すべてのTuxJESクライアントとサーバーのTuxJESトレース・メッセージ・レベルが設定されます。
JESTRACE
の詳細は、「環境変数の設定」を参照してください。
artjesadmin
コマンドを使用して、TuxJESトレース・メッセージ・レベルを動的に変更することができます。
artjesadmin [-f [security_profile]] -x settracelevel [trclvl=trace_level[,[lmid=machine|grpid=groupid|grpid=groupid,srvid=serverid];...]]
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トレース・メッセージ・レベルの実を変更します。現在のクライアントは変更されません。
UBBCONFIG SERVERS
セクションに指定されているすべてのサーバーについて、TuxJESトレース・メッセージ・レベルをDEBUG
に変更します。リスト18のようにartjesadmin
コマンドを使用するか、リスト19のようにartjesadmin
サブ・コマンドを使用します。SITE1
マシンで稼働しているTuxJESサーバーのTuxJESトレース・メッセージ・レベルをERROR
に変更します。リスト20のようにartjesadmin
コマンドを使用するか、リスト21のようにartjesadmin
サブ・コマンドを使用します。INFO
に変更します。リスト22のようにartjesadmin
コマンドを使用するか、リスト23のようにartjesadmin
サブ・コマンドを使用します。INFO
に変更します。リスト24のようにartjesadmin
コマンドを使用するか、リスト25のようにartjesadmin
サブ・コマンドを使用します。詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』の「artjesadmin」を参照してください。
artjesadmin -x settracelevel trclvl=3
artjesadmin
settracelevel -t 3
artjesadmin -x settracelevel trclvl=0,lmid=SITE1
artjesadmin
settracelevel -t 0 -n SITE1
artjesadmin -x settracelevel trclvl=2,grpid=1
artjesadmin
settracelevel -t 2 -g 1
artjesadmin -x settracelevel trclvl=2,grpid=1,srvid=1
artjesadmin
settracelevel -t 2 -g 1 -i 1