Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス C言語編


dc_logprint

〈このページの構成〉

名称

メッセージログの出力

形式

ANSI C,C++の形式

#include <dclog.h>
int  dc_logprint(char *msgid,char *pgm_id,
                 char *string,char *info,
                 DCLONG color,DCLONG flags)

K&R版 C の形式

#include <dclog.h>
int  dc_logprint(msgid,pgm_id,string,info,color,flags)
char      *msgid;
char      *pgm_id;
char      *string;
char      *info;
DCLONG    color;
DCLONG    flags;

機能

引数に設定した文字列に,OpenTP1で行ヘッダ,OpenTP1識別子,日時,要求元ノード名,要求元プログラムID,メッセージIDを付けて,メッセージログファイルに出力します。

OpenTP1では,dc_logprint関数で使うメッセージID用に,05000から06999までの範囲の番号を割り当てています。UAPから出力するメッセージIDの番号には,05000から06999までの範囲の値を付けてください。

障害が起こってUAPからメッセージログが出力できない場合でも,dc_logprint関数がDC_OKで正常に終了することがあります。そのためメッセージログが抜ける場合がありますが,メッセージログの抜けはメッセージログに付けるメッセージログ通番で確認できます。

一つのプロセスから複数回dc_logprint関数を呼び出した場合は,メッセージログファイルへの出力順序は保証されます。ただし,複数のプロセスから別々にdc_logprint関数を呼び出した場合は,呼び出した順にメッセージログファイルに出力されない場合があります。

通信障害(DCLOGER_COMM),およびログサービス未起動(DCLOGER_NOT_UP)のエラーが起こった場合は,UAPから出力したメッセージを,そのUAPプロセス上で編集して,標準エラー出力に出力します。このとき,メッセージの終わりには,次に示すエラー要因を示すコードを付けます。

E1,E2以外のエラーを検出した場合,OpenTP1はエラーの原因を示すメッセージログにdc_logprint関数に指定したメッセージIDの番号を付けて,標準エラー出力に出力します。

UAPで値を設定する引数

●msgid

メッセージログごとに付けられる識別子(メッセージID)を設定します。「KFCAn1n2n3n4n5-x」の形式(11文字)で,最後にヌル文字を付けて設定します。UAPから出力する通番(n1n2n3n4n5の部分)には,05000から06999までの間の数値を設定します。

●pgm_id

dc_logprint関数を呼び出したUAPを識別する値(要求元プログラムID)を,ユーザ任意で設定します。英数字2文字で,最後はヌル文字で終わらせて設定します。

●string

メッセージログファイルにメッセージログとして出力したい任意の文字列を設定します。文字列の上限は各OSで次のとおりです。なお,文字列の最後はヌル文字で終わらせてください。

  • Linux:444バイト

  • Linux以外のOS:222バイト

●info

NULLを設定します。

●color

dc_logprint関数で設定したメッセージログをNETMの操作支援端末に出力する場合の,表示色を設定します。次のどれかを設定します。

1…緑

2…赤

3…白

4…青

5…紫

6…空色

7…黄色

上記以外の数値やヌル文字を設定した場合は,緑が仮定されます。

●flags

DCNOFLAGSを設定します。

リターン値

リターン値

リターン値(数値)

意味

DC_OK

0

正常に終了しました。

DCLOGER_PARAM_ARGS

-1900

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

DCLOGER_COMM

-1901

通信障害が発生したか,またはdc_rpc_open関数が発行されていません。

DCLOGER_MEMORY

-1902

メモリが不足しました。

DCLOGER_DEFFILE

-1904

システムの環境設定が間違っています。

DCLOGER_NOT_UP

-1905

ログサービスが起動していません。

DCLOGER_HEADER

-1906

ログサービスがメッセージログに付ける情報を取得したときに,障害が起こりました。

注意事項

ログ出力量が多い場合は,dc_logprint関数のリターンが遅くなります。例えば,障害発生時にメッセージ出力量が激しく多くなると,トランザクション処理時間が延びてしまいます。これはスローダウンの要因になりますので,注意してください。