Compaq OpenVMS
OpenVMS Cluster システム


前へ 次へ 目次 索引


D.5.7 プログラムのテスト

障害を発生させて,プログラムをテストします。たとえば,トランシーバ・ケーブルや ThinWire セグメントを切断したり,ブリッジ,DELNI インターコネクト,DEMPR リピータで電源障害を発生させます。その後,OPCOM メッセージを調べて, LAVC$FAILURE_ANALYSIS が障害のあるコンポーネントを正しく報告しているかどうか確認します。障害を報告していない場合は, Network Failure Analysis Program に対して行った編集を確認します。

D.5.8 問題のあるコンポーネントの表示

OpenVMS Cluster ネットワーク・コンポーネントで障害が発生すると, OPCOM は疑いのあるコンポーネントの一覧を表示します。OPCOM を使用して一覧を表示することにより,システム管理者は,これらのメッセージの表示を選択的に有効および無効に設定できます。

以下に表示の例を示します。


%%%%%%%%%%%  OPCOM   1-JAN-1994 14:16:13.30  %%%%%%%%%%%    
(from node BETA at 1-JAN-1994 14:15:55.38) 
Message from user SYSTEM on BETA LAVC-W-PSUSPECT, component_name 
 
%%%%%%%%%%%  OPCOM   1-JAN-1994 14:16:13.41  %%%%%%%%%%%    
(from node BETA at 1-JAN-1994 14:15:55.49) 
Message from user SYSTEM on BETA %LAVC-W-PSUSPECT, component_name 
 
%%%%%%%%%%%  OPCOM   1-JAN-1994 14:16:13.50  %%%%%%%%%%%    
(from node BETA at 1-JAN-1994 14:15:55.58) 
Message from user SYSTEM on BETA %LAVC-I-ASUSPECT, component_name 

障害の疑いのあるコンポーネントを示す OPCOM 表示では,障害を示すために以下の接頭辞が使用されます。

メッセージ接頭辞の後のテキストは, LAVC$FAILURE_ANALYSIS.MAR を編集するときに指定したネットワーク・コンポーネントの記述です。


付録 E
LAN 制御のためのサブルーチン

E.1 はじめに

付録 D で説明したサンプル・プログラムの他に,サンプル・プログラムの機能を拡張するための方法として,多くのサブルーチンが提供されます。 表 E-1 では,これらのサブルーチンについて説明しています。

表 E-1 LAN 制御のためのサブルーチン
サブルーチン 説明
LAN アダプタの管理:
SYS$LAVC_START_BUS PEDRIVER に対して,特定の LAN アダプタで NISCA プロトコルを起動するように要求する。
SYS$LAVC_STOP_BUS PEDRIVER に対して,特定の LAN アダプタで NISCA プロトコルを停止するように要求する。
ネットワーク障害分析システムの制御:
SYS$LAVC_DEFINE_NET_COMPONENT 物理ネットワーク・コンポーネントの表現を作成する。
SYS$LAVC_DEFINE_NET_PATH 2 つのネットワーク・ノード間のネットワーク・コンポーネントの一覧を作成する。
SYS$LAVC_ENABLE_ANALYSIS ネットワーク障害分析を有効に設定する。この結果,将来のチャネル障害を分析することが可能になる。
SYS$LAVC_DISABLE_ANALYSIS ネットワーク障害分析を停止し,物理ネットワーク記述のために使用されていたメモリの割り当てを解除する。

E.1.1 サブルーチンの目的

この付録で説明するサブルーチンは,LAN 制御プログラムである LAVC$FAILURE_ANALYSIS.MAR,LAVC$START_BUS.MAR, LAVC$STOP_BUS.MAR で使用されます。これらのプログラムは, LAN ネットワークを制御できるだけの十分な機能を備えていますが, LAN 制御サブルーチンを使用すると,さらに LAN アダプタを管理するのに役立ちます。

E.2 NISCA プロトコルの起動

SYS$LAVC_START_BUS サブルーチンは,指定された LAN アダプタで NISCA プロトコルを起動します。SYS$LAVC_START_BUS ルーチンを使用するには,以下のパラメータを指定します。

パラメータ 説明
BUS_NAME 参照によって渡される LAN アダプタ名バッファを表現する文字列記述子。 LAN アダプタ名は 15 文字以内でなければならない。

例: 以下の Fortran サンプル・プログラムでは, SYS$LAVC_START_BUS を使用して, LAN アダプタ XQA で NISCA プロトコルを起動します。


PROGRAM START_BUS 
 
EXTERNAL SYS$LAVC_START_BUS 
INTEGER*4 SYS$LAVC_START_BUS 
INTEGER*4 STATUS 
 
STATUS = SYS$LAVC_START_BUS ( 'XQA0:' ) 
 
CALL SYS$EXIT ( %VAL ( STATUS )) 
 
END 

E.2.1 状態

SYS$LAVC_START_BUS サブルーチンは, 表 E-2 に示すように,レジスタ R0 に状態値を返します。

表 E-2 SYS$LAVC_START_BUS の状態
状態 結果
Success PEDRIVER が指定されたアダプタで NISCA プロトコルを起動しようとしていることを示す。
Failure PEDRIVER が指定された LAN アダプタでプロトコルを起動できないことを示す。

E.2.2 エラー・メッセージ

SYS$LAVC_START_BUS は,以下の表に示すエラー状態コードを返すことがあります。

状態コード 説明
SS$_ACCVIO この状態は以下の場合に返される。

  • 引数リストにアクセスできない。

  • LAN アダプタ名バッファ記述子にアクセスできない。

  • LAN アダプタ名バッファにアクセスできない。

SS$_DEVACTIVE バスがすでに存在する。PEDRIVER は,NISCA プロトコルのためにすでにこの LAN アダプタを使用しようとしている。
SS$_INSFARG 指定された引数の数が不足している。
SS$_INSFMEM バス・データ構造を作成するのに必要な非ページング・プールが不足している。
SS$_INVBUSNAM 指定されたバス名が不正である。指定されたデバイスは,プロトコルに対して使用できる LAN アダプタでない。
SS$_IVBUFLEN この状態値は以下の場合に返される。

  • LAN アダプタ名に文字が含まれていない (長さ = 0)。

  • LAN アダプタ名が 15 文字より長い。

SS$_NOSUCHDEV この状態値は以下の場合に返される。

  • 指定された LAN アダプタ名が,このシステムで PEDRIVER から使用できる LAN デバイスに対応していない。

  • LAN ドライバがシステムにロードされていない。 NET$AR_LAN_VECTOR の値が 0 である。

  • PEDRIVER が初期化されていない。PEDRIVER の PORT 構造を使用できない。

注意: このルーチンを呼び出すことにより,エラー・ログ・メッセージが作成されることがある。

SS$_NOTNETDEV PEDRIVER が指定された LAN デバイスをサポートしない。
SS$_SYSVERDIF 指定された LAN デバイスのドライバは,PEDRIVER で必要とされている VCI インタフェース・バージョンをサポートしない。

PEDRIVER は,指定された LAN アダプタへの接続を作成できなかったことを示す他のエラーを返すことがあります。

E.3 NISCA プロトコルの停止

SYS$LAVC_STOP_BUS ルーチンは,指定された LAN アダプタで NISCA プロトコルを停止します。

警告: すべての LAN アダプタで NISCA プロトコルを停止すると,サテライトがハング状態になり,クラスタ・システムが CLUEXIT バグチェックで異常終了することがあります。

このルーチンを使用するには,以下の表に示すパラメータを指定します。

パラメータ 説明
BUS_NAME 参照によって渡される LAN アダプタ名バッファを表す文字列記述子。 LAN アダプタ名は 15 文字以内でなければならない。

例: 以下の Fortran サンプル・プログラムでは,SYS$LAVC_STOP_BUS を使用して,LAN アダプタ XQB で NISCA プロトコルを停止する方法を示しています。


PROGRAM STOP_BUS 
 
EXTERNAL SYS$LAVC_STOP_BUS 
INTEGER*4 SYS$LAVC_STOP_BUS 
INTEGER*4 STATUS 
 
STATUS = SYS$LAVC_STOP_BUS ( 'XQB' ) 
 
CALL SYS$EXIT ( %VAL ( STATUS )) 
 
END 

E.3.1 状態

SYS$LAVC_STOP_BUS サブルーチンは, 表 E-3 に示すように,レジスタ R0 に状態値を返します。

表 E-3 SYS$LAVC_STOP_BUS から返される状態
状態 結果
Success PEDRIVER が,指定されたアダプタで NISCA プロトコルをシャットダウンしようとしていることを示す。
Failure PEDRIVER が,指定された LAN ドライバでプロトコルをシャットダウンできないことを示す。しかし,PEDRIVER はシャットダウンを非同期的に実行するため,他の理由で PEDRIVER がシャットダウンを完了できないことがある。

LAVC$STOP_BUS モジュールが正常に実行されると,以下のデバイス・アテンション・エントリがシステム・エラー・ログに書き込まれます。


DEVICE ATTENTION...
NI-SCS SUB-SYSTEM...
FATAL ERROR DETECTED BY DATALINK...

さらに,以下の 16 進数がエントリの STATUS フィールドに書き込まれます。

最初のロングワード (00000001)
2 番目のロングワード (00001201)

このエラー・ログ・エントリは,期待される動作を示すもので,無視してもかまいません。しかし,STATUS フィールドの最初のロングワードが 16 進数の 00000001 以外の値の場合は,エラーが発生しているため,さらに調査が必要になることがあります。

E.3.2 エラー・メッセージ

SYS$LAVC_STOP_BUS は,以下の表に示すエラー状態コードを返すことがあります。

状態コード 説明
SS$_ACCVIO この状態は以下の場合に返される。

  • 引数リストにアクセスできない。

  • LAN アダプタ名バッファ記述子にアクセスできない。

  • LAN アダプタ名バッファにアクセスできない。

SS$_INVBUSNAM 指定されたバス名が不正である。指定されたデバイスは, NISCA プロトコルに対して使用できる LAN アダプタでない。
SS$_IVBUFLEN この状態値は以下の場合に返される。

  • LAN アダプタ名に文字が含まれていない (長さ = 0)。

  • LAN アダプタ名の長さが 15 文字より長い。

SS$_NOSUCHDEV この状態値は以下の場合に返される。

  • 指定された LAN アダプタ名が,このシステムの PEDRIVER から使用できる LAN デバイスに対応していない。

  • LAN ドライバがこのシステムにロードされていない。 NET$AR_LAN_VECTOR が 0 である。

  • PEDRIVER が初期化されていない。PEDRIVER の PORT 構造を使用できない。

E.4 ネットワーク・コンポーネントの表現の作成

SYS$LAVC_DEFINE_NET_COMPONENT サブルーチンは,物理ネットワーク・コンポーネントの表現を作成します。

パラメータを指定するには,以下の形式を使用します。

STATUS = SYS$LAVC_DEFINE_NET_COMPONENT (

component_description,
nodename_length,
component_type,
lan_hardware_addr,
lan_decnet_addr,
component_id_value )

表 E-4 は, SYS$LAVC_DEFINE_NET_COMPONENT のパラメータについて説明しています。

表 E-4 SYS$LAVC_DEFINE_NET_COMPONENT のパラメータ
パラメータ 説明
component_description ネットワーク・コンポーネント名バッファを表す文字列記述子のアドレス。ネットワーク・コンポーネント名の長さは, COMP$C_MAX_NAME_LEN に指定した文字数以下でなければならない。
nodename_length ノード名の長さのアドレス。このアドレスは,COMP$C_NODE タイプの場合は,ネットワーク・コンポーネント名バッファの先頭である。他のコンポーネント・タイプの場合は,0 を使用しなければならない。
component_type コンポーネント・タイプのアドレス。これらの値は, SYS$LIBRARY:LIB.MLB にある $PEMCOMPDEF によって定義される。
lan_hardware_addr コンポーネントの LAN ハードウェア・アドレス (6 バイト) を格納しているバッファの文字列記述子のアドレス。 COMP$C_ADAPTER タイプの場合は,この値を指定しなければならない。他のコンポーネント・タイプの場合は,この値は省略可能である。
lan_decnet_addr コンポーネントの LAN DECnet アドレス (6 バイト) を格納しているバッファの文字列記述子。これはすべてのコンポーネント・タイプで省略可能なパラメータである。
component_id_value コンポーネント ID 値が書き込まれるロングワードのアドレス。

E.4.1 状態

