Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/TCP/IP編


10.2.2 KFCA14803-Eメッセージが出力された場合

KFCA14803-Eメッセージが出力された場合の調査手順,および対処について説明します。

〈この項の構成〉

(1) 現象

次のメッセージが出力されて,相手システムとコネクションが確立できませんでした。

KFCA14803-E mmm コネクション確立時に障害が発生しました。

コネクション名=aa....aa 関数=bb....bb 詳細エラーコード=cc....cc

(凡例)

mmm:MCF通信プロセス識別子

aa....aa:コネクション名

bb....bb:TCP/IPソケットの関数名

cc....cc:詳細エラーコード

(2) 現象発生時の確認事項

(3) 取得情報

(4) 原因の調査と対処

この障害の主な原因を次に示します。

次に示すフローに従って原因の調査と対処をしてください。

図10‒4 KFCA14803-Eが出力された場合の調査手順(ステップ1)

[図データ]

注※

コネクション定義の確立モード(mcftalccn -y mode)の指定値を確認してください。指定値が「client」の場合はクライアント型,指定値が「server」の場合はサーバ型です。

コネクションの確立モードは,運用コマンド(mcftlsln -t)を実行して確認することもできます。出力内容が「C」の場合はクライアント型,出力内容が「S」の場合はサーバ型です。

図10‒5 KFCA14803-Eが出力された場合の調査手順(ステップ2)

[図データ]

対処

内容

対処1

KFCA14803-EのTCP/IPソケットの関数名と詳細エラーコードから,ご使用のOSのマニュアルで詳細エラーコードの意味を確認し,想定される要因に該当するかどうかを調査してください。

解決しない場合は,情報を取得してサポートセンタへ問い合わせてください。

図10‒6 KFCA14803-Eが出力された場合の調査手順(ステップ2-1)

[図データ]

注※

OSが返したerrnoです。実際にメッセージに出力される値は,使用するOSによって異なります。詳細については,ご使用のOSのマニュアルまたは技術情報を参照してください。

また,詳細エラーコードがENFILEの場合はシステム全体で使用できるファイル記述子の上限を,EMFILEの場合は1プロセスで使用できるファイル記述子の上限を見直してください。

対処

内容

対処2

MCF通信プロセスで使用できるファイル記述子の指定値が不足していることが原因です。システムサービス共通情報定義のmax_open_fdsオペランドの指定値,およびOSのカーネルパラメタの指定値を見直してください。

対処3

ご使用のOSのマニュアルでsocket関数に対応する詳細エラーコードの意味を確認し,想定される要因に該当するかどうかを調査してください。

解決しない場合は,情報を取得してサポートセンタへ問い合わせてください。

注※

カーネルパラメタの指定値を変更する場合は,余裕を持った値を指定してください。

図10‒7 KFCA14803-Eが出力された場合の調査手順(ステップ2-2)

[図データ]

注※

OSが返したerrnoです。実際にメッセージに出力される値は,使用するOSによって異なります。詳細については,ご使用のOSのマニュアルまたは技術情報を参照してください。

対処

内容

対処4

割り当てられないIPアドレスを指定したことが原因です。

コネクション定義の自システムのIPアドレス(mcftalccn -r ipaddr),またはホスト名(mcftalccn -r hostname)の指定値を見直してください。

直前にKFCA14868-Iが出力されている場合は,dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')で設定した自システムのIPアドレスの設定値を見直してください。

対処5

他のプログラムが使用しているポート番号を指定したことが原因です。

コネクション定義の自システムのポート番号(mcftalccn -r portno)の指定値を見直してください。

直前にKFCA14868-Iが出力されている場合は,dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')で設定した自システムのポート番号の設定値を見直してください。

対処6

ご使用のOSのマニュアルで,bind関数に対応する詳細エラーコードの意味を確認し,想定される要因に該当するかどうか調査してください。

解決しない場合は,情報を取得してサポートセンタへ問い合わせてください。

注※

他のアプリケーションとの重複を避けるため,OSが任意に割り当てるポート番号(動的ポートまたは短命ポートと呼ばれるポート番号)を使用しないでください。

OSが任意に割り当てるポート番号の範囲は,OSの種別やバージョンによって異なります。詳細については,ご使用のOSのマニュアルまたは技術情報を参照してください。

図10‒8 KFCA14803-Eが出力された場合の調査手順(ステップ2-3)

[図データ]

注※

OSが返したerrnoです。実際にメッセージに出力される値は,使用するOSによって異なります。詳細については,ご使用のOSのマニュアルまたは技術情報を参照してください。

対処

内容

対処7

次に示す要因のどれかで,確立要求を相手システムが拒否したことが原因です。

  • 相手システムが使用していないポート番号にコネクション確立要求を行った。

  • 相手システムの処理能力を超えるコネクション確立要求が集中した。

次に示す調査または見直しをしてください。

  • コネクション定義の相手システムのIPアドレス(mcftalccn -o oipaddr)またはホスト名(mcftalccn -o ohostname)およびポート番号(mcftalccn -o oportno)の指定値を見直してください。

  • 直前にKFCA14868-Iが出力されている場合,dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')で設定した相手システムのIPアドレスおよびポート番号の設定値を見直してください。

  • 相手システム内の接続先アプリケーションの起動状態,および障害が発生した時間帯の負荷状態を調査してください。

対処8

次に示す要因のどれかで,コネクション確立要求がタイムアウトしたことが原因です。

  • 相手システムの電源が未投入などにより,指定したIPアドレスがネットワーク上に存在しない。

  • 相手システムの処理能力を超えるコネクション確立要求が集中した。

  • OSやネットワーク機器のパケットフィルタリング機能でコネクション確立要求が破棄された。

次に示す調査または見直しをしてください。

  • コネクション定義の相手システムのIPアドレス(mcftalccn -o oipaddr)またはホスト名(mcftalccn -o ohostname)の指定値を見直してください。

    直前にKFCA14868-Iが出力されている場合,dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')で設定した相手システムのIPアドレスの設定値を見直してください。

  • 相手システムの起動状態,および該当時間帯の負荷状態を調査してください。

  • 自システムと相手システム間のネットワークの状態を調査してください。

  • 相手システムおよびネットワーク機器のパケットフィルタリング機能の設定を見直してください。

  • 詳細エラーコードが-16778の場合,コネクション定義のコネクション確立時監視時間(mcftalccn -b concmptim)の指定値が適切であるか見直してください。※1

対処9

TIME_WAIT状態※2のコネクションに確立要求を行ったことが原因です。

コネクション定義のコネクション確立障害時の確立再試行回数(mcftalccn -b bretrycnt)および確立再試行間隔(mcftalccn -b bretryint)の指定値を見直してください。

対処10

到達できないネットワークのIPアドレスを指定したことが原因です。

次に示す調査または見直しをしてください。

  • コネクション定義の相手システムのIPアドレス(mcftalccn -o oipaddr)またはホスト名(mcftalccn -o ohostname)の指定値を見直してください。

  • 直前にKFCA14868-Iが出力されている場合,dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')で設定した相手システムのIPアドレスの設定値を見直してください。

  • 自システムと相手システム間のネットワーク機器を調査してください。

対処11

ご使用のOSのマニュアルで,connect関数に対応する詳細エラーコードの意味を確認し,想定される要因に該当するかどうか調査してください。

解決しない場合は,情報を取得してサポートセンタへ問い合わせてください。

注※1

OpenTP1システムの時間の精度は1秒です。

注※2

自システムからコネクションを解放すると,OSのコネクションの状態がTIME_WAIT状態となります。TIME_WAIT状態の所要時間はOSによって異なります。

自システムからコネクションを解放した直後に再度コネクションを確立する必要がある場合は,コネクション定義の自システムのポート番号(mcftalccn -r portno)は指定しないで,OSが自動的に割り当てたポート番号を使用してください。

図10‒9 KFCA14803-Eが出力された場合の調査手順(ステップ3)

[図データ]

注※

OSが返したerrnoです。実際にメッセージに出力される値は,使用するOSによって異なります。詳細については,ご使用のOSのマニュアルまたは技術情報を参照してください。

また,詳細エラーコードがENFILEの場合はシステム全体で使用できるファイル記述子の上限を,EMFILEの場合は1プロセスで使用できるファイル記述子の上限を見直してください。

対処

内容

対処12

MCF通信プロセスで使用できるファイル記述子の指定値が不足していることが原因です。

システムサービス共通情報定義のmax_open_fdsオペランドの指定値およびOSのカーネルパラメタ※1の指定値を見直してください。

対処13

TP1/NET/TCP/IPがコネクション確立要求を受け付けた直後,相手システムからコネクションを強制解放されたことが原因です。

相手システムのネットワーク機器,および自システムと相手システム間のネットワーク機器を調査してください。

また,ポートスキャンが行われていたかどうかを調査してください。

対処14

KFCA14803-EのTCP/IPソケットの関数名,および詳細エラーコードから,ご使用のOSのマニュアルで詳細エラーコードの意味を確認し,想定される要因に該当するかどうか調査してください。

解決しない場合は,情報を取得してサポートセンタへ問い合わせてください。

対処15

相手システムのIPアドレスおよびポート番号がコネクション定義に定義されていないことが原因です。相手システムのIPアドレスとポート番号については,KFCA14803-Eの直後に出力されたKFCA14854-Iで確認してください。

次に示す調査または見直しをしてください。

  • コネクション定義の相手システムのIPアドレス(mcftalccn -o oipaddr),ホスト名(mcftalccn -o ohostname)※2およびポート番号(mcftalccn -o oportno)※3の指定値を見直してください。

  • コネクション定義の自システムのポート番号(mcftalccn -r portno)の指定値と同じポート番号を使用するアプリケーション(自システム内の他のTP1/NET/TCP/IPの通信プロセスを含みます)が自システム内に存在していないか調査してください。※4

対処16

コネクション確立要求の受け付けを開始していないことが原因です。

mcftonlnコマンドを実行して確立要求の受け付けを開始してください。

注※1

カーネルパラメタの指定値を変更する場合は,余裕を持った値を指定してください。

注※2

相手システムをホスト名で指定している場合,自システムのhostsファイルまたはDNSの指定内容を確認してください。ただし,OpenTP1のオンライン中に相手システムのIPアドレスが変更された場合,OpenTP1を再立ち上げするまで反映されないので注意が必要です。

注※3

相手システムのポート番号が不定の場合,相手システムのポート番号(mcftalccn -o oportno)にはfreeを指定してください。

注※4

自システムのポート番号が他のアプリケーション(自システム内の他のTP1/NET/TCP/IPの通信プロセスを含みます)と重複していると,他のアプリケーションに対するコネクション確立要求を受け付けるおそれがあります。

自システム内にTP1/NET/TCP/IPのMCF通信プロセスが複数存在する場合は,KFCA14834-Eが出力されていないか確認してください。