|
バッチ・ジョブ・システムは、重要なメインフレーム・ビジネス・アプリケーション・モデルです。Tuxedo Job Enqueueing Service (TuxJES)エミュレーション・アプリケーションを使用すると、メインフレーム・アプリケーションをオープン・システムへ円滑に移行できます。TuxJESは、メインフレームJES2関数のサブセットを実装しています(ジョブの送信、ジョブの表示、ジョブの保留、ジョブの解放、ジョブの取消しなど)。
TuxJESは、次のバッチ・ジョブ・フェーズに対処しています。
TuxJESはOracle Tuxedoアプリケーションであり、TuxJESを実行するためにはOracle Tuxedoが必要です。
分散環境でTuxJESをデプロイするためには、共有ファイル・システム(NFSなど)が必要です。
genjesprofileOracle Tuxedoアプリケーションのセキュリティ・プロファイルを生成します
genjesacl TuxJESシステム用に暗号化されたジョブ・アクセス認可構成ファイルを生成します
artjesadminTuxJESコマンド・インタフェース。Oracle Tuxedoクライアントです
ARTJESADMTuxJES管理サーバー。Oracle Tuxedoサーバーです。
ARTJESCONVTuxJES変換サーバー。Oracle Tuxedoサーバーです。
ARTJESINITIATORTuxJESジョブ・イニシエータ。Oracle Tuxedoサーバーです。
ARTJESPURGETuxJESパージ・サーバー。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 20 BLOCKTIME 50
この例では、サニティ・スキャンは20秒ごとに実行され、リクエストが20 * 50 = 1000秒を超えてブロックされることはありません。
ジョブ発行のタイムアウトの制御はBLOCKTIMEやSCANUNITではなく、artjesadminコマンドラインで指定します。例:
artjesadmin -t 60 -i JOBA この例では、JOBAの発行が60秒間で終了しなかった場合、タイムアウトが戻されます。
TuxJESは/Qに従って、ジョブを表すメッセージの保存や取得を行います。TuxJES内部での/Q操作のタイムアウト・メカニズムを制御するのは、UBBCONFIG RESOURCESセクションのMAXTRANTIMEだけです。
UBBCONFIGでMAXTRANTIMEを明確に指定する必要があります。指定しなかった場合、Tuxedoは自動的にデフォルト値を使用します(デフォルト値はTuxedoリリースによって異なる可能性があります)。
このMAXTRANTIMEの値は、具体的なシステム・ロードに基づいて設定します。次の例はMAXTRANTIMEを5分に設定しています。
*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 OSuser1tuxedouser2 OSuser2TuxJESで/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,C000000000002,JOBA,FAILED,U056800000002,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
|