正常終了すると, SYS$LAVC_DEFINE_NET_COMPONENT サブルーチンは COMP データ構造を作成し,ID 値を返します。このサブルーチンは,ユーザ指定パラメータをデータ構造にコピーし,参照カウントを 0 に設定します。

コンポーネント ID 値は 32 ビットの値であり,ネットワーク・コンポーネントとの間に 1 対 1 の対応関係があります。これらのコンポーネント ID の一覧は,パケットがあるノードから別のノードに転送されるときに使用されるコンポーネントを指定するために,SYS$LAVC_DEFINE_NET_PATH に渡されます。

E.4.2 エラー・メッセージ

SYS$LAVC_DEFINE_NET_COMPONENT は,以下の表に示すエラー状態コードを返すことがあります。

状態コード 説明
SS$_ACCVIO この状態は以下の場合に返される。

  • ネットワーク・コンポーネント名バッファ記述子にアクセスできない。

  • ネットワーク・コンポーネント名バッファにアクセスできない。

  • 0 以外の値が指定された場合,コンポーネントの LAN ハードウェア・アドレスにアクセスできない。

  • 0 以外の値が指定された場合,コンポーネントの LAN DECnet アドレスにアクセスできない。

  • lan_hardware_addr 文字列記述子にアクセスできない。

  • lan_decnet_addr 文字列記述子にアクセスできない。

  • component_id_value アドレスに書き込みアクセスできない。

  • component_type アドレスにアクセスできない。

  • nodename_length アドレスにアクセスできない。

  • 引数リストにアクセスできない。

SS$_DEVACTIVE 分析プログラムはすでに実行されている。ネットワーク・コンポーネントおよびネットワーク・コンポーネント・リストを定義する前に, SYS$LAVC_DISABLE_ANALYSIS を呼び出すことにより,分析を停止しなければならない。
SS$_INSFARG 指定された引数の数が不足している。
SS$_INVCOMPTYPE コンポーネント・タイプが 0 であるか,または COMP$C_INVALID 以上の値である。
SS$_IVBUFLEN この状態値は以下の場合に返される。

  • コンポーネント名に文字が指定されていない (長さ = 0)。

  • コンポーネント名の長さが COMP$C_MAX_NAME_LEN より長い。

  • ノード名に文字が含まれておらず (長さ = 0),コンポーネント・タイプが COMP$C_NODE である。

  • ノード名の長さが 8 文字より長く,コンポーネント・タイプが COMP$C_NODE である。

  • lan_hardware_addr 文字列記述子の長さが 6 文字未満である。

  • lan_decnet_addr の長さが 6 文字未満である。

E.5 ネットワーク・コンポーネント・リストの作成

SYS$LAVC_DEFINE_NET_PATH サブルーチンは, 2 つのネットワーク・ノード間にネットワーク・コンポーネントの方向付きリストを指定します。方向付きリストとは,パケットがクラスタ・ネットワーク内で,障害分析ノードから他のノードに移動するときに通過するすべてのコンポーネントのリストです。

パラメータを指定するには,以下の形式を使用します。

STATUS = SYS$LAVC_DEFINE_NET_PATH (

network_component_list,
used_for_analysis_status,
bad_component_id )

表 E-5 は, SYS$LAVC_DEFINE_NET_PATH のパラメータについて説明しています。

表 E-5 SYS$LAVC_DEFINE_NET_PATH のパラメータ
パラメータ 説明
network_component_list パス内の各コンポーネントのコンポーネント ID 値を格納しているバッファの文字列記述子のアドレス。ネットワーク・メッセージが通過する順に,コンポーネント ID 値を指定する。コンポーネントは以下の順に指定する。

  1. ローカル・ノード

  2. ローカル LAN アダプタ

  3. 中間のネットワーク・コンポーネント

  4. リモート・ネットワーク LAN アダプタ

  5. リモート・ノード

ネットワーク・パス内の 2 つのノードと 2 つの LAN アダプタを指定しなければならない。バッファ長は 15〜509 バイトの範囲でなければならない。

used_for_analysis_status 書き込まれるロングワード状態値のアドレス。この状態は,このネットワーク・パスがネットワーク障害分析を行う価値があるかどうかを示す。
bad_component_id コンポーネント・リストを処理しているときにエラーが検出された場合,エラーのあるコンポーネント ID が格納されるロングワード値のアドレス。


前へ 次へ 目次 索引