ほとんどのリソースタイプは、リソースグループのノードリストに出現するすべてのゾーンまたはノードでメソッドを実行します。一部の少数のリソースタイプについては、リソースグループが非大域ゾーンで構成されている場合でも、大域ゾーンですべてのメソッドを実行する必要があります。これが必要となるのは、ネットワークアドレスやディスクなど、大域ゾーンからしか管理できないシステムリソースを管理しているリソースタイプの場合です。このようなリソースタイプは、リソースタイプ登録 (RTR) ファイルの中で Global_zone プロパティーを TRUE に設定することによって識別されます。
信頼できる既知のソースであるリソースタイプを除いて、Global_zone プロパティーに TRUE が設定されているリソースタイプは登録しないでください。このプロパティーに TRUE を設定したリソースタイプは、ゾーン分離をすり抜け、危険があります。
Global_zone リソースタイププロパティーが TRUE に設定されていない場合、モニターやメソッドはリソースグループのノードリストに列挙されている任意のゾーンで実行されます。
scha_control() および scha_resource_setstatus() 関数、そして scha_control および scha_resource_setstatus コマンドは、それらの関数やコマンドの実行元のゾーンで暗黙的に動作します。Global_zone リソースタイププロパティーが TRUE に等しい場合、これらの関数やコマンドは、リソースが非大域ゾーンで構成されているときに、別に呼び出される必要があります。
リソースが非大域ゾーンで構成されているときは、zonename オペランドの値が -Z オプションを通じてリソースタイプメソッドに渡されます。実装するメソッドやモニターからこれらのいずれかの関数やコマンドを呼び出す場合、正しい処理を行わないと、大域ゾーンで正しく動作しません。実装するメソッドやモニターは、リソースグループのノードリストに含まれているリソースが構成されている非大域ゾーンで動作するようにする必要があります。
実装するメソッドやモニターのコードでこれらの条件を正しく処理していることを確認するため、次の作業が行われていることをチェックしてください。
scha_control および scha_resource_setstatus コマンド呼び出しで、-Z zonename オプションを指定する。zonename には、RGM が -Z オプションを通じてデータサービスメソッドに渡すものと同じ値を使用する。
scha_control() 関数への呼び出しではなく scha_control_zone() 関数への呼び出しを含める。呼び出しでは、-Z オプションにより渡された zonename オペランドを必ず渡す。
scha_resource_setstatus() 関数への呼び出しではなく scha_resource_setstatus_zone() 関数への呼び出しを含める。呼び出しでは、-Z オプションにより渡された zonename オペランドを必ず渡す。
Global_zone リソースタイププロパティーが TRUE に等しいリソースが、ZONE_LOCAL の問い合わせの optag の値を指定して scha_cluster_get() を起動した場合、大域ゾーンの名前が返されます。この場合、呼び出した側のコードでは文字列 :zonename をローカルノード名に連結して、リソースが実際に構成されているゾーンを取得する必要があります。
同様に、呼び出した側のコードで、たとえば非大域ゾーンでのリソースの状態を問い合わせる場合は、RESOURCE_STATE の optag 値ではなく RESOURCE_STATE_NODE の optag 値を指定して、scha_resource_get() を呼び出す必要があります。この場合、RESOURCE_STATE の optag 値によって、リソースが実際に構成されている非大域ゾーンでの問い合わせではなく、大域ゾーンでの問い合わせが実行されます。
DSDL 関数は、その性質上、-Z zonename オプションを処理します。したがって、scds_initialize() 関数は、リソースが実際に構成されている非大域ゾーンに対応した、該当するリソースプロパティーおよびリソースグループプロパティーを取得します。そのほかの DSDL 問い合わせは、そのゾーンの中で暗黙的に動作します。
DSDL 関数 scds_get_zone_name() を使用すると、-Z zonename コマンド行オプションの中でメソッドに渡されたゾーンの名前を問い合わせることができます。-Z zonename が渡されていない場合には、scds_get_zone_name() 関数は NULL を返します。
次の条件がどちらも成り立つ場合、複数の Boot メソッドが大域ゾーン内で同時に実行されることがあります。
リソースグループの Nodelist に、同じ物理ノード上の複数のゾーンが含まれている。
その同じリソースグループに、Global_zone プロパティーが TRUE に設定されたリソースが 1 つ以上含まれている。