リファレンス・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

Tuxedo Job Enqueueing Service (TuxJES)

この章には次のトピックが含まれます:

TuxJESのサーバー、コマンドおよびユーティリティ

TuxJESジョブの操作

 


TuxJESのサーバー、コマンドおよびユーティリティ

この章では、TuxJES機能に含まれるサーバー、コマンドおよびユーティリティについて説明します。

表1に、TuxJESのコマンドと関数を示します。

表1 TuxJESのサーバー、コマンドおよびユーティリティ
名前
説明
TuxJESシステムのセキュリティ・プロファイルを生成します。
TuxJESコマンド・インタフェース。
MPモードでロック・ファイル内の失効ロック・レコードを消去します。
TuxJES管理サーバー。
TuxJES変換サーバー。
TuxJESジョブ制御API。
ジョブ・キューをパージします。
TuxJESキュー・システム。
ジョブを実行する特定のOSユーザーを指定します。

genjesprofile

名前

genjesprofile – TuxJESシステムのセキュリティ・プロファイルを生成します。

概要

genjesprofile [-f userprofile]

説明

このユーティリティは、TuxJESシステムのセキュリティ・プロファイルを生成します。genjesprofileを起動すると、Oracle Tuxedoアプリケーション・パスワード、ユーザー名、ユーザー・パスワード、およびデータベース接続(MT_DB_LOGIN)を入力するよう求められます。出力されるのはセキュリティ・プロファイル・ファイルです。このファイルにはOracle Tuxedoアプリケーション・パスワード、ユーザー名、ユーザー・パスワードおよびファイル権限「-rw-------」のデータベース接続が含まれます。

注意: 生成されたセキュリティ・プロファイル・ファイルは、artjesadminツールで、Oracle Tuxedoドメインにログインするために使用できます。

パラメータとオプション

genjesprofileでは、次のパラメータとオプションがサポートされます。

[-f <output_file>]

生成されたセキュリティ・プロファイル・ファイルの場所。このオプションを指定しない場合のデフォルト値は~/.tuxAppProfileです。

関連項目

artjesadmin

artjesadmin

名前

artjesadmin – TuxJESコマンド・インタフェース。

概要

説明

artjesadminは、TuxJESコマンド・インタフェースです。TuxJESシステムが先に開始されている必要があります。

パラメータとオプション

artjesadminでは、以下のパラメータとオプションがサポートされます。

-h

オプション-hは、前述でリストされているように、artjesadminの使用率情報を出力します。

-v

オプション-vは、Oracle Tuxedo Application Runtime for Batchの現在のバージョンを表します。

-I

オプション-Iは、JCLジョブを送信するために指定します。

-f

genjesprofileによって生成されるセキュリティ・プロファイル・ファイル。デフォルト値は~/.tuxAppProfileです。セキュリティ・プロファイルの所有者は、必ずartjesadminの実行ユーザーであることが求められます。このプロファイルのユーザー名は、送信されたジョブの所有者です。所有者が指定されていないジョブには、所有者名「*」が割り当てられます。
個別の所有者を持つジョブは、その所有者のみが制御できます。個別の所有者(*)のないジョブは、誰でも制御できます。いかなるユーザーでも、すべてのジョブを出力できます。
注意:

-y-t

説明

オプション-y-tは、ジョブを同期的に送信するために追加されたオプションです。表2に、詳細を示します。

表2 オプション-yと-tの説明
オプション
値の範囲
説明
メモ
-y
なし
ジョブが終了するまで待機する同期モードを有効にします。
なし
-t
1 ~ (2^31 -1)
タイムアウト値を指定します。
オプション。-tを省略すると、artjesadminは無限に待機します。
タイムアウトが発生すると、artjesadminコマンドラインは終了しますが、ジョブはそれに影響されずにJESによって継続して実行されます。

注意: ジョブを同期的に送信するには、TuxJES構成ファイル内にEVENTPOST=Aを設定し、UBBCONFIGファイル内でNOTIFYDIPINに設定して、サーバーTMUSREVTを設定する必要があります。

終了コード

表3に、-yを指定したときのartjesadminの終了コードを示します。

表3 終了コード
終了コード
説明
メモ
0
ジョブは正常に完了しました。
なし
1
コマンド実行が失敗しました。
このコードは、無効なタイムアウト値またはコマンドラインの構文エラーのどちらかによって返されます。
2
ジョブ変換が失敗しました。
ジョブは正常に送信されましたが、ジョブ変換が失敗しました。
3
ジョブ実行が失敗しました。
ジョブは正常に送信されましたが、ジョブ実行が失敗しました。
4
ジョブがキャンセルされました。
ジョブは正常に送信されましたが、最終ステータスに到達する前にキャンセルされました。
20
タイムアウトが発生しました。
-tオプションで指定された時間内にジョブが完了しませんでした。

標準出力

表4に示す情報は、次の書式でstdoutに出力されます。
<JOBID>,<JOBNAME>,<JOBSTATUS>,<JOB RETURN CODE>

表4 標準出力
出力内容
説明
サンプル
<JOBID>
ジョブID
00005097
<JOBNAME>
ジョブ名
JOBA
<JOBSTATUS>
ジョブの最終ステータス(タイムアウトが発生する前に終了した場合のみ)
DONE
<JOB RETURN CODE>
EJRから返された、ジョブのリターン・コード(タイムアウトが発生する前にジョブが完了した場合のみ)
C000

