bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo CORBA ノーティフィケーション・サービス > CORBA ノーティフィケーション・サービスの管理 |
Tuxedo CORBA ノーティフィケーション・サービス
|
CORBA ノーティフィケーション・サービスの管理
ここでは、以下の内容について説明します。
はじめに
BEA Tuxedo CORBA ノーティフィケーション・サービスは、BEA Tuxedo の EventBroker システムおよびキューイング・システムに重ね合わせて使用します。つまり、CORBA ノーティフィケーション・サービスを管理する場合は、それらのほかの BEA Tuxedo システムも管理する必要があります。ノーティフィケーション・サービスの管理には、BEA Tuxedo ユーティリティの tmadmin、qmadmin、および ntsadmin を使用します。
ノーティフィケーション・サービスの管理は、コンフィギュレーションと管理という 2 つの関連するタスクで成り立ちます。それらの領域は別々に説明しますが、実際には相互に関連しています。したがって、コンフィギュレーションを完全に理解するためには、管理についても理解する必要があります (その逆も同じ)。
ノーティフィケーション・サービスのコンフィギュレーション
イベント・ノーティフィケーション・サービス・アプリケーションを実行するには、まず次のコンフィギュレーション要件を満たさなければなりません。
データ・フィルタのコンフィギュレーション
データのフィルタ処理または BEA Tuxedo ATMI 相互運用性をサブスクライバ・アプリケーションで利用する場合は、次の手順を行ってサブスクリプションでデータのフィルタ処理を利用する必要があります。
リスト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 = 3
ENVFILE = "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_P 転送キューと同じコンフィギュレーション・パラメータを設定する必要があります。ただし、このキューはエラー・キューであり、エラーは管理上の介入によってのみ削除されるので再試行回数の上限と再試行の時間間隔のパラメータは意味を成しません。
これらのキューをコンフィギュレーションするには、次の手順を行います。
上記の手順については、以下の節を参照してください。
一時的および永続的なサブスクリプションのスペース・パラメータの値の割り出し
システムを調整して最大限の性能を引き出すためには、次のパラメータの最適な値を割り出す必要があります。
一時的なサブスクリプションの IPC キュースペース
一時的なサブスクリプションのスペース・パラメータの値は次のように割り出します。
永続的なサブスクリプションの /Q キュー・サイズ・パラメータ
永続的なサブスクリプションのスペース・パラメータの値は次のように割り出します。
ディスク上のキュースペースのデバイスの作成
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 で作成されるキュースペースでは、次のサイズ設定に注意してください。
キュースペース作成の詳細については、『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] ページを表示するには、次の手順を行います。
図 0-1 Microsoft Windows のコントロール・パネル
図 0-2 Microsoft Windows 向け BEA Tuxedo ソフトウェアの [IPC Resources] コントロール・パネル
BEA Tuxedo マシンの IPC 設定を定義するには、次の手順を行います。
実行中の BEA Tuxedo サーバ・アプリケーションのパフォーマンスは、パフォーマンス・モニタで確認できます。
パフォーマンス・モニタを起動するには、
[スタート] メニューの [プログラム] をポイントし、[管理ツール] の [パフォーマンス モニタ] を選択します。パフォーマンス・モニタの画面が表示されます (図0-3)。
図 0-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 セクションで次のタイプのサーバを設定できます。
tppost(3) からのイベント・レポート用メッセージ・バッファを処理し、EventBroker としてそれらのバッファをフィルタ処理して配信する BEA Tuxedo システム付属のサーバ (必須)。
サブスクリプションおよびイベントのポストの要求を処理する BEA Tuxedo ノーティフィケーション・サービス・サーバ(必須)。
一時的なサブスクリプションのサブスクライバに一時的なイベントを転送する BEA Tuxedo ノーティフィケーション・サービス・サーバ (一時的なサブスクリプションで必須)。
永続的なサブスクリプションのあるサブスクライバに永続的なイベントを転送する BEA Tuxedo ノーティフィケーション・サービス・サーバ。サブスクライバに配信できないイベントはエラー・キューに送信されます (永続的なサブスクリプションで必須)。
イベント・キューを管理する BEA Tuxedo サーバ (永続的なサブスクリプションで必須)。
永続的なサブスクライバに転送できるように、イベントをノーティフィケーション・サービス TMNTSFWD_P サーバに転送する BEA Tuxedo サーバ (永続的なサブスクリプションで必須)。
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¥EVENTS~1¥INTROD~2"
TUXCONFIG = "D:¥tuxdir¥EVENTS~1¥INTROD~2¥tuxconfig"
TUXDIR = "d:¥tuxdir"
MAXWSCLIENTS = 10
ULOGPFX = "D:¥tuxdir¥EVENTS~1¥INTROD~2¥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
# Start the ISL with -O since we are using callbacks to clients.
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¥EVENTS~1¥ADVANC~1"
TUXCONFIG = "D:¥tuxdir¥EVENTS~1¥ADVANC~1¥tuxconfig"
TUXDIR = "d:¥tuxdir"
MAXWSCLIENTS = 10
ULOGPFX = "D:¥tuxdir¥EVENTS~1¥ADVANC~1¥ULOG"
#
# 永続的なイベントを使用するので、トランザクション・ログが必要
#
TLOGDEVICE = "D:¥tuxdir¥EVENTS~1¥ADVANC~1¥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¥EVENTS~1¥ADVANC~1¥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¥EVENTS~1¥ADVANC~1¥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¥EVENTS~1¥ADVANC~1¥envfile"
CLOPT = "-A -- -s TMNTSQS"
#
# ノーティフィケーション・サービスの一時的なイベント転送サーバを
# 起動する。サーバがデータのフィルタ処理を実行できるように環境
# ファイルを渡す
#
TMNTSFWD_T
SRVGRP = NTS_GRP
SRVID = 4
ENVFILE = "D:¥tuxdir¥EVENTS~1¥ADVANC~1¥envfile"
#
# Start the notification service persistent event forwarder.
# Pass in the environment file so that the server can perform
# data filtering.
#
TMNTSFWD_P
SRVGRP = NTS_GRP
SRVID = 5
ENVFILE = "D:¥tuxdir¥EVENTS~1¥ADVANC~1¥envfile"
#
# Start the ISL with -O since we're using callbacks to clients.
#
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 ユーティリティの詳細については、第 7 章の 32 ページ「ntsadmin」を参照してください。
自動的にデッド・サブスクリプションを検出する手段はありませんが、ntsadmin ユーティリティを利用して、サブスクリプションがデッド状態かどうか、いつデッド状態になるのかを判断することはできます。 キュー使用率の監視 キューは、固定量のスペースを割り当てて作成します。このスペースは、イベントが蓄積されるにつれて消費されていきます。キューが一杯になると、それ以降はイベントをキューに入れることはできません。 キューの使用率を監視するには、qmadmin または ntsadmin を使用します (『BEA Tuxedo コマンド・リファレンス』の qmadmin(1) を参照)。 保留イベントを保持するためにキュースペースが作成されたときには、そのキュースペースで保持できるイベントの最大数が指定されました。たとえば、Advanced サンプル・アプリケーションでは、TMNTSQS キュースペースのイベントの最大数は 200 に設定されました (第 7 章の 8 ページ「イベント・キューの作成」 を参照)。キュースペースの容量がわかっていれば、ntsadmin pendevents コマンドを使用してイベント・キューで保留されているイベントの数を確認できます。イベント・キューが一杯であるか、一杯に近い場合は、イベント最大数の設定を増やすか、イベント・キューの数を増やす必要があります。 注記 qmadmin qcreate コマンドでしきい値コマンド・オプション (cmd) を使用すると、キューがいっぱいに近くなったときに警告を生成することができます。このコマンドの詳細については、『BEA Tuxedo コマンド・リファレンス』の qmadmin(1) を参照してください。 キューからの不要なイベントのパージ ntsadmin コマンドの rmerrevents および rmpendevents を使用すると、保留キューまたはエラー・キューからイベントをパージできます。 警告 キューからイベントを削除した後は、そのイベントを復元することはできません。イベントは完全に消滅し、サブスクライバ・アプリケーションがそのイベントを受信することはありません。 エラー・キューの管理 イベントの配信が事前に設定された回数試行された後、そのイベントはエラー・キューに移動します。イベントがエラー・キューに移動されたら、管理者はシステムからそのイベントをパージするか、そのイベントを保留キューに戻さなければなりません。イベントのパージについては、前節で説明しています。 エラー・キューから保留キューにイベントを移動するということは、イベント配信の再開を要求するということです。イベント配信の失敗はシステム・リソースを消費するので、配信の障害となっていた状況が修正されている場合以外は保留キューにイベントを戻さないでください。イベントを保留キューに戻すには、ntsadmin retryerrevents コマンドを使用します。
ノーティフィケーション・サービスの管理ユーティリティとコマンド
ここでは、以下の内容について説明します。
ntsadmin ユーティリティ
この節では、ntsadmin ユーティリティについて説明します。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |