Gibt den Port an, auf dem der Datenbankserver läuft
{ ServerPort | PORT }=port-number
TCP/IP, HTTP, HTTPS
port-number 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-Kommunikation warten. Der Client sucht an jedem in der ServerPort-Protokolloption (PORT) angegebenen Port nach dem Datenbankserver.
TCP/IP 2638
HTTP 80
HTTPS 443
Jede Anwendung, die TCP/IP auf einem Computer verwendet, benutzt einen eigenen TCP/IP-Port, sodass Netzwerkpakete in der richtigen Anwendung ankommen. 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.
Auf dem Server Wenn Sie auf dem Server die ServerPort-Protokolloption (PORT) angeben, wird nur die angegebene Portnummer für TCP/IP-Verbindungen verwendet. UDP-Listener verwenden sowohl die angegebene Portnummer als auch die Standard-Portnummer (2638). Wenn Sie die ServerPort-Protokolloption nicht angeben, wird der Standardport 2638 verwendet.
Auf dem Client 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.
Wenn der Server auf einem anderen Port als 2638 läuft, kann die Anwendung normalerweise eine Verbindung mit dem Server aufnehmen, indem Sie den Servernamen, aber keine Portnummer übergibt. Die Portnummer muss angegeben werden, wenn der Datenbankserver auf Mac OS X läuft oder die Serveroption -sb verwendet wird.
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 Datenbankserver 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. Wenn der Datenbankserver auf einer anderen Plattform als Mac OS X läuft, muss der Client den PORT-Parameter nicht
angeben.
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.
Wenn Sie einen Webserver verwenden, wartet der Datenbankserver standardmäßig an den Standard HTTP- und HTTPS-Ports 80 und 443 auf Anfragen.
Die folgenden Beispiele zeigen, wie Sie die PORT-Protokolloption verwenden.
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. Die Portnummer wird im Meldungsfenster des Servers angezeigt. Unter Mac OS X schlägt dies fehl.
Starten Sie einen Datenbankserver auf Port 2629:
dbsrv12 -x tcpip(ServerPort=2629) -n server3 c:\mydata.db |
Unter der Annahme, dass server3 auf Host serverhost3 gestartet wurde, stellen Sie eine Verbindung zum server3 mit dem Host-Verbindungsparameter aus dbisql her:
dbisql -c "UID=DBA;PWD=sql;ServerName=server3;Host=serverhost3:2629" |
Unter der Annahme, dass server3 auf Host serverhost3 gestartet wurde, stellen Sie eine Verbindung zum server3 mit dem CommLinks-Verbindungsparameter aus dbisql her:
dbisql -c "UID=DBA;PWD=sql;ServerName=server3;CommLinks=tcpip(Host=serverhost3;PORT=2629)" |
In diesem Beispiel verwendet ein anderer Webserver auf Ihrem Computer bereits Port 80 oder Sie haben nicht die Berechtigung, einen Server auf einer so niedrigen Portnummer zu starten. Starten Sie einen Server, 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 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |