![]() ![]() ![]() ![]() ![]() ![]() |
この章では、TuxJES機能に含まれるサーバー、コマンドおよびユーティリティについて説明します。
表1に、TuxJESのコマンドと関数を示します。
genjesprofile
– TuxJESシステムのセキュリティ・プロファイルを生成します。
genjesprofile [-f userprofile]
このユーティリティは、TuxJESシステムのセキュリティ・プロファイルを生成します。genjesprofile
を起動すると、Oracle Tuxedoアプリケーション・パスワード、ユーザー名、ユーザー・パスワード、およびデータベース接続(MT_DB_LOGIN
)を入力するよう求められます。出力されるのはセキュリティ・プロファイル・ファイルです。このファイルにはOracle Tuxedoアプリケーション・パスワード、ユーザー名、ユーザー・パスワードおよびファイル権限「-rw-------」のデータベース接続が含まれます。
注意: | 生成されたセキュリティ・プロファイル・ファイルは、artjesadmin ツールで、Oracle Tuxedoドメインにログインするために使用できます。 |
genjesprofileでは、次のパラメータとオプションがサポートされます。
[-f <output_file>]
artjesadmin
– TuxJESコマンド・インタフェース。
artjesadmin
は、TuxJESコマンド・インタフェースです。TuxJESシステムが先に開始されている必要があります。
artjesadminでは、以下のパラメータとオプションがサポートされます。
-f
genjesprofile
によって生成されるセキュリティ・プロファイル・ファイル。デフォルト値は~/.tuxAppProfile
です。セキュリティ・プロファイルの所有者は、必ずartjesadmin
の実行ユーザーであることが求められます。このプロファイルのユーザー名は、送信されたジョブの所有者です。所有者が指定されていないジョブには、所有者名「*」が割り当てられます。
注意: |
-f profile
を指定すると、指定したプロファイル・ファイルが使用されます。 -f
を指定すると、プロファイル・ファイルとして~/.tuxAppProfile
が使用されます。 -f
を指定しない場合、プロファイル・ファイルとして何も使用されません。
注意: | ジョブを同期的に送信するには、TuxJES構成ファイル内にEVENTPOST=A を設定し、UBBCONFIGファイル内でNOTIFY をDIPIN に設定して、サーバーTMUSREVT を設定する必要があります。 |
00000002,
JOBA,DONE,C0000
00000002,JOBA,FAILED,U0568
00000002,JOBA,Already Timeout!
00000002,JOBA,DONE,C0000
00000002,JOBA,FAILED,U0568
00000002,JOBA,EXECUTING
artjesadmin
は、次のサブ・コマンドをサポートします。
scriptfile
パラメータは、送信されるジョブ・スクリプトです。 注意: | artjesadmin は、scriptfileの通知を担当しません。変換と実行が同じマシン上にない場合、共有ファイル・システム上にあるはずです。オプションは次のとおりです。 |
artjesadmin
は、artjesadmin [-o='xxx'] -i/-I scriptfile
の書式を使用してジョブの直接送信もサポートします。表7でリストされているようなエラーが発生する場合、artjesadmin
にはゼロ以外のリターン・コードが含まれます。
> ptj -a
JOBNAME JobID Owner Prty C Type Status
-------- -------- -------- --------- ------ --------
cjob 00000015 * 5 A KSH DONE
cjob 00000016 * 5 A KSH DONE
cjob 00000018 * 5 A KSH CONVING
total:3
success:3
ARTJESCONV
による変換、またはARTJESINITIATOR
による実行の対象として選択できるように、HOLD_WAITING
またはHOLD_CONVING
ステータスのジョブを解放します。オプションは次のとおりです。
ARTJESINITIATOR
を通知し、"-k"
オプションを使用してEJRを呼び出します。その他のジョブは直接出力キューに送られます。TuxJESシステムは、EJRが返されるとジョブが終了したとみなします。オプションは次のとおりです。
purgejob
が、canceljob
と同じ効果を持っています。purgejob
コマンドは、ジョブを直接パージしません。ARTJESPURGEサーバーが、TuxJESシステムからジョブを削除します。ARTJESPURGEが開始されない場合、ジョブは出力キューに残ります。
artjescleanlock
– MPモードでロック・ファイル内の失効ロック・レコードを消去するユーティリティ。
artjescleanlock -c [-y] [-h <hostname>] [-f <filefullpath>]
artjescleanlock -l [-h <hostname>] [-f <filefullpath>]
Artjescleanlock
は、オプションで指定されるフィルタ基準に基づいて、ロック・ファイル内のロック・レコードをリストまたは消去するために使用されます。このユーティリティを実行する前に、環境変数MT_ACC_FILEPATH
を正しく設定する必要があります。
artjescleanlock
では、次のオプションがサポートされます。
-l
-c
注意: | -l および-c のみを設定する必要があります。これらは互いに排他的です。 |
[ -h hostname ]
[ -f filename ]
注意: | フィルタ基準がサポートされていない場合、すべてのロック・レコードが影響を受けます。 |
[-y]
-y
を指定しないと、ユーティリティから消去前にユーザーの確認が要求されます。このオプションは、-c
でのみ使用できます。
SRVID=”number” CLOPT=” [-A][servopts
options] -- -i
JESCONFIG”
ARTJESADM
は、TuxJESによって提供されるOracle Tuxedoアプリケーション・サーバーです。artjesadmin
コマンドは、大部分のタスクでARTJESADM
と通信します。
ARTJESADM
が提供するサービスに他のTuxJESサーバーがアクセスするため、ARTJESADM
は、UBBCONFIGファイル内で他のTuxJESサーバーより前に構成されている必要があります。JESCONFIG
を変更した場合、新しい構成が有効になるには、すべてのTuxJES関連のサーバーを再起動する必要があります。
ARTJESADMでは、以下のパラメータとオプションがサポートされます。
EVENTPOST
が指定されない場合、イベントはポストされません。イベントのポストでのデータ・バッファはFML32タイプで、フィールドはJESDIR/include/jesflds.hで定義されます。
USER_IDENTICAL:
ジョブが、JESシステムに参加するJESクライアントを使用してOracle Tuxedoユーザーによって実行されることを示します。この値を選択する前に、Oracle Tuxedoの各ユーザーが既存のOSユーザーに対応することを確認します。
USER_MAPPING:
この値を指定すると、JESシステムはTuxJESユーザー・マッピング・ファイルを参照し、JESシステムに参加するJESクライアントを使用してOracle Tuxedoユーザーに対応するOSユーザーを検出して、このOSユーザーをジョブの実行者として指名します。
SRVID=1 SRVGRP=SYSGRP CLOPT="-A -- -i /nfs/users/jes/jesconfig"
Oracle Tuxedo Application Runtime for Batchユーザー・ガイド
SRVID=”number” CLOPT=” [-A][servopts
options] -- ”
TuxJES変換サーバー。ジョブ変換をするためのEJR起動を担当します。
SRVID=2 SRVGRP=SYSGRP CLOPT="-A -- "
Oracle Tuxedo Application Runtime for Batchユーザー・ガイド
SRVID=”number” CLOPT=” [-A][servopts
options] -- -C
jobclasses [-n concurrent_num] [-d]”
ARTJESINITIATOR
は、Oracle Tuxedoアプリケーション・サーバーにより提供されるTuxJESです。ジョブを実行するためのEJR起動を担当します。
実行中のジョブがある間にARTJESINITIATOR
が強制終了またはシャットダウンされると、そのジョブは、再起動時にINDOUBT
状態に入れられます。
ARTJESINITIATOR
では、以下のパラメータとオプションがサポートされます。
SRVID=3 SRVGRP=SYSGRP MIN=10 CLOPT="-A -- -c AHZ"
この例では、10のARTJESINITIATOR
インスタンスが構成され、A
、H
およびZ
ジョブ・クラスに関連付けられます。
Oracle Tuxedo Application Runtime for Batchユーザー・ガイド
SRVID=”number” CLOPT=” [-A][servopts
options] -- ”
ARTJESPURGEは、パージ・キューを監視します。パージ・キューにジョブを検出すると、キュー内のジョブを削除し、ディレクトリJESROOT/<JOBID>
を削除します。
Oracle Tuxedo Application Runtime for Batchユーザー・ガイド
z/OS JES2システムをエミュレートするために、TuxJESシステムは、キュー機構を使用してバッチ・ジョブのライフサイクルを管理します。すべてのキューは、JES2QSPACE
と呼ばれる1つのキュー・スペースに作成されます。バッチ・ジョブは、表8にリストされたキューにあり、またはそこに転送されるメッセージによって表されます。
ジョブがHOLD状態(JCLHOLDまたはHOLD)の場合、保留キューに入れられます。解放されると、 |
|
キュー・スペース(JES2QSPACE
)と、表8
にリストされたキューを作成するために、TuxJESシステムには、サンプル・シェル・スクリプト(jesqinit)が用意されています。環境に合わせてスクリプトを変更することはできますが、以下を厳守する必要があります。
ページのキュー・スペース・サイズ: 5000(ジョブの最大数は10000、各ジョブは2kバイト消費し、ページ・サイズは4kと想定します)
注意: | これらのパラメータは、固有の環境に合わせてカスタマイズできます。 |
JESは、ジョブを実行する特定のOSユーザーを定義することをサポートします。TuxedoユーザーとOSユーザーをマッピングするメカニズムを使用すると、JESシステムはジョブに準拠するTuxedo AAA資格証明を、ジョブを処理する際にリソースへの限定アクセス権しか持たないOSユーザーに関連付けることが可能です。
表9は、この項で説明されるユーザー代入機能をよく理解する上で知っておく必要がある用語のリストです。
JESシステムによって指定されるジョブ所有者は、artjesadminおよびPRIVILEGE_MODE上の構成の組合せに左右されます。表10は、ジョブ所有者の指定と様々な使用状況との間の関係を示します。
表11および表12は、ユーザーの代入を有効化しているTuxJESシステムでジョブを操作する場合の異なるIDを持つユーザーの権限を示します。
TuxJESでユーザー代入を有効化するには、次の操作を実行する必要があります。
JESCONFIG
におけるPRIVILEGE_MODE
の値は、MAPPING_CREDENTIAL
またはIDENTITY_CREDENTIAL
に指定する必要があります。
JESCONFIG
におけるPRIVILEGE_MODE
の値がMAPPING_CREDENTIAL
の場合、USER_MAPPING_FILE
の値を指定する必要があり、ユーザー・マッピング・ファイルにはOracle TuxedoユーザーとOSユーザーとの間のマッピングが含まれる必要があります。
JESがSHMモードで稼働している場合、起動はルート・ユーザーが行う必要があります。
JESがMPモードで稼働している場合、次のいずれかを実行します。
JESシステムに関与するすべてのマシンは、同一のNISシステムを使用することをお薦めします。
ジョブ・ユーザーは全員、JESシステムのIPCリソースへのフル権限を持つ必要があります。
TUXCONFIG
のRESOURCE
セクションにあるSECURITY
パラメータは、USER_AUTH
、ACL
またはMANDATORY_ACL
にする必要があります。
注意: | SECURITY パラメータがAPP_PW に設定され、AUTHSVC パラメータが構成されている場合、SECURITY レベルはOracle TuxedoによってUSER_AUTH とみなされます。 |
# (c) 2011 Oracle. All Rights Reserved.
#
*RESOURCES
IPCKEY <IPCKEY> # for example 132770
DOMAINID jessample
MASTER SITE1
MODEL SHM
MAXACCESSERS 200
MAXSERVERS 50
NOTIFY SIGNAL
PERM 0666 #Adding "PERM=0666" in RESOURCES section
SECURITY USER_AUTH
AUTHSVC "AUTHSVC"
*MACHINES
#
<uname -n>
LMID = SITE1
TUXDIR ="<full path of TUXEDO software>"
TUXCONFIG = "<full path of APPDIR>/tuxconfig"
TLOGDEVICE ="<full path of APPDIR>/TLOG"
TLOGSIZE=10
APPDIR = "<full path of APPDIR>"
ULOGPFX = "<full path of APPDIR>/ULOG"
*GROUPS
ARTGRP
LMID = SITE1 GRPNO = 1
QUEGRP
LMID = SITE1 GRPNO = 2
TMSNAME = TMS_QM TMSCOUNT = 2
OPENINFO = "TUXEDO/QM:<full path of APPDIR>/QUE:JES2QSPACE"
EVTGRP
LMID= SITE1 GRPNO=3
#
*SERVERS
# Adding RQPERM=0666 RPPERM=0666 in all JES servers entry in SERVERS section
DEFAULT: CLOPT="-A"
TMUSREVT SRVGRP=EVTGRP SRVID=1 CLOPT="-A"
RQPERM=0666 RPPERM=0666
TMQUEUE
SRVGRP = QUEGRP SRVID = 1
GRACE = 0 RESTART = Y CONV = N MAXGEN=10
CLOPT = "-s JES2QSPACE:TMQUEUE -- -t 5 "
RQPERM=0666 RPPERM=0666
ARTJESADM SRVGRP =ARTGRP SRVID = 1 MIN=1 MAX=1
CLOPT = "-A -- -i jesconfig"
RQPERM=0666 RPPERM=0666
ARTJESCONV SRVGRP =ARTGRP SRVID = 20 MIN=1 MAX=1
CLOPT = "-A --"
RQPERM=0666 RPPERM=0666
ARTJESINITIATOR SRVGRP =ARTGRP SRVID =30
CLOPT = "-A -- -n 20 -d"
RQPERM=0666 RPPERM=0666
ARTJESPURGE SRVGRP =ARTGRP SRVID = 100
CLOPT = "-A --"
AUTHSVR SRVGRP=ARTGRP SRVID=104 CLOPT="-A"
RQPERM=0666 RPPERM=0666
*SERVICES
ユーザー代入を正常に有効化するには、異なるIDを持つユーザーのファイル・システム権限が次の要件を満たすように構成されているか確認する必要があります。
注意: | ジョブ実行者は全員、ULOG 、stdout およびstderr への書込み権限を持つ必要があります。その権限を持たない場合、ログと出力メッセージが正常に書き込まれない可能性があります。 |
TuxJESでは、標準のジョブ操作インタフェースをサポートしています。サービス規約として一連のFML32フィールドが定義されています。TuxJES付属のartjesadminユーティリティでは、通常のTuxedo ATMI API (詳細は、Oracle Tuxedo API: ATMIに関する項を参照)を使用してジョブ情報を送信、制御および出力します。ユーザーは、TuxJESジョブ管理システムと通信する、パーソナライズされたアプリケーションの作成もサポートされています。このドキュメントでは、一般的な手順とプログラミング手法について説明します。
TuxJESジョブに関連するすべてのフィールドは、$JESDIR/udataobj/jesflds
で定義されます。対応するヘッダー・ファイルは、$JESDIR/include/jesflds.h
にあります。表13は、ジョブ操作で使用されるフィールドを示しています。
前述のフィールドを使用するには、ソース・コードにヘッダー・ファイル$JESDIR/include/jesflds.h
をインクルードし、Tuxedo FML32 APIを使用して入出力のFML32バッファを操作する必要があります。詳細は、 『FMLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』を参照してください。
ARTJESADMサーバーでは、ジョブ処理のエントリとして、次のATMIサービスが提供されています。クライアント・プログラムでは、tpcall
とFML32バッファなど、標準のATMI APIを使用してこれらのサービスを呼び出すことができます。このとき、入力および出力用にフィールドが準備または取得されます。
注意: | JES2_JOB_OWNER が指定されていない場合、このジョブは「* 」ユーザー、つまり、このジョブの所有権がないと判断されます。 |
このサービスは、ジョブ情報の問合せで使用されます。インタフェースでは、指定のジョブIDの特定のジョブ、同じジョブ名およびジョブ・クラスの一連のジョブ、またはすべてのジョブを取得できます。結果に複数のジョブ・インスタンスが含まれる場合、これらはFML32オカレンス・スタイルとなり、オカレンスは0から始まります。たとえば、3つのジョブが返された場合、1番目のジョブがオカレンス0、2番目のジョブが1、3番目のジョブが2となります。
注意: | ARTJESADM は、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADM はチェックを停止します。 |
注意: |
このサービスは、実行中でなく、終了ステータスでもないジョブを保留するために使用されます。ジョブ・コレクションのインタフェースはJES2PRINT
と同じです。
注意: | ARTJESADM は、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADM はチェックを停止します。 |
注意: | 特定のジョブに関して問題がある場合、JES2_JOB_ID で指定される対応するシーケンスで、JES2_JOB_MSG が有効になります。部分的な問題の場合、tperrno はTPOK になります。 |
一般的な操作が失敗した場合、JES2_JOB_ERROR
にはエラー・メッセージが保持され、tperrno
はTPESVCFAIL
に設定されます。
このサービスは、保留ステータスのジョブを解放するために使用されます。ジョブは、hold
操作により、time typerun
を送信して、保留ステータスにできます。ジョブ・コレクションのインタフェースはJES2PRINT
と同じです。
注意: | ARTJESADM は、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADM はチェックを停止します。 |
注意: | 特定のジョブに関して問題がある場合、JES2_JOB_ID で指定される対応するシーケンスで、JES2_JOB_MSG が有効になります。部分的な問題の場合、tperrno はTPOK になります。 |
このサービスは、ジョブの取消しで使用されます。ジョブ・コレクションのインタフェースはJES2PRINT
と同じです。
注意: | ARTJESADM は、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADM はチェックを停止します。 |
注意: | 特定のジョブに関して問題がある場合、JES2_JOB_ID で指定される対応するシーケンスで、JES2_JOB_MSG が有効になります。部分的な問題の場合、tperrno はTPOK になります。 |
このサービスは、ジョブのパージで使用されます。ジョブがまだ終了していない場合、その効果はJES2CANCEL
と同じです。ジョブ・コレクションのインタフェースはJES2PRINT
と同じです。
注意: | ARTJESADM は、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADM はチェックを停止します。 |
注意: | 特定のジョブに関して問題がある場合、JES2_JOB_ID で指定される対応するシーケンスで、JES2_JOB_MSG が有効になります。部分的な問題の場合、tperrno はTPOK になります。 |
TuxJESは、Tuxedo EventBrokerに基づくイベント通知メカニズムを備えています(詳細は、 イベントへのサブスクライブに関する項を参照)。各ステージで何か発生すると、次のユーザー・レベルのイベントが提供されます。各イベントのデータ・バッファは、特定のジョブのFML32バッファです。
イベントのポストはARTJESADM内のJESCONFIG
構成に依存するため、すべてのイベントまたは一部のイベントの必要に応じて、スイッチをオンにする必要があります。
ジョブ管理サービスのインタフェースを使用するアプリケーションは、Tuxedo ATMIセキュリティの規則に従う必要があります(詳細は、ATMIセキュリティの概要に関する項を参照)。適切なアプリケーション・パスワードおよびユーザー名/パスワードを、クライアント・アプリケーション内のtpinit()
で指定する必要があります。サービスの権限を制御するには、「TuxJESジョブの操作で使用されるATMIサービス」でリストされているサービスに対して、適切なACL
またはMANDATORY ACL
をUBBCONFIG
で構成する必要があります。
次の例は、ジョブの送信方法を示しています。-I $JESDIR/include
にはCFLAGS
を含める必要があります。
#include <stdio.h>
#include <tpadm.h>
#include <fml32.h>
#include <jesflds.h>
main(int argc, char *argv[])
{
FBFR32 *input;
FBFR32 *output;
long buflen;
if (tpinit((TPINIT *) NULL) == -1) {
(void)fprintf(stderr, "Tpinit failed: %s\n", tpstrerror(tperrno));
exit(1);
}
input = tpalloc("FML32",NULL,1024);
output = tpalloc("FML32",NULL,1024);
if (input == NULL || output == NULL) {
(void)fprintf(stderr, "Tpinit failed: %s\n", tpstrerror(tperrno));
exit(1);
}
if (Fappend32(input,JES2_JOB_SCRIPT, "JOBA", 0) < 0 ) {
(void)fprintf(stderr, " Fappend32 failed: \n");
exit(1);
}
Findex32(input,0);
if (tpcall("JES2SUBMIT", input, 0, &output,&buflen,0) < 0 ) {
(void) fprintf(stderr, "Can't send request to service JES2SUBMIT");
exit(1);
}else {
char *jobid;
jobid = Ffind32(output,JES2_JOB_ID,0,NULL);
if (jobid != NULL) {
fprintf(stdout,"Job %s is submitted\n",jobid);
}
}
tpfree(input);
tpfree(output);
(void)tpterm();
return(0);
}
![]() ![]() ![]() |