再送電文格納用テーブルには,自動再送処理でタイムアウトした電文が格納されます。これらの電文は,コマンドによる手動再送をするときに,再送の対象となります。再送の対象となる電文を格納するために,次の再送電文格納用テーブルの格納領域を用意します。
電文再送コマンド(hmpnretry)および複数電文再送コマンド(hmpnretryall)を使用しないときは,再送電文格納用テーブルは必要ありません。
ユーザー用RDエリアは次の計算式から算出します。
ユーザー用RDエリア(バイト)=格納される再送電文の数(レコード)×平均電文長(バイト)×1.25 |
次に,テーブルの更新タイミング,格納される再送電文の数,および平均電文長の考え方について説明します。
再送電文格納用テーブルに格納される電文には,次の種類があります。これらの電文は,タイムアウトした時点で再送電文格納用テーブルに格納(INSERT)されます。
また,再送電文格納用テーブルに格納されている情報は,電文再送コマンドまたは複数電文再送コマンドを実行したときに,情報が更新(UPDATE)されます。更新される情報は,電文再送コマンドまたは複数電文再送コマンドの実行結果によって異なります。
消込サービス,および取消サービスごと,かつプロセスごとに,タイムアウトした電文が格納されます。このため,消込サービスおよび取消サービスで,それぞれどれくらいタイムアウトが発生するかによって,格納される再送電文の数が決まります。
次に,格納される再送電文の数の計算式を示します。
格納される再送電文の数(レコード)=(a+b)×c |
再送電文格納用テーブルの1レコード当たりの最大サイズは,7,198バイトです。ユーザー用RDエリアのサイズを算出する場合には,1レコード当たりの最大サイズで見積もる必要があります。ただし,再送電文格納用テーブルの項目には,可変長項目であるVARCHAR型が含まれるため,この部分に電文種別ごとの平均値を採用することで,用意するユーザー用RDエリアの見積もり量を抑えることができます。
次に,平均電文長の計算式を示します。なお,取消依頼電文および取消応答電文の割合は無視できるほど小さいため,平均電文長の計算式には含めません。
平均電文長(バイト)=d |
(2)および(3)で算出した値を利用して,再送電文格納用テーブルのユーザー用RDエリアを算出します。
次にユーザー用RDエリアの計算式を示します。
ユーザー用RDエリア(バイト)=(a+b)×c×d×1.25 |
ユーザー用RDエリアの算出例を次に示します。