![]() |
![]() |
|
|
WS_MIB(5)
名前
WS_MIB-ワークステーション用の管理情報ベース
形式
#include <fml32.h>
#include <tpadm.h>
機能説明
BEA Tuxedo システムの MIB は、/WSグループ (1 つのWSLとそれに関連したWSHプロセス) を管理するためのクラスのセットを定義します。
管理要求をフォーマットしたり管理応答の意味を解釈するためには、WS_MIB は共通 MIB のマニュアル・ページMIB(5)とともに使用する必要があります。このマニュアルに記載されたクラスや属性を利用して MIB(5) の手順に従ってフォーマットした要求は、アクティブなアプリケーション中に存在するさまざまな ATMI インターフェイスを利用して管理サービスを要求するために使用できます。WS_MIB(5) のすべてのクラス定義に関連する追加情報については、「WS_MIB(5) に関する追加情報」を参照してください。
WS_MIB(5) は、以下のクラスから構成されます。
クラス名 |
属性 |
---|---|
ワークステーション・ハンドラ。 |
|
ワークステーション・リスナ |
各クラスの説明セクションには、4 つのサブセクションがあります。
属性表の形式
既に述べたように、本MIBに含まれる各クラスは、以下に4つの部分に分けて定義されます。その内の1つが属性表です。属性表は、クラス内の属性と、管理者、オペレータ、一般ユーザが属性を使用してどのようにアプリケーションとのインターフェイスをとるかを示した 1 ページの参照ガイドです。属性表の各属性の記述は、5 つの項目 (名前、タイプ、パーミッション、値、デフォルト値) から成ります。各項目については MIB(5) で説明します。
TA_FLAG 値
MIB(5) は、共通およびコンポーネント MIB 固有のフラグ値の両方が入った long 値フィールドである共通 TA_FLAGS を定義しています。この際、WS_MIB(5) 固有のフラグ値は定義されません。
FML32 フィールド・テーブル
このマニュアル・ページに記述する属性のフィールド・テーブルは、システムにインストールした BEA Tuxedo システム・ソフトウェアのルート・ディレクトリからの相対パスで指定される udataobj/tpadm ファイルにあります。${TUXDIR}/udataobj ディレクトリは FLDTBLDIR 環境変数で指定されるコロンで区切ったリストに、またフィールド・テーブル名 tpadm は FIELDTBLS 環境変数で指定されるカンマで区切ったリストに、アプリケーションで指定しなければなりません。
制限事項
このMIBのヘッダ・ファイルやフィールド・テーブルには、BEA Tuxedo リリース 6.0 以降のサイト (ネイティブ版および /WS 版の両方) でのみアクセスできます。
T_WSH クラスの定義
概要
T_WSH クラスは WSH クライアント・プロセスの実行時の属性を表します。この属性値は、特定のWSHクライアント・プロセスに固有の/WS統計情報の特性を示します。このクラスは共通キー・フィールドの TA_SRVGRP と TA_SRVID によって T_WSL クラスにリンクされます。さらに、共通キー・フィールドの TA_WSHCLIENTID によって T_CLIENT クラス (TM_MIB(5) を参照) にもリンクされます。
属性表
注1 T_WSH クラスの属性は、すべてローカル属性です。 属性の意味
制限事項
このクラスは T_CLIENT クラスの特殊な場合を表すクラスなので、対応する T_CLIENT オブジェクトでも重複して定義されている特定の属性を表します。T_CLIENT クラスに含まれる属性の内でここに記載されていないものは、T_CLIENT クラスを通してアクセスする必要があり、T_WSH クラスからアクセスすることはできません。
WSH サーバの属性は、実行時環境でのみ意味を持ちます。したがって、起動されていない環境で tpadmcall(3c) 関数を使用しても、これらの属性を変更することはできません。
T_WSLクラスの定義
概要
T_WSL クラスは、/WSグループを管理するためにコンフィギュレーションされた WSLサーバ・プロセスの構成属性と実行時の属性を表します。これらの属性値は、アプリケーション内のWSL T_SERVER オブジェクトの /WS 固有のコンフィギュレーション属性を識別し、特徴を示します。このクラスは、共通キー・フィールドの TA_SRVGRP と TA_SRVID によって T_WSH にリンクされます。
属性表
注1 オブジェクト作成時にこの属性の値が指定しないと、0 が割り当てられます。この属性に 0 の値を指定すると、アクティブ化時に、TA_MAXHANDLERS の現在の設定値と TA_MAXWSCLIENTS の T_MACHINE クラス設定値から有効値が決定される ことを示しています。MIB_LOCAL フラグをセットして GET 操作を実行すると、起動時のデフォルト設定値でオブジェクトの有効値が返されるということに留意してください。 注2 リンク・レベル暗号化の値の 40 ビットは、下位互換性を維持するために提供されています。 属性の意味
注記 一部のポート番号は、お使いのシステムで使用される基本トランスポート・プロトコル (TCP/IP など) のために予約されている場合があります。予約されているポート番号を確認するには、トランスポート・プロトコルのマニュアルを調べてください。
注記 リンク・レベル暗号化の値の 40 ビットは、下位互換性を維持するために提供されています。
注記 リンク・レベル暗号化の値の 40 ビットは、下位互換性を維持するために提供されています。
制限事項
このクラスは T_SERVER クラスの特殊なものを表しているので、対応する T_SERVER オブジェクト内に重複されているある属性を表します。T_SERVER クラスに含まれていてリストされていない属性はそのクラスを介してアクセスする必要があり、T_WSL クラスを介してアクセスすることはできません。
WS_MIB(5) に関する追加情報
診断
一般に、WS_MIB(5) とのインターフェイス時、2 つの一般的なタイプのエラーがユーザに返されます。1 つは、管理要求に対する応答を検索する 3 つの ATMI 関数 (tpcall()、tpgetrply()、および tpdequeue()) で、いずれかが各関数で定義されたエラーを返します。エラーは該当するマニュアル・ページの記述に従って解釈します。
しかし、要求を満足させることができるシステムサービスに要求が正常に送られ、システムサービスが要求処理に障害があると判断した場合、アプリケーション・レベルのサービス障害の形で異常終了が返されます。このような場合、tpcall() および tpgetrply() は、tperrno を TPESVCFAIL に設定してエラーを返し、以下のようにエラーの詳細を示す TA_ERROR、TA_STATUS、および TA_BADFLD フィールドと一緒に、元の要求を含む応答メッセージを返します。TMQFORWARD(5) 経由でシステムに転送された要求に対するサービス障害が発生すると、元の要求で識別される異常終了キューに障害応答メッセージが追加されます (TMQFORWARD に対して -d オプションが指定されたと仮定します)。
管理要求の処理中にサービス・エラーが発生すると、TA_STATUS という FM32 フィールにエラーの内容について説明したテキストがセットされ、TA_ERROR という FM32 フィールドにはエラーの原因 (下記参照) を示す値がセットされます。以下のエラー・コードは、いずれも負であることが保証されています。
以下の診断コードは TA_ERROR に戻され、管理要求が正常に完了したことを示します。これらのコードはマイナスでないことが保証されています。
相互運用性
このリファレンス・ページに定義されたヘッダ・ファイルとフィールド・テーブルは、BEA Tuxedo リリース 5.0 以降で使用できます。これらのヘッダやテーブルで定義するフィールドはリリースが変わっても変更されません。ただし、以前のリリースで定義されていない新しいフィールドが追加される場合があります。AdminAPI には、要求を作成するために必要なヘッダ・ファイルとフィールド・テーブルがあれば、どのサイトからでもアクセスできます。T_WSL および T_WSH クラスは、BEA Tuxedo システム・リリース 6.0 で新しく追加されたクラスです。そのため、AdminAPI を介して旧リリースのサイト上で WSL プロセスと WSH プロセスをローカル管理することはできません。ただし、このマニュアル・ページに定義された管理機能の多くは、リリース 6.0 のサイトと相互運用していれば、リリース 6.0 より前のサイトでも使用できます。リリースの異なるサイト(両方ともリリース6.0以降)が相互運用を行う場合、旧サイトに関する情報は、そのリリースのMIBマニュアル・ページで定義する通り、アクセスおよび更新することができます。この情報は新しいリリースで利用可能な情報のサブセットとなります。
移植性
BEA Tuxedo システムの MIB を使用した管理作業をサポートするために必要な既存のFML32 および ATMI 関数、さらにこのマニュアル・ページに定義するヘッダ・ファイルとフィールド・テーブルは、すべてのサポート対象ネイティブ・プラットフォームおよびワークステーション・プラットフォームで利用可能です。
使用例
以下の例は、TM_MIB(5) と WS_MIB(5) を組み合わせて /WS グループを順序立てて非アクティブ化するコードです。
フィールド・テーブル
属性フィールド識別子にアクセスするためには、フィールド・テーブル tpadm が必要です。そのために、以下のようにシェルで入力します。
$ FIELDTBLS=tpadm
$ FLDTBLDIR=${TUXDIR}/udataobj
$ export FIELDTBLS FLDTBLDIR
ヘッダ・ファイル
以下のヘッダ・ファイルがあります。
#include <atmi.h>
#include <fml32.h>
#include <tpadm.h>
WS グループを SUSpended 状態にする
以下のコードは/WSグループの状態を SUSpended に設定します。これにより、/WSグループはワークステーション・クライアントからの新しい接続を受け入れることができなくなり、現在グループの一部であるすべてのワークステーション・クライアントをサスペンドします。このコードと、その後のコードは、一緒に作業している/WSグループを識別するローカル変数の ta_srvgrp と ta_srvid がすでに設定されているという前提で書かれています。
/* 入力バッファと出力バッファを割り当て */ ibuf = tpalloc("FML32", NULL, 1000);
obuf = tpalloc("FML32", NULL, 1000);
/* 要求タイプを定義する MIB(5) 属性を設定 */
Fchg32(ibuf, TA_OPERATION, 0, "SET", 0);
Fchg32(ibuf, TA_CLASS, 0, "T_WSL", 0);
/* WS_MIB(5) 属性を設定 */
Fchg32(ibuf, TA_SRVGRP, 0, ta_srvgrp, 0);
Fchg32(ibuf, TA_SRVID, 0, (char *)ta_srvid, 0);
Fchg32(ibuf, TA_SUSPENDED, 0, "ALL", 0);
/* 要求を作成 */
if (tpcall(".TMIB", (char *)ibuf, 0, (char **)obuf, olen, 0) 0) {
fprintf(stderr, "tpcall failed:%s¥en", tpstrerror(tperrno));
if (tperrno == TPESVCFAIL) {
Fget32(obuf, TA_ERROR, 0,(char *)ta_error, NULL);
ta_status = Ffind32(obuf, TA_STATUS, 0, NULL);
fprintf(stderr, "Failure:%ld, %s¥en",
ta_error, ta_status);
}
/* 追加のエラー処理 */
}
/* 今後使用するために論理マシン識別子をコピー */
strcpy(ta_lmid, Ffind32(obuf, TA_LMID, 0, NULL));
WSH オブジェクト・リストの検索
既存の入力バッファを使って、クラスと操作を変更して新しい要求を作成するだけです。与えられた T_WSL オブジェクト・キー・フィールド ta_srvgrp と ta_srvid に関連付けられたすべての T_WSH オブジェクトを検索します。TA_FILTER 属性を設定して検索を限定することによって効率を高めます。
/* 要求タイプを定義する MIB(5) 属性を設定 */ Fchg32(ibuf, TA_CLASS, 0, "T_WSH", 0);
Fchg32(ibuf, TA_OPERATION, 0, "GET", 0);
longval = TA_WSHCLIENTID;
Fchg32(ibuf, TA_FILTER, 0, (char *)longval, 0);
/* WS_MIB(5) 属性を設定 */
Fchg32(ibuf, TA_LMID, 0, ta_lmid, 0);
/* 別の出力バッファを割り当てて、TA_WSHCLIENTID 値を保存 */
wshcltids = tpalloc("FML32", NULL, 1000);
/* 要求を作成 */
tpcall(".TMIB", (char *)ibuf, 0, (char **)wshcltids, olen, 0);
/* 取得数を確認 */
Fget32(wshcltids, TA_OCCURS, 0,(char *)wshcltcnt, NULL);
T_CLIENT オブジェクトの検索
取り出された TA_WSHCLIENTID 値を使って、この /WS グループ内のワークステーション・クライアントの関連付けられた TA_CLIENTID 値のリストを検索します。
T_CLIENTオブジェクトへの通知
取り出された TA_CLIENTID 値を使って、ログオフする必要があるこの /WS グループ内のワークステーション・クライアントに通知します。
notstr = tpalloc("STRING", NULL, 100);
(void)strcpy(notstr, "Please logoff now!");
/* 関係するクライアントをループ処理、中断、通知 */
for (i=0; i cltcnt ;i++) {
p = Ffind32(cltids, TA_CLIENTID, i, NULL);
/* ログオフするクライアントを通知 */
tpconvert(p, (char *)ci, TPCONVCLTID);
tpnotify(ci, notptr, 0, 0);
}
残りの T_CLIENT オブジェクトの非アクティブ化
取り出された TA_CLIENTID 値を使って、この /WS グループ内の残りのワークステーション・クライアントを非アクティブ化します。すでに非アクティブ化されているワークステーション・クライアントはSET時にエラーを返すことに留意してください。
/* 要求バッファを初期化 */
Finit32(ibuf, Fsizeof32(ibuf));
/* 要求タイプを定義する MIB(5) 属性を設定 */
Fchg32(ibuf, TA_OPERATION, 0, "SET", 0);
Fchg32(ibuf, TA_CLASS, 0, "T_CLIENT", 0);
Fchg32(ibuf, TA_STATE, 0, "DEAd", 0);
/* 関係するクライアントをループ処理して非活性化 */
for (i=0; i cltcnt ;i++) {
p = Ffind32(cltids, TA_CLIENTID, i, NULL);
Fchg32(ibuf, TA_CLIENTID, 0, p);
/* 要求を作成 */
tpcall(".TMIB", (char *)ibuf, 0, (char **)obuf, olen, 0);
}
T_WSL オブジェクトの非アクティブ化
次に、T_WSL オブジェクトを非アクティブ化します。これにより、関連付けられたアクティブな T_WSH オブジェクトが自動的に非アクティブ化されます。
/* 要求タイプを定義する MIB(5) 属性を設定 */
Fchg32(ibuf, TA_OPERATION, 0, "SET", 0);
Fchg32(ibuf, TA_CLASS, 0, "T_WSL", 0);
Fchg32(ibuf, TA_STATE, 0, "INActive", 0);
/* WS_MIB(5) 属性を設定 */
Fchg32(ibuf, TA_SRVGRP, 0, ta_srvgrp, 0);
Fchg32(ibuf, TA_SRVID, 0, (char *)ta_srvid, 0);
/* 要求を作成 */
tpcall(".TMIB", (char *)ibuf, 0, (char **)obuf, olen, 0);
}
ファイル
${TUXDIR}/include/tpadm.h、${TUXDIR}/udataobj/tpadm
関連項目
tpacall(3c)、tpalloc(3c)、tpcall(3c)、tpdequeue(3c)、tpenqueue(3c)、tpgetrply(3c)、tprealloc(3c)、FML 関数の紹介、Fadd、Fadd32(3fml)、Fchg、Fchg32(3fml)、Ffind、Ffind32(3fml)、MIB(5)、TM_MIB(5)
『BEA Tuxedo アプリケーションの設定』
『BEA Tuxedo アプリケーション実行時の管理』
『C 言語を使用した BEA Tuxedo アプリケーションのプログラミング』
『FML を使用した BEA Tuxedo アプリケーションのプログラミング』
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|