|
|
CORBA ノーティフィケーション・サービスの管理
ここでは、次の内容について説明します。
はじめに
BEA Tuxedo CORBA ノーティフィケーション・サービスは、BEA Tuxedo の EventBroker システムおよびキューイング・システムに重ね合わせて使用します。つまり、CORBA ノーティフィケーション・サービスを管理する場合は、それらのほかの BEA Tuxedo システムも管理する必要があります。ノーティフィケーション・サービスの管理には、BEA Tuxedo ユーティリティの tmadmin
、qmadmin
、および ntsadmin
を使用します。
ノーティフィケーション・サービスの管理は、コンフィギュレーションと管理という 2 つの関連するタスクで成り立ちます。それらの領域は別々に説明しますが、実際には相互に関連しています。したがって、コンフィギュレーションを完全に理解するためには、管理についても理解する必要があります (その逆も同じ)。
ノーティフィケーション・サービスのコンフィギュレーション
イベント・ノーティフィケーション・サービス・アプリケーションを実行するには、まず次のコンフィギュレーション要件を満たさなければなりません。
UBBCONFIG
) および TUXCONFIG
ファイルを作成します。
データ・フィルタのコンフィギュレーション
データのフィルタ処理または BEA Tuxedo ATMI 相互運用性をサブスクライバ・アプリケーションで利用する場合は、次の手順を行ってサブスクリプションでデータのフィルタ処理を利用する必要があります。
UBBCONFIG
ファイルで
FML フィールド・テーブル定義ファイルの配置場所を指定します (リスト
7-3 を参照)。
リスト 7-1 の中で、太字のコードはイベント・ポスト元アプリケーションでデータのフィルタ処理がどのようにインプリメントされるのかを示します。名前/値ペア billing
および patient_account
の含まれるサブスクリプションだけがイベントを受信します。
リスト 7-1 BEA シンプル・イベント API を使用したデータ・フィルタ処理のサンプル (C++)
CosNotification::StructuredEvent notif;
notif.header.fixed_header.event_type.domain_name =
CORBA::string_dup("HEALTHCARE");
notif.header.fixed_header.event_type.type_name =
CORBA::string_dup("HMO");
// このイベントの名前と値に基づいて追加フィルタを
// 指定する
notif.filterable_data.length(2);
notif.filterable_data[0].name = CORBA::string_dup("billing");
notif.filterable_data[0].value <<= CORBA::Long(1999);
notif.filterable_data[1].name =
CORBA::string_dup("patient_account");
notif.filterable_data[1].value <<= CORBA::Long(2345);
// 構造化イベントをチャネルにプッシュ
testChannel->push_structured_event(notif);
リスト 7-2 は、データのフィルタ処理を利用するために必要な FML フィールド・テーブル定義ファイルを示しています。
リスト 7-2 データ・フィルタ処理の FML フィールド・テーブル・ファイル
*base 2000
#Field Name Field # Field Type Flags Comments
#----------- ------- ---------- ------ --------
billing 1 long - -
patient_account 2 long - -
リスト 7-3 は、環境変数ファイル (envfile
) の内容を示しています.envfile
には、FML フィールド定義ファイルの位置を格納します。
注記 環境変数ファイルにはどのような名前でも使用できますが、その名前は ENVFILE コンフィギュレーション・オプション n
(UBBCONFIG
ファイルの SERVERS
セクション) で指定された名前と同じでなければなりません。
リスト 7-3 データ・フィルタ処理のための envfile の指定 (Microsoft Windows)
FLDTBLDIR32=D:\tuxdir\EVENTS_Samples\ADVANCED_Simple_cxx\common
FIELDTBLS32=news_flds
リスト 7-4 は、Advanced サンプルの UBBCONFIG
ファイルで FML フィールド・テーブル・ファイルの位置がどのように指定されるのかを示しています (太字部分)。
リスト 7-4 UBBCONFIG ファイルでの FML フィールド定義ファイルの指定
*SERVERS
TMSYSEVT
SRVGRP = NTS_GRP
SRVID = 1
TMUSREVT
SRVGRP = NTS_GRP>>$@
SRVID = 2
ENVFILE = "D:\tuxdir\EVENTS_Samples\ADVANCED_Simple_CXX\envfile"
TMNTS
SRVGRP = NTS_GRP
SRVID = 3ENVFILE = "D:\tuxdir\EVENTS_Samples\ADVANCED_Simple_CXX\envfile"
CLOPT = "-A -- -s TMNTSQS"
TMNTSFWD_T
SRVGRP = NTS_GRP
SRVID = 4
ENVFILE = "D:\tuxdir\EVENTS_Samples\ADVANCED_Simple_CXX\envfile"
TMNTSFWD_P
SRVGRP = NTS_GRP
SRVID = 5
ENVFILE = "D:\tuxdir\EVENTS_Samples\ADVANCED_Simple_CXX\envfile"
ホストとポートの設定
コールバック・オブジェクトに関するオブジェクト・リファレンスのホストとポート番号の要件は次のとおりです。
ポート番号は、動的な範囲ではなくユーザの範囲で指定します。ユーザの範囲でポート番号を割り当てれば、共同クライアント/サーバ・アプリケーションが使用するポートの衝突を防ぐことができます。
ホストとポートを設定する方法は、プログラミング言語によって異なります。
C++ サブスクライバ・アプリケーションの場合、共同クライアント/サーバ・アプリケーションで使用する特定のポートを指定するには、共同クライアント/サーバ・アプリケーションのプロセスを開始するコマンド行で次のように指定します。
-ORBport nnnn -IRBid BEA_IIOP
nnnn
は、共同クライアント/サーバ・アプリケーションのコールバック・オブジェクトの呼び出しを作成するとき、および呼び出しをリッスンするときに ORB で使用されるポートの番号です。
このコマンドは、共同クライアント/サーバ・アプリケーションのコールバック・オブジェクトのオブジェクト・リファレンスが永続的である必要があるとき、および共同クライアント/サーバ・アプリケーションを停止して再起動する必要があるときに使用します。このコマンドを使用しない場合、ORB ではランダムなポートが使用されます。共同クライアント/サーバ・アプリケーションが停止して再起動されるときにランダムなポートが使用される場合、共同クライアント/サーバ・アプリケーションの永続的なコールバック・オブジェクトの呼び出しは失敗します。
ポート番号は、CORBA::orb_init
メンバ関数の argv
引数に対する入力の一部です。argv
引数が渡されると、ORB はその情報を読み取って、そのプロセスで作成されたオブジェクト・リファレンスのポートを確立します。
Java サブスクライバ・アプリケーションの場合は、ホストとポートを設定するプロパティを渡すことができます。リスト 7-5 は、その方法を示しています。
リスト 7-5 Java サブスクライバ・アプリケーションでのホストとポートの設定
Properties prop = new Properties();
prop.put( "org.omg.CORBA.ORBClass", "com.beasys.CORBA.iiop.ORB" );
prop.put("org.omg.CORBA.ORBSingletonClass",
"Com.beasys.CORBA.idl.ORBSingleton");
prop.put( "org.omg.CORBA.ORBPort",nnnn
);
ORB orb = ORB.init(args, prop);
注記 java
コマンド行でポートを設定することもできます。ポート番号を設定する java
コマンド行の例を次に示します。
\
java -DTOBJADDR=//BEANIE:2359 -Dorg.omg.corba.ORBPort=
portnumber
-classpath...
トランザクション・ログの作成
永続的なサブスクリプションを使用する場合は、BEA Tuxedo キューイング・システムをコンフィギュレーションおよび起動する必要があります。キューイング・システムでは、トランザクション・ログが必要です。リスト 7-6 は、tmadmin
ユーティリティを使用してトランザクション・ログを作成する方法を示しています。
リスト 7-6 トランザクション・ログの作成 (createtlog) (Microsoft Windows)
>tmadmin
>crdl -b 100 -z D:\tuxdir\EVENTS_Samples\ADVANCED_Simple_CXX\TLOG
>crlog -m SITE1
>quit
>
イベント・キューの作成
永続的なイベントを使用する場合は、BEA Tuxedo キューイング・システムをコンフィギュレーションおよび起動する必要があります。次の 2 つのイベント・キューを作成しなければなりません。
TMNTSFWD_P
これは、永続的なサブスクリプション用のイベント転送キューです。イベントはまずこのキューに入り、その後に一致する永続的なサブスクリプションに転送されます。イベントを最初の試行で配信できない場合、そのイベントはこのキューに保持されて、配信が繰り返し試行されます。イベントを正常に配信できないうちに設定可能な再試行回数の上限に達した場合、そのイベントはエラー・キューに移動されます。
このキューでは、次のコンフィギュレーション・パラメータを設定する必要があります。
TMNTSFWD_E
これはエラー・キューです。このキューは、サブスクリプションに配信できないイベントを TMNTSFWD_P
キューから受信します。このキューでは、TMNTSFWD_P
転送キューと同じコンフィギュレーション・パラメータを設定する必要があります。ただし、このキューはエラー・キューであり、エラーは管理上の介入によってのみ削除されるので再試行回数の上限と再試行の時間間隔のパラメータは意味を成しません。
これらのキューをコンフィギュレーションするには、次の手順を行います。
この手順については、以降の節で説明します。
一時的および永続的なサブスクリプションのスペース・パラメータの値の割り出し
システムを調整して最大限の性能を引き出すためには、次のパラメータの最適な値を割り出す必要があります。
TMNTSFWD_T
) と永続的な転送サーバ (TMNTSFWD_P
) の数一時的なサブスクリプションの IPC キュースペース
一時的なサブスクリプションのスペース・パラメータの値は次のように割り出します。
たとえば、10 のイベントが 50 のサブスクライバにパイプラインで配信されると仮定し、2 つの一時的な転送サーバを起動して、それらのサーバで IPC キューが共有されないとすると (つまり MSSQ は不使用)、IPC キュースペースの必要量は次のようになります。
10 イベント * 50 サブスクライバ * 1000 バイト / 2 転送サーバ = 250,000 バイト
永続的なサブスクリプションの /Q キュー・サイズ・パラメータ
永続的なサブスクリプションのスペース・パラメータの値は次のように割り出します。
qmadmin
を使用して永続的なイベントの qspace を作成する場合は、まず最初
にデバイスを作成します。サイズは、ステップ 3e で算出された値を使用し
ます (約 1500 ページ)。次に、qspace のサイズを指定します。サイズは、ス
テップ 3d で算出された値を使用します (約 1450 ページ)。次に、保留
キューおよびエラー・キューに存在できるイベントの数を指定します。以降
の節では、qspace を作成およびコンフィギュレーションする方法を説明しま
す。
ディスク上のキュースペースのデバイスの作成
qmadmin コマンド・ユーティリティを使用すると、ディスク上にキュースペースのデバイスを作成できます。
キュースペースを作成するには、まず汎用デバイス・リスト (UDL) でそのエントリを作成する必要があります。リスト 7-7 は、コマンドの例を示しています。
リスト 7-7 ディスク上のキュースペースのデバイスの作成 (UNIX)
prompt>
qmadmin d:
\smith
\reg
\QUE
qmadmin - Copyright (c) 1996-1999 BEA Systems, Inc.
Portions * Copyright 1986-1997 RSA Data Security, Inc.
All Rights Reserved.
Distributed under license by BEA Systems, Inc.
BEA Tuxedo is a registered trademark.QMCONFIG=d:
\smith
\reg
\QUE
>
crdl d:
\smith
\reg
\QUE 0 1100
Created device d:\smith\reg\QUE, offset 0, size 1100
on d:\smith\reg\QUE
ディスク上でデバイスを作成する方法の詳細については、『BEA Tuxedo/Q コンポーネント』を参照してください。
キュースペースのコンフィギュレーション
キュースペースをコンフィギュレーションするには、qmdamin
qspacecreate
コマンドを使用します。キュースペースでは、IPC 資源が使用されます。そのため、キュースペースを定義する場合は、共用メモリ・セグメントとセマフォを割り当てることになります。qspacecreate
コマンドを使用する最も簡単な方法は、プロンプトを表示することです。リスト 7-8 は、Advanced サンプル・アプリケーション用にコンフィギュレーションされたキュースペースの例を示しています。
リスト 7-8 キュースペースの作成
>
qspacecreate
Queue space name:TMNTSQS
IPC Key for queue space:52359
Size of queue space in disk pages:1050
Number of queues in queue space:2
Number of concurrent transactions in queue space:10
Number of concurrent processes in queue space:10
Number of messages in queue space:500
Error queue name:TMNTSFWD_E
Initialize extents (y, n [default=n]):y
Blocking factor [default=16]:
リスト 7-8 で作成されるキュースペースでは、次のサイズ設定に注意してください。
Number of messages in queue space:500
このパラメータを 500 に設定すると、保留キューとエラー・キューで合計 500 のイベントを格納するスペースが確保されます。
Size of queue space in disk pages:1050
Microsoft Windows では、各ディスク・スペースのサイズが 500 バイトで、各イベントは 1000 バイトが必要です。その上、イベントごとに 2 つのディスク・ページを供給する必要があります。保留キューとエラー・キューに 500 のイベントが格納されると見積もっているので、1000 のディスク・ページを供給しなければなりません。また、qspace のオーバーヘッドのために 50 のディスク・ページが必要なので、qspace のサイズは 1050 ディスク・ページに設定します。最後に、デバイスのオーバーヘッドでも 50 のディスク・ページが必要なので、デバイスのサイズは 1100 ディスク・ページになります。この値は、crdl
コマンドを使用して設定します (リスト 7-7 を参照)。
キュースペース作成の詳細については、『BEA Tuxedo/Q コンポーネント』を参照してください。
キューの作成
使用する各キューを作成するには、qmadmin qcreate
コマンドを使用します。キューを作成するには、まず qmadmin
qopen
コマンドでキュースペースを開く必要があります。キュースペース名が指定されていない場合は、qopen
で名前を入力するように求められます。
リスト 7-9 は、Advanced サンプル・アプリケーション用に作成される TMNTSFWD_P
キューと TMNTSFWD_E
キューの作成例を示しています。
リスト 7-9 キューの作成
>
qopen
Queue space name:TMNTSQS
>
qcreate
Queue name:TMNTSFWD_P
Queue order (priority, time, fifo, lifo):fifo
Out-of-ordering enqueuing (top, msgid, [default=none]):none
Retries [default=0]:5
Retry delay in seconds [default=0]:3
High limit for queue capacity warning (b for bytes used, B for
blocks used, % for percent used, m for messages [default=100%]):
80%
Reset (low) limit for queue capacity warning [default=0%]:0%
Queue capacity command:
No default queue capacity command
Queue 'TMNTSFWD_P' created
>
qcreate
Queue name:TMNTSFWD_E
Queue order (priority, time, fifo, lifo):fifo
Out-of-ordering enqueuing (top, msgid, [default=none]):none
Retries [default=0]:2
Retry delay in seconds [default=0]:30
High limit for queue capacity warning (b for bytes used, B for
blocks used, % for percent used, m for messages [default=100%]):
80%
Reset (low) limit for queue capacity warning [default=0%]:0%
Queue capacity command:
No default queue capacity command
Q_CAT:1438: INFO: Create queue - error queue TMNTSFWD_E created
Queue 'TMNTSFWD_E' created
> q
キュー作成の詳細については、『BEA Tuxedo/Q コンポーネント』を参照してください。
Microsoft Windows での IPC パラメータの設定
Microsoft Windows システム向けの BEA Tuxedo ソフトウェア製品には、プロセス間通信のサブシステムである BEA Tuxedo IPC Helper (TUXIPC) が同梱されています。IPC Helper はほとんどのマシンではインストール時の設定で実行されますが、コントロール・パネル・アプレットにある [IPC Resources] ページを使用して、TUXIPC サブシステムを調整し、性能を最大化することもできます。
[IPC] コントロール・パネルの [IPC Resources] ページを表示するには、次の手順を行います。
図7-1 Microsoft Windows のコントロール・パネル
図7-2 Microsoft Windows 向け BEA Tuxedo ソフトウェアの [IPC Resources] コントロール・パネル
BEA Tuxedo マシンの IPC 設定を定義するには、次の手順を行います。
tuxipc.exe
サービスを
一度終了してから再起動します。
実行中の BEA Tuxedo サーバ・アプリケーションのパフォーマンスは、パフォーマンス・モニタで確認できます。
パフォーマンス・モニタを起動するには、[スタート] メニューの [プログラム] をポイントし、[管理ツール] の [パフォーマンス モニタ] を選択します。パフォーマンス・モニタの画面が表示されます (図 7-3)。
図7-3 Microsoft Windows 向け BEA Tuxedo ソフトウェアのパフォーマンス・モニタ
UBBCONFIG ファイルと TUXCONFIG ファイルの作成
イベントのポスト元アプリケーションとサブスクライバ・アプリケーションが BEA Tuxedo ドメインの CORBA オブジェクト (この場合はノーティフィケーション・サービス) と通信するためには、ノーティフィケーション・サービスで UBBCONFIG
ファイルが必要です。UBBCONFIG
ファイルは、ノーティフィケーション・サービス・アプリケーションの開発の過程で記述する必要があります。そうしないと、アプリケーションをビルドして実行することができません。
UBBCONFIG
ファイルを記述した後は、tmloadcf
コマンドを使用して TUXCONFIG
ファイル (実行時に使用) を生成します。したがって、TUXCONFIG
ファイルはノーティフィケーション・サービス・アプリケーションの起動前に存在していなければなりません。TUXCONFIG
ファイルは、バイナリ形式の UBBCONFIG
ファイルです。tmloadcf コマンドの使用例を次に示します。
tmloadcf -y ubb
UBBCONFIG
ファイルを記述する前に、ノーティフィケーション・サービス・アプリケーションのコンフィギュレーション要件をリストしておく必要があります。要件をリストするためには、サブスクリプションをサポートするために必要なサーバとプロセスを特定します。表 7-1 は、異なるタイプのサブスクリプションのコンフィギュレーション要件を示しています。
サポート対象のサブスクリプション |
|
---|---|
一時的なサブスクリプション |
|
永続的なサブスクリプション |
|
IIOP が使用されるイベント・サブスクライバ・アプリケーションを使用する場合は、IIOP ハンドラ (ISH) に接続されていないコールバック・オブジェクトを呼び出せるようにアウトバウンド IIOP を有効にするパラメータで、UBBCONFIG
ファイルの IIOP リスナ (ISL) コマンドをコンフィギュレーションする必要があります。ISL コマンドの -O
オプション (大文字の O) はアウトバウンド IIOP を有効にします。追加パラメータを使用すると、システム管理者はノーティフィケーション・サービス・アプリケーションの最適なコンフィギュレーションを取得できます。ISL コマンドの詳細については、『BEA Tuxedo アプリケーションの設定』を参照してください。
ノーティフィケーション・サービス・アプリケーションを開発するときには、UBBCONFIG
ファイルの SERVERS
セクションで次のタイプのサーバを設定できます。
TMUSREVT
tppost(3)
からのイベント・レポート用メッセージ・バッファを処理し、EventBroker としてそれらのバッファをフィルタ処理して配信する BEA Tuxedo システム付属のサーバ (必須)。
TMNTS
サブスクリプションおよびイベントのポストの要求を処理する BEA Tuxedo ノーティフィケーション・サービス・サーバ (必須)。
TMNTSFWD_T
一時的なサブスクリプションのサブスクライバに一時的なイベントを転送する BEA Tuxedo ノーティフィケーション・サービス・サーバ (一時的なサブスクリプションで必須)。
TMNTSFWD_P
永続的なサブスクリプションのあるサブスクライバに永続的なイベントを転送する BEA Tuxedo ノーティフィケーション・サービス・サーバ。サブスクライバに配信できないイベントはエラー・キューに送信されます (永続的なサブスクリプションで必須)。
TMQUEUE
イベント・キューを管理する BEA Tuxedo サーバ (永続的なサブスクリプションで必須)。
TMQFORWARD
永続的なサブスクライバに転送できるように、イベントをノーティフィケーション・サービス TMNTSFWD_P
サーバに転送する BEA Tuxedo サーバ (永続的なサブスクリプションで必須)。
ISL
BEA Tuxedo IIOP サーバ・リスナ/ハンドラ・プロセス (イベントのポスト元またはサブスクライバがローカル・ドメインの外側にある場合に必須)。
リスト 7-10 は、ノーティフィケーション・サービスの Introductory サンプル・アプリケーションの UBBCONFIG
ファイルです。Introductory サンプル・アプリケーションでは一時的なサブスクリプションのみがサポートされており、永続的なサブスクリプションまたはデータのフィルタ処理はサポートされていません。
リスト 7-10 Introductory サンプルの UBBCONFIG ファイル
# この UBBCONFIG ファイルは一時的なサブスクリプションのみをサポートし、
# 永続的なサブスクリプションまたはデータのフィルタ処理はサポートしない
*RESOURCES
IPCKEY 52359
DOMAINID events_intro_simple_cxx
MASTER SITE1
MODEL SHM
#---------------------------------------------------------------
*MACHINES
"BEANIE"
LMID = SITE1
APPDIR = "D:\tuxdir\EVENTS1\INTROD2"
TUXCONFIG = "D:\tuxdir\EVENTS1\INTROD2\tuxconfig"
TUXDIR = "d:\tuxdir"
MAXWSCLIENTS = 10
ULOGPFX = "D:\tuxdir\EVENTS1\INTROD2\ULOG"
#----------------------------------------------------------------
# 一時的なイベントを使用するので、グループがトランザクション
# に関与する必要はない
*GROUPS
SYS_GRP
LMID = SITE1
GRPNO = 1
#---------------------------------------------------------------
*SERVERS
DEFAULT:
CLOPT = "-A"
TMSYSEVT
SRVGRP = SYS_GRP
SRVID = 1
TMUSREVT
SRVGRP = SYS_GRP
SRVID = 2
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 3
CLOPT = "-A -- -N -M"
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 4
CLOPT = "-A -- -N"
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 5
CLOPT = "-A -- -F"
# ノーティフィケーション・サービス・サーバを起動
#
TMNTS
SRVGRP = SYS_GRP
SRVID = 6
# ノーティフィケーション・サービスの一時的なイベント転送サーバを起動
#
TMNTSFWD_T
SRVGRP = SYS_GRP
SRVID = 7
# クライアントのコールバックを使用するので -O を使用して ISL を起動
ISL
SRVGRP = SYS_GRP
SRVID = 8
CLOPT = "-A -- -O -n //BEANIE:2359"
#---------------------------------------------------------------
*SERVICES
リスト 7-11 のコード例は、ノーティフィケーション・サービスの Advanced サンプル・アプリケーションからの引用です。Advanced サンプル・アプリケーションでは、一時的なサブスクリプションと永続的なサブスクリプションおよびデータのフィルタ処理がサポートされています。
リスト 7-11 Advanced サンプルの UBBCONFIG ファイル
# この UBBCONFIG ファイルは一時的なサブスクリプションと永続的な
*RESOURCES
# サブスクリプションおよびデータのフィルタ処理をサポートする
IPCKEY 52363
DOMAINID events_advanced_simple_cxx
MASTER SITE1
MODEL SHM
#---------------------------------------------------------------
*MACHINES
"BEANIE"
LMID = SITE1
APPDIR = "D:\tuxdir\EVENTS1\ADVANC1"
TUXCONFIG = "D:\tuxdir\EVENTS1\ADVANC1\tuxconfig"
TUXDIR = "d:\tuxdir"
MAXWSCLIENTS = 10
ULOGPFX = "D:\tuxdir\EVENTS1\ADVANC1\ULOG"
#
# 永続的なイベントを使用するので、トランザクション・ログが必要
#
TLOGDEVICE = "D:\tuxdir\EVENTS1\ADVANC1\TLOG"
TLOGSIZE = 10
#---------------------------------------------------------------
*GROUPS
SYS_GRP
LMID = SITE1
GRPNO = 1
# ノーティフィケーション・サービス・サーバのヌル・トランザクション
# ・グループを作成する
#
NTS_GRP
LMID = SITE1
GRPNO = 2
TMSNAME = TMS
TMSCOUNT = 2
# 永続的なイベントを使用するので、永続的なキューが必要
# キュー・サーバのキュー・トランザクション・グループを作成
#
QUE_GRP
LMID = SITE1
GRPNO = 3
TMSNAME = TMS_QM
TMSCOUNT = 2
#
# 作成した QUE スペースをキュー・グループに管理させる
# TMNTSQS として指定するキュースペースの名前は、作成したキュースペース
# の名前と同じでなければならない
#
OPENINFO = "TUXEDO/QM:D:\tuxdir\EVENTS1\ADVANC1\QUE;TMNTSQS"
#---------------------------------------------------------------
*SERVERS
DEFAULT:
CLOPT = "-A"
#
# キュー・サーバを起動
# CLOPT の -s オプションで指定するキュースペースの名前は、
# 作成したキュースペースの名前と同じでなければならない
#
TMQUEUE
SRVGRP = QUE_GRP
SRVID = 1
CLOPT = "-s TMNTSQS:TMQUEUE -- "
#
# キュー転送サーバを起動し、イベントをノーティフィケーション・サービス
# の永続的な転送サーバに転送させる
#
TMQFORWARD
SRVGRP = QUE_GRP
SRVID = 2
CLOPT = "-- -i 2 -q TMNTSFWD_P"
TMSYSEVT
SRVGRP = NTS_GRP
SRVID = 1
#
# ユーザ EventBroker を起動する。ユーザ EventBroker が
# 「Story」fml フィールドの定義を見つけることができるよ
# うに環境ファイルを渡す。これで、ユーザ EventBroker が
# データのフィルタ処理を実行できるようになる
#
TMUSREVT
SRVGRP = NTS_GRP
SRVID = 2
ENVFILE = "D:\tuxdir\EVENTS1\ADVANC1\envfile"
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 1
CLOPT = "-A -- -N -M"
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 2
CLOPT = "-A -- -N"
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 3
CLOPT = "-A -- -F"
#
# ノーティフィケーション・サービス・サーバを起動する。
# ノーティフィケーション・サーバがデータのフィルタ処理を実行
# できるように環境ファイルを渡す。永続的なイベントを使用するので、
# -s オプションを指定しなければならない。-s オプションは、TMNTSQS
# としてキュースペースの名前を指定する。この名前は作成したキュー
# スペースの名前と同じでなければならない
#
TMNTS
SRVGRP = NTS_GRP
SRVID = 3
ENVFILE = "D:\tuxdir\EVENTS1\ADVANC1\envfile"
CLOPT = "-A -- -s TMNTSQS"
#
# ノーティフィケーション・サービスの一時的なイベント転送サーバを
# 起動する。サーバがデータのフィルタ処理を実行できるように環境
# ファイルを渡す
#
TMNTSFWD_T
SRVGRP = NTS_GRP
SRVID = 4
ENVFILE = "D:\tuxdir\EVENTS1\ADVANC1\envfile"
#
# ノーティフィケーション・サービスの永続的なイベント転送サーバを
# 起動する。サーバがデータのフィルタ処理を実行できるように環境
# ファイルを渡す
#
TMNTSFWD_P
SRVGRP = NTS_GRP
SRVID = 5
ENVFILE = "D:\tuxdir\EVENTS1\ADVANC1\envfile"
#
# クライアントのコールバックを使用するので -O を使用して ISL を起動
#
ISL
SRVGRP = SYS_GRP
SRVID = 4
CLOPT = "-A -- -O -n //BEANIE:2363"
#---------------------------------------------------------------
*SERVICES
ノーティフィケーション・サービスの管理
ノーティフィケーション・サービス・アプリケーションをデプロイした後は、次の管理タスクを継続的に実行する必要があります。
データベースの同期
複数の EventBroker をコンフィギュレーションする場合は、ノーティフィケーション・サービスのサブスクリプション・データベースで同期を取る必要があります。同期プロセスは時間を要し (イベントの配信に影響することがある)、ネットワーク・トラフィックを増大させるので、イベントのトラフィックが要求しない限りは複数の EventBroker をコンフィギュレーションしないでください。
複数の EventBroker をコンフィギュレーションするときには、TMUSREVT サーバの -P
オプションを使用してデータベースの同期に要する時間をコンフィギュレーションできます。このオプションの設定方法については、『BEA Tuxedo のファイル形式とデータ記述方法』の TMUSREVT(5)
を参照してください。
注記 データベースの同期に要する時間は、サブスクライバがサブスクライブしてからイベントを受信するまでの所要時間に影響します。また、サブスクライバがアンサブスクライブしてからイベントの受信が停止されるまでの所要時間にも影響します。
システムからのデッド・サブスクリプションのパージ
サブスクリプションは、サブスクライバが永続的なサブスクリプションを作成し、アンサブスクライブせずにシャットダウンしてから、再起動することなくノーティフィケーション・サービスに再接続しなかった場合、またはサブスクライバがどのイベントとも一致しないサブスクリプションを作成した場合にデッド状態になります。サブスクライバでは永続的なサブスクリプションを作成してから、アンサブスクライブせずにシャットダウンすることができますが、定期的に再接続して蓄積されたイベントを取得しないとエラーになります。ノーティフィケーション・サービスでは永続的なサブスクリプションと一致するイベントの配信が定期的に試行されるので、そのようなイベントはサブスクライバが接続されていない間蓄積され、キュースペースを消費し、システム・リソースを浪費します。
どのイベントとも一致することのないサブスクリプションは、意味を成さないので作成しないようにしてください。また、ポストされた各イベントは各サブスクリプションと照合しなければならないので、サブスクリプションはシステム・リソースを消費します。
表 7-2 の ntsadmin
コマンドを使用すると、すべてのサブスクリプションを表示し、各サブスクリプションの保留キューとエラー・キューにどのくらいの数のイベントが入っているのかを確認できます。また、ntsadmin
コマンドを使用してサブスクリプションを削除したり、エラー・キューのイベントを保留キューに移動したりすることもできます。ntsadmin
ユーティリティの詳細については、ntsadminを参照してください。
自動的にデッド・サブスクリプションを検出する手段はありませんが、ntsadmin
ユーティリティを利用して、サブスクリプションがデッド状態かどうか、いつデッド状態になるのかを判断することはできます。
キュー使用率の監視
キューは、固定量のスペースを割り当てて作成します。このスペースは、イベントが蓄積されるにつれて消費されていきます。キューが一杯になると、それ以降はイベントをキューに入れることはできません。
キューの使用率を監視するには、qmadmin
または ntsadmin
を使用します (『BEA Tuxedo コマンド・リファレンス』の qmadmin(1)
を参照)。
保留イベントを保持するためにキュースペースが作成されたときには、そのキュースペースで保持できるイベントの最大数が指定されました。たとえば、Advanced サンプル・アプリケーションでは、TMNTSQS
キュースペースのイベントの最大数は 200 に設定されました (イベント・キューの作成 を参照)。キュースペースの容量がわかっていれば、ntsadmin
pendevents
コマンドを使用してイベント・キューで保留されているイベントの数を確認できます。イベント・キューが一杯であるか、一杯に近い場合は、イベント最大数の設定を増やすか、イベント・キューの数を増やす必要があります。
注記 qmadmin
qcreate
コマンドでしきい値コマンド・オプション (cmd
) を使用すると、キューがいっぱいに近くなったときに警告を生成することができます。このコマンドの詳細については、『BEA Tuxedo コマンド・リファレンス』の qmadmin
(1) を参照してください。
キューからの不要なイベントのパージ
ntsadmin
コマンドの rmerrevents
および rmpendevents
を使用すると、保留キューまたはエラー・キューからイベントをパージできます。
警告: キューからイベントを削除した後は、そのイベントを復元することはできません。イベントは完全に消滅し、サブスクライバ・アプリケーションがそのイベントを受信することはありません。
エラー・キューの管理
イベントの配信が事前に設定された回数試行された後、そのイベントはエラー・キューに移動します。イベントがエラー・キューに移動されたら、管理者はシステムからそのイベントをパージするか、そのイベントを保留キューに戻さなければなりません。イベントのパージについては、前節で説明しています。
エラー・キューから保留キューにイベントを移動するということは、イベント配信の再開を要求するということです。イベント配信の失敗はシステム・リソースを消費するので、配信の障害となっていた状況が修正されている場合以外は保留キューにイベントを戻さないでください。イベントを保留キューに戻すには、ntsadmin
retryerrevents
コマンドを使用します。
ノーティフィケーション・サービスの管理ユーティリティとコマンド
ここでは、次の内容について説明します。
ntsadmin ユーティリティ
この節では、ntsadmin
ユーティリティについて説明します。
ntsadmin
概要
BEA Tuxedo CORBA ノーティフィケーション・サービス管理コマンドのインタプリタです。
構文
ntsadmin
説明
ノーティフィケーション・サービスには、CORBA ノーティフィケーション・サービス・アプリケーションで次のタスクを実行するコマンドを備える管理コマンド・インタプリタ (ntsadmin
) があります。
注記 アプリケーションに一時的なサブスクリプションしかない場合、ntsadmin
を入力してプログラムを起動すると、永続的なサブスクリプション用のコマンドは無効になります。
注記 ntsadmin
を使用するには、事前にノーティフィケーション・サービスが実行されていなければなりません。
コマンド・プロンプトで q
を入力すると、ntsadmin
プログラムを終了できます。Break キーを押すと、コマンドからの出力を終了できます。その後、プログラムは新しいコマンドの入力を要求します。
ntsadmin
からの出力は、使用されているページ割りコマンドに従ってページ割りされます (paginate
コマンドを参照)。
注記 subscription
コマンドの出力は、verbose
コマンドの設定によって異なります。
セキュリティ
このユーティリティを使用できるのはシステム管理者のみです。
関連項目
TMNTS、TMNTSFWD_T、TMNTSFWD_P
、qmadmin
ntsadmin コマンド
コマンドは、フル・ネームか略称で入力できます (略称がある場合は、フル・ネームの後にかっこで示されている)。コマンドの後には、適切な引数を入力します。角かっこ [] で示されている引数はオプションです。中かっこ {} で示されている引数は、相互に排他的なオプションの選択を示します。各コマンドには、次のオプションがあります。
ntsadmin
コマンドを次に示します。
subscriptions (sub) [{-i
identifier
|-n
name
|-t | -p}]
サブスクリプション・データベースにあるサブスクリプションをリストします。
注記 subscription
コマンドの出力は、冗長モードが有効かどうかによって異なります (verbose
コマンドについては後述)。リスト 7-12 は、冗長モードが有効な場合と無効な場合の subscription
の出力例を示しています。
リスト 7-12 冗長モードが有効な場合と無効な場合の subscription コマンドの出力
> verbose on
Verbose mode is now on
> sub
ID: 1000000006
Name: marcello
QoS: Transient
Qspace: <N/A>
Expression: stock trade\.quote
Filter: stock_name %% 'BEAS' && price_per_share > 150
ID: 1000000005
Name: marcello
QoS: Persistent
Qspace: TMNTSQS
Expression: stock trade\.sell
Filter:
ID: 1000000004
Name: marcello
QoS: Persistent
Qspace: TMNTSQS
Expression: stock trade\.buy
Filter:
> verbose off
Verbose mode is now off
> sub
ID Name Expression
-- ---- ----------
1000000006 marcello [T] stock trade\.quote
1000000005 marcello [P] stock trade\.sell
1000000004 marcello [P] stock trade\.buy
rmsubscriptions (rmsub) [{-i
identifier
|-n
name
|-t | -p]}[-y]
サブスクリプション・データベースからサブスクリプションを削除します。このコマンドは、-y
が使用されている場合以外は確認を要求します。
このコマンドでは、削除されたサブスクリプションの数が表示されます。
pendevents (pevt) [{-i
identifier
|-n
name
}]
保留イベント・キューのイベントについての情報を表示します。
rmpendevents (rmpevt) [{-i
identifier
|-n
name
|-o}][-y]
保留イベント・キューのイベントを削除します。-o
が指定された場合は、サブスクリプション・データベースに対応するサブスクリプションのないすべてのイベントが削除されます。
このコマンドは、-y
が指定されている場合以外は確認を要求します。このコマンドでは、削除されたイベントの数が表示されます。
errevents (eevt) [{-i
identifier
|-n
name
}]
イベント・エラー・キューのイベントをリストします。
rmerrevents (rmeevt) [{-i
identifier
|-n
name
|-o}][-y]
イベント・エラー・キューのイベントを削除します。-o
が指定された場合は、サブスクリプション・データベースに対応するサブスクリプションのないすべてのイベントが削除されます。
このコマンドは、-y
が指定されている場合以外は確認を要求します。このコマンドでは、削除されたイベントの数が表示されます。
retryerrevents (reteevt) [{-i
identifier
|-n
name
}][-y]
イベント・エラー・キューのイベントの配信を再試行します。このコマンドでは、エラー・キューから保留キューにイベントが移動されます。
このコマンドは、-y
が使用されている場合以外は確認を要求します。このコマンドでは、エラー・キューから保留キューに移動されたイベントの数が表示されます。
quit (q)
セッションを終了します。
echo (e) [{off |on}]
on
に設定されている場合に入力コマンド行をエコーします。入力がない場合は、現在の設定が切り替えられ、新しい設定が出力されます。初期設定は off
です。
help (h) [{
command
|all}]
ヘルプ・メッセージを出力します。command
が指定されている場合は、そのコマンドの略称、引数、および説明が出力されます。all
が指定されている場合は、すべてのコマンドの説明が表示されます。引数を省略すると、すべてのコマンドの構文が表示されます。
paginate (page) [{off |on}]
出力をページ割りします。入力がない場合は、現在の設定が切り替えられ、新しい設定が出力されます。標準入力または標準出力のいずれかが端末デバイスではない場合を除いて初期設定は on
です。ページ割りは、標準入力と標準出力が両方とも端末デバイスである場合に限り有効にできます。シェル環境変数 PAGER
を使用すると、出力のページングに使用されるデフォルトのコマンドを上書きできます。デフォルトのページング・コマンドは、ネイティブのオペレーション・システム環境に固有のページャです。たとえば、コマンド pg
は UNIX オペレーティング・システムのデフォルトです。
verbose (v) [{on | off }]
冗長モードで出力を生成します。オプションが指定されない場合は、現在の設定が切り替えられ、新しい設定が出力されます。初期設定は off
です。
!
shellcommand
このコマンドを使用すると、シェルにエスケープして shellcommand
を実行できます。
!!
このコマンドを使用すると、前回のシェル・コマンドを繰り返すことができます。
#[text]
このコマンドを使用すると、行をコメントとして指定できます。
<CR>
このコマンドを使用すると、前回のコマンドを繰り返すことができます。
ntsadmin ユーティリティの使い方
この節では、ntsadmin
ユーティリティの使用例を紹介します。
リスト 7-13 は、ntsadmin
を使用してエラー・キューから保留キューにイベントを移動する例を示しています。このタスクは次のように実行されます。
marcello
を検索します。
subscription_id
を使用して、エラー・キューにあるイベントの情
報を表示します。
リスト 7-13 エラー・キューから保留キューへのイベントの移動
D:
\smith
\reg>ntsadmin
\
ntsadmin - Copyright (c) 1996-1999 BEA Systems, Inc.
Portions * Copyright 1986-1997 RSA Data Security, Inc.
All Rights Reserved.
Distributed under license by BEA Systems, Inc.
BEA Tuxedo is a registered trademark.
INFO: /Q Qspace - TMNTSQS
INFO: /Q Device - D:smith
\reg
\QUE (SITE1)
> subscriptions -n marcello
\
ID Name Expression
-- ---- ----------
1000000002 marcello [T] stock trade.quote
\
1000000001 marcello [P] stock trade.sell
\
1000000000 marcello [P] stock trade.buy
> verbose off
Verbose mode is now off
> eevt -i 1000000003
ID Name Count
-- ---- -----
1000000003 marcello 1
> reteevt -i 1000000003 -y
1 event(s) retried
リスト 7-14 は、ntsadmin
を使用してサブスクリプションを削除し、イベントをパージする例を示しています。
リスト 7-14 サブスクリプションの削除
> rmsub -n BillJones -y
2 subscription(s) removed
> rmeevt -n marcello -y
1 event(s) removed
> rmpevt -n BillJones -y
No events removed
リスト 7-15 は、特定サブスクリプションの保留イベントを調べる方法を示しています。
リスト 7-15 保留イベントのチェック
> pevt -n marcello
ID Name Count
-- ---- -----
1000000003 marcello 1
ノーティフィケーション・サーバ
この節では、次のサーバについて説明します。
TMTNS
TMNTSFWD_T
TMNTSFWD_P
ノーティフィケーション・サービスでは、次の BEA Tuxedo システム・サーバも使用されます。これらのサーバの説明については、『BEA Tuxedo のファイル形式とデータ記述方法』を参照してください。
TMSYSEVT(5)
TMUSREVT(5)
TMQFORWARD(5)
TMQUEUE(5)
TMNTS
概要
サブスクリプションおよびイベントのポストの要求を処理します。
構文
TMNTS SRVGRP="identifier" SRVID="number"
queuespace
[CLOPT="[-A] [servopts options]
[--[-S]"]
説明
TMNTS
は、サブスクリプションおよびイベントのポストのすべての要求を処理する BEA Tuxedo 提供のサーバです。
パラメータ
-S
queuespace
使用するキュースペースの名前です。このキュースペースには、TMNTSFWD_P
および TMNTSFWD_E
という 2 つのキューがなければなりません。このオプションは、永続的なサブスクリプションでのみ必須です。
注記 QoS が Persistent
のサブスクリプションを使用する場合は、システムが作動する前にキュースペース、イベントを保持するキュー、およびエラー・キューを作成する必要があります。キュースペースの名前は、TMNTS
サーバの CLOPT -S
queuespace
パラメータを使用して指定された queuespace
名と同じでなければなりません。イベント・キューは、TMNTSFWD_P
という名前に設定する必要があります。エラー・キューは、TMNTSFWD_E
という名前に設定する必要があります。
TMNTS
サーバは、信頼性と可用性を高めるために複数を起動することができます。
TMNTS
サーバは、イベントがトランザクションのコンテキストでポストされる場合はトランザクション・グループに属していなければなりません。
相互運用性
TMNTS
は、バージョン 5.0 以上の BEA WebLogic Enterprise またはバージョン 8.0 以上の BEA Tuxedo 上で実行しなければなりません。
注記
TMNTS
サーバは、TMUSREVT
サーバと TMSYSEVT
サーバが提供するサービスを利用します。したがって、システムが作動する前にそれらのサーバを起動する必要があります。一時的なサブスクリプションを使用する場合は、TMNTSFWD_T
サーバもシステムの作動前に起動しなければなりません。永続的なサブスクリプションを使用する場合は、TMNTSFWD_P
サーバ、TMQUEUE
サーバ、および TMQFORWARD
サーバもシステムの作動前に起動する必要があります。
例
*SERVERS
TMNTS SRVGRP = NTS_GRP SRVID = 3
CLOPT = "-A -- -s TMNTSQS"
関連項目
TMSYSEVT(5)
、TMUSREVT(5)
、TMQUEUE(5)
、TMQFORWARD(5)
、TMNTSFWD_P
、TMNTSFWD_T(5)
、UBBCONFIG(5)
TMNTSFWD_T
概要
イベントを一時的なサブスクライバに転送します。
構文
TMNTSFWD_T SRVGRP="identifier" SRVID="number"
[CLOPT="[-A][--"]
説明
TMNTSFWD_T
は、QoS が Transient
のサブスクライバにイベントを転送する BEA Tuxedo 提供のサーバです。イベントの配信に関連付けられるトランザクション・コンテキストはありません。
注記 TMNTSFWD_T
サーバは、信頼性と可用性を高めるために複数を起動することができます。
相互運用性
TMNTS
は、バージョン 5.0 以上の BEA WebLogic Enterprise またはバージョン 8.0 以上の BEA Tuxedo 上で実行しなければなりません。
注記
TMNTSFWD_T
サーバは、TMNTS
サーバ、TMUSREVT
サーバ、および TMSYSEVT
サーバが提供するサービスを利用します。したがって、システムが作動する前にそれらのサーバを起動する必要があります。
例
*SERVERS
TMNTSFWD_T SRVGRP = SYS_GRP SRVID = 7
関連項目
TMSYSEVT(5)
、TMUSREVT(5)
、TMNTS(5)
、TMNTSFWD_P
、UBBCONFIG(5)
。一時的なサブスクリプションの IPC キュースペースも参照してください。
TMNTSFWD_P
概要
イベントを永続的なサブスクライバに転送します。
構文
TMNTSFWD_P SRVGRP="identifier" SRVID="number"
CLOPT="[-A] [--"]
説明
TMNTSFWD_P
は、QoS が永続的であるサブスクライバにイベントを転送する BEA Tuxedo 提供のサーバです。イベントの配信に関連付けられるトランザクション・コンテキストはありません。
TMNTSFWD_P
サーバは、信頼性と可用性を高めるために複数を起動することができます。
相互運用性
TMNTS
は、バージョン 5.0 以上の BEA WebLogic Enterprise またはバージョン 8.0 以上の BEA Tuxedo 上で実行しなければなりません。
注記
TMNTSFWD_P
サーバは、TMNTS
サーバ、TMUSREVT
サーバ、TMSYSEVT
サーバ、TMQUEUE
サーバ、および TMQFORWARD
サーバが提供するサービスを利用します。したがって、システムが作動する前にそれらのサーバを起動する必要があります。
このサーバは、トランザクション・グループで起動する必要があります。
TMNTSFWD_P
サーバは、TMQFORWARD
サーバと同じ数だけ起動する必要があります。
例
*SERVERS
TMNTSFWD_P SRVGRP = NTS_GRP SRVID = 5
関連項目
TMSYSEVT(5)
、TMUSREVT(5)
、TMNTS
、TMNTSFWD_T
、servopts(5)
、UBBCONFIG(5)
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|