Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの起動とデータベースへの接続 » 接続パラメータとネットワーク・プロトコル・オプション » ネットワーク・プロトコル・オプション

 

ServerPort プロトコル・オプション [PORT]

データベース・サーバが実行されているポートを指定します。

使用法

TCP/IP、HTTP、HTTPS

整数

デフォルト

TCP/IP のデフォルト値は 2638、HTTP のデフォルト値は 80、HTTPS のデフォルト値は 443 です。

備考

Internet Assigned Numbers Authority は、SQL Anywhere データベース・サーバに対して、TCP/IP 通信に使用するためのポート番号 2638 を割り当てています。ただし、その他のアプリケーションはこの予約ポートの使用を許可されていないわけではないため、データベース・サーバと別のアプリケーション間でアドレスが衝突する可能性があります。

データベース・サーバの場合、ServerPort プロトコル・オプションは TCP/IP を使用する通信のポート番号を指定します。単一のポート番号、または個々のポート番号の組み合わせやポート番号の範囲を指定できます。次に例を示します。

ポート番号のリストや範囲を指定すると、データベース・サーバは指定されたすべてのポート番号をバインドしようとします。

ネットワーク・プロトコル・オプションを使用して異なるポートを指定した場合でも、データベース・サーバはほとんどのオペレーティング・システムで常に UDP ポート 2638 を使って受信します。アプリケーションは、ポート番号を指定しなくてもデータベース・サーバに接続できます。このポートを使用可能にすることで、SQL Anywhere クライアントは、別のサブネット上やファイアウォール経由で実行されている SQL Anywhere データベース・サーバでも検索できます。

クライアントの場合、ServerPort プロトコル・オプションは、データベース・サーバが TCP/IP 通信を受信する 1 つまたは複数のポートをそのクライアントに知らせます。クライアントは、ServerPort (PORT) プロトコル・オプションで指定されたすべてのポートにブロードキャストして、サーバを検索します。

Web サーバを使用している場合、デフォルトでは、データベース・サーバは標準 HTTP ポートと HTTPS ポートをそれぞれ 80 と 443 で受信します。

TCP/IP ポート番号 2638 (デフォルト) を使用してデータベース・サーバを起動した場合、サーバは UDP ポート 2638 でも受信します。データベース・サーバは UDP ポートで受信し、それらのポートで要求に応答するため、クライアントはサーバ名によってデータベース・サーバを検索できます。

データベース・サーバの TCP/IP ポート番号が 2638 ではない場合、サーバは同じ UDP を TCP/IP ポートとして受信します。

クライアントのブロードキャストへの応答としてデータベース・サーバから送信される UDP パケットには機密情報が含まれません。これらのパケットに含まれるデータは次のとおりです。

-dh オプションを使用すると、ブロードキャスト要求に対してデータベース名を難読化することができます。また、-sb 0 を指定して、UDP リスナを完全に無効にすることもできます。

Mac OS X での相違点

Mac OS X では、同一の UDP ポートに複数のプロセスをバインドすることはできません。データベース・サーバがこれらのいずれかのプラットフォームで実行されている場合、指定の UDP ポート、またはポートの指定がないときはポート 2638 のみで受信します。

このため、サーバがデフォルト・ポート (2638) を使用しない場合は、クライアントで TCP/IP ポート番号を指定する必要があります。

たとえば、データベース・サーバがコマンド dbsrv11 -n MyServer samples-dir/demo.db によって起動される場合、同じサブネット上のクライアントは接続パラメータ ENG=MyServer;LINKS=tcpip を使用してサーバを見つけることができます。また別のサーバが、コマンド dbsrv11 -n SecondServer -x tcpip(PORT=7777) samples-dir/demo.db によって Mac OS X で起動される場合は、同じサブネット上のクライアントは接続パラメータ ENG=SecondServer;LINKS=tcpip(PORT=7777) を使用してサーバを見つけることができます。データベース・サーバが Mac OS X 以外のプラットフォームで実行された場合は、クライアントが PORT パラメータを指定する必要はありません。

さらに、Mac OS X では、SQL Anywhere データベース・サーバがポート 2638 をすでに使用していて、PORT プロトコル・オプションなしで 2 番目のネットワーク・データベース・サーバが起動された場合は、そのネットワーク・サーバの起動は失敗します。この理由は、ユーザはサーバのポート番号を知っている必要があり、それを接続パラメータで指定する必要があるからです。パーソナル・サーバの接続には、通常共有メモリが使用されるため、パーソナル・サーバは、ポート 2638 が使用中であっても正常に起動します。

参照

次の例は、PORT プロトコル・オプションを使用して、サーバの起動に使うポートを指定する方法を示しています。

  1. ネットワーク・データベース・サーバを起動します。

    dbsrv11 -x tcpip -n server1

    ポート番号 2638 が取得されました。

  2. 別のデータベース・サーバを起動しようとします。

    dbsrv11 -x tcpip -n server2

    デフォルトのポートは現在使用されているので、サーバは別のポートを起動します Mac OS X の場合は失敗します。

  3. すでにコンピュータ上の別の Web サーバがポート 80 を使用しているか、またはこのポート番号でサーバを起動するためのパーミッションがない場合は、8080 などの代替ポートを受信するサーバを起動できます。

    dbsrv11 -xs http(port=8080) -n server3 web.db