Gibt den Port an, auf dem der Datenbankserver läuft
TCP/IP, HTTP, HTTPS
Ganzzahl
Der Standardwert für TCP/IP ist 2638. Der Standardwert für HTTP ist 80. Der Standardwert für HTTPS ist 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.
Im Fall des Datenbankservers 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. Zum Beispiel:
Wenn Sie eine Liste und/oder einen Bereich von Portnummern angeben, versucht der Datenbankserver, alle angegebenen Portnummern zu binden.
Der Datenbankserver wartet stets an Port 2638 ab, auch wenn Sie einen anderen Port festlegen, indem Sie eine Netzwerkprotokolloption verwenden. Anwendungen können sich mit dem Datenbankserver verbinden, ohne dass eine Portnummer angegeben wird. Durch die Verfügbarkeit des Ports können SQL Anywhere-Clients SQL Anywhere-Server finden, die in anderen Subnetzen und hinter Firewalls laufen.
Bei einem Client informiert die ServerPort-Protokolloption den Client über den Port, über den Datenbankserver auf TCP/IP-Kommunikationen warten. Der Client sucht an jedem in der Protokolloption ServerPort (PORT) angegebenen Port nach dem Server.
Wenn Sie einen Webserver verwenden, wartet der Datenbankserver standardmäßig an den Standard HTTP- und HTTPS-Ports 80 und 443 auf Anfragen.
Wenn Sie einen Datenbankserver mit der TCP/IP-Portnummer 2638 starten (der Standardwert), wartet der Server auch am UDP-Port 2638 ab. Der Datenbankserver überwacht UDP-Ports und reagiert auf Anforderungen an diese Ports, damit Clients den Datenbankserver anhand des Servernamens lokalisieren können.
Wenn die TCP/IP-Portnummer des Datenbankservers nicht 2638 ist, wartet der Server gleichermaßen am UDP-Port wie am TCP/IP-Port.
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 Server nicht den Standardport (2638) verwendet.
Wenn der Datenbankserver zum Beispiel mit dem Befehl dbsrv11 -n MyServer Beispielverzeichnis/demo.db
gestartet wird, kann ein Client in demselben Subnetz den Server finden, indem die Verbindungsparameter ENG=MyServer;LINKS=tcpip
verwendet werden. Wenn ein anderer Server auf Mac OS X mit dem Befehl dbsrv11 -n SecondServer -x tcpip(PORT=7777) ) Beispielverzeichnis/demo.db
gestartet wird, kann ein Client in demselben Subnetz den Server finden, indem die Verbindungsparameter ENG=SecondServer;LINKS=tcpip(PORT=7777)
verwendet werden. 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 Server startet.
Starten eines Netzwerk-Datenbankservers:
dbsrv11 -x tcpip -n server1 |
Portnummer 2638 wird nun genommen.
Versuch, einen anderen Datenbankserver zu starten:
dbsrv11 -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:
dbsrv11 -xs http(port=8080) -n server3 web.db |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |