Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Financial Service Platform 使用の手引


2.3.5 ワークメモリ

SDBハンドラでは,インタフェース変換やSDBデータベースへのアクセスなどで一時的にメモリを使用します。メモリが必要な度に確保/解放を行うと性能低下するため,スレッド単位でメモリのプール管理を行います。

プロセス起動時,sdh_workmem_sizeオペランドで指定した初期確保サイズ分のメモリをスレッド数確保し,各処理スレッドのワークメモリとします。このメモリはプロセス終了時まで解放しません。

ワークメモリが不足した場合は,sdh_workmem_sizeオペランドで指定した追加確保サイズ分のメモリを確保しワークメモリとします。必要サイズが追加確保サイズより大きい場合は,必要サイズ分のメモリを確保しワークメモリとします。追加確保したワークメモリは,トランザクション終了時に自動的に解放します。追加確保が失敗または追加確保サイズが0の場合は,KFSB54302-Eメッセージを出力し,提供APIがエラーリターンします。

追加確保はオーバーヘッドが大きくトランザクション性能が低下するため,追加確保の発生しない十分なサイズを見積もり,初期確保サイズとして指定することを推奨します。初期確保サイズはmax_mem_sizeオペランドに,追加確保サイズはsystem_work_sizeオペランドに加算してください。

ワークメモリの使用契機およびサイズを次の表に示します。

ワークメモリのサイズは1回の提供関数発行に必要なサイズであり,トランザクション中で複数回発行する提供関数のうち,最もワークメモリを使用する関数のサイズをワークメモリとして指定してください。

表2‒11 ワークメモリ使用契機とサイズ一覧

項番

使用契機

サイズ(単位:バイト)

1

複数エントリ指定時

(エントリ数−1)×296

2

レコード検索で構成要素指定エリア(番号)指定時

8+(8×構成要素数)

3

レコード検索でDBKEY指定時

11

4

レコード検索で条件式指定かつ構成要素名称が"%ENTRY"

34

5

レコード検索でユーザキー指定時

ユーザキー長+3

6

システム構成表示

8+(260×キー数)

7

店群順アクセスまたはDAM順アクセスでRDエリア名称を指定した時

4+(32×RDエリア名称数)

8

複数レコードの検索でシーケンシャル指定,かつ,条件式に終了条件を指定している

対象DBのルートレコード長+キー長+128

注※

複数エントリ指定時はエントリごとにサイズが必要です。