Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/J編


5.2.2 オペランド

dcnamuse=Y|N 〜《N》

ネームサービスを使用したRPCを使用するかどうかを指定します。

Y:ネームサービスを使用したRPCを使用します。

N:ネームサービスを使用したRPCを使用しません。

ネームサービスを使用したRPCを行う場合,TP1/Client/J環境定義のdchostオペランドに窓口となるTP1/Serverのホスト名とネームサービスのポート番号を指定してください。ポート番号を省略する場合は,TP1/Client/J環境定義のdcnamportオペランドにネームサービスのポート番号を指定してください。詳しくは,TP1/Client/J環境定義のdchostオペランドを参照してください。TP1/Client/J環境定義のdcnamuse,dcrapdirect,およびdcscddirectオペランドは排他関係にあるため,同時にYを指定できません。これらのオペランドの二つ以上にYを指定した場合,定義エラーとなります。TP1/Client/J環境定義のdcnamuse,dcrapdirect,およびdcscddirectオペランドのユースケースごとの設定方法は,TP1/Client/J環境定義のdcrapdirectオペランドを参照してください。

TP1/Web接続機能は,dcrapdirectオペランドにYを指定した場合にだけ使用できます。dcweburlオペランドを定義して,かつdcscddirect=Yおよびdcrapdirect=Yの場合は,定義エラーとなります。

dcnamport=ネームサービスのポート番号

〜〈符号なし整数〉((5001〜65535))《10000》

クライアントが属しているOpenTP1のシステム共通定義のname_portオペランドで指定したネームサービスのポート番号を指定します。dchostオペランドでポート番号を指定していないホストに対して,この定義の値が有効になります。

dchost=窓口となるTP1/Server 〜〈文字列〉

窓口となるTP1/Serverのホスト名と,rapリスナーのポート番号,スケジュールサービスのポート番号,またはネームサービスのポート番号を指定します。区切り文字','を使用して,複数のTP1/Serverを指定できます。RPCをrapリスナー経由で行う場合は,rapリスナーのホスト名,またはファイアウォールのホスト名を指定します。

dchostオペランドとdcweburlオペランドの両方を指定した場合は,dcweburlオペランドの指定が有効になります。

なお,XAリソースサービス機能を使用する場合,dchostオペランドに指定できる窓口となるTP1/Serverは一つだけです。複数指定した場合の動作は保証できません。

形式

dcrapdirect=Yの場合

ホスト名〔:rapリスナーのポート番号〕〔,ホスト名〔:rapリスナーのポート番号〕,…〕

dcscddirect=Yの場合

ホスト名〔:スケジュールサービスのポート番号〕〔,ホスト名〔:スケジュールサービスのポート番号〕,…〕

dcnamuse=Yの場合

ホスト名〔:ネームサービスのポート番号〕〔,ホスト名〔:ネームサービスのポート番号〕,…〕

・ホスト名 〜〈文字列〉

・ポート番号 〜〈符号なし整数〉((5001〜65535))

指定できる最大文字数は256です。区切り文字','の後ろ以外は空白文字(スペースまたはタブ)を入れないでください。ホスト名には,10進ドット記法のIPアドレスを指定することもできます。

TP1/Serverのホスト名を二つ以上指定した場合,窓口となるTP1/Serverの障害を検出したとき,dchostオペランドに指定されている次のTP1/Serverを参照して切り替えを試みます。ただし,RPCをrapリスナー経由で行う場合は,TP1/Client/J環境定義でdcrapautoconnect=Y,またはsetDccltextendメソッドでDCRPC_RAP_AUTOCONNECTを指定した場合だけ,dchostオペランドの次のTP1/Serverを参照して切り替えを試みます。

ポート番号は,dcrapdirect=Yの場合,rapリスナーのポート番号を指定します。dcscddirect=Yの場合,スケジュールサービスのポート番号を指定します。dcnamuse=Yの場合,ネームサービスのポート番号を指定します。

ポート番号を省略すると,dcrapdirect=Yの場合,dcrapportオペランドの値を仮定します。dcscddirect=Yの場合,dcscdportオペランドの値を仮定します。dcnamuse=Yの場合,dcnamportオペランドの値を仮定します。

dcwatchtim=最大応答待ち時間

〜〈符号なし整数〉((0〜65535))《180》(単位:秒)

CUPからTP1/Serverに対しての要求を開始してから応答が返るまでの待ち時間の最大値を指定します。

指定時間を過ぎても応答が返らない場合は,CUPへエラーリターンします。0を指定した場合は,応答を受信するまで無限に待ち続けます。

dcwatchtimオペランドの指定が適用されるAPI(メソッド)を次に示します。

  • closeConnectionメソッド

  • openConnectionメソッド

  • rpcCallメソッド(スケジューラダイレクト機能を使用した非応答型RPCの場合を除く)

  • rpcCallToメソッド(同期応答型RPCの場合)

  • trnBeginメソッド

  • trnChainedCommitメソッド

  • trnChainedRollbackメソッド

  • trnUnchainedCommitメソッド

  • trnUnchainedRollbackメソッド

dccltinquiretime=問い合わせ間隔最大時間

〜〈符号なし整数〉((0〜1048575))(単位:秒)

CUPがサーバに対して問い合わせを行ってから,次の問い合わせをするまでの間隔の最大時間を指定します。

問い合わせ間隔最大時間はrapサーバで監視するタイマです。rapサーバでは,問い合わせ間隔を監視し,問い合わせ間隔最大時間を超えてもrapサーバに問い合わせがない場合,常設コネクションを解放します。また,トランザクション内で問い合わせ間隔最大時間に達したことを検知した場合は,該当するトランザクションを強制的にロールバックします。

この定義に0を指定した場合は,問い合わせ間隔を監視しません。この指定を省略した場合は,rapサーバで指定された問い合わせ間隔最大時間が有効になります。

このオペランドに0以外を指定し,オートコネクトモードでrpcCallメソッドを使用してRPCを実行した場合,CUP実行プロセスでも問い合わせ間隔最大時間を監視します。

CUP実行プロセスで問い合わせ間隔最大時間を監視するかどうかは,dcinquiretimecheckオペランドの指定値に従います。このオペランドとあわせて,dcinquiretimecheckオペランドも参照してください。

なお,rapサーバが常設コネクションを解放するタイミングと,CUP実行プロセスがRPCを実行するタイミングが重なった場合,RPCの実行に失敗してErrNetDownAtClientException例外を返すことがあります。

この現象を回避するため,次のオペランドを指定し,CUP実行プロセスで「問い合わせ間隔最大時間」をチェックするように設定してください。

  • dcinquiretimecheckオペランドにYを指定

  • dccltinquiretimeオペランドに0以外を指定

  • dcrapautoconnectオペランドにYを指定

オペランドの詳細は,TP1/Client/J環境定義のdcinquiretimecheck,およびdcrapautoconnectオペランドを参照してください。

dcwatchtiminherit=Y|N 〜《N》

リモートAPI機能を使用したRPCを行う場合に,CUPの最大応答待ち時間をrapサーバ側に引き継ぐかどうかを指定します。

Y:rapサーバ側にCUPの最大応答待ち時間を引き継ぎます。

N:rapサーバ側にCUPの最大応答待ち時間を引き継ぎません。

dcwatchtimrpcinherit=Y|N 〜《N》

CUPの最大応答待ち時間をTP1/Server側に引き継ぐかどうかを指定します。CUPの最大応答待ち時間を引き継ぐと,CUPがタイムアウトしているのにTP1/Server側でサービスを実行することを防止できます。

Y:TP1/Server側にCUPの最大応答待ち時間を引き継ぎます。

