データベース・サーバが実行されているポートを指定します。
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 では、同一の 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 プロトコル・オプションを使用して、サーバの起動に使うポートを指定する方法を示しています。
ネットワーク・データベース・サーバを起動します。
dbsrv11 -x tcpip -n server1 |
ポート番号 2638 が取得されました。
別のデータベース・サーバを起動しようとします。
dbsrv11 -x tcpip -n server2 |
デフォルトのポートは現在使用されているので、サーバは別のポートを起動します Mac OS X の場合は失敗します。
すでにコンピュータ上の別の Web サーバがポート 80 を使用しているか、またはこのポート番号でサーバを起動するためのパーミッションがない場合は、8080 などの代替ポートを受信するサーバを起動できます。
dbsrv11 -xs http(port=8080) -n server3 web.db |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |