サーバ/エンジンが名前を取得する方法

各 Adaptive Server Anywhere (SQL Anywhere) データベース・システムには、データベースを管理するデータベース・サーバが必要となります。他のアプリケーションがデータベース・ファイルを直接扱うことはありせん。つまり、それらの各アプリケーションは、いずれにしてもデータベース・サーバを通じて通信することになります。そのため、データベースへの排他的な通信ポータルとしてサーバを扱う必要があります。したがって、エンジンがないと、データベースにはアクセスできません。

データベース・サーバ (データベース・エンジンとも呼ばれる) を起動すると、起動のプロセスでそのサーバに必ず名前が与えられます。-n コマンドライン・オプションを使用すると、サーバ・スイッチとしてサーバに名前を付けたり、データベース・スイッチとしてデータベースに名前を付けることができます。このスイッチの意味は、その位置によって異なるので注意してください。サーバ名とデータベース名は、データベースに接続するときにクライアント・アプリケーションが使用する接続パラメータ内にあります。サーバ名は、デスクトップ・アイコンと、サーバ・ウィンドウのタイトル・バーに表示されます。

ネットワーク上の他のサーバ名と競合しないようにする場合や、クライアント・アプリケーションのユーザに意味のある名前を提供する場合に、データベース・サーバ名を指定することもあります。サーバは、存続している間 (つまり停止されるまで) は指定された名前を維持します。

最初のデータベース・ファイルの前に -n スイッチを指定すると、サーバに名前を付けることができます。たとえば、次のコマンド・ラインを使用すると、マウントされた asademo データベースを使ってサーバが起動され、そのサーバに Test という名前が付けられます。

dbeng8 -n Test asademo.db

データベースを指定せずにデータベース・サーバを起動する場合は、サーバの名前を直接指定する必要があります。次のコマンドを実行すると、データベースを起動せずに Scott という名前のサーバが起動されます。

dbeng8 -n Scott

明示的に名前を指定しなかった場合は、最初に起動されたデータベースの名前がサーバに付けられます。たとえば、サーバの名前が指定されていない次のコマンドがあるとします。

dbeng8 asademo.db

デフォルトでは、このサーバに asademo という名前が付けられます。起動時に名前が指定されていないと、サーバは .db 拡張子を除いたデータベース・ファイル名をサーバ名とします。

2 番目の例として、2 つのデータベースを同じサーバで起動する次のコマンドがあるとします。

Dbeng8 first_database.db second_database.db

サーバは最初に起動されたデータベースの名前をとるので、この例では、first_database がそのサーバ
の名前になります。

データベースが名前を取得する方法

先に説明したように、-n スイッチをデータベース・スイッチとして使用してデータベースに名前を付けることもできます。ユーザが容易に識別できる名前をデータベースに付ける場合は、サーバでデータベースをマウントするときに明示的にデータベース名を指定します。

サーバでデータベースを起動するときには、データベース・ファイル名 (dbf)、データベース名 (dbn)、サーバ名 (eng) という 3 つの名前が必要になります。たとえば、次の例について検討します。xxx.db というデータベースがあります。サーバでは、次のコマンドを使用してこのデータベースを起動します。

dbeng8 xxx.db

データベースの名前が指定されていないため、データベースは xxx という名前を受け入れます。サーバの名前も指定されていないため、サーバはデータベースの名前を受け入れて、xxx という名前になります。この場合、接続パラメータの値は次のようになります。

dbf=xxx.db
dbn=xxx
eng=xxx

データベース・ファイルの後に -n スイッチを指定すると、データベースに名前を付けることができます。たとえば、前の例で次のコマンドを代わりに使用したとします。

dbeng8 xxx.db -n Data

ここでは、データベースに Data という名前が指定されています。サーバの名前は指定されていないので、サーバはデータベースの名前を受け入れて、Data という名前になります。この場合は、接続パラメータが次のように表示されます。

dbf=xxx.db
dbn=Data
eng=Data

最後に、-n スイッチを使用してサーバ名とデータベース名の両方を指定する場合についてみてみます。
コマンドのデータベース・ファイル名の前に -n スイッチを置くと、サーバの名前が指定されます。データベース・ファイル名の後に -n スイッチを置くと、データベースの名前が指定されます。

dbeng8 -n MyServer xxx.db -n MyDatabase

この例では、MyServer という名前がサーバに付けられ、データベースにも明示的に MyDatabase という名前が付けられます。この場合、接続パラメータは次のようになります。

dbf=xxx.db
dbn=MyDatabase
eng=MyServer