N:TP1/Server側にCUPの最大応答待ち時間を引き継ぎません。

dccltdelay=最大通信遅延時間

〜〈符号なし整数〉((0〜65535))《0》(単位:秒)

CUPとrapサーバとの間の通信オーバヘッドを考慮し,rapサーバ側の応答監視をTP1/Client/J側よりも早く終わらせる場合に指定します。この定義を指定すると,rapサーバ側の監視を指定した時間分だけ早く終了させ,TP1/Client/J側の監視時間のタイムアウトによるメッセージのすれ違いを防ぎます。

この定義は,TP1/Client/J環境定義にdcrapdirect=Yおよびdcwatchtiminherit=Yを指定した場合にだけ有効です。

TP1/Client/J環境定義にdcwatchtim=0を指定した場合またはsetDcwatchtimメソッドで0を指定した場合,およびTP1/Client/J環境定義にdcwatchtiminherit=Nを指定した場合は,dccltdelayオペランドの指定は無視されます。dcwatchtimオペランドに指定した値からdccltdelayオペランドに指定した値を引いたときに,0または負の値になった場合も,dccltdelayオペランドの指定は無視され,1が仮定されます。

dcselint=応答電文監視時間間隔 〜〈符号なし整数〉((1〜65535))《100》(単位:ミリ秒)

このオペランドは,旧バージョンとの互換性のためだけに存在します。現在はこのオペランドを指定しても無視されます。

dccltextend=00000000|00000001 〜《00000000》

TP1/Client/Jの機能拡張レベルの設定を指定します。

00000000:TP1/Client/Jの機能を拡張しません。

00000001:rpcCallメソッド呼び出し時,自CUPのIPアドレスをサービスに連絡します。呼び出したサービスでdc_rpc_get_callers_address()関数を実行し,CUPのアドレスを求める必要がある場合に指定します。また,リモートAPI機能を使用したRPCで,rapサーバとクライアント間で通信障害が発生した場合,rapサーバ側が出力するメッセージにクライアント側のIPアドレスが出力されるようになります。

dccache=ネームキャッシュの最大エントリ数 〜〈符号なし整数〉((2〜256))《8》

TP1/Client/Jで使用するサービス情報をキャッシュするためのキャッシュの最大エントリ数を指定します。LRU方式で管理します。キャッシュのエントリ数が指定値を超える場合は,最も過去に呼び出されたサービス情報を削除します。

dchostselect=Y|N 〜《N》

rpcOpenメソッド実行時,窓口となるTP1/Serverをランダムに選択するかどうかを指定します。この定義は,dchostオペランドに窓口となるTP1/Serverを複数指定した場合にだけ有効です。

Y:窓口となるTP1/Serverをランダムに選択します。

N:窓口となるTP1/Serverをランダムに選択しません。

窓口となるTP1/Serverへ問い合わせ中に障害を検出した場合,障害を検出したTP1/Serverを除いて,dchostオペランドに指定された次のTP1/Serverに切り替えを試みます。詳しくは,「2.15 ホスト切り替え機能」を参照してください。

dcscddirect=Y|N 〜《N》

TP1/Serverのネームサービスにサービス情報を問い合わせないで,スケジューラダイレクト機能を使用したRPCを使用するかどうかを指定します。

Y:スケジューラダイレクト機能を使用したRPCを使用します。

N:スケジューラダイレクト機能を使用したRPCを使用しません。

スケジューラダイレクト機能を使用する場合,TP1/Client/J環境定義のdchostオペランドに窓口となるTP1/Serverのホスト名とスケジュールサービスのポート番号を指定してください。ポート番号を省略する場合は,TP1/Client/J環境定義のdcscdportオペランドにスケジュールサービスのポート番号を指定してください。詳しくは,TP1/Client/J環境定義のdchostオペランドを参照してください。TP1/Client/J環境定義のdcrapdirect,dcscddirect,およびdcnamuseオペランドは排他関係にあるため,同時にYを指定できません。これらのオペランドの二つ以上にYを指定した場合,定義エラーとなります。TP1/Client/J環境定義のdcscddirect,dcrapdirect,およびdcnamuseオペランドのユースケースごとの設定方法は,TP1/Client/J環境定義のdcrapdirectオペランドを参照してください。

TP1/Web接続機能は,dcrapdirectオペランドにYを指定した場合にだけ使用できます。dcweburlオペランドを定義して,かつdcscddirect=Yおよびdcrapdirect=Yの場合は,定義エラーとなります。

dcscdport=スケジュールサービスのポート番号

〜〈符号なし整数〉((5001〜65535))

クライアントが属しているOpenTP1のスケジュールサービス定義のscd_portオペランドで指定したスケジュールサービスのポート番号を指定します。

TP1/Client/J環境定義dcscdmulti=Yおよびdcscddirect=Yの場合は,マルチスケジューラデーモンのポート番号を指定します。マスタスケジューラデーモンとマルチスケジューラデーモンのベースとなるポート番号が連続している場合は,マスタスケジューラデーモン(スケジュールサービス)のポート番号を指定することもできます。

dchostオペランドでポート番号を指定していないホストに対して,この定義の値が有効になります。このオペランドはTP1/Client/J環境定義にdcscddirect=Yを指定したときだけ有効です。詳しくは,TP1/Client/J環境定義のdcscddirectオペランドを参照してください。

dcscdloadpriority=Y|N 〜《N》

サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散するかどうか指定します。

Y:サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散します。

N:サービス要求を受け付けた窓口となるTP1/Serverを優先しません。TP1/Serverは,ノード間の負荷を分散します。

この定義は,スケジューラダイレクト機能を使用したRPCを行う場合(TP1/Client/J環境定義にdcscddirect=Yを指定)にだけ,有効です。

dcrapdirect=Y|N 〜《Y》

TP1/Serverのネームサービスにサービス情報を問い合わせないで,直接rapリスナーに問い合わせる機能,すなわちリモートAPI機能を使用するかどうかを指定します。リモートAPI機能を使用する場合,TP1/Client/J環境定義のdchostオペランドに窓口となるTP1/Serverのホスト名とrapリスナーのポート番号を指定してください。ポート番号を省略する場合は,TP1/Client/J環境定義のdcrapportオペランドにrapリスナーのポート番号を指定してください。詳しくは,TP1/Client/J環境定義のdchostオペランドを参照してください。

オートコネクトモードの場合,TP1/Client/J環境定義のdccltinquiretimeオペランドに0以外を指定する必要があります。詳しくは,TP1/Client/J環境定義のdcinquiretimecheckオペランドを参照してください。

dcrapdirect,dcscddirect,およびdcnamuseオペランドは排他関係にあるため,同時にYを指定することはできません。これらのオペランドの二つ以上にYを指定した場合,定義エラーとなります。ユースケースごとのTP1/Client/J環境定義の指定値を次の表に示します。

表5‒2 ユースケースごとのTP1/Client/J環境定義の指定値

ユースケース

TP1/Client/J環境定義のオペランドの指定

dcrapdirect

dcscddirect

dcnamuse

リモートAPI 機能を使用したRPCを行う場合

Y

または

省略

N

または

省略

N

または

省略

スケジューラダイレクト機能を使用したRPCを行う場合

N

または

省略

Y

N

または

省略

ネームサービスを使用したRPCを行う場合

N

または

省略

N

または

省略

Y

注※

各機能を使用する場合の詳細なオペランドの設定は,TP1/Client/J環境定義のdcrapdirect,dcscddirect,およびdcnamuseオペランドを参照してください。

dcrapport=rapリスナーのポート番号 〜〈符号なし整数〉((5001〜65535))

クライアントが属しているTP1/Serverのrapリスナーのポート番号,またはファイアウォールのポート番号を指定します。dchostオペランドでポート番号を指定していないホストに対して,このオペランドの値が有効になります。

このオペランドは,TP1/Client/J環境定義にdcrapdirect=Yを指定したときだけ有効です。詳しくは,TP1/Client/J環境定義のdcrapdirectオペランドを参照してください。

dcrapautoconnect=Y|N 〜《N》

CUPとrapサーバとの間の常設コネクションを自動的に確立させるかどうかを指定します。

Y:次回メソッド実行時に自動的に常設コネクションを確立します。常設コネクション確立要求先は,TP1/Client/J環境定義のdchostオペランドに指定したrapリスナーです。

N:常設コネクションを自動的に確立させません。

コネクション確立モードの違いによる各メソッドの動作

非オートコネクトモードの場合およびオートコネクトモードの場合のコネクション確立処理は,次の表のようになります。

表5‒3 コネクション確立モードの違いによる各メソッドの動作

dcrapautoconnectオペランドの指定値

openConnection()メソッドを発行

openConnection(host, port)メソッドを発行

openConnection(url, flags)メソッドを発行

rpcCall()メソッドを発行

N

  • dchostオペランドが指定されている場合,dchostオペランドに指定されたrapサーバにコネクションを確立する。

  • dcweburlオペランドが指定されている場合,dcweburlオペランドに指定されたURLにコネクションを確立する。

  • dchostオペランドおよびdcweburlオペランドが指定されていない場合,ErrHostUndefExceptionが返される。

host引数およびport引数に指定されたrapサーバにコネクションを確立する。

url引数に指定されたURLにコネクションを確立する。

ErrProtoExceptionが返される。

Y

ErrProtoExceptionが返される。

ErrProtoExceptionが返される。

ErrProtoExceptionが返される。

  • dchostオペランドが指定されている場合,dchostオペランドに指定されたrapサーバにコネクションを確立する。

  • dcweburlオペランドが指定されている場合,dcweburlオペランドに指定されたURLにコネクションを確立する。

  • dchostオペランドおよびdcweburlオペランドが指定されていない場合,ErrHostUndefExceptionが返される。

  • setRpcextendメソッドによってdcrapautoconnectオペランドの値を動的に変更できます。

  • rpcOpenメソッドで定義を読み込みます。

  • rpcCloseメソッドで読み込んだ定義情報を破棄します。

  • 引数にURLを指定したopenConnectionメソッドを実行した場合,指定されたURLは,そのURLを指定したopenConnectionメソッドだけで採用します。このメソッドの実行後,closeConnectionメソッドでコネクションを切断し,次に引数指定無しのopenConnectionメソッドを実行しても,前回の引数に指定したURLは採用されません。

dcerrtrace=Y|N 〜《N》

CUPでエラートレースを取得するかどうかを指定します。

Y:エラートレースを取得します。

N:エラートレースを取得しません。

CUPをJavaアプレットとして動作させる場合,Yを指定しないでください。Yを指定した場合の動作は保証されません。

dcerrtracepath=エラートレースファイル作成ディレクトリ 〜〈文字列〉

エラートレースファイルを作成するディレクトリのパス名を指定します。

このオペランドは,TP1/Client/J環境定義にdcerrtrace=Yを指定した場合にだけ有効です。

dcerrtracesize=エラートレースファイルサイズ 〜〈符号なし整数〉((4096〜1048576)) 《4096》(単位:バイト)

エラートレースファイルのサイズを指定します。

dcmethodtrace=Y|N 〜《N》

CUPでメソッドトレースを取得するかどうかを指定します。

Y:メソッドトレースを取得します。

N:メソッドトレースを取得しません。

CUPをJavaアプレットとして動作させる場合,Yを指定しないでください。Yを指定した場合の動作は保証されません。

dcmethodtracepath=メソッドトレースファイル作成ディレクトリ 〜〈文字列〉

メソッドトレースファイルを作成するディレクトリのパス名を指定します。

このオペランドは,TP1/Client/J環境定義にdcmethodtrace=Yを指定した場合にだけ有効です。

dcmethodtracesize=メソッドトレースファイルサイズ 〜〈符号なし整数〉((4096〜1048576)) 《4096》(単位:バイト)

メソッドトレースファイルのサイズを指定します。

dcuaptrace=Y|N 〜《N》

CUPでUAPトレースを取得するかどうかを指定します。

Y:UAPトレースを取得します。

N:UAPトレースを取得しません。

CUPをJavaアプレットとして動作させる場合,Yを指定しないでください。Yを指定した場合の動作は保証されません。

dcuaptracepath=UAPトレースファイル作成ディレクトリ 〜〈文字列〉

UAPトレースファイルを作成するディレクトリのパス名を指定します。

このオペランドは,TP1/Client/J環境定義にdcuaptrace=Yを指定した場合にだけ有効です。

dcuaptracesize=UAPトレースファイルサイズ 〜〈符号なし整数〉((4096〜1048576))《4096》(単位:バイト)

UAPトレースファイルのサイズを指定します。

dcdatatrace=Y|N 〜《N》

CUPでデータトレースを取得するかどうかを指定します。

Y:データトレースを取得します。

N:データトレースを取得しません。

CUPをJavaアプレットとして動作させる場合,Yを指定しないでください。Yを指定した場合の動作は保証されません。

dcdatatracepath=データトレースファイル作成ディレクトリ 〜〈文字列〉

データトレースファイルを作成するディレクトリのパス名を指定します。

このオペランドは,TP1/Client/J環境定義にdcdatatrace=Yを指定した場合にだけ有効です。

dcdatatracesize=データトレースファイルサイズ 〜〈符号なし整数〉((4096〜1048576)) 《4096》(単位:バイト)

データトレースファイルのサイズを指定します。

dcdatatracemaxsize=データトレースの最大データ長 〜〈符号なし整数〉((16〜1048576)) 《128》(単位:バイト)

1件のデータトレースのデータ長の最大値を指定します。

dcclttrstatisitem=統計情報項目〔,統計情報項目〕…

トランザクションブランチの統計情報を取得する項目を,次の文字列で指定します。CUPからトランザクションを開始する場合にだけ有効です。

nothing

統計情報を取得しません。

base

基本情報として,次の情報を取得します。

・トランザクションブランチの識別子

・トランザクションブランチの決着結果

・トランザクションブランチの実行プロセス種別

・トランザクションブランチの実行サーバ名

・トランザクションブランチの実行サービス名

executiontime

基本情報とトランザクションブランチの実行時間情報を取得します。

cputime

基本情報とトランザクションブランチのCPU時間情報を取得します。

nothingの指定は,一つしかできません。また,nothingとほかの統計情報項目を同時に指定した場合,nothingの指定は無効になります。

トランザクションに関する統計情報を取得する場合は,次のどちらかを指定してください。

  • トランザクションサービス定義にtrn_tran_statistics=Yを指定

  • trnsticsコマンドで-sオプションを指定

この定義を省略した場合は,rapリスナーサービス定義のtrn_statistics_itemオペランドの指定に従います。

dcclttroptiitem=トランザクション最適化項目〔,トランザクション最適化項目〕…

複数のユーザサーバで構成されるグローバルトランザクションの性能を向上させるための最適化項目を,次の文字列で指定します。CUPからトランザクションを開始する場合にだけ有効です。

base

同期点取得処理全体(プリペア処理,コミット処理,およびロールバック処理)を最適化します。OpenTP1のトランザクション制御は2相コミット方式で実行しているため,二つのトランザクションブランチ間のコミット制御には,4回のプロセス間通信が必要となります。

次の条件をすべて満たす場合,親トランザクションブランチが子トランザクションブランチのコミット処理を代わりに実行することで,コミット制御で必要な4回のプロセス間通信を削減します。

・親トランザクションブランチと,子トランザクションブランチが同一OpenTP1下にあること。

・親トランザクションブランチが,子トランザクションブランチを同期応答型RPCで呼び出していること。

・子トランザクションブランチでアクセスしたリソースマネジャのXAインタフェース用オブジェクトが,親トランザクションブランチにもリンケージされていること。

asyncprepare

baseの指定条件を満たしていないため同期点取得処理全体の最適化ができない場合に,プリペア処理を最適化します。

次の条件をすべて満たす場合,親トランザクションブランチから発行されたRPCによって子トランザクションブランチがサービス要求を実行したときに,RPCが返される前にプリペア処理を実行することで,2回のプロセス間通信を削減します。

・baseを指定した最適化ができないこと。

・親トランザクションブランチが,子トランザクションブランチを同期応答型RPCで呼び出していること。

ただし,この最適化を実行した場合,親トランザクションブランチが発行した同期応答型RPCの応答時間が遅くなります。また,子トランザクションブランチは,プリペア処理からコミット処理までの間隔(親トランザクションブランチからの指示がないとトランザクションを決着できない状態)が大きくなります。そのため,親トランザクションブランチのOpenTP1がシステムダウンし,トランザクションブランチ間の連絡ができなくなると,ジャーナルファイルのスワップやチェックポイントダンプファイルの有効化が遅れ,子トランザクションブランチのOpenTP1もシステムダウンする場合があります。

トランザクション最適化項目は,重複して指定できます。ただし,優先順位は次のようになります。

1>2

1:base

2:asyncprepare

この指定を省略した場合は,rapリスナーサービス定義のtrn_optimum_itemオペランドの指定に従います。

dcclttrwatchtime=トランザクション同期点処理時の最大通信待ち時間

〜〈符号なし整数〉((1〜65535))(単位:秒)

トランザクションの同期点処理で,トランザクションブランチ間で行う通信(プリペア,コミット,ロールバック指示,または応答など)の受信待ち時間の最大値を指定します。CUPからトランザクションを開始する場合にだけ有効です。

指定時間を過ぎても指示または応答がない場合は,該当するトランザクションブランチが2相コミットの1相目であればロールバックさせ,1相目完了後であればトランザクションサービスのシステムプロセスでトランザクション決着処理を再試行します。

この定義を省略した場合は,rapリスナーサービス定義のtrn_watch_timeオペランドの指定に従います。

dcclttrrbinfo=no|self|remote|all

トランザクションブランチがロールバックした場合に,ロールバック要因に関する情報をログに取得するかどうかを指定します。CUPからトランザクションを開始する場合にだけ有効です。

no

ロールバック情報を取得しません。

self

ロールバック要因が発生したトランザクションブランチでだけ,ログにロールバック情報を取得します。

remote

selfに加え,他ノードのトランザクションブランチからロールバック要求されたトランザクションブランチでも,ログにロールバック情報を取得します。

all

remoteに加え,自ノードのトランザクションブランチからロールバック要求されたトランザクションブランチでも,ログにロールバック情報を取得します。

この指定を省略した場合は,rapリスナーサービス定義のtrn_rollback_information_putオペランドの指定に従います。

dcclttrlimittime=トランザクションブランチ最大実行可能時間

〜〈符号なし整数〉((0〜65535))(単位:秒)

トランザクションブランチの最大実行可能時間を指定します。CUPからトランザクションを開始する場合だけ有効です。

トランザクションブランチを開始してから同期点処理が終了するまでの時間がこのオペランドの指定時間を超えないように,rpcCallメソッドおよび同期点処理内で行う通信のタイムアウト時間を,次のように自動設定します。

  • rpcCallメソッドのタイムアウト時間

    「K≧このオペランドの指定時間」の場合:要求処理を実行しないで,タイムアウトでエラーリターンします。

    「K<このオペランドの指定時間」および「(このオペランドの指定時間−K)≧W」の場合:Wをタイムアウト時間とします。

    「K<このオペランドの指定時間」および「(このオペランドの指定時間−K)<W」の場合:(このオペランドの指定時間−K)をタイムアウト時間とします。

    「K」「W」の内容は次のとおりです。

    K:現時刻−トランザクションブランチ開始時刻

    W:dcwatchtimオペランド指定時間

  • 同期点処理内で行う通信のタイムアウト時間

    「K≧このオペランドの指定時間」の場合:タイムアウト時間を1秒とします。

    「K<このオペランドの指定時間」および「(このオペランドの指定時間−K)≧W」の場合:Wをタイムアウト時間とします。

    「K<このオペランドの指定時間」および「(このオペランドの指定時間−K)<W」の場合:(このオペランドの指定時間−K)をタイムアウト時間とします。

    「K」「W」の内容は次のとおりです。

    K:現時刻−トランザクションブランチ開始時刻

    W:dcclttrwatchtimeオペランド指定時間(dcclttrwatchtimeオペランドを省略した場合はdcwatchtimオペランド指定時間)

上記の受信待ち以外の処理で時間が掛かった場合は,このオペランドの指定時間内にトランザクションブランチが終了しないことがあります。

同期点処理開始前にこのオペランドの指定時間が経過した場合,そのトランザクションはロールバックされます。

0を指定した場合は,時間監視を行いません。

この定義を省略した場合は,rapリスナーサービス定義のtrn_limit_timeオペランドの指定に従います。

dcclttrrbrcv=Y|N

RPC先トランザクションブランチにロールバック指示を送信したあと,ロールバック完了通知を受信するかどうかを指定します。CUPからトランザクションを開始する場合にだけ有効です。

Y:ロールバック完了通知を受信します。

N:ロールバック完了通知を受信しません。

Nを指定した場合,RPC先トランザクションブランチからのロールバック完了通知を受信しないで(RPC先トランザクションブランチのロールバック処理の完了を待たないで)自トランザクションブランチを終了します。

この定義を省略した場合は,rapリスナーサービス定義のtrn_rollback_response_receiveオペランドの指定に従います。

dcclttrrecoverytype=type1|type2|type3

UAP障害時のトランザクション同期点処理方式を指定します。CUPからトランザクションを開始する場合にだけ有効です。

RPCがタイムアウトし,RPC発行先プロセスのアドレスが未解決の場合およびトランザクション実行中のUAPがダウンした場合に,トランザクションブランチ間の連絡がスムーズにできないため,トランザクションの決着に時間が掛かることがあります。

このオペランドでは,次に示す障害が発生した場合のトランザクション同期点処理方式を,指定値に示す三つの方式から選択して指定します。

(障害1)RPCがタイムアウトした場合

この場合,RPC発行元トランザクションブランチは,サービス要求がどのプロセスで実行されているかがわからないため,RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信できません。そのため,RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチはトランザクション同期点メッセージ待ちとなり,トランザクションの決着に時間が掛かります。

(障害2)rapサーバがRPCの応答受信前にダウンした場合

この場合,RPC発行元トランザクションブランチは,サービス要求がどのプロセスで実行されているかがわからないため,RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信できません。そのため,RPC発行先トランザクションブランチはトランザクション同期点メッセージ待ちとなり,トランザクションの決着に時間が掛かります。

(障害3)RPC発行先UAPからの応答受信後にrapサーバとRPC発行先UAPがほぼ同時にダウンした場合

この場合,それぞれのトランザクションブランチを引き継いだトランザクション回復プロセスは,相手プロセスのダウンを知らないため,すでに存在しないプロセスにトランザクション同期点メッセージを送信してしまい,トランザクションの決着に時間が掛かることがあります。

