データベースサーバが実行されているポートを指定します。
{ 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 ポート番号を指定する必要があります。
たとえば、データベースサーバがコマンド dbsrv16 -n MyServer "$SQLANYSAMP16/demo.db"
によって起動される場合、同じサブネット上のクライアントは接続パラメータ Server=MyServer;LINKS=tcpip
を使用してサーバを見つけることができます。また別のサーバが、コマンド dbsrv16 -n SecondServer -x tcpip(PORT=7777) $SQLANYSAMP16/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 サーバとして使用している場合、80 および 443 の標準 HTTP および HTTPS ポートで受信を行います。
次の例は、PORT プロトコルオプションを使用する方法を示しています。
ネットワークデータベースサーバを起動します。
dbsrv16 -x tcpip -n server1 |
ポート番号 2638 が取得されました。
別のデータベースサーバを起動しようとします。
dbsrv16 -x tcpip -n server2 |
デフォルトのポートは現在使用されているので、サーバは別のポートを起動します ポート番号は、サーバメッセージウィンドウに表示されます。Mac OS X の場合は失敗します。
次のようにポート 2629 でデータベースサーバを起動します。
dbsrv16 -x tcpip(ServerPort=2629) -n server3 c:\mydata.db |
次のように、dbisql から、server3 が Host serverhost3 で起動され、ホスト接続パラメータを使って server3 に接続すると仮定します。
dbisql -c "UID=DBA;PWD=sql;ServerName=server3;Host=serverhost3:2629" |
次のように、dbisql から、server3 がホスト serverhost3 で起動され、CommLinks 接続パラメータを使って server3 に接続すると仮定します。
dbisql -c "UID=DBA;PWD=sql;ServerName=server3;CommLinks=tcpip(HOST=serverhost3;PORT=2629)" |
この例では、コンピュータ上の別の Web サーバがすでにポート 80 を使用しているか、またはこのポート番号でサーバを起動するためのパーミッションがユーザにありません。8080 などの代替ポートで受信するサーバを起動します。
dbsrv16 -xs http(PORT=8080) -n server3 web.db |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |