|
≫ |
|
|
|
この章では,$MOUNT および $DISMOU のシステム・サービスを使って,
シャドウセットを,作成,マウント,ディスマウント,
解除する方法を説明します。また,$GETDVI システム・サービスを使って,
シャドウセットの現在の状態を取得する方法も説明します。
これらの OpenVMS システム・サービスについての詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
ユーザが作成するプログラムの中で $MOUNT システム・サービスを使ってシャドウセットを作成し管理することができます。
シャドウセットの作成,マウント,デバイスの追加を行う $MOUNT の呼び出しには,
同じ構文を使います。システムにマウント操作を行わせるためには,
$MOUNT 項目リストを作成する必要があります。
この項目リストでは,シャドウセットに対応する仮想ユニットとこのシャドウセットに含まれるメンバ (物理デバイス) を指定します。
$MOUNT システム・サービス呼び出しの形式は,次のとおりです。
例 5-1 「シャドウセットを作成してマウントするための項目リスト」 では,シャドウセットを作成してマウントするための $MOUNT 項目リストを作成する MACRO-32 文を示します。
例 5-1 シャドウセットを作成してマウントするための項目リスト
DSA23: .ASCID /DSA23:/
MEMBER001: .ASCID /$4$DUA9:/
MEMBER002: .ASCID /$4$DUA5:/
VOLUME_LABEL: .ASCID /MYVOLUME/
VOLUME_LOGNM: .ASCID /DISK$MYVOLUME/
.MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0
.WORD SIZE, CODE
.ADDRESS BUFFER, RETURN
.ENDM .ITEM
ITMLST: .ITEM 6, MNT$_SHANAM, DSA23
.ITEM 8, MNT$_SHAMEM, MEMBER001
.ITEM 8, MNT$_SHAMEM, MEMBER002
.ITEM 8, MNT$_VOLNAM, VOLUME_LABEL
.ITEM 13, MNT$_LOGNAM, VOLUME_LOGNM
.LONG 0
|
以下のリストで,例 5-1 「シャドウセットを作成してマウントするための項目リスト」 の要点を説明します。
-
仮想ユニット項目記述子が最初にあることに注意してください。
この項目記述子では,DSA23 を仮想ユニットの名前として指定しています。
仮想ユニットとシャドウセット・メンバに名前を付けるための構文については,
4.2 項 「シャドウセットの作成」 を参照してください。
-
仮想ユニット項目記述子の後に,2 つのメンバ・ユニット項目記述子が続きます。
Volume Shadowing for OpenVMS はディスクをシャドウセットに追加するときに必要な操作のタイプ (コピーかマージ) を自動的に判断するため,
すべてのデバイスが MNT$_SHAMEM 項目記述子でマウントされます。
これらの項目記述子は物理デバイス $4$DUA9 と $4$DUA5 が,
DSA23 で表されたシャドウセットに追加されることを指定しています。
-
メンバ項目記述子の後には,MYVOLUME をシャドウセットのボリューム・ラベルとして指定する項目記述子が続きます。
-
最後の項目記述子では,
DISK$MYVOLUME をシャドウセットの論理名として指定しています。
シャドウセットに別のデバイスを後で追加する場合は,
仮想ユニットの名前とシャドウセットに追加したいデバイスの名前を含む項目リストを指定して,$MOUNT 呼び出しを実行します。
例 5-2 「シャドウセットにメンバを追加する項目リスト」 には,
例 5-1 「シャドウセットを作成してマウントするための項目リスト」 で作成されたシャドウセットに物理デバイス $4$DUA10: を追加する方法を示します。
例 5-2 シャドウセットにメンバを追加する項目リスト
DSA23: .ASCID /DSA23:/
MEMBER003: .ASCID /$4$DUA10:/
VOLUME_LABEL: .ASCID /MYVOLUME/
VOLUME_LOGNM: .ASCID /DISK$MYVOLUME/
.MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0
.WORD SIZE, CODE
.ADDRESS BUFFER, RETURN
.ENDM .ITEM
ITMLST: .ITEM 6, MNT$_SHANAM, DSA23
.ITEM 9, MNT$_SHAMEM, MEMBER003
.ITEM 8, MNT$_VOLNAM, VOLUME_LABEL
.ITEM 13, MNT$_LOGNAM, VOLUME_LOGNM
.LONG 0
|
5.2 項 「$MOUNT シャドウセット項目コード」 では,$MOUNT シャドウセット項目コードを簡単に説明し,正しい$MOUNT 項目リストを作成する方法を説明します。
$MOUNT サービスと項目コードの詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
この節では,シャドウセット管理に役に立つ SYS$MOUNT 項目コードについて簡単に説明します。
SYS$MOUNT,項目コード,その他のシステム・サービスの詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
5.2.1 MNT$_FLAGS 項目コード | |
MNT$_FLAGS 項目コードは,各々のビットでマウント操作のオプションを指定する,ロングワードのビット・ベクタを指定します。
バッファには,ビット・ベクタのロングワードが必要です。
$MNTDEF マクロでは,ビット・ベクタ内の各々のオプション (ビット) の記号名を定義しています。
ビット・ベクタは,必要なオプションの記号名を論理和演算で結合して作ります。
以下のリストは,
各々のシャドウセット・オプションの記号名の説明です。
-
MNT$M_INCLUDE は,シャドウセットをディスマウントやシステム障害の直前の状態に自動的に再構築します。
完全なシャドウセットをマウントするときにこのオプションを使います。
-
MNT$M_NOCOPY は,各物理デバイスをシャドウセットにマウントしたり追加したりするときの自動コピー操作を無効にします。
このオプションによって,意図していないデバイスをシャドウセットに追加したときに発生する,不注意によるデータ喪失を避けることができます。
-
MNT$M_MINICOPY_REQUIRED を指定すると,そのディスクでミニコピーが無効になっているときに,$MOUNT が失敗します。
-
MNT$M_MINICOPY_OPTIONAL を指定すると,そのディスクでミニコピーが有効になっていなくても,$MOUNT が続行されます。
-
MNT$M_OVR_SHAMEM を指定すると,以前シャドウセットのメンバであったディスクを,
シャドウセットとしてではなく単独のディスクとしてマウントできます。
このオプションを指定しないと,$MOUNT は不慮のデータ削除を避けるために,
ボリュームを自動的に書き込み保護にしてマウントします。
このオプションを指定するためには,
ユーザはそのボリュームの所有者であるか VOLPRO 特権を持っている必要があります。
このオプションを使うと,シャドウセット世代番号はボリュームから削除されます。
その後再びそのボリュームを以前のシャドウセットにマウントすると,
$MOUNT はそれを無関係なボリュームであるとみなし,コピー操作をマークします。
-
MNT$M_REQUIRE_MEMBERS は,$MOUNT システム・サービスを有効にするために MOUNT コマンドが発行されたときに,/SHADOW 修飾子で指定した
すべての物理デバイスが,アクセス可能である必要があるかどうかを制御します。
-
MNT$M_VERIFY_LABELS は,シャドウセットに追加されるすべてのメンバが,
SCRATCH_DISK というボリューム・ラベルを持っていることを要求します。
これにより,間違ったディスクがシャドウセットに追加されないことが保証されます。
VERIFY_LABELS を使う予定がある場合は,
最初にディスクにラベルを割り当てる必要があります。
これは,セットに追加するディスクを SCRATCH_DISK というラベルで初期化するか,
SET VOLUME/LABEL コマンドでディスクにラベルを指定するかのどちらかで行います。
デフォルトは NOVERIFY_LABEL です。これは,コピーのターゲットのラベルを確認しないことを意味します。
このデフォルト動作は,
このオプションが導入される前の動作と同じです。
5.2.2 MNT$_SHANAM 項目コード | |
マウントする仮想ユニットの名前を指定します。
バッファは,DSAn の形式の仮想ユニット名を格納する 1 ~ 64 文字の文字列型です。
この文字列には,論理名を指定することもできます。
論理名の場合は,仮想ユニット名に変換できなければなりません。
項目リストには,少なくとも 1 つの MNT$_SHANAM 項目記述子が必要です。
複数のシャドウセットを含むボリューム・セットをマウントする場合は,
ボリューム・セットに含まれる各々の仮想ユニットには 1 つの MNT$_SHANAM 項目記述子がなければなりません。
5.2.3 MNT$_SHAMEM 項目コード | |
シャドウセットにマウントする物理デバイスの名前を指定します。シャドウイング・ソフトウェアは,
MNT$_SHANAM 項目記述子で指定される仮想ユニットに対応するシャドウセットにこのデバイスを追加します。
MNT$_SHANAM 記述子は,
デバイス名を持つ 1 ~ 64 文字の文字列型です。この文字列は物理デバイス名でも,
論理名でも構いませんが,
論理名の場合は物理デバイス名に変換できなくてはなりません。
項目リストには,メンバを指定する項目記述子が,少なくとも 1 つ必要です。
この項目記述子は MNT$_SHANAM 項目記述子の後になくてはなりません。
5.2.4 $MOUNT 項目リスト作成時の要点 | |
$MOUNT 項目リストを作成する場合に,覚えておかなくてはならない要点がいくつかあります。
-
シャドウセットをマウントするすべての項目リストには,
仮想ユニットを指定する少なくとも 1 つの項目記述子と,
メンバを指定する少なくとも 1 つの項目記述子が必要です。
-
仮想ユニットを指定する項目記述子は,シャドウセットに含まれるメンバを指定する項目記述子より前になければなりません。
その後に,MNT$_SHAMEM 項目コードを使って,その仮想ユニットに対応するメンバをいくつでも指定することができます。
-
ボリューム・セットをマウントする場合,
項目リストには各々の仮想ユニットの項目記述子が入っている必要があります。
仮想ユニットの項目記述子の後には,
その仮想ユニットに対応するメンバを指定する項目記述子が続きます。
-
シャドウセットをマウントするとき,デバイスをシャドウセットに追加する前にコピー操作やマージ操作が必要かどうかをシステムが判断します。
したがって,デバイスがこれらの操作を必要としているかどうかにかかわらず,
MNT$_SHAMEM 項目コードを使って,任意のメンバを指定することができます。
ボリューム・セットをマウントするときは,必ず最大のストレージ容量を持つボリュームが最初になるように並べます。
最大のボリュームを最初に指定する理由は,MOUNT コマンド行に並べられた最初のボリュームに,
ボリューム・セットとディレクトリの情報が書き込まれるからです。
小容量のディスクではボリューム・セットとディレクトリの情報を記録するためのストレージが十分確保できないときがあります。
例 5-3 「ボリューム・セットを作成してマウントするための項目リスト」 では,2 つのシャドウセットを持つボリューム・セットをマウントするための $MOUNT システム・サービス項目リストを作成する MACRO-32 文を示します。
例 5-3 ボリューム・セットを作成してマウントするための項目リスト
DSA23: .ASCID /DSA23:/
DSA51: .ASCID /DSA51:/
MEMBER009: .ASCID /$4$DUA9:/
MEMBER005: .ASCID /$4$DUA5:/
MEMBER010: .ASCID /$4$DUA10:/
MEMBER012: .ASCID /$4$DUA12:/
MEMBER003: .ASCID /$4$DUA3:/
MEMBER034: .ASCID /$4$DUA34:/
VOLUME_WORK1: .ASCID /WORK1/
VOLUME_WORK2: .ASCID /WORK2/
VOLUME_LOGNM: .ASCID /WRKD$/
.MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0
.WORD SIZE, CODE
.ADDRESS BUFFER, RETURN
.ENDM .ITEM
ITMLST: .ITEM 6, MNT$_SHANAM, DSA23
.ITEM 8, MNT$_SHAMEM, MEMBER009
.ITEM 8, MNT$_SHAMEM, MEMBER005
.ITEM 9, MNT$_SHAMEM, MEMBER010
.ITEM 5, MNT$_VOLNAM, VOLUME_WORK1
.ITEM 6, MNT$_SHANAM, DSA51
.ITEM 9, MNT$_SHAMEM, MEMBER012
.ITEM 8, MNT$_SHAMEM, MEMBER003
.ITEM 9, MNT$_SHAMEM, MEMBER034
.ITEM 5, MNT$_VOLNAM, VOLUME_WORK2
.ITEM 5, MNT$_LOGNAM, VOLUME_LOGNM
.LONG
|
以下のリストで,例 5-3 「ボリューム・セットを作成してマウントするための項目リスト」 の要点を説明します。
-
ボリューム・セットの最初のボリュームの仮想ユニット項目記述子が最初にあることに注意してください。この項目記述子では,
ボリューム・セットの最初の仮想ユニットの名前として DSA23 を指定しています。
-
仮想ユニット項目記述子の後には,最初の仮想ユニットに対応する各々のデバイス,
すなわちメンバ $4$DUA9,$4$DUA5,および $4$DUA10 の項目記述子が続きます。
-
メンバ項目記述子の後には,ボリューム・セット内の最初のシャドウセットのボリューム・ラベルが WORK1 であることを指定する項目記述子が続きます。
-
ボリューム・セット内の最初のシャドウセットの記述子の後には,
ボリューム・セット内の 2 番目のシャドウセットについて同様の項目記述子が続きます。
これらの項目記述子では,2 番目の仮想ユニットが DSA51,デバイスが $4$DUA12,$4$DUA3,および$4$DUA34,ボリューム・ラベルが WORK2 であることを指定しています。
-
最後の項目記述子では,
ボリューム・セット全体の論理名を WRKD$ とすることを指定しています。
$DISMOU システム・サービスを使うと,以下の 4 つのシャドウセット
操作を行うことができます。
-
-
-
クラスタ内の 1 つのノードから,
クラスタにまたがるシャドウセットをディスマウントする
-
$DISMOU システム・サービス呼び出しの形式は,次のとおりです。
$DISMOU の動作は,シャドウセット仮想ユニットとシャドウセット・メンバのどちらを devnam 引数に指定するかに依存します。
$DISMOU サービスとその引数についての詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
5.4.1 シャドウセットからのメンバの削除 | |
シャドウセットから 1 つのメンバを削除するには,
$DISMOU を呼び出す必要があります。devnam 引数では,
削除したいシャドウセット・メンバの名前を指定します。指定したメンバは,
flags 引数に DMT$M_NOUNLOAD オプションを指定しない限り,
ディスクの回転が止められます。
例 5-4 「シャドウセットからのメンバの削除」 の MACRO-32 コードは,
シャドウセットからメンバ $2$DUA9 を削除する $DISMOU 呼び出しを示しています。
例 5-4 シャドウセットからのメンバの削除
$DMTDEF
FLAGS: .LONG DMT$M_NOUNLOAD
MEMBER001: .ASCID /$2$DUA9:/
.
.
.
$DISMOU_S -
devnam = MEMBER001, -
flags = FLAGS
.
.
.
.END
|
5.4.2 シャドウセットのディスマウントと解除 | |
シャドウセットを 1 つのノードからディスマウントするには,
$DISMOU を呼び出す必要があります。devnam 引数では,
ディスマウントしたいシャドウセットに対応する仮想ユニットの名前を指定します。
シャドウセットをクラスタ単位でディスマウントするには,
この呼び出しの flags 引数で DMT$M_CLUSTER オプションを指定します。
シャドウセットを OpenVMS Cluster システムの 1 つのノードからディスマウントしても,OpenVMS Cluster システムの別のノードでマウントしたままだと,DMT$M_NOUNLOAD フラグを指定しなくても,
シャドウセット内のどのシャドウセット・メンバもディスクの回転が止まりません。
この呼び出しが完了したとき,この呼び出しを実行したノードではシャドウセットは使えなくなりますが,シャドウセットをマウントしているクラスタ内の他のノードでは,シャドウセットは相変わらず使える状態になっています。
シャドウセットをディスマウントするノードが,シャドウセットをマウントしている唯一のノードの場合には,シャドウセットは解除されます。
シャドウセット・メンバ・デバイスは,
DMT$M_NOUNLOAD フラグを指定していない限り,回転が止められます。
例 5-5 「シャドウセットをローカルにディスマウントして解除する」 の MACRO-32 コードは,
$DISMOU システム・サービスを使って,仮想ユニット DSA23 に対応するシャドウセットをディスマウントする方法を示しています。
例 5-5 シャドウセットをローカルにディスマウントして解除する
$DMTDEF
FLAGS: .LONG 0
DSA23: .ASCID /DSA23:/
.
.
.
$DISMOU_S -
devnam = DSA23, -
flags = FLAGS
.
.
.
.END
|
シャドウセットが解除されると,以下の状況になります。
-
シャドウセットのメンバだった各々のディスクは,
別の目的で単一ディスクとしてマウントできます。
ただし,各々のボリュームには,シャドウセットの一部であったことがマークされています。シャドウセットを解除した後も,各々のボリュームには,
以前にシャドウセット・メンバであったことを示すボリューム・シャドウイング世代番号が残ります (シャドウセットの外部でマウントし直していない場合)。
シャドウセットの一部であったことがマークされているボリュームは,不慮のデータ抹消を防ぐために,
自動的にソフトウェアによる書き込み保護が行われます。
これらのボリュームは,システム・サービスの MNT$_FLAGS 項目コードで MNT$M_OVR_SHAMEM オプションを指定しない限り,
シャドウセットの外部では,書き込み用にマウントすることはできません。
-
例 5-6 「クラスタにまたがるシャドウセットのディスマウントと解除」 の MACRO-32 コードは,
クラスタにまたがってディスマウントを行う $DISMOU システム・サービス呼び出しを示しています。
シャドウセットが最後のノードからディスマウントされたとき,
シャドウセットは解除されます。
例 5-6 クラスタにまたがるシャドウセットのディスマウントと解除
$DMTDEF
FLAGS: .LONG DMT$M_CLUSTER
DSA23: .ASCID /DSA23:/
.
.
.
$DISMOU_S -
devnam = DSA23, -
flags = FLAGS
.
.
.
.END
|
クラスタ内のすべてのノードからシャドウセットをディスマウントする場合には,
flags 引数で DMT$M_CLUSTER オプションを指定する必要があります。
クラスタ内の各々のノードからシャドウセットをディスマウントしたら (つまり,シャドウセットをマウントしているホストの数が 0 になったら),
ボリューム・シャドウイング・ソフトウェアは,そのシャドウセットを解除します。
5.4.3 シャドウセット操作での $DISMOU フラグの設定 | |
表 5-1 「$DISMOU フラグ・オプション」 は,$DISMOU の flags 引数のオプションと,これらのオプションが指定された場合のシャドウセットの動作を説明しています。
これらのフラグ・オプションの詳細は,『HP OpenVMS System Services Reference Manual』の $DISMOU サービスの説明を参照してください。
表 5-1 $DISMOU フラグ・オプション オプション | 説明 |
---|
DMT$M_MINICOPY_REQUIRED | ミニコピーが有効になっていないディスクでは,$DISMOU は失敗します。 |
DMT$M_MINICOPY_OPTIONAL | ディスク上でミニコピーが有効になっているかどうかにかかわらず,$DISMOU が実行されます。 |
DMT$M_FORCE | デバイスの接続が失われ,シャドウセットがマウント検査の状態になったときに,このフラグが設定されていると,
指定されたシャドウセット・メンバをシャドウセットから即座に削除します。 |
DMT$M_UNLOAD | すべてのシャドウイング関連の要求に対して有効。 |
DMT$M_CLUSTER | すべてのシャドウイング関連の要求に対して有効。 |
DMT$M_ABORT | 仮想ユニットでは有効,メンバでは無視。 |
DMT$M_UNIT | 仮想ユニットとメンバで無視。 |
この節では,$DISMOU と $MOUNT のシステム・サービスを使って,
シャドウセットをマウントしたり,使ったりした場合に,
返される状態値について説明します。
これらのサービスから返される状態値の完全なリストについては,『HP OpenVMS System Services Reference Manual』を参照してください。
$MOUNT で状態値 SS$_BADPARAM が返された場合,
指定した項目リストに以下のエラーのいずれかが含まれている可能性があります。
-
MNT$_SHANAM 項目記述子のいずれかで指定した仮想ユニットが,
DSAn: 以外の名前になっています。
-
項目リスト内で,MNT$_SHAMEM 項目記述子が,
MNT$_SHANAM 項目記述子よりも前に置かれています。
-
項目リスト内に MNT$_SHANAM 項目記述子がありますが,
その後に MNT$_SHAMEM 項目記述子が続いていません。
-
単一のシャドウセットを指定している一連の項目記述子からなる項目リストの中ほどに MNT$_DEVNAM 項目記述子があります。
シャドウセットと同時に,シャドウ化しないディスクを含むボリューム・セットを構築することは可能ですが,シャドウ化しないディスクを指定する MNT$_DEVNAM 項目記述子を使う場合には,
これを,仮想ユニットを指定する MNT$_SHANAM 項目記述子と,
仮想ユニットに対応するシャドウセットのメンバを指定する項目記述子との間に置くことはできません。
-
以下のリストは,シャドウセットをマウントして使うときに,
$MOUNT が返す可能性のあるステータス・メッセージです。
-
-
SS$_SHACHASTA (マウント操作中に,シャドウ状態が変化した)
-
SS$_MEDOFL (物理ユニットにアクセスできない)
-
SS$_INCSHAMEM (物理ディスクが,シャドウセットと互換性がない)
シャドウイング関連のステータス・メッセージについては,付録 A 「メッセージ」も参照してください。
$GETDVI システム・サービスは,システム上のシャドウセット・デバイスの
情報の取得に役立ちます。指定するシャドウセット項目コードに従って,
以下のタイプの情報を調べることができます。
-
デバイスが,シャドウセット仮想ユニットとシャドウセット・メンバのどちらか
-
デバイスが,コピー操作やマージ操作のターゲットかどうか
-
特定のデバイスをメンバとするシャドウセットに対応する仮想ユニットの名前
-
仮想ユニットとすべてのメンバを含む,シャドウセット全体のメンバ構成
-
$GETDVI 呼び出しの形式は,次のとおりです。
SYS$GETDVI [efn],[chan],[devnam],itmlst,[iosb],[astadr],[astprm],[nullarg]
$GETDVI サービスと $GETDVIW サービス,それらの引数についての詳細は,『HP OpenVMS System Services Reference Manual』を参照してください。
5.6.1 $GETDVI シャドウセット項目コード | |
表 5-2 「SYS$GETDVI 項目コード」 は,$GETDVI シャドウセット項目コードと返される情報です。 表 5-2 SYS$GETDVI 項目コード 項目コード | 機能 |
---|
DVI$_SHDW_CATCHUP_COPYING | 論理型のロングワードを返します。
値が 1 の場合,デバイスがコピー操作のターゲットであることを示します。 | DVI$_SHDW_COPIER_NODE | コピー操作またはマージ操作をアクテフィブに実行しているノードの名前を,文字列として返します。 | DVI$_SHDW_DEVICE_COUNT | 仮想ユニット内のデバイスの総数 (コピー・ターゲットとして追加されているデバイスも含む) を,ロングワードとして返します。 | DVI$_SHDW_GENERATION | 仮想ユニットの現在の内部リビジョン番号を,クォドワードとして返します。 |
DVI$_SHDW_MASTER | 論理型のロングワードを返します。
値が 1 の場合,デバイスが仮想ユニットであることを示します。 | DVI$_SHDW_MASTER_MBR | マージ/コピー修復操作,およびシャドウセット回復操作に使用されるマスタ・メンバ・ユニットの名前を,文字列として返します。 |
DVI$_SHDW_MASTER_NAME | 指定されたデバイスがシャドウセット・メンバの場合,$GETDVI はそれが属しているシャドウセットの仮想ユニット名を返します。 シャドウセットのデバイス名は,最大 64 文字まで許されるので,
この項目記述子のバッファ・フィールド長には 64 (バイト) を指定してください。
仮想ユニットやシャドウセットのメンバでないデバイスを指定すると,
$GETDVI は空文字列を返します。 | DVI$_SHDW_MBR_COPY_DONE | 現在のメンバ・ユニットで完了しているコピー操作の割合 (パーセント) を,ロングワードとして返します。 | DVI$_SHDW_MBR_COUNT | 仮想ユニット内のフル・ソース・メンバの数を,ロングワードとして返します。
コピー・ターゲットとして追加されるデバイスは,フル・ソース・メンバではありません。 | DVI$_SHDW_MBR_MERGE_DONE | メンバで完了しているマージ操作の割合 (パーセント) を,ロングワードとして返します。 | DVI$_SHDW_MBR_READ_COST | メンバ・ユニットの現在の値のセットを,ロングワードとして返します。
この値は,ユーザ指定の値を使用するように変更することができます。 |
DVI$_SHDW_MEMBER | 論理型のロングワードを返します。
値が 1 の場合,デバイスがシャドウセット・メンバであることを示します。 |
DVI$_SHDW_MERGE_COPYING | 論理型のロングワードを返します。
値が 1 の場合,
デバイスがシャドウセットのマージ・メンバであることを示します。 | DVI$_SHDW_MINIMERGE_ENABLE | 論理値として解釈されるロングワードを返します。
値が TRUE の場合,クラスタ内のシステムに障害が発生したときに,仮想ユニットに対してフルマージではなく,ミニマージが実行されることを示します。 |
DVI$_SHDW_NEXT_MBR_NAME | シャドウセットの次のメンバのデバイス名を返します。 仮想ユニットを指定すると,$GETDVI はシャドウセットのメンバ・デバイス名を返します。
仮想ユニットでもシャドウセット・メンバでもないデバイス名を指定すると,$GETDVI は空文字列を返します。 シャドウセットのデバイス名は,最大 64 文字まで許されるので,
この項目記述子のバッファ・フィールド長には 64 (バイト) を指定してください。 | DVI$_SHDW_READ_SOURCE | この時点で読み取りに使用されるメンバ・ユニットの名前を,ロングワードとして返します。
DVI$_SHDW_READ_SOURCE は,待ち行列の長さと読み取りコスト値の合計が最も小さいユニットを読み取りに使用します。
この値は,動的な値です。 | DVI$_SHDW_SITE | 指定された値のサイト値を,ロングワードとして返します。
この値は,SET DEVICE コマンドまたは SET SHADOW コマンドで設定されます。 |
DVI$_SHDW_TIMEOUT | デバイスに設定されている,ユーザ指定のタイムアウト値を,ロングワードとして返します。
SETSHOWSHADOW ユーティリティを使用して値を設定していない場合,SYSGEN のパラメータ SHADOW_MBR_TMO の値はメンバ・ユニット用に使用され,MVTIMEOUT の値は仮想ユニット用に使用されます。 |
5.6.2 シャドウセット・メンバのデバイス名を取得する | |
シャドウセットのメンバすべてのデバイス名を取得するには,$GETDVI を繰り返し呼び出す必要があります。
最初の $GETDVI 呼び出しでは,
シャドウセットを代表する仮想ユニットとシャドウセットのメンバのデバイス名のいずれでも指定することができます。
最初の呼び出しで仮想ユニット名を指定する場合,項目リストには,
DVI$_SHDW_NEXT_MBR_NAME 項目記述子を含める必要があります。
この項目記述子内には,$GETDVI がシャドウセットの最小番号のメンバの名前を返します。
次の $GETDVI 呼び出しの devnam 引数では,
その前の呼び出しで DVI$_SHDW_NEXT_MBR_NAME 項目記述子に返されたデバイス名を指定する必要があります。
この 2 番目の呼び出しの項目リストには,
シャドウセット内で次に大きな番号のユニットの名前を受け取るために,
DVI$_SHDW_NEXT_MBR_NAME 項目記述子を含める必要があります。
この $GETDVI 呼び出しは,シャドウセットにもうメンバがないことを意味する,
空文字列を $GETDVI が返すまで繰り返す必要があります。
最初の呼び出しでシャドウセット・メンバのデバイス名を指定する場合,
シャドウセットに含まれるすべてのメンバのデバイス名を取得する前に,
そのシャドウセットに対応する仮想ユニット名を調べる必要があります。
そのため,最初の呼び出しでメンバを指定する場合,
DVI$_SHDW_MASTER_NAME 項目記述子を含む項目リストも指定する必要があります。
$GETDVI はこの記述子にシャドウセットに対応する仮想ユニットの名前を返します。
この後,5.6.2.1 項 「仮想ユニット名」 で説明した一連の $GETDVI 呼び出しを実行します。
各々の呼び出しの devnam 引数では,
前の呼び出しの DVI$_SHDW_NEXT_MBR_NAME 項目記述子に返されたデバイスの名前を指定します。
この呼び出しを,シャドウセットにもうメンバがないことを意味する,空文字列を $GETDVI が返すまで繰り返します。
|