それぞれの指定値が示す処理方式について説明します。

type1

(障害1)が発生した場合,RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは,トランザクション同期点メッセージ受信処理がタイムアウトすることによって,トランザクションを決着します。

(障害2)が発生した場合,RPC発行元トランザクションブランチは,RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信しないでトランザクションを決着します。RPC発行先トランザクションブランチは,トランザクション同期点メッセージ受信処理がタイムアウトすることによって,トランザクションを決着します。

(障害3)が発生した場合,RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは,トランザクション同期点メッセージ受信処理がタイムアウトすることによって,トランザクションを決着します。

type2

(障害1)が発生してトランザクションをコミットする場合はtype1と同じです。

(障害1)が発生してトランザクションをロールバックする場合,または(障害2)が発生した場合は,RPC発行元トランザクションブランチは,RPC発行先トランザクションブランチが存在するノードのトランザクションサービスプロセスにトランザクション同期点メッセージを送信後,トランザクションを決着します。トランザクション同期点メッセージを受信したトランザクションサービスプロセスは,該当するトランザクションブランチを処理中のプロセスに,トランザクション同期点指示を送信します。

(障害3)が発生した場合,RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは,トランザクション同期点メッセージ受信処理がタイムアウトすることによって,トランザクションを決着します。

type3

(障害1)が発生してトランザクションをコミットする場合は,type1と同じです。

(障害1)が発生してトランザクションをロールバックする場合,(障害2)が発生した場合,または(障害3)が発生した場合,相手トランザクションブランチが存在するノードのトランザクションサービスプロセスに,トランザクション同期点メッセージを送信します。トランザクション同期点メッセージを受信したトランザクションサービスプロセスは,該当するトランザクションブランチを処理中のプロセスに,トランザクション同期点指示を送信します。

次に示す場合,このオペランドにtype2またはtype3を指定しても,トランザクションの決着に時間が掛かることがあります。

  • RPC実行中に,RPC発行先UAPの状態が変更となり(負荷増加,UAP終了,UAP閉塞など),ほかのノードの同一UAPにサービス要求が再転送された場合

  • 相手先のOpenTP1がこのオプションをサポートしていないバージョンの場合

  • 相手先トランザクションブランチがトランザクション同期点メッセージ受信処理以外で時間が掛かっている場合

この定義を省略した場合は,rapリスナーサービス定義のtrn_partial_recovery_typeオペランドの指定に従います。

dcclttrexptm=トランザクションブランチ限界経過時間

〜〈符号なし整数〉((0〜65535))(単位:秒)

トランザクションブランチの処理時間の最大値を指定します。CUPからトランザクションを開始する場合にだけ有効です。

指定時間を超えてもトランザクションブランチが完了しないとき,そのトランザクションブランチのプロセスを異常終了させて,ロールバックします。0を指定した場合は,時間監視をしません。

この指定を省略した場合,rapリスナーサービス定義のtrn_expiration_timeオペランドの指定に従います。

なお,RPC機能を使用した場合に,他プロセスで実行するトランザクションブランチの処理時間も監視時間に含むかどうかは,TP1/Client/J環境定義のdcclttrexpspオペランドで指定してください。

dcclttrcputm=トランザクションブランチCPU監視時間

〜〈符号なし整数〉((0〜65535))(単位:秒)

トランザクションブランチが同期点処理までに使用できるCPU時間を指定します。CUPからトランザクションを開始する場合にだけ有効です。

0を指定した場合,CPU時間を監視しません。

指定時間を超えた場合は,そのトランザクションブランチのプロセスを異常終了させ,ロールバックします。

この指定を省略した場合は,rapリスナーサービス定義のtrn_cpu_timeオペランドの指定に従います。

dcclttrexpsp=Y|N|F

トランザクションブランチの処理を監視するとき,次の処理時間も監視時間に含むかどうかを指定します。

  1. 監視対象のトランザクションブランチが,RPC機能を使ってほかのトランザクションブランチを呼び出し,その処理が終わるのを待つ時間

  2. 連鎖型RPCで呼び出されたサーバUAPが次のサービス要求を待つ時間

  3. 監視対象のトランザクションブランチが,非応答型RPCを使用してほかのトランザクションブランチを呼び出したあと,処理結果受信処理を行っている時間

それぞれの指定値について説明します。

Y:1,2,3すべてを監視時間に含みます。

N:3だけを監視時間に含みます。

F:1,2,3のどれも監視時間に含みません。

この指定を省略した場合は,rapリスナーサービス定義のtrn_expiration_time_suspendオペランドの指定に従います。

dcsndrcvtype=DCCLT_ONEWAY_SND|DCCLT_ONEWAY_RCV|DCCLT_SNDRCV

TCP/IP通信機能の使用時に初期化する環境を指定します。

このオペランドを指定してない場合は,TCP/IP通信機能を使用できません。

DCCLT_ONEWAY_SND:メッセージを一方送信するための環境

DCCLT_ONEWAY_RCV:メッセージを一方受信するための環境

DCCLT_SNDRCV:メッセージを送受信するための環境

dcrcvport=受信用のCUPのポート番号

〜〈符号なし整数〉((1〜65535))《11000》

TCP/IP通信機能を使用してメッセージを受信する場合,メッセージを受信するCUPのポート番号を指定します。メッセージを送信する側では,このポート番号を指定して送信してください。同一マシン内で,複数のプロセスまたはスレッドを同時に実行する場合は,それぞれ異なるポート番号を指定してください。

指定できるポート番号でも,OSまたはほかのプログラムで使用するポート番号は指定しないでください。指定した場合,応答データを正しく受信できないことがあります。なお,OSが使用するポート番号は,OSごとに異なります。OSのマニュアルなどを参照してください。ほかのアプリケーションとの重複を避けるため,OSが任意に割り当てるポート番号(動的ポートまたは短命ポートと呼ばれるポート番号)を使用しないでください。

メッセージの一方送信機能(TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDを指定)の場合,デフォルト値を含めこの定義で指定したポートは使用されません。

dcsndhost=接続するMHPが存在するノードのホスト名 〜〈文字列〉

CUPからメッセージを送信する場合,コネクションを確立して接続するMHPが存在するノードのホスト名を指定します。

また,ホスト名として,10進ドット記法のIPアドレスを指定することもできます。

dcsndport=接続するMHPのポート番号

〜〈符号なし整数〉((1〜65535))《12000》

CUPからメッセージを送信する場合,コネクションを確立して接続するMHPのポート番号を指定します。dcnamportオペランドに指定するポート番号と重複しないように指定してください。

dcsockopenatrcv=Y|N 〜《N》

TCP/IP通信機能使用時に,メッセージの送受信をする場合の受信用ソケットの開設契機(送信相手からの接続を待ち受け始める契機)を指定します。

なお,このオペランドの指定を省略した場合は,rpcOpenメソッド実行時に受信用ソケットを開設します。

MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合,CUPからMHPにメッセージを送信した際に確立したコネクションを使用して送受信を行うため,CUPは受信用のソケットは使用しません。そのため,この定義にYを指定し,受信用ソケットを開設しないようにしてください。

MHPがクライアント型の場合,MHPからのメッセージをCUPが受信する際に受信用のソケットが必要なため,この定義にNを指定するか定義を省略してください。

この定義の具体的なユースケースは「2.4.5 ユースケースごとの設定方法とポートの割り当て」を参照してください。

Y:rpcOpenメソッド実行時に受信ソケットを開設しません。ただし,次のメソッドを実行したときに,コネクションが確立されていない場合は受信用ソケットを開設します。
  • cltReceive

  • cltAssemReceive

