ネームサービススイッチによりサポートされているデータベースは、SMF サービスを使用して構成されます。これらのデータベースのリストを取得するには、svcfg コマンドを次の例に示すように使用します。
# svccfg -s name-service/switch listprop config config application config/default astring files config/password astring "files nis" config/group astring "files nis" config/host astring "files nis" config/network astring "nis [NOTFOUND=return] files" config/protocol astring "nis [NOTFOUND=return] files" config/rpc astring "nis [NOTFOUND=return] files" config/ether astring "nis [NOTFOUND=return] files" config/netmask astring "files nis" config/bootparam astring "nis [NOTFOUND=return] files" config/publickey astring "nis [NOTFOUND=return] files" config/netgroup astring nis config/automount astring "files nis" config/alias astring "files nis" config/service astring "files nis" config/printer astring "user nis" config/auth_attr astring "files nis" config/prof_attr astring "files nis" config/project astring "files nis"
次の表に、各データベースに格納される情報の種類を説明します。SMF の観点から、これらのデータベースは、サービスの構成可能なプロパティーであると見なされます。
|
さらに、ネームサービススイッチ内の default プロパティーによって、ほかでは定義されないすべてのデータベースのソース文字列が定義されます。すべてのデータベースとその情報が /etc ディレクトリでローカルに検出されたことを示すため、このプロパティーの値は files に設定されます。Table 2–2 に示すソースに基づき、default プロパティーの別構成を設定できます。手順については、すべてのネームデータベースのソースを変更する方法を参照してください。
default プロパティーを使用すると、データベースごとにソースを構成するのではなく、データベースに広く適用されるソースを構成することができます。
次の表では、上に示されているデータベースのネームサービススイッチで一覧表示できるソースのタイプについて説明します。
|
次の検索条件形式を使用すると、1 つまたは複数の情報ソースを選択したり、ソースが使用される順序を指定したりすることができます。
単一ソース — 情報タイプに 1 つのソースのみが含まれている場合 (files など)、スイッチを使用する検索ルーチンは、そのソース内の情報のみを検索します。情報が見つかった場合、「success」というステータスメッセージが返されます。情報が見つからない場合は、検索が停止され、「success」以外のステータスメッセージが返されます。ステータスメッセージに基づいて何をするかは、ルーチンによって異なります。
複数ソース — データベースに特定の情報タイプの複数のソースが含まれている場合、スイッチは検索ルーチンに、最初に一覧表示されているソース内を検索するよう指示します。情報が見つかった場合、「success」というステータスメッセージが返されます。最初のソースで情報が見つからない場合は、次のソースが検索されます。ルーチンは情報が見つかるか、return 処理によって中止されるまで全ソースを検索します。必要な情報がどのソースにもなかったとき、ルーチンは検索を停止し、non-success というステータスメッセージを返します。
デフォルトでは、Oracle Solaris 11 リリースで 1 番目のソースは files です。この構成によって、一覧表示されている次のソースが使用できない場合でもシステムのハングアップが回避されます。
ルーチンが情報を見つけた場合、そのルーチンは success ステータスメッセージを返します。探している情報が見つからない場合は、3 種類のエラーステータスメッセージのいずれかが返されます。表示されるステータスメッセージを次の表に示します。
|
ネームサービススイッチに、次の表に示す 2 つのアクションのいずれかでステータスメッセージに応答するよう指示できます。
|
さらに、TRYAGAIN ステータスメッセージについては、次のアクションを定義できます。
forever – 現在のソースを無期限に再試行します。
n – 現在のソースをさらに n 回再試行します。
ネームサービススイッチのステータスメッセージとアクションオプションの組み合わせによって、検索ルーチンが各ステップで何を実行するかが決定されます。ステータスメッセージとアクションオプションの組み合わせによって、検索条件が構成されます。
スイッチのデフォルトの検索条件は、どのソースでも同じです。この一覧には、いくつかの検索条件の説明が含まれています。
UNAVAIL=continue。次のネームサービススイッチソースに移動し、検索を続行します。次のソースがなければ、「NOTFOUND」というステータスを返します。
NOTFOUND=continue。次のネームサービススイッチソースに移動し、検索を続行します。次のソースがなければ、「NOTFOUND」というステータスを返します。
TRYAGAIN=3。現在のソースを 3 回検索します。TRYAGAIN アクションは、操作を 3 回再試行したあとで continue に遷移し、次のネームサービススイッチソースを検索します。
デフォルトの検索条件は、前の一覧に示されている STATUS=action 構文を使用して、ほかの何らかの条件を明示的に指定することによって変更できます。手順については、データベースの検索条件を構成する方法を参照してください。
クライアントのライブラリルーチンには、ネームサービススイッチで特定の SMF プロパティーまたは default の SMF プロパティーが定義されていない場合や、プロパティーが構文的に正しくない場合に使用される、コンパイル時に組み込まれるデフォルトのエントリが含まれています。通常、これらのコンパイル時に組み込まれるデフォルトは「files」のみです。
auto_home テーブル、auto_master テーブルとマップのスイッチ検索基準は、automount と呼ばれる 1 つのカテゴリに統合されます。
timezone テーブルではネームサービススイッチが使用されないため、このテーブルはスイッチのプロパティーリストに含まれていません。