データベースサーバーが実行されているポートを指定します。
{ ServerPort | PORT }=port-number
TCP/IP、HTTP、HTTPS
port-number データベースサーバーの場合、ServerPort プロトコルオプションは TCP/IP を使用する通信のポート番号を指定します。
単一のポート番号、または個々のポート番号の組み合わせやポート番号の範囲を指定できます。ポート番号のリストや範囲を指定すると、データベースサーバーは指定されたすべてのポート番号をバインドしようとします。次に例を示します。
クライアントの場合、ServerPort (PORT) プロトコルオプションは、データベースサーバーが TCP/IP 通信を受信する 1 つまたは複数のポートをそのクライアントに知らせます。クライアントは、ServerPort (PORT) プロトコルオプションで指定されたすべてのポートにブロードキャストを実行して、データベースサーバーを検索します。
TCP/IP 2638
HTTP 80
HTTPS 443
あるコンピューター上で TCP/IP を使用するすべてのアプリケーションは、それぞれ別の TCP/IP 「ポート」を使用するので、ネットワークパケットは正しいアプリケーションに到達します。Internet Assigned Numbers Authority は、SQL Anywhere データベースサーバーに対して、TCP/IP 通信に使用するためのポート番号 2638 を割り当てています。ただし、その他のアプリケーションはこの予約ポートの使用を許可されていないわけではないため、データベースサーバーと別のアプリケーション間でアドレスが衝突する可能性があります。
サーバー側 サーバー側では、ServerPort (PORT) プロトコルオプションを指定した場合は、指定したポート番号のみが TCP/IP 接続に使用されます。UDP リスナーは、指定されたポート番号とデフォルトポート番号 (2638) の両方を使用します。ServerPort プロトコルオプションを指定しない場合は、デフォルトポート (2638) が使用されます。
クライアント側 ServerPort (PORT) プロトコルオプションを指定した場合は、指定したポート番号のみが TCP/IP 接続と UDP ブロードキャストに使用されます。ServerPort プロトコルオプションを指定しない場合は、ポート 2638 が使用されます。
サーバーが 2638 以外のポートで実行中である場合、アプリケーションは、通常はサーバー名を指定し、ポート番号は指定しないでサーバーに接続できます。ポート番号は、データベースサーバーが Mac OS X 上で実行中であるときか、-sb サーバーオプションが使用されたときに指定する必要があります。
Mac OS X では、同一の UDP ポートに複数のプロセスをバインドすることはできません。データベースサーバーがこれらのいずれかのプラットフォームで実行されている場合、指定の UDP ポート、またはポートの指定がないときはポート 2638 のみで受信します。
このため、データベースサーバーがデフォルトポート (2638) を使用しない場合は、クライアントで TCP/IP ポート番号を指定する必要があります。
たとえば、データベースサーバーがコマンド dbsrv12 -n MyServer "samples-dir/demo.db"
によって起動される場合、同じサブネット上のクライアントは接続パラメーター Server=MyServer;LINKS=tcpip
を使用してサーバーを見つけることができます。また別のサーバーが、コマンド dbsrv12 -n SecondServer "-x tcpip(PORT=7777) samples-dir/demo.db"
によって Mac OS X で起動される場合は、同じサブネット上のクライアントは接続パラメーター Server=SecondServer;LINKS=tcpip(PORT=7777)
を使用してサーバーを見つけることができます。データベースサーバーが Mac OS X 以外のプラットフォームで実行された場合は、クライアントが PORT パラメーターを指定する必要はありません。
さらに、Mac OS X では、SQL Anywhere データベースサーバーがポート 2638 をすでに使用していて、PORT プロトコルオプションなしで 2 番目のネットワークデータベースサーバーが起動された場合は、そのネットワークサーバーの起動は失敗します。この理由は、ユーザーはサーバーのポート番号を知っている必要があり、それを接続パラメーターで指定する必要があるからです。パーソナルサーバーの接続には、通常共有メモリが使用されるため、パーソナルサーバーは、ポート 2638 が使用中であっても正常に起動します。
Web サーバーを使用している場合、デフォルトでは、データベースサーバーは標準 HTTP ポートと HTTPS ポートをそれぞれ 80 と 443 で受信します。
次の例は、PORT プロトコルオプションを使用する方法を示しています。
ネットワークデータベースサーバーを起動します。
dbsrv12 -x tcpip -n server1 |
ポート番号 2638 が取得されました。
別のデータベースサーバーを起動しようとします。
dbsrv12 -x tcpip -n server2 |
デフォルトのポートは現在使用されているので、サーバーは別のポートを起動します ポート番号は、サーバーメッセージウィンドウに表示されます。Mac OS X の場合は失敗します。
次のようにポート 2629 でデータベースサーバーを起動します。
dbsrv12 -x tcpip(ServerPort=2629) -n server3 c:\mydata.db |
次のように、dbisql から、server3 が Host serverhost3 で起動され、Host 接続パラメーターを使って server3 に接続すると仮定します。
dbisql -c "UID=DBA;PWD=sql;ServerName=server3;Host=serverhost3:2629" |
次のように、dbisql から、server3 が Host serverhost3 で起動され、CommLinks 接続パラメーターを使って server3 に接続すると仮定します。
dbisql -c "UID=DBA;PWD=sql;ServerName=server3;CommLinks=tcpip(Host=serverhost3;PORT=2629)" |
この例では、コンピューター上の別の Web サーバーがすでにポート 80 を使用しているか、またはこのポート番号でサーバーを起動するためのパーミッションがユーザーにありません。8080 などの代替ポートで受信するサーバーを起動します。
dbsrv12 -xs http(PORT=8080) -n server3 web.db |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |