コネクション
概要
コネクションは、機関業務別、システム業務別の通信の役割を持つ。コネクショングループ、コネクションの順に定義する。
コネクショングループ
コネクショングループは、機関業務、システム業務を基準に、コネクションをグループ化し、コネクションを負荷分散処理する。
Connection Management > Connection Information
の左のツリーには、既に定義された機関/システム業務情報が表示され、右にはコネクショングループ/コネクションリストと詳細情報が表示される。
当該機関/システム業務から右クリック後、Add Connection Group
を選択して登録する。
構成項目
☑ 基本情報
- Protocol Divison : TCP、HTTPなど
- Apply Date : 当該コネクションを適用する日付。当日から実行する場合、今日より過去の日付を登録する。
- Instance ID : 指定した場合、当該コネクションを特定インスタンスで使用する。
- Connection Load Balancing Mode : FEPはコネクション負荷分散方法を設定する必要がある。MCI、EAIは`ラウンドロビン`で負荷分散する。 詳細については、負荷分散を参照する。
TCPを使用する場合、この他の追加設定が必要である。
当該設定は、機関業務の情報を継承することができる。ここで登録された情報は当該コネクショングループの下位のすべてのコネクションに継承される。 詳細については下のTCPを参照する。
コネクション
機関、システムとの実質的な通信チャネルの役割をする。ほとんどの情報は、コネクショングループから継承されるが、再定義することがもできる。
コネクショングループで右クリックした後、Add Connection
を選択して登録する。
登録する内容は、コネクショングループから選択したプロトコルによって異なる。
HTTP
☑ 基本情報
- Connection Load Balancing Value : コネクション負荷分散方法が、加重値、または順序指定方式の場合に表示される項目で、負荷分散方法が加重値の場合は加重値を入力し、負荷分散方法が順序指定方式であれば、当該コネクションが何番目に処理されるのかの順序を入力する。
☑ HTTP情報
- Connection Type : クライアント、サーバーの区分を設定する。
- Server URL : URLを設定する。
- Context Path : コンテキストパスを入力する。サーバーURLとポート番号、そしてコンテキストパスの組み合わせがコネクションの全体のURLである。
- KEEP ALIVE Y/N : KEEP ALIVEを使用するかどうかを設定する。
- Transmission Timeout Time(ms) : HTTP要求を受信する際に使用するタイムアウトである。この値を登録しない場合、システムパラメータにHTTP_REQUEST_WAIT_TIMEOUT値が適用される。
伝送タイムアウトは、取引に対するタイムアウト時間より大きい値を設定すると、正常に動作する。
☑ ヘルスチェックポリシー
コネクションのヘルスチェック方法、伝送周期および切断条件などの情報を設定する。
ヘルスチェック方法はIdle
、Interval
などに区分される。
Idle
方式は、送受信がないIDLEが発生する場合にヘルスチェックする方式で、一般的に使用される。
Interval
方式は、指定された時間間隔でヘルスチェックを行う方式である。
各構成項目に関する説明は、下記のとおりである。
- Health Check Interval(sec) : : ヘルスチェックする時間間隔を設定する。(Default Value : 60)
- Disconnection Condition Count : ヘルスチェック電文に対して応答がない場合、セッションを切断するための回数を入力する。(Default Value : 3)
☑ 追加情報
- Line ID : 物理的な回線に対するID
TCP
☑ TCP情報
- Send/Receive Type : 送信、受信の区分を設定する。
- Connection Type : クライアント、サーバーの区分を設定する。
- IP Domain、Port No. : コネクション区分に応じて、接続する対象、またはListenするサーバーのIP/PORTを設定する。
- Connection Oriented Y/N : Connected(Connection-Oriented)、Not connected(Connectionless)を設定する。 コネクションの維持は、クライアントモードでのインターフェース処理を、コネクション接続維持状態で処理し、 コネクションを維持しないは、クライアントモードでインターフェースの要求に対する応答が処理されれば、コネクションの接続を終了する。
- Error Condition Count : コネクションを維持しない場合、コネクション接続が失敗し続けると、そのコネクションを使用できないようにする。 この場合、コネクション接続を何回まで試すのかの最大値を入力し、その回数以上で接続できなければ、そのコネクションをDisableする。
- Session Count : クライアントモードの場合、1つのコネクションで接続するセッション数を入力し、サーバーモードの場合、接続を受けるセッション数を入力する。
☑ フレーム情報
フレームとは、電文単位を区分する用語で、APインターフェースで使用する送受信電文は、1つのフレームに格納される。 プロトコルがTCPの場合、フレームを区分する方式を設定する必要がある。
フレーム区分方式は、Message Length
、Delimiter
、User Codec
などである。
1. Message Length
電文長方式は、長フィールドでフレームを区分する方式で、共通情報、Read情報、Write情報に区分される。 長フィールドとは、電文の長さ情報を持っているフィールドを意味する。
共通情報とは長フィールドの属性定義で、Read情報は電文を読み込む時に使用し、Write情報は電文を書く時に使用するものである。 各構成項目に関する説明は、下記のとおりである。
共通情報

- Length Field Length : 長フィールド項目の長さを設定する。
- Length Field Start Offset : 長フィールドが開始されるoffset値を設定する。
- Length Field Character Type : 長フィールドが使用するキャラクターセットタイプを選択する。キャラクタータイプは
ASCII
、EBCDIC
、CHARSET
、BINARY
などに区分され、DefaultキャラクタータイプはCHARSET
である。CHARSET
を選択すると、機関別、システム別業務設定の電文キャラクターセットが適用される。 - Length Filed Include Y/N : ヘッダー長を含めるかどうかを設定する。
Include
の場合には全体電文長、Not Include
の場合にはヘッダー長を除いた値を意味する。 上の図の「例1」は「含む」の例で、長さの値は「100」で、「例2」は「含まれていない」の例で、長さの値は「92」である。
READ情報

- Length Filed Adjustment Value : 電文にある電文長の値を調整するのに使用する。
- Message Skip Length : 電文の不要なフィールドをスキップし、伝達したい時に当該Offset情報を設定する。
WRITE情報

- Length Field Create Y/N : 長フィールドを作成するかどうかを選択する。
作成
の場合には、電文の前に長フィールドを作成する。 上の図の例のように、長さの値は長フィールド長、長フィールドを含むかどうかなどのフィールド属性によって計算されて作成される。
2. Delimiter
デリミタ方式は区切り文字でフレームを区切る方式であり、区切り文字はLF
、CR+LF
、Stx-Etx
、ユーザー定義
がある。
各区切り文字に関する説明は、下記のとおりである。
Delimiter Type
- LF : ラインフィードでフレームを区切る。
- CR+LF : キャリッジリターン+ラインフィードでフレームを区切る。
- Stx-Etx : 電文の開始点はStxで区切り、終了点はEtxで区切る。
- User Definition : 上記以外のユーザー定義区切り文字で、フレームを区切る。
デリミタ
デリミタ区切りがUser Definition
の場合、デリミタ値を入力する。
3. User Codec
ユーザーコーデック方式は、ユーザーコーデックプログラムを呼び出してフレームを区切る方式である。
ユーザーコーデックプログラムは、事前にProgram Information
画面から登録する必要がある。
コーデックのプログラム開発方法は、Customizingを参照する。
☑ コネクション再試行ポリシー
コネクション区分がClient
で Connection Oriented : Connected
コネクションの接続が途切れた時に再接続に関するポリシー情報を登録する。
各構成項目に関する説明は、下記のとおりである。
- Connection Retry Interval(sec) : コネクションが切れた時の、再接続のための間隔を設定する。
- Connection Retry Limit : コネクションが切れた時の、再接続のための再試行最大回数を設定する。
- Connection Retry Waiting Time(sec) : コネクション再試行回数を超えた場合、一定時間経過後にコネクションを再試行することになるが、その時の待機時間を設定する。
0
を設定した場合、再試行せずに終了する。
☑ ヘルスチェックポリシー
コネクションのヘルスチェック方法、伝送周期および切断条件などの情報を設定する。
ヘルスチェック方法はIdle
、Interval
などに区分される。
Idle
方式は、送受信がないIDLEが発生する場合にヘルスチェックする方式で、一般的に使用される。
Interval
方式は、指定された時間間隔でヘルスチェックを行う方式である。
各構成項目に関する説明は、下記のとおりである。
- Health Check Interval(sec) : : ヘルスチェックする時間間隔を設定する。(Default Value : 60)
- Disconnection Condition Count : ヘルスチェック電文に対して応答がない場合、セッションを切断するための回数を入力する。(Default Value : 3)
ただし、コネクション区分がクライアントの場合、維持しないコネクションは設定できない。
☑ ソケットオプション
TCPコネクションのソケットオプションを設定する。データを送受信する方法を指定する。 ソケットオプションは、伝送バッファオプション、運用管理オプションなどに区分される。
1. 伝送バッファオプション
- Nagle Algorithm Y/N ネットワーク送信アルゴリズムであるNagleアルゴリズムを使用するかどうかを表示する。 例えば、Nagleアルゴリズムが適用されると、オペレーティングシステムは、パケットのACKが届いたら、今までの累積データを一括伝送することになる。
- Socket Send/Receive Buffer Size : TCPソケットの送信/受信バッファのサイズを表示する。
2. 運用管理オプション
- Grace Shutdown Y/N(sec) : データ損失なく正常に終了するための設定である。 設定値(秒)は終了待機時間を意味し、設定値が0の場合は、待機せずに即時に終了する。
- Half Close Y/N : TCPソケットの
Half close
オプションを使用するかどうかを選択する。 例えば、ハーフCloseとは、送信側でデータをWRITEしてストリームの片方をクローズする方式を意味する。caution特別な場合でない限り、Half closeオプションを使用しないことを推奨する。
- Connection Timeout Time(s) : コネクション区分が
Client
の場合、相手と接続するための最大待機時間を表示する。(デフォルト : 10秒) - transmission Timeout Time(ms) : 電文を送信した後、応答を受信するための待機時間
3. KEEPALIVEオプション
- KEEP ALIVE Y/N : KEEP ALIVEを使用するかどうか
- KEEP ALIVE IDLE(秒) : 初回のKEEP ALIVE検査を開始するまでの待機時間
- KEEP ALIVE COUNT : KEEP ALIVEパケットを送信後、応答がない場合の再送信する回数
- KEEP ALIVE INTERVAL(秒) : KEEP ALIVEパケットを送信後、応答がない場合に再送信するまでの待機時間
☑ ハンドラ情報
ユーザーハンドラは、コネクションのイベントに対して処理するユーザープログラムである。
コネクションイベントは、ネットワークソケットで発生するコネクション有効化(channelActive)、データ読み込み(channelRead)、データ読み込み完了(channelReadComplete)、コネクション無効化(channelInActive)などのイベントを意味する。
ユーザーハンドラのプログラムは、事前にProgram Information
画面から登録する必要がある。
ユーザーハンドラのプログラム開発方法はCustomizingを参照する。
設定値 | 説明 |
---|---|
Inbound handler | 受信イベントを処理するハンドラ |
Outbound handler | 送信イベントを処理するハンドラ |
In・Outbound handler | 送受信イベントを処理するハンドラ |
Idle State handler | IDLE状態を処理するハンドラ |
☑ 追加情報
- Selected Response Connection ID : 当該コネクションで要求を受けた場合、応答する特定コネクション
- Line ID : 物理的な回線に対するID
☑ ソケットモード設定
サーバーのソケット処理方式を指定することができ、当該設定はエンジンで使用するすべてのTCPコネクションに適用される。
ソケットモード設定は、システムパラメータのSOCKET_MODE
で設定する。BXIはNIO、Epollに対応している。
- NIO(ノン・ブロックソケット) : すべての入出力作業で完全な非同期APIを使って処理する。
- Epoll(リナックス専用のノン・ブロックソケット) : リナックス基盤のEpoll APIを使用して非同期処理する。 Linux Kernel 2.6.28以上バージョンでのみ対応する。