リスト1の例: ジョブが正常に実行されました
00000002,JOBA,DONE,C0000
リスト2の例: ジョブが失敗しました
00000002,JOBA,FAILED,U0568
リスト3の例: タイムアウトが発生しました
00000002,JOBA,Already Timeout!

-p-j

説明

オプション-p-jは、artjesadminコンソールを使用せずにジョブ・ステータスを取得するために追加されたオプションです。

終了コード

表5に、-pを指定したときのartjesadminの終了コードを示します。

表5 終了コード
終了コード
説明
メモ
0
ジョブが正常に終了しました。
ジョブ・ステータス= DONE
ジョブが正常に終了しました。
1
コマンド実行が失敗しました。
失敗の原因は、内部エラー、ネットワーク・エラーまたは構文エラーのいずれかです。
3
ジョブ・ステータス= FAIL
JOB実行が失敗しました。
4
ジョブ・ステータス= CANCEL
ジョブがキャンセルされました。
5
ジョブ・ステータス= CONVING
ジョブは変換を待機しています。
6
ジョブ・ステータス= EXECUTING
ジョブは実行中です。
7
ジョブ・ステータス= HOLD_CONVING
ジョブは、変換なしの保留状態です。
8
ジョブ・ステータス= HOLD_WAITING
ジョブは、変換後の保留状態です。
9
ジョブ・ステータス= WAITING
ジョブは実行を待機しています。
10
ジョブ・ステータス= DISCARD
このステータスは、tpenqueue()が失敗したときに発生します。
11
ジョブ・ステータス= INDOUBT
ジョブが実行されているときに、JESサーバーARTJESINITIATORがシャットダウンして再起動した場合、ジョブ・ステータスはINDOUBTになります。
22
ジョブが存在しません。
なし

標準出力

表6に示す情報は、次の書式でstdoutに出力されます。
<JOBID>,<JOBNAME>,<JOBSTATUS>,<JOB RETURN CODE>

表6 標準出力
出力内容
説明
サンプル
<JOBID>
ジョブID
00005097
<JOBNAME>
ジョブ名
JOBA
<JOBSTATUS>
ジョブの現在のステータス
DONE
<JOB RETURN CODE>
EJRから返された、ジョブのリターン・コード(ジョブが完了した場合のみ)
C000

リスト4の例: ジョブが正常に終了しました
00000002,JOBA,DONE,C0000
リスト5の例: ジョブは終了しましたが、失敗しています
00000002,JOBA,FAILED,U0568
リスト6の例: ジョブが実行中です
00000002,JOBA,EXECUTING

artjesadminは、次のサブ・コマンドをサポートします。

submitjob(smj )[-o='xxx'] -i/-I scriptfile

ジョブをTuxJESシステムに送信します。scriptfileパラメータは、送信されるジョブ・スクリプトです。
注意: artjesadminは、scriptfileの通知を担当しません。変換と実行が同じマシン上にない場合、共有ファイル・システム上にあるはずです。オプションは次のとおりです。
正常に呼び出されると、リターン・フォーマットJob xxxが正常に送信されます。エラーが発生した場合、エラー・メッセージが出力されます。
artjesadminは、artjesadmin [-o='xxx'] -i/-I scriptfileの書式を使用してジョブの直接送信もサポートします。表7でリストされているようなエラーが発生する場合、artjesadminにはゼロ以外のリターン・コードが含まれます。

表7 エラー・コード
コード
説明
0
ランタイム・エラーなし
251
ARTJESADMサーバーによって戻されたartjesadminコマンド自体のエラー
252
JES2SUBMITサービス・エラー
その他
EJRノン・ゼロ終了コード

printjob(ptj) -n jobname | -j jobid | -c job_class |-a [-v][-t JCL|KSH]

既存のジョブを表示します。オプションが指定されない場合、すべてのジョブを表示します。オプションは次のとおりです。
-n jobname: 指定されたジョブ名を持つジョブを表示します
-j jobid: 個別のジョブ情報を表示します
-c job_class: 個別のクラス・ジョブ情報を表示します
-a: すべてのジョブを表示します
-v: 冗長モード
-t JCL|KSH: JCL|KSHジョブを表示します
リスト7 printjobの出力
> 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
冗長モードでは、ジョブの詳細情報が表示されます。
オプションを指定しない場合、-aオプションとみなされます。

holdjob(hj) -n job name | -j jobid | -c job_class | -a

CONVINGまたはWAITINGステータスの、指定されたジョブを保留します。オプションは次のとおりです。
-n jobname: 指定されたジョブ名を持つジョブを保留します
-j jobid: 個別のジョブを保留します
-c job_class: 個別のクラス・ジョブを保留します
-a: すべてのジョブを保留します
オプションを指定しない場合、-aオプションとみなされます。

releasejob(rlj) -n job name |-j jobid | -c job_class | -a

ARTJESCONVによる変換、またはARTJESINITIATORによる実行の対象として選択できるように、HOLD_WAITINGまたはHOLD_CONVINGステータスのジョブを解放します。オプションは次のとおりです。
-n jobname: 指定されたジョブ名のジョブを解放します
-j jobid: 個別のジョブを解放します
-c job_class: 個別のクラス・ジョブを解放します
-a: すべてのジョブを解放します
オプションを指定しない場合、-aオプションとみなされます。

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

ジョブを取り消して出力キューに送ります。実行中のジョブでは、このコマンドは関連するARTJESINITIATORを通知し、"-k"オプションを使用してEJRを呼び出します。その他のジョブは直接出力キューに送られます。TuxJESシステムは、EJRが返されるとジョブが終了したとみなします。オプションは次のとおりです。
-n jobname: 指定されたジョブ名を持つジョブを取り消します
-j jobid: 個別のジョブを取り消します
-c job_class: 個別のクラス・ジョブを取り消します
-a: すべてのジョブを取り消します
オプションを指定しない場合、-aオプションとみなされます。

purgejob(pgj) -n job name | -j jobid | -a

出力キューの完了されたジョブが、パージ・キューへ移動されます。他のジョブの場合、purgejobが、canceljobと同じ効果を持っています。purgejobコマンドは、ジョブを直接パージしません。ARTJESPURGEサーバーが、TuxJESシステムからジョブを削除します。ARTJESPURGEが開始されない場合、ジョブは出力キューに残ります。
使用できるオプションは次のとおりです。
-n jobname: 指定されたジョブ名を持つジョブをパージします
-j jobid: 個別のジョブをパージします
-a: すべてのジョブをパージします
オプションを指定しない場合、-aオプションとみなされます。

changeconcurrent(chco) -g groupname -i serverid -n concurrent_num

-gと-iオプションで指定されたARTJESINITIATORサーバーの最大同時実行ジョブ数を変更します。変更は、ARTJESINITIATOR サーバーを再起動しなくても有効になります。
使用できるオプションは次のとおりです。
-g groupname: ARTJESINITIATORサーバーのTuxedoグループ名
-i serverid: ARTJESINITIATORサーバーのTuxedoサーバーID
-n concurrent_num: 最大同時実行ジョブ数
変更は永続的ではなく、ARTJESINITIATORサーバーが再起動すると、数がリセットされます。

printconcurrent(pco) -g groupname -i serverid

-gと-iオプションで指定されたARTJESINITIATORサーバーの最大同時実行ジョブ数を表示します。
使用できるオプションは次のとおりです。
-g groupname: ARTJESINITIATORサーバーのTuxedoグループ名
-i serverid: ARTJESINITIATORサーバーのTuxedoサーバーID

event (et) [-t C,E,P,L,A] on|off

このコマンドは、個別のジョブ・イベントをサブスクライブするようにartjesadminに指示します。オプションは次のとおりです。
C: ジョブ変換完了イベント。イベント名はARTJES_JOBCVTです
E: ジョブ実行終了イベント。イベント名は、ARTJES_JOBEXECです
P: ジョブ・パージ・イベント。イベント名はARTJES_ARTJESPURGEです
L: ジョブの取消し完了イベント。イベント名はARTJES_JOBCANCELです。
A: サポートされているすべてのイベント。イベントがonに設定されている場合、Aがデフォルトです。
on |off: 送信がonまたはoffです。on設定は、-tオプションとともに使用できます。offにすると、すべてのイベント・サブスクリプションのサブスクライブが解除されます。
サブスクライブされているイベント・タイプがJESCONFIG内に構成されていない場合は、エラーがレポートされます。

verbose(v) on|off

冗長モードのオン/オフを切り替えます。

関連項目

Oracle Tuxedo Application Runtime for Batchユーザー・ガイド

artjescleanlock

名前

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でのみ使用できます。

ARTJESADM

名前

ARTJESADM – TuxJES管理サーバー。

概要

ARTJESADM

SRVGRP=”identifier

SRVID=”number” CLOPT=” [-A][servopts options] -- -i JESCONFIG

説明

ARTJESADMは、TuxJESによって提供されるOracle Tuxedoアプリケーション・サーバーです。artjesadminコマンドは、大部分のタスクでARTJESADMと通信します。

ARTJESADMが提供するサービスに他のTuxJESサーバーがアクセスするため、ARTJESADMは、UBBCONFIGファイル内で他のTuxJESサーバーより前に構成されている必要があります。JESCONFIGを変更した場合、新しい構成が有効になるには、すべてのTuxJES関連のサーバーを再起動する必要があります。

パラメータとオプション

ARTJESADMでは、以下のパラメータとオプションがサポートされます。

-i JESCONFIG

JESCONFIG は、TuxJESシステム構成ファイルのフル・パス名を表します。次のパラメータを使用できます。

JESROOT

ジョブ情報を格納するルート・ディレクトリのフル・パス名。必須の属性です。このディレクトリが存在しない場合、ARTJESADMが自動的に作成します。
JESROOT=/xxx/xxx

DEFAULTJOBCLASS

ジョブに対してジョブ・クラスが設定されていない場合のデフォルト・ジョブ・クラス。オプションの属性です。この属性が設定されていない場合、デフォルト・ジョブ・クラスはAです。
DEFAULTJOBCLASS=[A-Z],[0=9]

DEFAULTJOBPRIORITY

