Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/EE/Message Control Extension 使用の手引


eemcpcn(コネクション定義(TCP/IP))

〈このページの構成〉

機能

TCP/IPプロトコルを使用して通信する場合のコネクションに関する環境を定義します。

コマンドの形式

{{〔eemcpcn  -c コネクションID
             〔-i auto|manual〕
             〔-b "〔bretry= yes|no〕
                   〔bretrycnt=コネクション確立障害時の確立再試行回数〕
                   〔bretryint=コネクション確立障害時の確立再試行間隔〕
                   〔concmptim=コネクション確立時の監視時間〕
                   〔conmsg= yes|no〕
                   〔sndsynctim=同期一方送信時のメッセージ送信完了待ち時間〕
                   〔sndtim=非同期一方送信時のメッセージ送信完了待ち時間〕
                   〔sndrcvtim=同期型送受信時のメッセージ送受信完了待ち時間〕
                   〔sndcmptim=同期型送受信時のメッセージ送信完了監視時間〕"〕
             〔-w "〔srtimout=yes|no〕"〕
               -y "mode=client|server"
             〔-r "〔ipaddr=自システムのホストのIPアドレス〕
                   〔hostname=自システムのホスト名〕
                   〔portno=自システムのポート番号〕"〕
             〔-o "〔oipaddr=相手システムのホストのIPアドレス〕
                   〔ohostname=相手システムのホスト名〕
                   〔oportno=相手システムのホストのポート番号|free〕"〕
             〔-k "〔nodelay= yes|no〕
                   〔keepalive= yes|no〕
                   〔notrftime=無通信監視時間〕"〕
             〔-f "〔cnrelease= fin|rst〕
                   〔endrelease= fin|rst〕"〕
             〔-h "〔addrchk= yes|no〕
                   〔chgconn= replace|keep〕"〕〕}}

オプションの説明

●-c コネクションID

  〜〈1〜8文字の識別子〉

OpenTP1システム内で,一意となるコネクションIDを指定します。

●-i auto|manual

  〜《manual》

オンライン開始時および再開始時のコネクションの確立方法を指定します。

auto

オンライン開始前にコネクションを自動確立します。

manual

eemcpactcnコマンドの実行,またはee_mcp_actcn関数の発行によってコネクションを手動確立します

●-b

(オペランド)

bretry=yes|no

〜《yes》

コネクション確立時に障害が発生した場合,コネクションの確立再試行をするかどうかを指定します。

yes

コネクションの確立再試行をします。

no

コネクションの確立再試行をしません。

bretrycnt=コネクション確立障害時の確立再試行回数

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

コネクションの確立再試行をする場合の確立再試行回数を指定します。bretryオペランドでnoを指定した場合,このオペランドの指定値は無視されます。

bretryオペランドでyesを指定して,このオペランドに0を指定した場合は,無限にコネクションの確立再試行をします。

bretryint=コネクション確立障害時の確立再試行間隔

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

コネクションの確立再試行をする場合の確立再試行間隔を指定します。bretryオペランドでnoを指定した場合,このオペランドの指定値は無視されます。確立再試行間隔は,最大で1秒早く施行される場合があります。

concmptim=コネクション確立時の監視時間

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

コネクション確立時の監視時間を指定します。0を指定した場合は,時間監視をしません。コネクション確立時の監視時間がタイムアウトした場合,コネクション確立を再試行できる場合(bretryオペランドにyesを指定),コネクション確立障害時の確立再試行間隔のあとに,コネクション確立を再試行します。コネクション確立を再試行できない場合(bretryオペランドにnoを指定),MCP後処理トランザクションを起動します。監視時間は最大で1秒早くタイムアウトする場合があります。

conmsg=yes|no

〜《yes》

コネクション確立時または解放時に,メッセージログにコネクションの確立または解放のメッセージを出力するかどうかを指定します。

yes

コネクションの確立時または解放時にメッセージを出力します。

no

コネクションの確立時または解放時にメッセージを出力しません。

このオペランドにnoを指定した場合でも,リソース不足などでMCP後処理トランザクションの起動に失敗したときはメッセージを出力します。

sndsynctim=同期一方送信時のメッセージ送信完了待ち時間

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

ee_mcp_sendsync関数を呼び出してから終了するまでの最大時間を指定します(ソケット空き待ち時間,および送信開始から自システムのTCP/IPの送信バッファに書き込みが完了するまでの時間の合計の最大時間を指定します)。

0を指定した場合は,無限に送信完了を待ちます。

sndtim=非同期一方送信時のメッセージ送信完了待ち時間

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

ee_mcp_send関数を呼び出したトランザクション完了後の送信開始から終了するまでの最大時間を指定します(自システムのTCP/IPの送信バッファに書き込みが完了するまでの最大時間を指定します)。

0を指定した場合は,無限に送信完了待ちをします。

sndrcvtim=同期型送受信時のメッセージ送受信完了待ち時間

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

ee_mcp_sendrecv関数を呼び出してから終了するまでの最大時間を設定します。0を指定した場合,無限に送信完了待ちをします。

sndcmptim=同期型送受信時のメッセージ送信完了監視時間

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

ee_mcp_sendrecv関数を呼び出してからメッセージ送信完了(ソケット空き待ち時間と,送信開始から自システムのTCP/IPの送信バッファへの書き込み完了までの時間の合計)までの監視時間を指定します。0を指定した場合,無限に送信完了待ちをします。

このオペランドには,次の値より小さな値を指定してください。次の値より大きい値を指定した場合,値の小さい方が有効になります。

  • eemcpcnコマンドの-bオプションのsndrcvtimオペランドで指定する同期送受信時のメッセージ送信完了待ち時間

  • 同期型メッセージの送受信関数の発行時(ee_mcp_sendrecv関数またはCBLEEMCP('SENDRECV'))に指定する最大時間(ee_mcp_sendrecv関数の場合,watchtimeに指定する最大時間。CBLEEMCP('SENDRECV')の場合,データ名M5に指定する最大時間)

    図4‒3 sndrcvtimとsndcmptimによる対象監視時間

    [図データ]

●-w

(オペランド)

srtimout=yes|no

〜《no》

同期型メッセージの送受信関数で次の監視時間がタイムアウトした場合に,コネクションの解放を抑止するかどうかを指定します。

  • eemcpcnコマンドの-bオプションのsndrcvtimオペランドで指定する同期送受信時のメッセージ送信完了待ち時間

  • 同期型メッセージの送受信関数の発行時(ee_mcp_sendrecv関数またはCBLEEMCP('SENDRECV'))に指定する最大時間

yes

同期型メッセージの送受信関数がタイムアウトした場合,コネクションを解放しません。

no

同期型メッセージの送受信関数がタイムアウトした場合,コネクションを解放します。

●-y

(オペランド)

mode=client|server

自システムのコネクション確立モードを指定します。

client

クライアントとして,コネクションの確立要求をします。

server

サーバとして,コネクションの確立要求を受けます。

●-r

自システムのアドレス情報を設定します。

クライアント型コネクション(MCP構成定義(eemcpcn -y)のmodeオペランドでclientを指定)の定義間では,-rオプションに同一のIPアドレスまたはホスト名/ポート番号の組み合わせを指定できます。ただし,クライアント型コネクションとサーバ型コネクション(MCP構成定義(eemcpcn -y)のmodeオペランドでserverを指定)の定義間では,-rオプションに同一のIPアドレスまたはホスト名/ポート番号の組み合わせを指定できません。

また,クライアント型コネクションの定義間では,次の条件を満たす場合も,-rオプションに同一のIPアドレスまたはホスト名と,ポート番号の組み合わせを指定できません。

  • -oオプションに同一のIPアドレスまたはホスト名と,ポート番号の組み合わせを指定する場合

CL構成では,IPアドレスまたはホスト名と,ポート番号を実行系と待機系で同じ値にする必要があります。そのため,IPアドレスまたはホスト名には,必ずエイリアスIPアドレスを指定してください。

なお,IPアドレスの代わりにホスト名を指定する場合は,ホスト名とエイリアスIPアドレスの対応づけを/etc/hostsに指定するなどの対応が必要です。エイリアスIPアドレスの指定方法については,マニュアル「高信頼化システム監視機能 HAモニタ Linux(R)編」(OSがLinuxの場合),または「高信頼化システム監視機能 HAモニタ AIX(R)編」(OSがAIXの場合)を参照してください。

(オペランド)

ipaddr=自システムのホストのIPアドレス

〜(nnn.nnn.nnn.nnn)〈符号なし整数〉((0〜255))

自システムのホストのIPアドレスを指定します。

指定形式はnnn.nnn.nnn.nnnです。nnnには,0〜255の値を指定できます。ただし,0.0.0.0および255.255.255.255は指定できません。

このオペランドを指定した場合,指定したアドレスをバインドします。

ipaddrオペランドまたはhostnameオペランドのどちらか一方を指定してください。どちらも省略した場合は,OSが使用するLANアダプタが仮定されます。

hostname=自システムのホスト名

〜〈1〜255文字のホスト名〉

自システムのホスト名を指定します。

自システムがサーバで,TP1/EE開始時にIPアドレスを取得できなかった場合,開始処理を中断します。

ipaddrオペランドを指定した場合,このオペランドの指定値は無視されます。ipaddrオペランドまたはhostnameオペランドのどちらか一方を指定してください。

このオペランドを指定していて,かつipaddrオペランドの指定を省略した場合,このオペランドで指定したホスト名のアドレスをバインドします。どちらも省略した場合は,OSが使用するLANアダプタが仮定されます。

portno=自システムのポート番号

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

メッセージ送受信に使用する,自システムのポート番号を指定します。

サーバ型コネクション(-yオプションのmodeオペランドにserverを指定)の場合は必ず指定してください。

クライアント型コネクション(-yオプションのmodeオペランドにclientを指定)の場合は省略できます。省略した場合,自システムのポート番号はコネクション確立時にOSによって割り振られます。

ポート番号を指定する場合は,ほかのアプリケーションとの重複を避けるため,OSが任意に割り当てるポート番号(動的ポートまたは短命ポートと呼ばれるポート番号)は使用しないでください。OSが任意に割り当てるポート番号は,OSの種別やバージョンによって異なります。詳細については,ご使用のOSのマニュアルを参照してください。

また,-rオプションのportnoオペランドで同じサーバ型コネクションを複数指定する場合,次に示すコネクションを混在させないでください。

  • -rオプションのipaddrオペランドおよびhostnameオペランドの指定を省略したコネクション

  • -rオプションのipaddrオペランドまたはhostnameオペランドを指定したコネクション

●-o

相手システムのアドレス情報を設定します。

-oオプションを省略または指定した場合のeemcpgen結果,コネクション確立方法ごとの確立可否を次の表に示します。

表4‒2 クライアント型コネクションでのeemcpcn -oオプション指定時/省略時

項番

指定条件(定義)

eemcpgen結果

コネクション確立方法

eemcptcpstart -o con_addr

eemcpcn -o

eemcpcn -i

eemcpactcntoコマンドまたはee_mcp_actcn_to(COBOL言語はBLEEMCP('ACTCNTO '))API

eemcpactcnコマンドまたはee_mcp_actcn(COBOL言語はCBLEEMCP('ACTCN '))API

dynamic

static

manual

auto

1

省略

OK

使用可

使用不可

2

省略

NG

3

指定

OK

使用可

使用可

4

指定

OK

使用可

使用可

5

省略

NG

6

指定

OK

使用可

使用可

7

指定

OK

使用可

使用可

(凡例)

○:指定します(省略値が同値の場合も含みます)。

−:該当しません。

OK:eemcpgenが正常終了します。

NG:eemcpgenに失敗します(不正な定義の指定方法です)。

使用可:コマンド・APIを使用可能です。

使用不可:コマンド・APIを実行するとエラーになります。

表4‒3 サーバ型コネクションでのeemcpcn -oオプション指定時/省略時

項番

指定条件(定義)

eemcpgen結果

eemcpcn -h addrchk

eemcpcn -o

yes

no

1

省略

NG

2

指定

OK

3

省略

OK

4

指定

OK

(凡例)

○:指定します(省略値が同値の場合も含みます)。

−:該当しません。

OK:eemcpgenが正常終了します。

NG:eemcpgenに失敗します(不正な定義の指定方法です)。

(オペランド)

oipaddr=相手システムのホストのIPアドレス

〜(nnn.nnn.nnn.nnn)〈符号なし整数〉((0〜255))

相手システムのホストのIPアドレスを指定します。

指定形式はnnn.nnn.nnn.nnnです。nnnには,0〜255の値を指定できます。ただし,0.0.0.0と255.255.255.255は指定できません。

ohostname=相手システムのホスト名

〜〈1〜255文字のホスト名〉

相手システムのホスト名を指定します。

-oオプションを指定する場合は,oipaddrオペランドかohostnameオペランドのどちらか一方を指定してください。oipaddrオペランドを指定した場合は,このオペランドの指定値は無視されます。

oportno=相手システムのホストのポート番号|free

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

相手システムのホストのポート番号を指定します。freeを指定できるのは,サーバ型コネクション(-yオプションのmodeオペランドでserverを指定)の場合だけです。

freeを指定した場合,oipaddrオペランドまたはohostnameオペランドで指定した相手システムと一致する,任意のポート番号からのコネクション確立要求を受け入れます。このとき,一つの相手システムから複数のコネクションを受け入れるためには,受け入れるコネクション数の分だけコネクション定義を指定する必要があります。それぞれのコネクション定義には,同一のoipaddrオペランドまたはohostnameオペランドを指定してください。指定したコネクション定義数以上のコネクション確立要求を受けた場合,要求を拒否します。ただし,freeを指定し,-rオプションのipaddrオペランドおよびportnoオペランドの指定値が同じコネクションに対しては,コネクションリプレース機能を使用できます。コネクションリプレース機能については,「2.1.4 コネクションリプレース機能」を参照してください。

●-k

(オペランド)

nodelay=yes|no

〜《no》

TCP/IPが提供するソケットオプション「TCP_NODELAY」を使用するかどうかを指定します。

TCP_NODELAYを使用することで,送信済みデータの応答待ちの状態でも,遅延させることなくデータ送信ができるようになりますが,ネットワークの負荷は高くなります。そのため,この機能の必要性を十分に検討した上で使用してください。

yes

TCP_NODELAYを使用します。

no

TCP_NODELAYを使用しません。

keepalive=yes|no

〜《no》

TCP/IPが提供するソケットオプション「SO_KEEPALIVE」を使用するかどうかを指定します。

SO_KEEPALIVEを使用することで,コネクションがメッセージ送受信中でない場合に,相手システムに対して一定間隔でパケットを送信し,その間に応答がなければ障害と見なしてコネクションを切断することができます。これをキープアライブといいます。

ただし,キープアライブを行うとネットワークの負荷を高める場合があります。そのため,この機能の必要性を十分に検討した上で使用してください。

yes

キープアライブを使用します。

no

キープアライブを使用しません。

notrftime=無通信監視時間

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

コネクションの無通信状態を監視するタイマ値を設定します。0を指定した場合は,時間監視をしません。監視時間は最大で1秒早くタイムアウトする場合があります。

●-f

(オペランド)

cnrelease=fin|rst

〜《fin》

コネクションの解放形態を指定します。

fin

FINパケットを送信してコネクションを解放します。

rst

RSTパケットを送信してコネクションを強制的に解放します。

-fオプションを指定していない場合に,eemcpdctcnコマンドを実行するときは,FINパケットを送信してコネクションを解放します。TP1/EEの正常終了,計画停止A,または計画停止Bの場合のコネクション解放形態は,endreleaseオペランドで指定してください。

MCPはOSが提供するTCP/IPのソケットインタフェース(SO_LINGER)を利用しています。そのため,このオペランドにfinを指定しても,ネットワーク上でのすれ違いなどによって,このオペランドの指定値とは関係なくRSTパケットを送信する場合があります。

endrelease=fin|rst

〜《fin》

TP1/EEの正常終了,計画停止A,または計画停止Bの場合のコネクションの解放形態を指定します。ただし,CL構成の場合はcnreleaseオペランドで指定したコネクション解放形態でコネクションを解放します。

fin

FINパケットを送信してコネクションを解放します。

rst

RSTパケットを送信してコネクションを強制的に解放します。

MCPはOSが提供するTCP/IPのソケットインタフェース(SO_LINGER)を利用しています。そのため,このオペランドにfinを指定しても,ネットワーク上でのすれ違いなどによって,このオペランドの指定値とは関係なくRSTパケットを送信する場合があります。

●-h

(オペランド)

addrchk=yes|no

〜《yes》

コネクション確立要求の受信時に相手アドレス情報をチェックするかどうかを指定します。

一つのMCP構成定義内では,すべてのサーバ型コネクションで,このオペランドに同じ値を指定する必要があります。

クライアント型コネクションの場合,このオペランドを指定する必要はありません。指定しても無視されます。

yes

コネクション確立要求受信時に相手のアドレス情報をチェックします。コネクション定義で指定された相手のアドレスと確立要求発行元のアドレスが一致する場合は,確立要求を受け入れます。一致しない場合は,確立要求を拒否します。ただし,相手のアドレス情報をチェックするためには,-oオプションのoipaddrオペランド,ohostnameオペランドおよびoportnoオペランドで相手システムのアドレス情報を定義しておく必要があります。

no

コネクション確立要求受信時に相手のアドレス情報をチェックしません。未確立コネクションがない場合は,確立要求を拒否します。したがって,相手システムのアドレス情報を定義する必要はありません。定義した場合は,無視されます。ただし,noを指定した場合でも,-rオプションのipaddrオペランドおよびportnoオペランドの指定値が同じコネクションに対しては,コネクションリプレース機能を使用できます。コネクションリプレース機能については,「2.1.4 コネクションリプレース機能」を参照してください。

chgconn=replace|keep

〜《keep》

相手システムからコネクションの確立要求を受け付けた場合に,割り当てできる未確立コネクションがないときの動作を指定します。

replace

コネクションリプレース機能を使用します。相手システムと確立状態にある最も古いコネクションを切断して,新たなコネクション確立要求を受け付けます。

keep

コネクションリプレース機能を使用しません。相手システムからの確立要求を拒否します。

一つのMCP構成定義内で,同じ自システムのポート番号(-rオプションのportnoオペランドで指定)を持つすべてのサーバ型コネクション(-yオプションのmodeオペランドでserverを指定)で,このオペランドに同じ値を指定する必要があります。

クライアント型コネクション(-yオプションのmodeオペランドでclientを指定)および,相手ポート番号が固定(-oオプションのoportnoオペランドに1〜65535を指定)のサーバ型コネクションにこのオペランドを指定した場合,このオペランドの指定値は無視されます。なお,コネクションリプレース機能については,「2.1.4 コネクションリプレース機能」を参照してください。