付録B.2 バージョン5以前からの移行
バージョン5以前からバージョン7へ移行する場合,次の点に注意してください。
(1) ソースの互換性
バージョン5以前からバージョン7へ移行する場合の各種ソースファイルの互換性について説明します。
バージョン5以前からバージョン7へ移行する場合,バージョン5以前で使用していたソースファイルをそのまま使用できないことがあります。ソースファイルの互換性は,次の表に示すとおりです。
ソースファイルの種類 |
ソースファイルを作成した言語 |
互換性 |
---|---|---|
UAP |
C言語 |
32ビットアーキテクチャのバージョン7を使用する場合は,ソースファイルを変更しないで使用できます。 それ以外の場合は,ソースファイルを変更する必要があります。※ |
COBOL言語 |
ソースファイルを変更しないで使用できます。 |
|
UOC |
C言語 |
32ビットアーキテクチャのバージョン7を使用する場合は,ソースファイルを変更しないで使用できます。 それ以外の場合は,ソースファイルを変更する必要があります。※ |
MCF通信構成定義(プロトコル固有の定義) |
− |
ソースファイルを変更しないで使用できます。 |
(2) サーバ型コネクションの自IPアドレス
バージョン5以前では,サーバ型コネクションに指定した自システムのIPアドレスおよびホスト名を無効としていましたが,バージョン7では,コネクション定義に指定した自システムのIPアドレスまたはホスト名に対応するIPアドレスを開始時にバインドします。
指定したIPアドレスまたはホスト名に対応するIPアドレスへのバインドに失敗した場合,-bオプションのbretry,bretrycnt,bretryintオペランドの指定値に従ってバインドを再試行します。
ホスト名に対応するIPアドレスの取得に失敗した場合,開始処理を中断しますのでご注意ください。
(3) メッセージ送信の再試行
バージョン5以前に存在したコネクション定義のメッセージ送信の再試行(mcftalccn -b dretry,dretryint,dretrycnt)は廃止し,定義しても無効となります。
バージョン5以前で行っていたメッセージ送信の再試行をバージョン7でも引き続き行い,再試行間隔(mcftalccn -b dretryint)および再試行回数(mcftalccn -b dretrycnt)にデフォルト値以外の値を設定していた場合,メッセージ送信完了監視時間(mcftalccn -b sndcmptim)に次の計算式で求めた値を設定してください。
メッセージ送信完了監視時間(sndcmptim)(秒) =再試行間隔(ミリ秒)× 再試行回数/1000(端数切り上げ) (dretryint) (dretrycnt)
- (例)
-
再試行間隔に250(ミリ秒),再試行回数に15(回)を指定していた場合の,メッセージ送信完了監視時間を求めるときの計算式を次に示します。
250 × 15 / 1000 = 3.75 ≒ 4
この場合は,メッセージ送信完了時間に4(秒)を指定します。
(4) MCFトレースで取得する送受信メッセージのサイズ
バージョン5以前では,TP1/NET/TCP/IPが送受信したメッセージの全内容をMCFトレースに取得していましたが,バージョン7では,送受信したメッセージの先頭から最大128バイトをMCFトレースに取得します。
128バイトを超える送受信メッセージをMCFトレースに取得する場合は,トレース環境定義のMCFトレースに取得する送受信メッセージのサイズ(mcfttrc -t msgsize)に,送受信するメッセージ長以上の値を指定してください。
(5) 未確立コネクションの論理端末に対する運用コマンドの動作
バージョン7では,未確立コネクションの論理端末に対する運用コマンド(mcftactleとmcftdctle)の動作が,バージョン5以前と異なります。未確立コネクションの論理端末に対する運用コマンドの動作を次に示します。
運用コマンド |
バージョン |
論理端末の状態 |
|
---|---|---|---|
閉塞 |
閉塞解除 |
||
mcftactle |
バージョン5以前 |
論理端末の閉塞解除をします。 |
KFCA14821-Wを出力し,運用コマンドを受け付けません。 |
バージョン7 |
KFCA14820-Wを出力し,運用コマンドを受け付けません。 |
該当する状態※にはなりません。 |
|
mcftdctle |
バージョン5以前 |
KFCA14822-Wを出力し,運用コマンドを受け付けません。 |
論理端末を閉塞します。 |
バージョン7 |
KFCA14820-Wを出力し,運用コマンドを受け付けません。 |
該当する状態※にはなりません。 |
(6) クライアント型コネクションの確立処理
バージョン7では,クライアント型コネクションの確立処理が,バージョン5以前と異なります。
バージョン7では,クライアント型コネクションの確立処理を変更し,相手システムからの応答を待ち合わせる最大時間として,コネクション確立時の監視時間をコネクション定義(mcftalccn -b)のconcmptimオペランドで指定できます。
クライアント型コネクションの確立処理を変更したことによって,次の処理に必要な時間がバージョン5以前と異なります。
-
TP1/NET/TCP/IPがコネクション確立を検出するまでの時間
-
相手システムまたはネットワークの障害によって確立処理がリトライオーバするまでの時間
OSが相手システムとコネクションを確立したあと,TP1/NET/TCP/IPがコネクションの確立を検出するために,バージョン5以前では最大で,コネクション定義(mcftalccn -b)のbretryintオペランドで指定したコネクション確立障害時の確立再試行間隔だけ時間を必要としました。一方,バージョン7ではコネクションの確立を即時検出できます。
バージョン7の確立処理のリトライオーバまでの所要時間の計算式を次に示します。
確立処理のリトライオーバまでの最大所要時間(秒) =(コネクション確立障害時の確立再試行間隔 + 確立障害検出時間※) (mcftalccn -b bretryint) ×コネクション確立障害時の確立再試行回数 (mcftalccn -b bretrycnt)
- 注※
-
コネクション確立時の監視時間とOSが確立障害を検出する時間のどちらか小さい方の値が設定されます。
バージョン5以前での,クライアント型コネクションの確立処理の流れは,「付録B.3 バージョン5以前でのソケット関数の処理の流れ」を参照してください。また,バージョン7での,クライアント型コネクションの確立手順の詳細は,「付録G ソケット関数の処理の流れ」を参照してください。
(7) コネクション当たりの受信バッファ数
バージョン5以前では,1コネクション当たりに必要な受信バッファは3以上でしたが,バージョン7では次の計算式で求めた値と2のどちらか大きい方の値以上が必要となります。
詳細については,「6. システム定義」の「mcftalccn(コネクション定義の開始)」の注意事項を参照してください。
1コネクション当たりの受信バッファ数(小数点以下を切り上げ) =受信バッファのバッファサイズ(バイト)/受信するメッセージの最小長 (mcftbuf -b length)
(8) システムサービス共通情報定義のmax_open_fdsオペランド
バージョン5以前ではプロトコル制御で使用するファイル記述子数は,コネクションの総数とサーバ型コネクションで使用するポート数でしたが,バージョン7ではコネクションの総数,サーバ型コネクションの自システムのホストのIPアドレス(ホスト名),およびポート番号を組み合わせた数です。
max_open_fdsオペランドについては,「6. システム定義」の「システムサービス共通情報定義」を参照してください。
(9) Windows版でのシステムサービス共通情報定義のmax_socket_descriptorsオペランドとmax_open_fdsオペランド
Windows版のバージョン5ではシステムサービス共通情報定義のmax_socket_descriptorsにプロトコル制御で使用するファイル記述子数(コネクション数×2)を追加する必要がありましたが,バージョン7ではUNIX版と同様にmax_open_fdsオペランドにプロトコル制御で使用するファイル記述子を追加してください。
(10) コネクション確立要求を格納するキューの長さ
バージョン5以前ではコネクション数にかかわらず固定としていましたが,バージョン7では定義したコネクション数に応じてTP1/NET/TCP/IPが自動的に調整するように変更しました。
(11) OpenTP1終了中の相手システムからのコネクション確立
バージョン5以前ではOpenTP1終了中においても相手システムからのコネクション確立要求を受け付けていましたが,バージョン7では相手システムからのコネクション確立要求を受け付けないように変更しました。
(13) 追加機能
バージョン5以前と比較して,バージョン7では「付録A バージョンアップ時の変更点」に記載した追加機能のほかに次の機能を追加しています。
-
相手アドレスチェックの抑止
サーバ型コネクションにおいて,相手システムのアドレス情報のチェックを抑止し,任意の相手システムからのコネクション確立要求を受け付ける機能です。詳細は「2.1.7 相手アドレスチェックの抑止(サーバ型コネクション)」を参照してください。
-
コネクションリプレース
サーバ型コネクションにおいて,割り当て可能な未確立コネクションがない時に相手システムからコネクション確立要求を受け付けた場合,確立状態にある既存のコネクションを解放し,新しい確立要求を受け付ける機能です。詳細は「2.1.10 コネクションリプレース(サーバ型コネクション)」を参照してください。
-
無通信状態監視
一定時間以上相手システムと無通信状態が続いていないかを監視する機能です。詳細は「2.1.15 無通信状態監視」を参照してください。
-
同期型メッセージの送信
sendsync関数またはCBLDCMCF('SENDSYNC')にて同期型メッセージを送信できる機能です。詳細は「2.3.2(1) 同期型メッセージの送信」を参照してください。
-
メッセージ送達の確認
DCCMII/TCPおよびDCCM3/TCPのメッセージ送達確認プロトコルに従ったメッセージ送達確認を行うか,または,受信メッセージ判定UOCを使用した任意の相手システムとのメッセージ送達確認を行う機能です。詳細は「2.3.10(2) TP1/NET/TCP/IPが提供する送達確認機能を使用する場合」を参照してください。
-
受信バッファの空き待ち
受信バッファの空きが不足した場合,受信バッファの空きを待ち合わせる機能です。詳細については,「2.3.7(3) 受信バッファの空き待ち」を参照してください。