N:rpcOpenメソッド実行時に,受信用ソケットを開設します。

dcweburl=サービス要求先のTP1/WebのURL 〜〈パス名〉

サービス要求先のTP1/WebのURLを指定します。

プロトコル,WWWサーバ,プロンプターのCGI名称,TP1/Webのサービス名などの情報をURL形式で指定します。

dchostオペランドとdcweburlオペランドの両方を指定した場合は,dcweburlオペランドの指定が有効になります。

また,TP1/Web接続機能を使用する場合は,dcscddirectオペランドおよびdcnamuseオペランドを使用できません。dcweburlオペランドを定義して,かつdcscddirect=Yおよびdcnamuse=Yの場合は,定義エラーとなります。

dccltdbgtrcfilecount=デバッグトレースファイルの最大ファイル数

〜〈符号なし整数〉((0〜256))《0》

デバッグトレースファイルの最大ファイル数を指定します。0を指定した場合,ファイル数の制限はなくなります。デバッグトレースファイルの総数が,このオペランドの指定値を超えた場合,更新日時の最も古いファイルが削除されます。

dccltdbgtrcfilecountオペランドで異なる値を指定した複数のTP1Clientインスタンスを同時に使用した場合,実際の最大ファイル数は保証できません。

rpcOpenメソッド未発行の状態でTP1Clientインスタンスの作成した場合,dccltdbgtrcfilecountオペランドは,システムプロパティとしても定義できます。この場合,TP1Clientインスタンスの作成後にrpcOpenメソッドを発行すると,rpcOpenメソッドの内容を解析した結果を上書きして動作します。rpcOpenメソッドを発行するとシステムプロパティに定義されたdccltdbgtrcfilecountオペランドの指定は無効になります。

dccltdbgtrcfilecountオペランドの指定が不正な場合,エラーは通知されません。この場合,dccltdbgtrcfilecountオペランドの指定はデフォルト値が有効になります。

dccltrpcmaxmsgsize=RPC送受信電文の最大長

〜〈符号なし整数〉((1〜8))《1》(単位:メガバイト)

RPCで受け渡しできる電文の最大長を指定します。

rpcCallメソッドで送受信できるRPC電文の最大長は,このオペランドを省略した場合,またはデフォルト値(1)を指定した場合は,1メガバイト(1048576バイト)です。このオペランドに指定できる最大値(8)を指定した場合は,8メガバイト(8388608バイト)です。このオペランドの指定よりも大きいサイズの送信メッセージ長および受信メッセージ長を,rpcCallメソッドの引数に指定することはできません。送信メッセージ長または受信メッセージ長がこのオペランドの指定値よりも大きい場合,rpcCallメソッドはErrInvalidArgsExceptionを返します。

dccltrpcmaxmsgsizeオペランドを指定した場合,次の機能は使用しないでください。通信先のTP1/Serverノードでエラーが発生します。

  • スケジューラダイレクト機能を使用したRPC

  • 通信先を指定したRPC

  • TP1/Web接続機能

システム共通定義のrpc_max_message_sizeオペランドをサポートしているTP1/Server(バージョン06-02以降)以外のTP1/Serverにサービス要求した場合の動作については次の表を参照してください。

表5‒4 dccltrpcmaxmsgsizeオペランドに2以上を指定した場合のrpcCallメソッドの動作

メソッド

RPCの種類を指定する定義

窓口となるTP1/Serverのバージョン

ノードのバージョン※1

06-02より前の場合

06-02以降の場合※2

rpcCall

dcrapdirect=Y

06-02より前

×※3

×※3

06-02以降

×※4

dcnamuse=Y

06-02より前

×※4

06-02以降

×※4

(凡例)

○:要求できます。

×:要求できません。

注※1

窓口となるTP1/Serverに指定されているall_nodeオペランドで定義された,SPPを起動しているノードのバージョンです。

注※2

システム共通定義にrpc_max_message_sizeオペランドを指定している場合。

注※3

入力データ長が1メガバイト以上の場合は,ErrMessageTooBigExceptionが発生し,入力データ長が1メガバイト以下で出力領域長が1メガバイト以上の場合はErrInvalidArgsExceptionが発生します。

注※4

ErrNoSuchServiceGroupExceptionが発生します。

dcscdhostchange=Y|N 〜《N》

TP1/Client/J環境定義のdchostオペランドに指定したサービス要求先スケジューラをRPCごとに分散させるかどうかを指定します。

Y:サービス要求先スケジューラをRPCごとに分散させます。

N:サービス要求先スケジューラをRPCごとに分散させません。

Yを指定した場合の処理を説明します。

RPCでのサービス要求が1度目の場合,TP1/Client/J環境定義にdchostselect=Yを指定したときは,TP1/Client/J環境定義のdchostオペランドに指定したサービス要求先スケジューラがランダムに選択されます。TP1/Client/J環境定義にdchostselect=Nを指定したときは,TP1/Client/J環境定義のdchostオペランドの先頭に指定したサービス要求先スケジューラが選択されます。

RPCでのサービス要求が2度目以降の場合,前回のサービス要求先スケジューラからdchostオペランドで指定した順にラウンドロビン方式でサービス要求先スケジューラが選択されます。

dccltloadbalance=Y|N 〜《N》

ネームサーバから得た複数のサービス要求先スケジューラの情報から,負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納するかどうかを指定します。

Y:負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納します。

N:負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納しません。

Yを指定した場合の処理を説明します。

キャッシュに格納されたサービス要求先スケジューラが複数ある場合,最初のサービス要求先スケジューラは,ランダムに選択されます。RPCでのサービス要求が2度目以降の場合,キャッシュに格納されたサービス要求先スケジューラが,ラウンドロビン方式で選択されます。

負荷レベルの詳細については,マニュアル「OpenTP1 解説」を参照してください。

dccltcachetim=キャッシュの有効期限

〜〈符号なし整数〉((0〜65535))《30》(単位:秒)

サービス要求先スケジューラの情報をキャッシュに格納した時点からの,キャッシュの有効期限を指定します。キャッシュの有効期限を満了したサービス要求先スケジューラの情報は,キャッシュから削除されます。その後,サービス要求先スケジューラの情報を再度取得して,その情報をキャッシュに格納することで,キャッシュを更新します。

一度格納したサービス情報はrpcCloseメソッドを発行するまで,またはキャッシュのエントリ数がdccacheの指定値を超えたために別のサービス情報に上書きされるまで有効です。なお,0を指定した場合は,有効期限はありません。

このオペランドは,TP1/Client/J環境定義にdccltloadbalance=Yを指定したときだけ有効です。

dccltconnecttimeout=コネクション確立最大監視時間

〜〈符号なし整数〉((0〜65535))《0》(単位:秒)

データ送信時のコネクション確立処理に対する最大監視時間を指定します。

このオペランドで指定する値は,java.net.Socket.connectメソッド(以降「connectメソッド」と呼びます)の処理時間ではなく,connectメソッドで実行されるコネクションの確立処理に掛かる最大監視時間です。

相手システムが起動していないなどの要因でコネクションを確立できない場合,このオペランドで指定した監視時間が経過する前にCUPから発行したメソッドがエラーリターンすることがあります。これは,このオペランドで指定した最大監視時間よりも,OSによるコネクション確立処理の監視時間が優先されるためです。OSによるコネクション確立処理の監視時間,コネクション確立要求の再送回数および再送処理の間隔は,プラットフォームによって異なります。また,使用するメソッドや機能によっては,connectメソッドの処理時間がこのオペランドで指定した値よりも大きくなる場合があります。

0を指定した場合,またはこのオペランドの指定を省略した場合は,OSがコネクションの確立処理を監視します。

