Festlegen von Verbindungseigenschaften
Es gibt verschiedene Möglichkeiten, um die Eigenschaften für die Verbindungszeichenfolge anzugeben:
Als Name=Wert-Eigenschaften in der Verbindungs-URL, wenn Verbindungen mit der DriverManager-Klasse hergestellt werden.
Als Name=Wert-Eigenschaften im Properties-Parameter der Connect-Methode in der DriverManager-Klasse.
Als Werte in der entsprechenden Festlegungsmethode der Datenquelle des Treibers. Beispiel:
datasource.setServerName(value) datasource.setDatabaseName(value)
Bei den Namen von Eigenschaften wird Groß-/Kleinschreibung unterschieden. Doppelte Eigenschaftennamen werden in der folgenden Reihenfolge aufgelöst:
API-Argumente (wie Benutzer und Kennwort)
Property-Auflistung
Letzte Instanz in der Verbindungszeichenfolge
Darüber hinaus sind für Eigenschaftennamen unbekannte Werte zulässig. Die Groß-/Kleinschreibung der Werte wird vom JDBC-Treiber nicht überprüft.
Synonyme sind zulässig und werden in der gleichen Reihenfolge wie doppelte Eigenschaftennamen aufgelöst.
Die folgende Tabelle enthält eine Liste aller zurzeit verfügbaren Verbindungszeichenfolgeeigenschaften für den JDBC-Treiber.
Eigenschaft
Typ
Standardwert
Beschreibung
applicationName
String
[<=128 Zeichen]
null
Der Anwendungsname bzw. "Microsoft SQL Server 2005 JDBC Driver", wenn kein Name angegeben wird. Anhand dieser Eigenschaft wird die jeweilige Anwendung in den verschiedenen SQL Server-Profilerstellungs- und Protokollierungstools identifiziert.
databaseName, database
String
[<=128 Zeichen]
null
Der Name der Datenbank, zu der eine Verbindung hergestellt werden soll. Ohne Angabe wird eine Verbindung zur Standarddatenbank erstellt.
disableStatementPooling
Boolean
["true"|"false"]
true
Zurzeit wird lediglich der Wert "true" unterstützt. Wenn diese Eigenschaft auf "false" festgelegt wird, wird eine Ausnahme ausgegeben.
encrypt
Boolean
["true"|"false"]
false
Auf "true" festgelegt, um anzugeben, dass alle zwischen Client und Server gesendeten Daten von SQL Server eine Secure Sockets Layer (SSL)-Verschlüsselung verwenden, sofern auf dem Server ein Zertifikat installiert ist. Der Standardwert ist False.
failoverPartner
String
null
Der Name des Failoverservers, der in einer Datenbankspiegelungskonfiguration verwendet wird. Diese Eigenschaft wird bei einem Ausfall der Anfangsverbindung zum Prinzipalserver verwendet. Nachdem die Anfangsverbindung hergestellt wurde, wird diese Eigenschaft ignoriert. Diese Eigenschaft muss zusammen mit der databaseName-Eigenschaft verwendet werden.
hostNameInCertificate
String
NULL
Der Hostname, der beim Überprüfen des SQL Server-SSL-Zertifikats verwendet werden soll.
Wenn die hostNameInCertificate-Eigenschaft nicht angegeben oder auf NULL festgelegt ist, verwendet Microsoft SQL Server 2005 JDBC Driver den serverName-Eigenschaftenwert der Verbindungs-URL als Hostname zum Überprüfen des SQL Server-SSL-Zertifikats.
Hinweis:
Diese Eigenschaft wird in Kombination mit der encrypt-Eigenschaft und der trustServerCertificate-Eigenschaft verwendet. Diese Eigenschaft hat nur dann Auswirkungen auf die Zertifikatsüberprüfung, wenn die encrypt-Eigenschaft auf "true" festgelegt ist und trustServerCertificate auf "false" festgelegt ist.
instanceName
String
[<=128 Zeichen]
null
Der Name der SQL Server 2000- oder SQL Server 2005-Instanz, zu der eine Verbindung hergestellt werden soll. Ohne Angabe wird eine Verbindung zur Standardinstanz erstellt. Wenn "instanceName" und "port" angegeben werden, finden Sie nützliche Informationen in den Hinweisen für "port".
integratedSecurity
Boolean
["true"|"false"]
false
Setzen Sie diese Eigenschaft auf "true", wenn von SQL Server für die Authentifizierung des Benutzers der Anwendung die Windows-Anmeldeinformationen verwendet werden sollen. Wenn diese Eigenschaft auf "true" gesetzt ist, sucht der JDBC-Treiber im Cache für Anmeldeinformationen des lokalen Computers die Anmeldeinformationen, die bei der Anmeldung beim Computer oder Netzwerk angegeben wurden. Ist diese Eigenschaft auf "false" gesetzt, müssen Benutzername und Kennwort angegeben werden.
Hinweis:
Diese Verbindungseigenschaft wird nur auf Microsoft Windows-Betriebssystemen unterstützt.
lastUpdateCount
Boolean
["true"|"false"]
true
Wenn der Wert dieser Eigenschaft auf "true" gesetzt ist, wird nur die letzte Updatezählung einer SQL-Anweisungen zurückgegeben, die an den Server übergeben wurde. Die Eigenschaft kann in einzelnen SELECT-, INSERT- oder DELETE-Anweisungen verwendet werden, wenn zusätzliche Updatezählungen von Servertriggern ignoriert werden sollen. Wenn diese Eigenschaft auf "false" gesetzt ist, werden alle Updatezählungen zurückgegeben, einschließlich der von Servertriggern.
Hinweis:
Diese Eigenschaft ist nur gültig, wenn sie mit den executeUpdate-Methoden verwendet wird.
lockTimeout
int
-1
Die Wartezeit in Millisekunden, bevor die Datenbank ein Sperrtimeout meldet. Standardmäßig wird unendlich lang gewartet. Wird dieser Wert angegeben, wird er als Standardwert für alle Anweisungen der Verbindung verwendet. Mit Statement.setQueryTimeout()
kann das Timeout für bestimmte Anweisungen eingestellt werden. Der Wert kann auch 0 sein (keine Wartezeit).
loginTimeout
int [0..65535]
0
Die Wartezeit in Sekunden, bevor der Treiber bei einem Verbindungsfehler ein Timeout meldet. Der Wert Null (0) bedeutet, dass kein Timeout verwendet wird. Ein von Null verschiedener Wert gibt die Wartezeit in Sekunden an, bevor der Treiber bei einem Verbindungsfehler ein Timeout meldet.
packetSize
int [-1| 0 | 512..32767]
8000
Die Netzwerkpaketgröße in Byte, die für die Kommunikation mit SQL Server verwendet wird. Ein Wert von -1 gibt an, dass die Standardpaketgröße des Servers verwendet wird. Ein Wert von 0 gibt an, dass der Maximalwert verwendet wird, d. h. 32767. Wenn diese Eigenschaft auf einen Wert außerhalb des zulässigen Bereichs festgelegt wird, wird eine Ausnahme ausgelöst.
Wichtig:
Das Verwenden der packetSize-Eigenschaft bei aktivierter Verschlüsselung (encrypt=true) wird nicht empfohlen. Andernfalls könnte der Treiber einen Verbindungsfehler auslösen. Weitere Informationen finden Sie unter der setPacketSize-Methode der SQLServerDataSource-Klasse.
password
String
[<=128 Zeichen]
null
Das Datenbankkennwort.
portNumber, port
int [0..65535]
1433
Der Port, der von SQL Server überwacht wird. Wird die Portnummer in der Verbindungszeichenfolge angegeben, erfolgt keine Anforderung an den SQL-Browser. Wenn "port" und "instanceName" angegeben werden, wird die Verbindung zum angegebenen Port hergestellt. "instanceName" wird jedoch überprüft. Wenn "instanceName" und Port nicht zueinander passen, wird ein Fehler ausgegeben.
Wichtig:
Es wird empfohlen, immer die Portnummer anzugeben, da dies sicherer ist als die Verwendung des SQL-Browsers.
responseBuffering
String
["full"|"adaptive"]
full
Wenn diese Eigenschaft auf "full" festgelegt ist, wird das gesamte Resultset vom Server gelesen, wenn eine Anweisung ausgeführt wird. Der Standardmodus lautet "full" für Microsoft SQL Server 2005 JDBC Driver Version 1.2. Dabei wird eine Abwärtskompatibilität mit Microsoft SQL Server 2005 JDBC Driver Version 1.0 und 1.1 bereitgestellt. Wenn diese Eigenschaft auf "adaptive" festgelegt ist, werden so wenig Daten wie möglich gepuffert, wenn notwendig. Der bevorzugte Modus für Microsoft SQL Server 2005 JDBC Driver Version 1.2 lautet "adaptive".
selectMethod
String
["direct"|"cursor"]
direct
Wird diese Eigenschaft auf "cursor" eingestellt, wird für jede Abfrage, die auf der Verbindung erstellt wird, bei TYPE_FORWARD_ONLY- und CONCUR_READ_ONLY-Cursorn ein Datenbankcursor erstellt. Diese Eigenschaft ist normalerweise nur dann erforderlich, wenn die Anwendung sehr umfangreiche Resultsets generiert, die nicht vollständig in den Clientspeicher übernommen werden können. Wird diese Eigenschaft "cursor" eingestellt, wird nur eine begrenzte Anzahl von Resultsetzeilen in den Clientspeicher übernommen. Standardmäßig werden alle Resultsetzeilen in den Clientspeicher übernommen. Dieses Verhalten weist die höchste Leistung auf, wenn die Anwendung alle Zeilen verarbeitet.
sendStringParametersAsUnicode
Boolean
["true"|"false"]
true
Setzen Sie diese Eigenschaft auf "false", um anzugeben, dass die vorbereiteten Parameter für Zeichendaten als ASCII anstatt als Unicode gesendet werden. Dieser Parameter kann die Leistung bei Indexsuchen für Zeichendaten in Nicht-Unicode-, SQL Server 2000- oder SQL Server 2005-Tabellen steigern. ASCII-Zeilenschlüssel können beispielsweise ohne Konvertierungsaufwand von Unicode direkt verglichen werden. Weitere Informationen finden Sie im Microsoft-Artikel unter support.microsoft.com/kb/271566.
serverName, server
String
null
Der Computer, auf dem SQL Server ausgeführt wird.
userName, user
String
[<=128 Zeichen]
null
Der Datenbankbenutzer.
trustServerCertificate
Boolean
["true"|"false"]
false
Auf "true" festgelegt, um anzugeben, dass Microsoft SQL Server 2005 JDBC Driver das SQL Server-SSL-Zertifikat nicht überprüft.
Bei "true" wird dem SQL Server-SSL-Zertifikat automatisch vertraut, wenn die Kommunikationsebene mit SSL verschlüsselt ist.
Bei "false" überprüft Microsoft SQL Server 2005 JDBC Driver das Server-SSL-Zertifikat. Wenn bei der Überprüfung des Serverzertifikats ein Fehler auftritt, löst der Treiber einen Fehler aus und trennt die Verbindung. Der Standardwert ist "false".
Hinweis:
Diese Eigenschaft wird in Kombination mit der encrypt-Eigenschaft verwendet. Diese Eigenschaft hat nur dann Auswirkungen auf die Überprüfung des SSL-Serverzertifikats, wenn die encrypt-Eigenschaft auf "true" festgelegt ist.
trustStore
String
NULL
Der Pfad (einschließlich Dateiname) der Datei trustStore des Servers. Die Datei trustStore enthält die Liste der Zertifikate, denen der Client vertraut.
Wenn diese Eigenschaft nicht angegeben oder auf NULL festgelegt ist, verwendet der Treiber die Suchregeln der Trust-Manager-Factory, um den zu verwendenden Zertifikatspeicher zu ermitteln.
Die Standard-SunX509 TrustManagerFactory versucht, die vertrauenswürdigen Informationen in der folgenden Suchreihenfolge zu suchen:
Eine von der Java Virtual Machine (JVM)-Systemeigenschaft "javax.net.ssl.trustStore" angegebene Datei.
Datei "<java-home>/lib/security/jssecacerts".
Datei "<java-home>/lib/security/cacerts".
Weitere Informationen finden Sie in der Dokumentation zur SUNX509 TrustManager-Schnittstelle auf der Sun Microsystems-Website.
Hinweis:
Diese Eigenschaft hat nur dann Auswirkungen auf die Suche nach trustStore für das Zertifikat, wenn die encrypt-Eigenschaft auf "true" festgelegt ist und die trustServerCertificate-Eigenschaft auf "false" festgelegt ist.
trustStorePassword
String
NULL
Das Kennwort, das zum Überprüfen der Integrität der trustStore-Daten verwendet wird.
Wenn die trustStore-Eigenschaft festgelegt ist, die trustStorePassword-Eigenschaft jedoch nicht festgelegt wurde, wird die Integrität von trustStore nicht überprüft.
Wenn die trustStore-Eigenschaft und die trustStorePassword-Eigenschaft nicht angegeben wurden, verwendet der Treiber die JVM-Systemeigenschaften "javax.net.ssl.trustStore" und "javax.net.ssl.trustStorePassword". Wenn die Systemeigenschaft "javax.net.ssl.trustStorePassword" nicht angegeben wird, wird die Integrität von trustStore nicht überprüft.
Wenn die trustStore-Eigenschaft nicht festgelegt ist, die trustStorePassword-Eigenschaft jedoch festgelegt ist, verwendet der JDBC-Treiber die von "javax.net.ssl.trustStore" angegebene Datei als Vertrauensspeicher, und die Integrität des Vertrauensspeichers wird mithilfe des angegebenen trustStorePassword überprüft. Dies kann erforderlich sein, wenn in der Clientanwendung das Kennwort nicht in der JVM-Systemeigenschaft gespeichert werden soll.
Hinweis:
Die trustStorePassword-Eigenschaft hat nur dann Auswirkungen auf die Suche nach trustStore für das Zertifikat, wenn die encrypt-Eigenschaft auf "true" festgelegt ist und die trustServerCertificate-Eigenschaft auf "false" festgelegt ist.
workstationID
String
[<=128 Zeichen]
<leere Zeichenfolge>
Die ID der Arbeitsstation. Anhand dieser Eigenschaft wird die jeweilige Arbeitsstation in den verschiedenen SQL Server-Profilerstellungs- und Protokollierungstools identifiziert. Wenn dies nicht angegeben wird, wird die <leere Zeichenfolge> verwendet.
xopenStates
Boolean
["true"|"false"]
false
Setzen Sie diese Eigenschaft auf "true", um anzugeben, dass der Treiber in Ausnahmen XOPEN-kompatible Statuscodes zurückgibt. Standardmäßig werden SQL 99-Statuscodes zurückgegeben.