set形式のMQTサービス定義
set形式のMQTサービス定義について説明します。
形式
〔set max_socket_descriptors = ソケット用ファイル記述子の最大数〕 〔set mqt_trace_file_path= MQTトレースファイル格納ディレクトリパス名〕 〔set mqt_tcpnodelay = Y|N〕
オペランド
● max_socket_descriptors=ソケット用ファイル記述子の最大数
〜<符号なし整数>((Linux以外の場合:64〜1998,Linuxの場合:64〜974))
UNIXの場合《304》
Windowsの場合《64》
MQTサーバでソケット用に使用するファイル記述子の最大数を指定します。
この定義で指定した属性は,すべてのMQTサーバで共通の属性となります。
MQTサーバのMCAはソケットを使用したTCP/IP通信を行います。また,MQAサーバとの間でもソケットを使用したTCP/IP通信でプロセス間の情報交換をしています。そのため,MCAの定義内容によっては,ソケット用のファイル記述子の最大数を変更する必要があります。
MQTサーバが使用するソケット用ファイル記述子の最大数の計算式を,次に示します。計算式の最大値が64より大きい場合は,その値を指定し,64以下の場合は,64を指定します。MQTサーバを複数定義する場合は,計算式が最大となるMQTサーバの値を指定してください。
- 注※
-
センダチャネルまたはサーバチャネルだけ該当します。
MQTサーバが使用中のソケット用ファイル記述子数が,MQTサービス定義のmax_socket_descriptorsオペランドに指定したソケット用ファイル記述子の最大数よりも多くなった場合,次に示すどれかのメッセージを出力して,OpenTP1が異常終了することがあります。
|
出力メッセージID |
内容 |
出力先 |
|---|---|---|
|
KFCA00107-E |
"open(モジュール名)" failed errno=24 : Too many open files |
標準エラー出力 |
|
KFCA00307-E |
ソケット不足が発生したためRPCができません。 |
標準エラー出力 |
|
KFCA16331-E |
TCP/IPインタフェースエラー(エラーコード=24) |
メッセージログファイル |
|
KFCA18376-E |
トレース出力失敗(理由コード=-1) |
メッセージログファイル |
● mqt_trace_file_path=MQTトレースファイル格納ディレクトリパス名
〜<1〜80バイトの文字列>
UNIXの場合《$DCDIR/spool》
Windowsの場合《%DCDIR%\spool》
MQTトレースファイルを格納するディレクトリの絶対パス名(UNIX版の場合は通常ファイルを作成できるディレクトリの絶対パス名)を指定します。パス名は80バイト以内にしてください。
● mqt_tcpnodelay = Y|N
〜《Y》
MQTサーバのチャネルのTCP/IP通信のソケット属性に,TCP_NODELAYオプションを使用するかどうかを指定します。この定義は,OpenTP1システム上のすべてのMQTサーバで有効になります。
TCP_NODELAYオプションを使用すると(このオペランドにYを指定または省略すると),Nagleアルゴリズムが無効になるので,送信済みパケットの応答待ちの状態でも遅延させることなくパケットを送信できます。
ただし,TCP_NODELAYオプションを使用することで,通信時の送信効率が低下し,ネットワークの負荷が大きくなる場合があります。これは,Nagleアルゴリズムを無効にすると,データ量が小さい電文でも個々のパケットとして送信され,全体的なパケット量が増加することがあるからです。このため,オペランドを指定する場合は,ネットワークの帯域などを考慮し,この機能の必要性を十分に検討してください。
-
Y
チャネルのソケット属性にTCP_NODELAYオプションを使用する。
-
N
チャネルのソケット属性にTCP_NODELAYオプションを使用しない。