dccltprftrace=Y|N 〜《Y》

TP1/Client/JをCosminexus Application Server上で動作させた場合に,Cosminexus Application Serverの性能解析トレースを取得するかどうかを指定します。

Y:性能解析トレースを取得します。ただし,PRFデーモンが起動していない場合は性能解析トレースを取得しません。

N:性能解析トレースを取得しません。

dccltprfinfosend=Y|N 〜《Y》

TP1/Serverに対して,ネームサービスを使用したRPC,およびスケジューラダイレクト機能を使用したRPCを行う場合に,OpenTP1の性能検証用トレースに出力する情報としてTP1/Client/J内部で識別情報(IPアドレスなど)を付加するかどうかを指定します。

Y:TP1/Client/J内部で識別情報を付加します。

N:TP1/Client/J内部で識別情報を付加しません。

dccltnammlthost=Y|N 〜《N》

マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行うかどうかを指定します。

Y:マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行います。RPCの要求先を複数定義している場合,またはマルチホームドホスト形態のTP1/Serverが一つ以上ある場合に指定してください。

N:マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行いません。マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行うと,エラーが発生する場合があります。

詳細については,「2.2.9(3) マルチホームドホスト形態のTP1/Serverに対してRPCを行う場合の定義」を参照してください。

dccltdatacomp=Y|N 〜《N》

データ圧縮機能を使用するかどうかを指定します。

dccltdatacomp=Yを指定した場合でも,サービス要求を受信するSPPのメッセージ格納バッファプール長(message_store_buflenオペランド)は,圧縮前のユーザデータ長でサイズを計算してください。

Y:データ圧縮機能を使用します。

N:データ圧縮機能を使用しません。

dccltconnectinf=端末識別情報

端末識別情報として,DCCM3論理端末の論理端末名称をEBCDIKコードで指定します。端末識別情報は,先頭に0xを付け,0xの後ろに128文字までの16進数表記で指定します。先頭の0xは128文字に含まれません。2文字で1バイトの値として,64バイト(128文字)まで指定できます。ただし,DCCM3側では先頭8バイト目までに指定した値だけが有効になり,9バイト目以降に指定した値は無視されます。

このオペランドに指定した値は,setConnectInformationメソッドを呼び出すことで,動的に変更できます。このオペランドに指定した値は,setConnectInformationメソッドを呼び出したあと,再びrpcOpenメソッドを呼び出すまで無視されます。

このオペランドに指定した値は,TP1/Client/J環境定義のdchostオペランドにDCCM3論理端末のホスト名を,dchostオペランドまたはdcrapportオペランドにDCCM3論理端末のポート番号を指定し,次のどちらかの方法でDCCM3論理端末との常設コネクションを確立した場合に有効となります。

  • openConnectionメソッドを呼び出します。引数有りのopenConnectionメソッドの場合,引数hostにDCCM3論理端末のホスト名,引数portにDCCM3論理端末のポート番号を指定します。

  • TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定し,rpcCallメソッドを呼び出します。

このオペランドの指定を省略した場合,DCCM3論理端末に端末識別情報は通知されません。ただし,setConnectInformationメソッドを呼び出した場合は,setConnectInformationメソッドに指定した端末識別情報が,DCCM3論理端末との常設コネクション確立時にDCCM3論理端末に通知されます。

dcscdmulti=Y|N 〜《N》

マルチスケジューラ機能を使用するかどうかを指定します。

Y:マルチスケジューラ機能を使用します。

N:マルチスケジューラ機能を使用しません。

マルチスケジューラ機能を使用すると,複数起動されたマルチスケジューラデーモンの中から,一つをランダムに選択することで,スケジューリングの負荷を軽減できます。

この定義にYを指定した場合,TP1/Client/J環境定義のdchost,dcscdport,dcscdmulticountも併せて参照してください。また,この定義は,rpcCallToメソッド実行時は無効です。

dcscdmulticount=スケジューラデーモンのプロセス数 〜〈符号なし整数〉((1〜4096))《1》

スケジューラデーモンのプロセス数を指定します。

指定するプロセス数は,TP1/Client/J環境定義dcscdportに指定するポート番号の内容によって,次のように異なります。

dcscdport指定値

dcscdmulticount指定値

マルチスケジューラデーモンのベースとなるポート番号

マルチスケジューラデーモンのプロセス数と同じ値か,それ以下の値を指定します。

マルチスケジューラデーモンの任意のポート番号

「マルチスケジューラデーモンのポート番号の最大 - dcscdportに指定したポート番号 + 1」の値,またはそれ以下の値を指定します。

マスタスケジューラデーモンのポート番号

マスタスケジューラデーモンとマルチスケジューラデーモンのベースとなるポート番号が連続している場合

「マルチスケジューラデーモンのプロセス数 + 1」の値,またはそれ以下の値を指定します。

上記以外

1を指定するか,または指定を省略します(マルチスケジューラデーモンは使用できない)。

この定義は,TP1/Client/J環境定義にdcscdmulti=Yおよびdcscddirect=Yを指定した場合に有効です。なお,この場合,ポート番号は,次に示す範囲の値からランダムに選択されます。

  • 下限値:dchostまたはdcscdportに指定したポート番号の値

  • 上限値:下限値 + dcscdmulticountに指定したプロセス数 - 1

このポート番号の最大値が65535を超える場合は,定義解析でErrFatalException,およびsetDchostでErrInvalidPortExceptionが発生します。

scdmultiの-mオプションに指定したプロセス数よりも大きい値を指定した場合,マルチスケジューラが起動していないポートに接続を試み,ErrNetDownAtClientExceptionが発生する場合があります。

dccltcupsndhost=送信元ホスト 〜〈文字列〉

次に示すコネクション確立要求時の,送信元ホストを指定します。

  • スケジューラダイレクト機能を使用したRPC

  • ネームサービスを使用したRPC

  • リモートAPI機能を使用したRPC

  • 通信先を指定したRPC

  • TCP/IP通信機能

ホスト名として,10進ドット記法のIPアドレスを指定することもできます。

なお,次の場合は,発行したメソッドで例外が発生します。

  • ホスト名としてlocalhostを指定した場合

  • 127で始まるIPアドレスを指定した場合

  • CUPを実行するマシン上に存在しないホストを指定した場合

この定義を省略すると,送信元ホストは任意に割り当てられます。

dccltcuprcvport=CUPの受信で使用するポート番号 〜〈符号なし整数〉((5001〜65535))

サーバからのメッセージを受信するCUPのポート番号を指定します。

この定義で指定したポート番号は,次の機能を使用する場合に有効となります。

  • スケジューラダイレクト機能を使用したRPCの受信時(受信ポート)

  • ネームサービスを使用したRPCの受信時(受信ポート)

この定義を省略すると,システムが任意に割り当てたポート番号を使用します。

同一マシン内で,複数のプロセス,または複数のスレッドを同時に実行する場合は,それぞれ異なるポート番号を指定してください。

指定できるポート番号でも,OSまたはほかのプログラムで使用するポート番号は指定しないでください。指定した場合,応答データを正しく受信できないことがあります。なお,OSが使用するポート番号は,OSごとに異なります。OSのマニュアルなどを参照してください。

dcclttrcmplmttm=トランザクション完了限界時間 〜〈符号なし整数〉((0〜65535))(単位:秒)

rapサーバで代理実行するトランザクションブランチの,開始から終了までの最大実行時間を指定します。この指定時間を超えた場合,rapサーバのプロセスが異常終了したあとに,トランザクションブランチが回復プロセスでコミット,またはロールバックのどちらかに決着して終了します。

0を指定した場合は,トランザクションブランチの最大実行時間を監視しません。

この指定を省略した場合は,rapリスナーサービス定義のtrn_completion_limit_timeオペランドの指定に従います。

この機能をバージョン07-01以前のTP1/Serverに対して使用した場合,機能が無効の状態で動作します。

dccltsendbuffsize=TCP/IPの送信バッファサイズ 〜〈符号なし整数〉((8192〜2147483647))(単位:バイト)

コネクションごとに確保されるTCP/IP送信バッファのサイズを指定します。

高速な通信媒体やMTUの大きな通信媒体を使用している場合,この値を大きくすることによって性能向上を図れます。

このオペランドを省略した場合は,JavaVMの送信バッファサイズを適用します。

このオペランドの値は,JavaVMで使用できるTCP/IP送信バッファの上限値以下を指定してください。TCP/IP送信バッファのデフォルト値,変更方法,変更できるサイズの範囲は,OSによって異なります。詳しくは,各OSのマニュアルを参照してください。また,CUPと通信するすべてのノードで同じ値を指定してください。同じ値を指定しない場合,通信するノードとバッファサイズに差異が生じ,通信性能が劣化するおそれがあります。

dccltrecvbuffsize=TCP/IPの受信バッファサイズ 〜〈符号なし整数〉((8192〜2147483647))(単位:バイト)

コネクションごとに確保されるTCP/IP受信バッファのサイズを指定します。

高速な通信媒体やMTUの大きな通信媒体を使用している場合,この値を大きくすることによって性能向上を図れます。

このオペランドを省略した場合は,JavaVMの受信バッファサイズを適用します。

このオペランドの値は,JavaVMで使用できるTCP/IP受信バッファの上限値以下を指定してください。TCP/IP受信バッファのデフォルト値,変更方法,変更できるサイズの範囲は,OSによって異なります。詳しくは,各OSのマニュアルを参照してください。また,CUPと通信するすべてのノードで同じ値を指定してください。同じ値を指定しない場合,通信するノードとバッファサイズに差異が生じ,通信性能が劣化するおそれがあります。

dcinquiretimecheck=Y|N 〜《Y》

常設コネクションを使用し,かつオートコネクトモード※1の場合に,CUP実行プロセスで「問い合わせ間隔最大時間」をチェックするかどうかを指定します。

rapサーバが常設コネクションを解放するタイミングと,CUP実行プロセスがRPCを実行するタイミングが重なった場合,RPCの実行に失敗してErrNetDownAtClientException例外を返すことがあります。

この現象を回避するためには,このオペランドを指定します。

このオペランドを省略,またはこのオペランドにYを指定した場合,「問い合わせ間隔最大時間」には0以外を指定※2してください。

このオペランドは省略できます。

Y:CUP実行プロセスで,「問い合わせ間隔最大時間」をチェックします。

N:CUP実行プロセスで,「問い合わせ間隔最大時間」をチェックしません。

省略した場合は,CUP実行プロセスでも「問い合わせ間隔最大時間」をチェックします。

CUP実行プロセスは,トランザクション処理の処理区間外※3,かつ連鎖型RPCの処理区間外※4でrpcCallメソッドを使用してRPCを実行するタイミングで問い合わせ間隔をチェックします。

問い合わせ間隔のチェックは次の計算式で求めた時間を使用します。この時間を超過した場合は,常設コネクションを解放して再接続しRPCを実行します。

チェック時間 = 問い合わせ間隔最大時間 - T

T:問い合わせ間隔最大時間の2%の値

ただし,250ミリ秒 ≦ T ≦ 3秒となります。

注※1

次のどちらかの場合が,オートコネクトモードに該当します。

  • TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定している。

  • CUP内で,SetRpcextendメソッドのextendoptionパラメタにDCRPC_RAP_AUTOCONNECTを指定して実行している。

注※2

TP1/Client/J環境定義のdccltinquiretimeオペランドに0以外を指定してください。またはCUP内で,setDccltinquiretimeメソッドのsecパラメタに0以外を指定して実行してください。

注※3

次の両方の条件が重なった場合がトランザクション処理の処理区間外となります。

  • XAリソースサービス機能を使用していない(CUPがuCosminexus TP1 Connector上で動作していない,またはCUPがuCosminexus TP1 Connector上で動作しているがConnector属性ファイルのtransaction-supportタグにXATransactionを指定していない)。

  • trnBeginメソッド実行からtrnUnchainedCommitメソッドまたはtrnUnchainedRollbackメソッドを実行するまでの処理区間外である。

注※4

連鎖型RPCでも,初回のrpcCallメソッドでは問い合わせ間隔をチェックします。

dcnotifyreshost=Y|N 〜《N》

OpenTP1システム内にKubernetesノードで起動するTP1/Serverが存在する場合,TP1/Client/JでこのオペランドにYを指定してください。

このオペランドにYを指定することで,サービス要求先のTP1/Serverに,dcresponsehostで指定した応答電文受信用IPアドレスを通知します。

これによって,Kubernetesノードを含むOpenTP1システム内で通信が可能となります。

Y:サービス要求先のTP1/Serverに応答電文受信用IPアドレスを通知します。次のRPC通信に対して有効になります。
  • スケジューラダイレクト機能を使用したRPC(rpcCallメソッド)

  • 通信先を指定したRPC(rpcCallToメソッド)

  • ネームサービスを使用したRPC(rpcCallメソッド)

N:サービス要求先のTP1/Serverに,応答電文受信用IPアドレスを通知しません。

注意事項
  • この定義でYを指定した場合,dcresponsehostの指定が必要です。

dcresponsehost=ホスト名 〜〈文字列〉

OpenTP1システム内にKubernetesノードで起動するTP1/Serverが存在する場合,このオペランドの指定が必要です。TP1/Client/Jが応答電文を受信するために使用する,ホスト名またはIPアドレスを指定します。

このオペランドを指定することで,サービス要求先のTP1/Serverに応答電文受信用IPアドレスが通知され,Kubernetesノードを含むOpenTP1システム内で通信が可能となります。

ホスト名に使用できる文字は先頭が英数字または-(ハイフン)で,先頭以外が英数字,-(ハイフン),または.(ピリオド)です。

ホスト名は,/etc/hostsファイルまたはDNSなどで,IPアドレスとのマッピングができなければなりません。なお,localhostまたは名前解決した結果が127で始まるIPアドレス(例:127.0.0.1)になるホスト名は指定しないでください。

ホスト名は,1個だけ指定できます。

ホスト名またはIPアドレスは,TP1/Client/Jの環境によって以下を指定してください。

  • TP1/Client/JがKubernetesクラスタ外の場合

    TP1/Client/Jが起動するマシンのホスト名またはIPアドレス

  • TP1/Client/JがKubernetesクラスタ内の場合

    Kubernetesクラスタ内のどれかのKubernetesノードのホスト名またはIPアドレス

注意事項
  • ホスト名に256文字以上指定した場合,指定した文字列の先頭から255文字までをノード名として扱います。

  • この指定は,dcnotifyreshostオペランドにYを指定した場合に有効です。

  • dcnotifyreshostオペランドにYを指定した場合,このオペランドは省略できません。

  • 指定したホスト名の名前解決はrpcOpenメソッド発行時に実施します。そのためホスト名にマッピングしているIPアドレスの変更は,CUP実行プロセスを正常停止したあとに実施してください。

ホスト名またはIPアドレスの変更手順
  • ホスト名またはIPアドレスを変更する場合,CUP実行プロセスを正常停止したあとに実施してください。CUPがJavaサーブレットで動作している場合はWebサーバを停止したあとに実施してください。