付録A.3 再送電文を格納するためのユーザー用RDエリアの算出方法

再送電文格納用テーブルには,自動再送処理でタイムアウトした電文が格納されます。これらの電文は,コマンドによる手動再送をするときに,再送の対象となります。再送の対象となる電文を格納するために,次の再送電文格納用テーブルの格納領域を用意します。

電文再送コマンド(hmpnretry)および複数電文再送コマンド(hmpnretryall)を使用しないときは,再送電文格納用テーブルは必要ありません。

ユーザー用RDエリアは次の計算式から算出します。

ユーザー用RDエリア(バイト)=格納される再送電文の数(レコード)×平均電文長(バイト)×1.25

次に,テーブルの更新タイミング,格納される再送電文の数,および平均電文長の考え方について説明します。

<この項の構成>
(1) テーブルの更新タイミング
(2) 格納される再送電文の数
(3) 平均電文長
(4) 再送電文格納用テーブルのユーザー用RDエリアの計算式
(5) 算出例

(1) テーブルの更新タイミング

再送電文格納用テーブルに格納される電文には,次の種類があります。これらの電文は,タイムアウトした時点で再送電文格納用テーブルに格納(INSERT)されます。

また,再送電文格納用テーブルに格納されている情報は,電文再送コマンドまたは複数電文再送コマンドを実行したときに,情報が更新(UPDATE)されます。更新される情報は,電文再送コマンドまたは複数電文再送コマンドの実行結果によって異なります。

(2) 格納される再送電文の数

消込サービス,および取消サービスごと,かつプロセスごとに,タイムアウトした電文が格納されます。このため,消込サービスおよび取消サービスで,それぞれどれくらいタイムアウトが発生するかによって,格納される再送電文の数が決まります。

次に,格納される再送電文の数の計算式を示します。

各サービスの電文処理数(単位:件)
  • 消込サービスが処理する電文の数:a
  • 取消サービスが処理する電文の数:b
  • タイムアウトする電文の割合:c
格納される再送電文の数の計算式
格納される再送電文の数(レコード)=(a+b)×c

(3) 平均電文長

再送電文格納用テーブルの1レコード当たりの最大サイズは,7,198バイトです。ユーザー用RDエリアのサイズを算出する場合には,1レコード当たりの最大サイズで見積もる必要があります。ただし,再送電文格納用テーブルの項目には,可変長項目であるVARCHAR型が含まれるため,この部分に電文種別ごとの平均値を採用することで,用意するユーザー用RDエリアの見積もり量を抑えることができます。

次に,平均電文長の計算式を示します。なお,取消依頼電文および取消応答電文の割合は無視できるほど小さいため,平均電文長の計算式には含めません。

電文種別ごとの平均値(単位:バイト)
消込依頼電文:d
平均電文長の計算式
平均電文長(バイト)=d

(4) 再送電文格納用テーブルのユーザー用RDエリアの計算式

(2)および(3)で算出した値を利用して,再送電文格納用テーブルのユーザー用RDエリアを算出します。

次にユーザー用RDエリアの計算式を示します。

ユーザー用RDエリア(バイト)=(a+b)×c×d×1.25

(5) 算出例

ユーザー用RDエリアの算出例を次に示します。

(例)
毎日の収納サービス用に,電文トラフィックが10万件程度あり,そのうちタイムアウトする電文の割合を0.01とする。電文種別ごとの平均値から算出した平均電文長は,600バイトである。また,各種再送取引は7日間保存できるようにする。
この場合のユーザー用RDエリアの計算式を次に示します。
100,000(件)×0.01×600(バイト)×1.25×7(日)=5,250,000(バイト)