リファレンス・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

Oracle TSAMリファレンス・ガイド

Oracle TSAMリファレンス・ガイドは、Oracle TSAMソフトウェアに付属のシステム処理およびコマンドについて説明します。

表1に、Oracle TSAMのシステム処理とコマンドのリストを示します。

表 1 Oracle TSAMのシステム処理およびコマンド
名前
説明
Oracle TSAMエージェント・ローカル・モニター・サーバー
呼出しパス・メッセージ・モニタリング属性を受信するルーチン

 


LMS (ローカル・モニター・サーバー)

名前

LMS - Oracle TSAMエージェント・ローカル・モニター・サーバー

シノプシス

LMS SRVGRP="identifier" SRVID="number" [other_parms]

CLOPT= "-A -- -l tsam-manager-dataserver-url [-t heartbeat-interval]

[-m metrics-shm-size]

説明

LMSは、Oracle TSAMエージェントのTuxedoサーバーです。次の機能を提供します:

LMSは、適切なオプションを使用してUBBCONFIGファイルに設定する必要があります。1つのTuxedoマシンに1つのLMSを構成する必要があります。1つのマシン上の複数LMSはサポートされません。LMSは、Tuxedoドメインが起動したときにすべてのサーバー情報を取得できるように、UBBCONFIGの末尾に構成することをお薦めします。そうしても、LMSは、定期的に構成をTSAMマネージャに同期できます。

オプション

-l

必須パラメータです。このパラメータの後にOracle TSAMマネージャ・データ・サーバーが続きます。Oracle TSAMマネージャのインストールに基づき、ホスト・アドレスおよびポート番号が設定されます。書式は次のとおりです。
host:port/tsam

-m

オプションのパラメータ。未処理データのメトリックを格納するために使用される共有メモリーのサイズを指定します。オプションの末尾の文字kまたはmは、KBまたはMBを意味します。どちらでもない場合、単位はバイトです。有効な値は4Kサイズまで切り上げられます。大部分のプラットフォームで、ページ・サイズがそのサイズだからです。
このオプションが存在しない場合、デフォルト値は10MBです。新しいデータを格納する空き領域がない場合、共有メモリーのサイズは実行時に増大しません。この事例では、最も古いデータが、新しいデータで上書きされます。

-t

オプションのパラメータ。LMSが構成同期を使用してOracle TSAMマネージャに接続する間隔を秒で指定します。デフォルト値は100秒です。

リスト1-1に、UBBCONFIG内のLMSを表示します。

リスト1-1 UBBCONFIG内のLMS
...
*SERVERS
LMS SRVGRP=LMSGRP SRVID=1
CLOPT=”-A -- -l tsamweb.abc.com:8080/tsam/-m 20M -t 180”
...

 


tpgetcallinfo

名前

tpgetcallinfo() - 呼出しパス・メッセージ・モニタリング属性を受信するルーチン。

シノプシス

int tpgetcallinfo(const char *msg, FBFR32 **obuf, long flags)

説明

tpgetcallinfo()は、呼出しパス・モニタリングにのみ使用されます。次のパラメータをサポートしています。

msg

測定に使用される型付きバッファ。

obuf

フィールドを使うために使用されるFML32バッファ。

flags

将来使用するために予約されたフィールド。

モニターされた呼出しでは、tpgetcallinfo()に次のフィールドが使用されます。

tpgetcallinfo()

呼出しパス・モニタリングを有効にした場合、メッセージ・モニタリング属性を取得します。

tpgetcallinfo()

幅広い機能を実行するために様々なシナリオで使用できます。一般的な使用方法は、次のとおりです。

表 2は、FMLモニター・メトリック・フィールド名のリストです。

表2 モニター・イニシエータ・フィールド名
フィールド名
説明
サービス
モニター
イニシエータ
TA_MONCORRID
文字列
監視される呼出しの相関ID。重要な呼出しパス・モニタリング・メトリックです。
Y
Y
TA_MONLASTTIMESEC
long
呼出しパス・ツリーにおける最後の停止のタイムスタンプ。単位は秒です。
Y
Y
TA_MONLASTTIMEUSEC
long
呼出しパス・ツリーにおける最後の停止のタイムスタンプ。単位はマイクロ秒です。
Y
Y
TA_MONSTARTTTIMESEC
long
モニタリング・イニシエータが呼出しを開始したときのタイムスタンプ。単位は秒です。
Y
Y
TA_MONSTARTTIMEUSEC
long
モニタリング・イニシエータが呼出しを開始したときのタイムスタンプ。単位はマイクロ秒です。
Y
Y
TA_MONCLTADDR
文字列
ワークステーション・クライアントのアドレス
Y
N
TA_MONTOTALTIME
long
監視対象の呼出しに対して使用されるエンド・ツー・エンド時間。単位は、ミリ秒です。
N
Y

戻り値

モニタリング属性を含むFML32バッファの取得に成功すると、0が返されます。

エラーが発生すると、tpgetcallinfo()は -1を返し、tperrnoを設定してエラー条件を示します。

エラー

エラーが発生すると、tpgetcallinfo()はtperrnoを次のいずれかの値に設定します。

[TPEINVAL]

無効な引数が指定されました(たとえば、msgがNULLである場合、あるいはobufが無効なFML32バッファである場合など)。

[TPESYSTEM]

メッセージ入力にモニタリング属性が含まれていません。これは、メッセージに対して呼出しパス・モニタリングをオンにしていないためです。

[TPEOS]

オペレーティング・システムのエラーが発生しました。

リスト1-1は、サービス側tpgetcallinfoの例です。

リスト1-1 サービス側のtpgetcallinfoの例
#include <stdio.h>
#include <atmi.h>
#include <userlog.h>
#include <fml32.h>
#include <tpadm.h>
#if defined(__STDC__) || defined(__cplusplus)
tpsvrinit(int argc, char *argv[])
#else
tpsvrinit(argc, argv)
int argc;
char **argv;
#endif
{

       /* tpsvrinit logic */
#ifdef __cplusplus
extern "C"
#endif
void
#if defined(__STDC__) || defined(__cplusplus)
APPSVC(TPSVCINFO *rqst)
#else
TOUPPER(rqst)
TPSVCINFO *rqst;
#endif
{
       FBFR32 *metainfo;
       int len = 0;
       /* Allocate the metainfo space */
       metainfo = tpalloc("FML32", NULL, 1024);
       if (metainfo == NULL ) {
              userlog("Memory allocation failed");
              tpreturn(TPFAIE, 0, 0, 0);
       }
       /* Get the monitoring attributes*/
       if ( tpgetcallinfo(rqst->data, &metainfo, 0) == 0 )
       {
              char *corrid;
              long laststopsec, starttimesec;
              if ((corrid = Ffind32(metainfo, TA_MONCORRID, 0, &len) ) {
                     userlog("Correlation ID = %s", corrid);
              }
              len = sizeof(starttimesec);
              if (( Fget32(metainfo, TA_MONSTARTTIMESEC, &starttimesec, &len) == 0) {
                     userlog("Message beginning time = %ld", starttimesec);
              }
}
              len = sizeof(lasttimesec);
       if (( Fget32(metainfo, TA_MONLASTTIMESEC, &lasttimesec, &len) == 0) {
              userlog("Message entering my queue time = %ld", lasttimesec);
       }
       }
       tpfree(metainfo);
       /* rest of service processment */
       ......
}

  先頭に戻る       前  次