Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Financial Service Platform プログラム作成の手引


1.2.7 メモリ管理(ee_mem_〜)(C言語)

〈この項の構成〉

(1) ee_mem_userdump

名称

メモリ領域のダンプ出力

形式

ANSI C,C++の形式

#include <eemem.h>
int ee_mem_userdump(void *addr_pt, EEULONG64 size, EELONG kind, EELONG flags);
機能

指定されたユーザメモリ領域をファイルに出力する設定を行います。

指定されたユーザメモリ領域は,ユーザメモリダンプファイルに即時出力,またはスレッドダウン時にメモリDUMPファイルに出力します。

UAPで値を設定する引数

addr_pt

出力するメモリアドレスを設定します。

次の領域の範囲にあるアドレスを指定してください。領域の先頭アドレスである必要はありません。

  • ユーザSAT領域

  • ユーザIFA領域

  • ee_mem_getwkseg()で確保したワークセグメント領域

kindにEEMEM_DUMPKIND_CLEARを指定した場合は,指定不要です。

size

出力するメモリ領域サイズを1バイト単位で指定します。1から17,179,869,184までの範囲で指定してください。

出力する領域がaddr_ptで指定した領域の末尾領域を超えないように指定してください。

kindにEEMEM_DUMPKIND_CLEARを指定した場合は,指定不要です。

kind

次の値を指定します。

  • EEMEM_DUMPKIND_IMMEDIATE:即時ファイル出力

    指定されたメモリ領域をユーザメモリダンプファイルに出力します。

  • EEMEM_DUMPKIND_MEMDUMP:メモリDUMP出力対象領域の設定

    スレッドダウン時,メモリDUMPファイルに出力する領域を設定します。

    1スレッドにつき30か所まで設定できます。

  • EEMEM_DUMPKIND_CLEAR:メモリDUMP出力対象領域のクリア

    EEMEM_DUMPKIND_MEMDUMPで設定した出力領域をすべてクリアします。

flags

EENOFLAGSを設定します。

リターン値

リターン値

意味

EE_OK

正常に終了しました。

EECOMER_ENVIRON

TP1/EEの環境下にありません。

EECOMER_CNDUOC

UOCから発行しているため,本機能は使用できません。

EEMEMER_ARGUMENT

引数に設定した値が間違っています。

EEMEMER_CONDITION

発行条件が不正です。

TP1/FSPの環境下にありません。

EEMEMER_INVALID

無効なメモリ領域を設定しています。

EEMEMER_FILEOUT

ファイル出力に失敗しました。

EEMEMER_NUM_OVER

メモリ領域の設定可能最大数を超過しました。

注意事項
  1. 出力時に指定されたメモリ領域が使用可能な領域であるかどうかのチェックは行いません。ファイル出力時に指定されたメモリ領域が返却済みのワークセグメントであっても,指定されたメモリ領域をファイルに出力します。

  2. 設定したメモリDUMP出力対象領域の設定は,システム再開始後引き継がれません。

  3. kindにEEMEM_DUMPKIND_IMMEDIATEを指定した場合は,環境変数にEEUSERDUMPDIRを指定してください。当該環境変数を指定しない場合,本APIは即時出力処理を行わないでEE_OKでリターンします。

  4. オフラインバッチプロセスでは,kindにEEMEM_DUMPKIND_IMMEDIATEを指定してください。それ以外の値をkindに指定した場合,メモリDUMP出力対象領域の設定/クリア処理は行われますが,オフラインバッチプロセスはスレッドダウンしないため出力の契機はありません。