ジョブに対してジョブ優先度が設定されていない場合のデフォルトのジョブ優先度。オプションの属性です。この属性が設定されていない場合、デフォルトのジョブ優先度は0です。
DEFAULTJOBPRIORITY=[0-15]

DUPL_JOB=NODELAY

設定されていない場合、あるジョブ名に対して、1つのジョブだけが実行ステータスであることができます。NODELAYは、依存性チェックを削除します。デフォルト値は、遅延実行です。

EVENTPOST=S,C,E,P,L,A

個別のステージで、ジョブに対してイベントがポストされるかどうかを指定します。
S: ジョブ送信イベント。イベント名: ARTJES_JOBSUBMIT
C: ジョブ変換完了イベント。イベント名: ARTJES_JOBCVT
E: ジョブ実行終了イベント。イベント名: ARTJES_JOBFINISH
P: ジョブ・パージ・イベント。イベント名: ARTJES_JOBPURGE
L: ジョブ取消し完了イベント。イベント名: ARTJES_JOBCANCEL
A: サポートされているすべてのイベント。
EVENTPOSTが指定されない場合、イベントはポストされません。イベントのポストでのデータ・バッファはFML32タイプで、フィールドはJESDIR/include/jesflds.hで定義されます。

JOBREPOSITORY

ジョブが格納されるジョブ・リポジトリのパス。設定された場合、ジョブ送信で入力されたスクリプト・ファイル・パスに、JOBREPOSITORY内の相対パスを使用できます。

PRIVILEGE_MODE

ユーザー代入を有効化するかどうか、およびその方法を指定します(詳細は、『Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド』のJuxJESユーザー代入に関する項を参照してください)。値は次のとおりです。
NONE: デフォルト値。ジョブがJESシステムを起動するOSユーザーによって実行されることを示します。これは、JESシステム上のこれまでの実装すべてと互換性があります。
USER_IDENTICAL: ジョブが、JESシステムに参加するJESクライアントを使用してOracle Tuxedoユーザーによって実行されることを示します。この値を選択する前に、Oracle Tuxedoの各ユーザーが既存のOSユーザーに対応することを確認します。
USER_MAPPING: この値を指定すると、JESシステムはTuxJESユーザー・マッピング・ファイルを参照し、JESシステムに参加するJESクライアントを使用してOracle Tuxedoユーザーに対応するOSユーザーを検出して、このOSユーザーをジョブの実行者として指名します。

USER_MAPPING_FILE

TuxJESユーザー・マッピング・ファイルの保存場所のフルパス。PRIVILEGE_MODEとともに使用されます(その値がUSER_MAPPINGの場合)。
ユーザー・マッピング・ファイルの所有者はルート、ファイル権限は「-rw-------」にすることをお薦めします。
1人のOracle Tuxedoユーザーは、1人のOSユーザーのみにマッピングする必要があります。また、同様に1人のOSユーザーは1人のTuxedoユーザーにマッピングすることをお薦めします。

UBBCONFIGの例:

ARTJESADM

SRVID=1 SRVGRP=SYSGRP CLOPT="-A -- -i /nfs/users/jes/jesconfig"

関連項目

Oracle Tuxedo Application Runtime for Batchユーザー・ガイド

ARTJESCONV

名前

ARTJESCONV – TuxJES変換サーバー。

概要

ARTJESCONV

SRVGRP=”identifier

SRVID=”number” CLOPT=” [-A][servopts options] -- ”

説明

TuxJES変換サーバー。ジョブ変換をするためのEJR起動を担当します。

UBBCONFIGの例:

ARTJESCONV

SRVID=2 SRVGRP=SYSGRP CLOPT="-A -- "

関連項目

Oracle Tuxedo Application Runtime for Batchユーザー・ガイド

ARTJESINITIATOR

名前

ARTJESINITIATOR – ジョブ・イニシエータ

概要

ARTJESINITIATOR

SRVGRP=”identifier

SRVID=”number” CLOPT=” [-A][servopts options] -- -C jobclasses [-n concurrent_num] [-d]”

説明

ARTJESINITIATORは、Oracle Tuxedoアプリケーション・サーバーにより提供されるTuxJESです。ジョブを実行するためのEJR起動を担当します。

実行中のジョブがある間にARTJESINITIATOR が強制終了またはシャットダウンされると、そのジョブは、再起動時にINDOUBT状態に入れられます。

パラメータとオプション

ARTJESINITIATORでは、以下のパラメータとオプションがサポートされます。

-c jobclasses[jobclass]

このARTJESINITIATORサーバーが関連付けられているジョブ・クラスを指定します。このオプションを指定しない場合、ARTJESINITIATORはすべてのジョブ・クラスに関連付けられます。

-n concurrent_num

このARTJESINITIATORサーバーの最大同時実行ジョブ数を指定します。デフォルト値は1です。

-d

このARTJESINITIATORサーバーの最大同時実行ジョブ数を指定しますが、artjesadmin changeconcurrentコマンドで変更できます。

UBBCONFIGの例:

ARTJESINITIATOR

SRVID=3 SRVGRP=SYSGRP MIN=10 CLOPT="-A -- -c AHZ"

この例では、10のARTJESINITIATORインスタンスが構成され、AHおよびZジョブ・クラスに関連付けられます。

関連項目

Oracle Tuxedo Application Runtime for Batchユーザー・ガイド

ARTJESPURGE

名前

ARTJESPURGE – ジョブ・キューをパージします

概要

ARTJESPURGE

SRVGRP=”identifier

SRVID=”number” CLOPT=” [-A][servopts options] -- ”

説明

ARTJESPURGEは、パージ・キューを監視します。パージ・キューにジョブを検出すると、キュー内のジョブを削除し、ディレクトリJESROOT/<JOBID>を削除します。

関連項目

Oracle Tuxedo Application Runtime for Batchユーザー・ガイド

TuxJESキュー・システム

z/OS JES2システムをエミュレートするために、TuxJESシステムは、キュー機構を使用してバッチ・ジョブのライフサイクルを管理します。すべてのキューは、JES2QSPACEと呼ばれる1つのキュー・スペースに作成されます。バッチ・ジョブは、表8にリストされたキューにあり、またはそこに転送されるメッセージによって表されます。

表8 TuxJESキュー
キュー
説明
JCL変換キュー
JCLジョブがTuxJESシステムに送信されると、まずJCL変換キューに入れられます。システムに、JCL変換キューは1つのみ存在します。変換されたJCLジョブは、JCL変換キューから変換キューに移動されます。キュー内のジョブは、FIFO順に処理されます。
キュー名: CONV_JCL
変換キュー
バッチ・ジョブがTuxJESシステムに送信されると、まず変換キューに入れられます。システムには、変換キューは1本だけ存在します。変換されたジョブは、変換キューから実行キューに移動されます。キュー内のジョブは、FIFO順に処理されます。
キュー名: CONV
ExecGroupキュー
このキューは、jesconfigファイル内でNJESUPPORTが有効な場合に必要です。このキューは、ジョブが実行キューにあるときに、各ジョブのマッピングとその実行グループを保持します。
キュー名: EXECGRP
保留キュー

ジョブがHOLD状態(JCLHOLDまたはHOLD)の場合、保留キューに入れられます。解放されると、typrunパラメータに基づいて、変換キューまたは待機キューに移動されます。

キュー名: HOLD
実行キュー
36のジョブ・クラス(A - Zおよび0 - 9)があります。ジョブには、0 - 15の優先度値もあります。ジョブは、ジョブ・クラスと優先度に基づいてスケジュールされます。
1つのジョブ・クラスは、1つの/Qキュー(36のキューをまとめたもの)にマップされます。これらは、ジョブが保留状態で格納され、実行を待機するキューです。ジョブ優先度は、キュー・メッセージ優先度にマップされます。キューはすべて、優先度に基づいて作成されます。
キュー名: [A-Z]、[0-9]。
実行中キュー
このキューは、動作中/実行中のジョブを格納します。システムに、実行中のキューは1つだけです。ジョブが実行キューから取り出され、実行中の状態に正常に移行すると、ジョブは実行中キューに移動されます。このキューのジョブは、FIFO順に処理されます。
キュー名: EXEC
出力キュー
完了するか、エラーが発生したジョブは出力キューに送信されます。出力キューは1つのみ存在します。キュー内のジョブは、FIFO順に処理されます。
キュー名: OUTPUT
パージ・キュー
パージされる予定のジョブは、パージ・キューへ移動されます。システムに、パージ・キューは1つのみ存在します。
キュー名: PURGE
内部キュー
ART JESも、内部使用のためにJES2QSPACE上にいくつかの内部キューを持っています。

TuxJESキュー作成スクリプト

キュー・スペース(JES2QSPACE)と、表8にリストされたキューを作成するために、TuxJESシステムには、サンプル・シェル・スクリプト(jesqinit)が用意されています。環境に合わせてスクリプトを変更することはできますが、以下を厳守する必要があります。

  1. キュー順序は、変更できません
  2. キュー名とキュー・スペース名は固定です
  3. スクリプトは、キュー・スペース/キュー作成パラメータに合わせてカスタマイズできます

推奨/Q作成値

ページのデバイス・サイズ: 10000

ページのキュー・スペース・サイズ: 5000(ジョブの最大数は10000、各ジョブは2kバイト消費し、ページ・サイズは4kと想定します)

キュー内のメッセージ数: 10000

同時トランザクション数: 1000

キュー内の同時プロセス数: 100

注意: これらのパラメータは、固有の環境に合わせてカスタマイズできます。

TuxJESユーザー代入

JESは、ジョブを実行する特定のOSユーザーを定義することをサポートします。TuxedoユーザーとOSユーザーをマッピングするメカニズムを使用すると、JESシステムはジョブに準拠するTuxedo AAA資格証明を、ジョブを処理する際にリソースへの限定アクセス権しか持たないOSユーザーに関連付けることが可能です。

用語

表9は、この項で説明されるユーザー代入機能をよく理解する上で知っておく必要がある用語のリストです。

表9 ユーザー代入の用語
用語
説明
ジョブ送信者
artjesadminを使用してJESジョブを送信するOSユーザー
ジョブ所有者
JESジョブの所有者として表示されるOracle Tuxedoユーザー
ジョブ・ユーザー
artjesadminを使用してJESジョブを送信、キャンセル、または出力するOSユーザー
ジョブ実行者
JESジョブを実行するためにEJRを実行するOSユーザー

様々な使用状況でのジョブ所有者の職種

JESシステムによって指定されるジョブ所有者は、artjesadminおよびPRIVILEGE_MODE上の構成の組合せに左右されます。表10は、ジョブ所有者の指定と様々な使用状況との間の関係を示します。

表10 様々な使用状況におけるジョブ所有者
構成のシナリオ
ジョブ所有者
artjesadmin次とともに使用される場合
PRIVILEGE_MODEが次のように設定される場合
ユーザー名を含むプロファイル
なし
Oracle Tuxedoユーザー
ユーザー名を含むプロファイル
USER_IDENTICALまたはUSER_MAPPING
Oracle Tuxedoユーザー

注意: Oracle Tuxedo SECURITYパラメータは、USER_AUTH、ACLまたはMANDATORY_ACLに設定する必要があります。そのように設定しない場合、JESシステムは起動に失敗し、ULOGには次のエラー・メッセージが出力されます。"ERROR: The current Tuxedo security level disallow the given privilege mode".

プロファイルがないか、またはユーザー名を含むプロファイルがありません
なし
*
所有者を持つジョブ「*」は誰でも制御できます。
プロファイルがないか、またはユーザー名を含むプロファイルがありません
USER_IDENTICALまたはUSER_MAPPING
artjesadminがログインに失敗し、次のエラー・メッセージが表示されます。"ERROR: failed to join application."

ジョブ操作の権限

表11および表12は、ユーザーの代入を有効化しているTuxJESシステムでジョブを操作する場合の異なるIDを持つユーザーの権限を示します。

表11 PRIVILEGE_MODEが「USER_IDENTICAL」に設定されている場合のジョブ操作の権限
ユーザー
権限
Oracle Tuxedoユーザーの「ルート」
ジョブの出力、保持、解放、キャンセル、パージ、および制御
ジョブの所有者
ジョブの出力、保持、解放、キャンセル、パージ、および制御
対応するジョブ・ディレクトリの読取りおよび実行権限を持つOracle Tuxedoユーザー
ジョブの出力

表12 PRIVILEGE_MODEが「USER_MAPPING」に設定されている場合のジョブ操作の権限
ユーザー
権限
OSユーザーの「ルート」にマッピングされているOracle Tuxedoユーザー
ジョブの出力、保持、解放、キャンセル、パージ、および制御
ジョブ実行者にマッピングされているOracle Tuxedoユーザー
ジョブの出力、保持、解放、キャンセル、パージ、および制御
対応するジョブ・ディレクトリの読取りおよび実行権限を持つOSユーザーにマッピングされているOracle Tuxedoユーザー
ジョブの出力

TuxJESにおけるユーザー代入の有効化

TuxJESでユーザー代入を有効化するには、次の操作を実行する必要があります。

TuxJESにおけるJESCONFIGの構成

JESCONFIGにおけるPRIVILEGE_MODEの値は、MAPPING_CREDENTIALまたはIDENTITY_CREDENTIALに指定する必要があります。

JESCONFIGにおけるPRIVILEGE_MODEの値がMAPPING_CREDENTIALの場合、USER_MAPPING_FILEの値を指定する必要があり、ユーザー・マッピング・ファイルにはOracle TuxedoユーザーとOSユーザーとの間のマッピングが含まれる必要があります。

ルート・ユーザーによるJESシステムの起動

JESがSHMモードで稼働している場合、起動はルート・ユーザーが行う必要があります。

JESがMPモードで稼働している場合、次のいずれかを実行します。

JESシステムに関与するすべてのマシンは、同一のNISシステムを使用することをお薦めします。

Tuxedo UBBCONFIGの構成

ジョブ・ユーザーは全員、JESシステムのIPCリソースへのフル権限を持つ必要があります。

TUXCONFIGRESOURCEセクションにあるSECURITYパラメータは、USER_AUTHACLまたはMANDATORY_ACLにする必要があります。

注意: SECURITYパラメータがAPP_PWに設定され、AUTHSVCパラメータが構成されている場合、SECURITYレベルはOracle TuxedoによってUSER_AUTHとみなされます。

次はUBBCONFIGの例です。

リスト8 TuxJESシステムでユーザー代入を有効化した場合のOracle Tuxedo UBBCONFIGファイルの例
#	(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を持つユーザーのファイル・システム権限が次の要件を満たすように構成されているか確認する必要があります。

注意: ジョブ実行者は全員、ULOGstdoutおよびstderrへの書込み権限を持つ必要があります。その権限を持たない場合、ログと出力メッセージが正常に書き込まれない可能性があります。

 


TuxJESジョブの操作

TuxJESでは、標準のジョブ操作インタフェースをサポートしています。サービス規約として一連のFML32フィールドが定義されています。TuxJES付属のartjesadminユーティリティでは、通常のTuxedo ATMI API (詳細は、Oracle Tuxedo API: ATMIに関する項を参照)を使用してジョブ情報を送信、制御および出力します。ユーザーは、TuxJESジョブ管理システムと通信する、パーソナライズされたアプリケーションの作成もサポートされています。このドキュメントでは、一般的な手順とプログラミング手法について説明します。

TuxJESジョブの操作で使用されるFML32フィールド

TuxJESジョブに関連するすべてのフィールドは、$JESDIR/udataobj/jesfldsで定義されます。対応するヘッダー・ファイルは、$JESDIR/include/jesflds.hにあります。表13は、ジョブ操作で使用されるフィールドを示しています。

表13 TuxJESジョブの操作で使用されるFML32フィールド
フィールド名
種類
説明
JES2_JOB_ID
STRING
ジョブがシステムに正常に送信された場合、TuxJESジョブ管理によって生成されるジョブID。範囲は1-99999999です。
JES2_JOB_NAME
STRING
このジョブに指定されるジョブ名。ユーザーがシェル・スクリプトで指定します。
JES2_JOB_CLASS
STRING
ジョブ・クラス。
JES2_JOB_PRTY
SHORT
ジョブの優先度(0-15の範囲)。
JES2_JOB_TYPRUN
STRING
ジョブ・タイプ。ジョブ送信に対してユーザーがシェル・スクリプトで指定します。
JES2_JOB_SCRIPT
STRING
kshジョブ・スクリプト名。絶対パスまたは相対パスで指定できます。後者の場合は、現在の作業ディレクトリが基準となります。
JES2_JOB_EJROPTION
STRING
EJR自体に渡されるオプション。
JES2_JOB_OWNER
STRING
ジョブの所有者。ジョブ情報の問合せでサーバーがジョブを送信および返されるときに、指定します。
JES2_JOB_SUBMITTIME
LONG
ジョブ送信のタイムスタンプ。Epoch以降の秒数です。
JES2_JOB_STATUS
STRING
サーバーから返されるジョブ・ステータス。
JES2_JOB_ERROR
STRING
操作でエラーが発生すると、フィールドに情報が保持されます。
JES2_JOB_MSG
STRING
特定のジョブのエラー情報が保持されます。JES2_JOB_ERRORとは異なり、JES2_JOB_MSGは一般的なエラー情報を保持します。
JES2_JOB_CURRENT
STRING
ジョブの現在の手順。
JES2_JOB_ENDTIME
LONG
終了したジョブのタイムスタンプ。Epoch以降の秒数です。
JES2_JOB_EXECTIME
LONG
実行中のジョブのタイムスタンプ。Epoch以降の秒数です。
JES2_JOB_EXECMAC
STRING
実行中のジョブのホスト。
JES2_JOB_USRSEC
LONG
ユーザー・レベルのCPU時間(秒単位)。
JES2_JOB_USRUSEC
LONG
ユーザー・レベルのCPU時間(1秒間のマイクロ秒部分)。
JES2_JOB_SYSSEC
LONG
システム・レベルのCPU時間(秒単位)。
JES2_JOB_SYSUSEC
LONG
システム・レベルのCPU時間(1秒間のマイクロ秒部分)。

前述のフィールドを使用するには、ソース・コードにヘッダー・ファイル$JESDIR/include/jesflds.hをインクルードし、Tuxedo FML32 APIを使用して入出力のFML32バッファを操作する必要があります。詳細は、 『FMLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』を参照してください。

TuxJESジョブの操作で使用されるATMIサービス

ARTJESADMサーバーでは、ジョブ処理のエントリとして、次のATMIサービスが提供されています。クライアント・プログラムでは、tpcallとFML32バッファなど、標準のATMI APIを使用してこれらのサービスを呼び出すことができます。このとき、入力および出力用にフィールドが準備または取得されます。

JES2SUBMIT

このサービスは、ジョブを送信する機能を提供します。

入力

必須フィールド

JES2_JOB_SCRIPT

省略可能フィールド

JES2_JOB_OWNER
注意: JES2_JOB_OWNER が指定されていない場合、このジョブは「*」ユーザー、つまり、このジョブの所有権がないと判断されます。
出力

成功

出力バッファ内のフィールドは次のとおりです。

失敗

送信が失敗した場合、JES2_JOB_ERRORにはエラー・メッセージが保持され、tperrnoTPESVCFAILに設定されます。

JES2PRINT

このサービスは、ジョブ情報の問合せで使用されます。インタフェースでは、指定のジョブIDの特定のジョブ、同じジョブ名およびジョブ・クラスの一連のジョブ、またはすべてのジョブを取得できます。結果に複数のジョブ・インスタンスが含まれる場合、これらはFML32オカレンス・スタイルとなり、オカレンスは0から始まります。たとえば、3つのジョブが返された場合、1番目のジョブがオカレンス0、2番目のジョブが1、3番目のジョブが2となります。

入力

必須フィールド

なし何も指定されない場合、サーバーはすべてのジョブを出力します。

省略可能フィールド

注意: ARTJESADMは、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADMはチェックを停止します。
出力

成功

取得が正常に完了すると、次のフィールドが返されます。
注意:

失敗

一般的な操作が失敗した場合、JES2_JOB_ERRORにはエラー・メッセージが保持され、tperrnoTPESVCFAILに設定されます。

JES2HOLD

このサービスは、実行中でなく、終了ステータスでもないジョブを保留するために使用されます。ジョブ・コレクションのインタフェースはJES2PRINTと同じです。

入力

必須フィールド

なし何も指定されない場合、サーバーはすべてのジョブを保留します。

省略可能フィールド

注意: ARTJESADMは、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADMはチェックを停止します。
出力

成功

操作が正常に完了すると、次のフィールドが返されます。
注意: 特定のジョブに関して問題がある場合、JES2_JOB_IDで指定される対応するシーケンスで、JES2_JOB_MSGが有効になります。部分的な問題の場合、tperrnoTPOKになります。

失敗

一般的な操作が失敗した場合、JES2_JOB_ERRORにはエラー・メッセージが保持され、tperrnoTPESVCFAILに設定されます。

JES2RELEASE

このサービスは、保留ステータスのジョブを解放するために使用されます。ジョブは、hold操作により、time typerunを送信して、保留ステータスにできます。ジョブ・コレクションのインタフェースはJES2PRINTと同じです。

入力

必須フィールド

なし何も指定されない場合、サーバーはすべてのジョブを解放します。

省略可能フィールド

注意: ARTJESADMは、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADMはチェックを停止します。
出力

成功

操作が正常に完了すると、次のフィールドが返されます。
注意: 特定のジョブに関して問題がある場合、JES2_JOB_IDで指定される対応するシーケンスで、JES2_JOB_MSGが有効になります。部分的な問題の場合、tperrnoTPOKになります。

失敗

一般的な操作が失敗した場合、JES2_JOB_ERRORにはエラー・メッセージが保持され、tperrnoTPESVCFAILに設定されます。

JES2CANCEL

このサービスは、ジョブの取消しで使用されます。ジョブ・コレクションのインタフェースはJES2PRINTと同じです。

入力

必須フィールド

なし何も指定されない場合、サーバーはすべてのジョブを取り消します。

省略可能フィールド

注意: ARTJESADMは、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADMはチェックを停止します。
出力

成功

操作が正常に完了すると、次のフィールドが返されます。
注意: 特定のジョブに関して問題がある場合、JES2_JOB_IDで指定される対応するシーケンスで、JES2_JOB_MSGが有効になります。部分的な問題の場合、tperrnoTPOKになります。

失敗

一般的な操作が失敗した場合、JES2_JOB_ERRORにはエラー・メッセージが保持され、tperrnoTPESVCFAILに設定されます。

JES2PURGE

このサービスは、ジョブのパージで使用されます。ジョブがまだ終了していない場合、その効果はJES2CANCELと同じです。ジョブ・コレクションのインタフェースはJES2PRINTと同じです。

入力

必須フィールド

なし何も指定されない場合、サーバーはすべてのジョブをパージします。

省略可能フィールド

注意: ARTJESADMは、フィールドのジョブID、名前およびクラスのシーケンスをチェックします。フィールドがチェックされると、ARTJESADMはチェックを停止します。
出力

成功

操作が正常に完了すると、次のフィールドが返されます。
注意: 特定のジョブに関して問題がある場合、JES2_JOB_IDで指定される対応するシーケンスで、JES2_JOB_MSGが有効になります。部分的な問題の場合、tperrnoTPOKになります。

失敗

一般的な操作が失敗した場合、JES2_JOB_ERRORにはエラー・メッセージが保持され、tperrnoTPESVCFAILに設定されます。

ジョブ・ステータスの変更に対するイベント・サブスクリプション

TuxJESは、Tuxedo EventBrokerに基づくイベント通知メカニズムを備えています(詳細は、 イベントへのサブスクライブに関する項を参照)。各ステージで何か発生すると、次のユーザー・レベルのイベントが提供されます。各イベントのデータ・バッファは、特定のジョブのFML32バッファです。

表14 サブスクリプションで使用可能なTuxJESイベント
イベント名
説明
ARTJES_JOBSUBMIT
新しいジョブが送信されました。
ARTJES_JOBCVT
ジョブ変換が完了しました。
ARTJES_JOBCVT_FAIL
ジョブ変換が失敗しました。
ARTJES_JOBEXEC
ジョブが正常に終了しました。
ARTJES_JOBEXEC_FAIL
ジョブの実行が失敗しました。
ARTJES_JOBPURGE
ジョブはパージされました。
ARTJES_JOBCANCEL
ジョブがキャンセルされました。

イベントのポストはARTJESADM内のJESCONFIG構成に依存するため、すべてのイベントまたは一部のイベントの必要に応じて、スイッチをオンにする必要があります。

セキュリティの考慮事項

ジョブ管理サービスのインタフェースを使用するアプリケーションは、Tuxedo ATMIセキュリティの規則に従う必要があります(詳細は、ATMIセキュリティの概要に関する項を参照)。適切なアプリケーション・パスワードおよびユーザー名/パスワードを、クライアント・アプリケーション内のtpinit()で指定する必要があります。サービスの権限を制御するには、「TuxJESジョブの操作で使用されるATMIサービス」でリストされているサービスに対して、適切なACLまたはMANDATORY ACLUBBCONFIGで構成する必要があります。

ジョブの送信の例

次の例は、ジョブの送信方法を示しています。-I $JESDIR/includeにはCFLAGSを含める必要があります。

リスト9 ジョブの送信の例
#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);
}

  先頭に戻る       前  次