Gibt den Port an, auf dem der Datenbankserver läuft
{ ServerPort | PORT }=Portnummer
TCP/IP, HTTP, HTTPS
Portnummer Bei einem Datenbankserver weist die ServerPort-Protokolloption die Portnummer zu, um mithilfe von TCP/IP zu kommunizieren.
Sie können eine einzelne Portnummer, eine Kombination einzelner Portnummern oder Bereiche von Portnummern angeben. Wenn Sie eine Liste und/oder einen Bereich von Portnummern angeben, versucht der Datenbankserver, alle angegebenen Portnummern zu binden. Zum Beispiel:
Bei einem Client informiert die ServerPort-Protokolloption (PORT) den Client über den Port, an dem Datenbankserver auf TCP/IP-Kommunikationen warten. Der Client sucht an jedem in der ServerPort-Protokolloption (PORT) angegebenen Port nach dem Datenbankserver.
TCP/IP 2638
HTTP 80
HTTPS 443
Die IANA (Internet Assigned Numbers Authority) hat dem SQL Anywhere-Datenbankserver die Portnummer 2638 für die TCP/IP-Kommunikation zugeordnet. Es ist anderen Anwendungen jedoch nicht verboten, diesen reservierten Port zu verwenden, und dies könnte eine Adressenkollision zwischen dem Datenbankserver und einer anderen Anwendung verursachen.
Wenn Sie die ServerPort-Protokolloption (PORT) angeben, wird nur die angegebene Portnummer für TCP/IP-Verbindungen und UDP-Broadcasts verwendet. Wenn Sie die ServerPort-Protokolloption nicht angeben, wird Port 2638 verwendet. Anwendungen können sich mit dem Datenbankserver verbinden, ohne dass eine Portnummer angegeben wird. Wenn Port 2638 verfügbar ist, können SQL Anywhere-Clients SQL Anywhere-Datenbankserver finden, die in anderen Subnetzen und hinter Firewalls laufen.
Anschließend wartet der Server am gleichen UDP-Port wie der TCP/IP-Port. Der Datenbankserver überwacht UDP-Ports und reagiert auf Anforderungen an diese Ports, damit Clients den Datenbankserver anhand des Servernamens lokalisieren können.
Wenn Sie einen Webserver verwenden, wartet der Datenbankserver standardmäßig an den Standard HTTP- und HTTPS-Ports 80 und 443 auf Anfragen.
UDP-Pakete, die vom Datenbankserver als Antwort auf Client-Broadcasts gesendet werden, enthalten keine sensitiven Daten. Die Daten in diesen Paketen sind auf folgende Informationen beschränkt:
Sie können Datenbanknamen vor Broadcast-Anforderungen verbergen, indem Sie die Option -dh verwenden. Sie können auch -sb 0 angeben, um die UDP-Listener komplett auszuschalten.
Mac OS X erlaubt es nicht, dass mehrere Prozesse denselben UDP-Port binden. Wenn ein Datenbankserver auf einer dieser Plattformen läuft, wartet er nur am angegebenen UDP-Port bzw. Port 2638, wenn kein Port angegeben ist.
Das bedeutet, dass Clients die TCP/IP-Portnummer angeben müssen, wenn der Datenbankserver nicht den Standardport (2638) verwendet.
Wenn der Datenbankserver zum Beispiel mit dem Befehl dbsrv12 -n MyServer Beispielverzeichnis/demo.db
gestartet wird, kann ein Client in demselben Subnetz den Server mit den Verbindungsparametern Server=MyServer;LINKS=tcpip
finden. Wenn ein anderer Server auf Mac OS X mit dem Befehl dbsrv12 -n SecondServer -x tcpip(PORT=7777) Beispielverzeichnis/demo.db
gestartet wird, kann ein Client in demselben Subnetz den Server mit den Verbindungsparametern Server=SecondServer;LINKS=tcpip(PORT=7777)
finden. Beachten Sie, dass der Client nicht den PORT-Parameter angeben muss, wenn der Datenbankserver auf einer anderen Plattform
als Mac OS X läuft.
Zusätzlich gilt: Wenn auf Mac OS X ein SQL Anywhere-Datenbankserver bereits Port 2638 verwendet und ein zweiter Datenbankserver ohne die PORT-Protokolloption gestartet wird, schlägt das Starten des zweiten Datenbankservers fehl. Daher müssen Benutzer die Portnummer des Servers kennen und sie in Ihren Verbindungsparametern angeben. Personal Server starten erfolgreich, sogar wenn Port 2638 in Verwendung ist, weil zum Verbinden mit Personal Servern gewöhnlich ein gemeinsam genutzter Speicher verwendet wird.
Das folgende Beispiel zeigt, wie Sie die PORT-Protokolloption verwenden, um den Port anzugeben, auf dem der Datenbankserver startet.
Starten eines Netzwerk-Datenbankservers:
dbsrv12 -x tcpip -n server1 |
Portnummer 2638 wird nun genommen.
Versuch, einen anderen Datenbankserver zu starten:
dbsrv12 -x tcpip -n server2 |
Der Standardport ist derzeit zugeordnet, und daher startet der Server auf einem anderen Port. Unter Mac OS X schlägt dies fehl.
Wenn ein anderer Webserver auf Ihrem Computer bereits Port 80 verwendet oder Sie nicht die Berechtigung haben, einen Server auf einer so niedrigen Portnummer zu starten, können Sie einen Server starten, der auf einem anderen Port auf Abfragen wartet, z.B. 8080:
dbsrv12 -xs http(port=8080) -n server3 web.db |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |