ここでは、MQD環境定義の記述方法について以下を説明します。
記述形式(データベースを使用する場合)
記述内容の説明(データベースを使用する場合)
記述例(データベースを使用する場合)
なお、記述規約については、“付録A 定義記述規約”を参照してください。
MQD環境定義は以下の形式で記述します。
記述形式 (データベースを使用する場合)
[MQDConfiguration] QueueMax = 作成メッセージキュー数の最大値 MessageBufferMaxSize = メッセージバッファの最大長 QMKind = メッセージ格納ファイルの種別 [SystemFile] SystemFile = システム制御用データベーススペースのファイルの名前 SystemFile_Size = システム制御用データベーススペースのファイルの容量 [DiskQueue] File = メッセージ格納用データベーススペースのファイルの名前 Size = メッセージ格納用データベーススペースのファイルの容量 QueueQuota = 1メッセージキューの容量
MQD環境定義の記述内容について以下に説明します。
なお、本項で指定する各ファイルは、すべて新規ファイルです。ただし、ディレクトリについては、既存の(実在する)ものを指定する必要があります。
MQD環境の情報を記述します。記述内容を表3.10 MQDConfigurationセクションの記述内容に示します。
キーワード | 省略 | データ型 | 記述方法 | 記述内容の説明 |
---|---|---|---|---|
QueueMax | 不可 | 数値 | 1~30000の数値で指定します。 | 作成メッセージキュー数の最大値を指定します。(注1) |
MessageBufferMaxSize | 可 | 数値 | 1~1024の数値で指定します。 | 一時的にメッセージを格納するバッファの最大長を指定します。 メッセージ格納ファイルとしてデータベースを使用する場合には、全メッセージキュー内に滞留しているメッセージ数×32[バイト]をこのバッファで使用します。このバッファは、共有メモリ上に獲得され、不足時に指定された値の1/10ずつ、指定された値まで拡張されます。(注2) |
QMKind | 不可 | 文字列 | “RDB”を指定します。 | メッセージ格納ファイルの種別を指定します。“RDB”を指定した場合は、データベースとして、Symfoware/RDBを使用します。 |
注意
MQDの拡張機能を使用する場合、各サービスに対して以下の値が必要です。アプリケーションで必要な値に使用するサービスに必要な値を加えた値以上を指定してください。
(送信キュー数 + 受信キュー数) * 2
使用バッファ量の見積もりは以下の式に従ってください。
MessageBufferMaxSize = A + B + C + D + E
項目 | 見積もり式(単位はM) |
---|---|
A | 40 |
B | (アプリケーションが1トランザクションで扱うメッセージ長の合計の最大値) * (同時に起動するアプリケーション数) * 2 |
C | (同時に起動するアプリケーション、MQDコマンドの総数 + 2) * 16384 / 1024 / 1024 マルチスレッドアプリケーションの場合は、MQDに接続するスレッド数を数える。 |
D | (作成するメッセージキュー数) * 512 / 1024 / 1024 |
E | (A + B + C + D) * 0.035 |
トランザクション管理ファイル情報を記述します。記述内容を表3.11 Transactionセクションの記述内容に示します。
キーワード | 省略 | データ型 | 記述方法 | 記述内容の説明 |
---|---|---|---|---|
Max_Size | 可 | 数値 | 16~65536の数値で指定します。[Kバイト]の単位で指定します。 | 1トランザクションで送受信するメッセージ長の合計をアプリケーションごとに求め、同時実行するアプリケーションの前述合計の総和を指定します。 |
注意
MQDの拡張機能を使用する場合、各サービスに対して以下の値が必要です。アプリケーションで必要な値に使用するサービスに必要な値を加えた値以上を指定してください。
1ユニット内のユーザデータ長の合計 + MQDヘッダ長 × 1ユニット内メッセージ数
14400、または
ユーザデータの最大長[Kバイト] × パッキング数 + 256 を比べて大きいほうの値
なお、パッキング数は、イベントチャネル連携サービスのサービス定義のpackmsg_cntキーワードで指定します。
MQDが使用するシステム制御用ファイルの情報を記述します。記述内容を表3.12 SystemFileセクションの記述内容に示します。
キーワード | 省略 | データ型 | 記述方法 | 記述内容の説明 |
---|---|---|---|---|
SystemFile | 不可 | 文字列 | 絶対パス名でファイル名を指定します。 | システム制御用ファイル(システム制御用データベーススペース)の名前を指定します。 |
SystemFile_Size | 不可 | 数値 | 153600以上の数値で指定します。[Kバイト]の単位で指定します。 | システム制御用ファイル(システム制御用データベーススペース)の容量を指定します。 “表3.2 ファイル容量の見積り方法(データベースを使用する場合)”の“システム制御用データベーススペース”の式で求めてください。 最大値はSymfoware/RDBの定量制限に準じます。 |
メッセージ保証レベルがディスク型のメッセージキューを利用する場合に、ディスク型メッセージキューの情報を記述します。記述内容を表3.13 DiskQueueセクションの記述内容に示します。
キーワード | 省略 | データ型 | 記述方法 | 記述内容の説明 |
---|---|---|---|---|
File | 不可 | 文字列 | 絶対パス名でファイル名を指定します。 | ディスク型メッセージキューのメッセージ格納域(メッセージ格納ファイルとしてのデータベーススペース)の名前を指定します。 |
Size | 不可 | 数値 | 4096以上の数値で指定します。 | ディスク型メッセージキューのメッセージ格納域(メッセージ格納ファイルとしてのデータベーススペース)の容量を指定します。 “表3.2 ファイル容量の見積り方法(データベースを使用する場合)”の“メッセージ格納用データベーススペース”の式で求めてください。 最大値はSymfoware/RDBの定量制限に準じます。 |
QueueQuota | 不可 | 数値 | 4096以上の数値で指定します。[Kバイト]の単位で指定します。 | データベーススペースから割り当てる1メッセージキューの容量を指定します。 “表3.2 ファイル容量の見積り方法(データベースを使用する場合)”の“メッセージ格納テーブル”の式で求めてください。 |
MQD環境定義の記述例を以下に示します。
# MQD環境情報 [MQDConfiguration] QueueMax = 50 MessageBufferMaxSize = 256 # 256Mバイト QMKind = RDB # メッセージ格納ファイルとしてデータベースを使用 # システム制御用ファイル情報 [SystemFile] SystemFile = c:\mqdfile\systemfile # システム制御用データベーススペース SystemFile_Size = 2000000 # 2Gバイト # ディスク型メッセージキューの情報 [DiskQueue] File = c:\mqdfile\diskquefile # メッセージ格納用データベーススペース Size = 2000000 # 2Gバイト QueueQuota = 40000 # 40Mバイト