接続プロパティの設定

接続文字列のプロパティは、さまざまな方法で指定できます。

  • DriverManager クラスを使用して接続するときは、接続 URL における「名前=値」形式のプロパティとして指定できます。

  • DriverManager クラスの Connect メソッドの Properties パラメータにおける「名前=値」形式のプロパティとして指定できます。

  • ドライバのデータ ソースの適切な setter メソッドの値として指定できます。 次に例を示します。

              datasource.setServerName(value)
    datasource.setDatabaseName(value)
    

プロパティ名の大文字と小文字は区別されず、重複したプロパティ名は次の順序で解決されます。

  1. API 引数 (user、password など)

  2. プロパティ コレクション

  3. 接続文字列の最後のインスタンス

プロパティ名には不明な値を使用することもできます。JDBC ドライバはこのような値の大文字と小文字の区別について検証しません。

シノニムを使用できます。これは、重複したプロパティ名と同じ順序で解決されます。

次の表は、JDBC ドライバで現在使用できるすべての接続文字列プロパティを示しています。

プロパティ 種類 既定値 説明

applicationName

String

[<=128 char]

null

アプリケーション名、または "Microsoft SQL Server 2005 JDBC Driver" (名前が指定されていない場合) です。 個別のアプリケーションを識別するために、さまざまな SQL Server プロファイリング ツールおよびロギング ツールで使用されます。

databaseName、database

String

[<=128 char]

null

接続するデータベース名です。 指定しない場合は、既定のデータベースへの接続が確立されます。

disableStatementPooling

boolean

["true"|"false"]

true

現在は、値 "true" のみがサポートされています。 "false" に設定した場合は、例外が発生します。

encrypt

boolean

["true"|"false"]

false

SQL Server で、サーバーに証明書がインストールされている場合に、クライアントとサーバーの間で送信されるすべてのデータに対して SSL (Secure Sockets Layer) 暗号化が使用されるようにするには、"true" に設定します。 既定値は false です。

failoverPartner

String

null

データベース ミラーリング構成で使用されるフェールオーバー サーバーの名前です。 このプロパティは、プリンシパル サーバーへの初期接続に失敗した場合に使用されます。初期接続が行われた後は、このプロパティは無視されます。 databaseName プロパティと組み合わせて使用する必要があります。

hostNameInCertificate

String

null

SQL Server の SSL 証明書の検証に使用されるホスト名です。

hostNameInCertificate プロパティが指定されていないか null に設定されている場合、Microsoft SQL Server 2005 JDBC Driver は、接続 URL の serverName プロパティ値をホスト名として使用して SQL Server の SSL 証明書を検証します。

注意

このプロパティは、encrypt プロパティおよび trustServerCertificate プロパティと組み合わせて使用されます。 このプロパティが証明書の検証に影響するのは、encrypt プロパティが "true" に設定されていて、trustServerCertificate プロパティが "false" に設定されている場合だけです。

instanceName

String

[<=128 char]

null

接続する SQL Server 2000 または SQL Server 2005 のインスタンス名です。 指定しない場合は、既定のインスタンスへの接続が確立されます。 instanceName と port の両方を指定する場合については、port の注を参照してください。

integratedSecurity

boolean

["true"|"false"]

false

アプリケーションのユーザーを認証するために SQL Server によって Windows 資格情報が使用されることを示す場合は、"true" に設定します。 "true" の場合、JDBC ドライバは、コンピュータまたはネットワーク ログオン時に提供された資格情報を見つけるために、ローカル コンピュータの資格情報のキャッシュを検索します。 "false" の場合は、ユーザー名とパスワードを指定する必要があります。

注意

この接続プロパティは、Microsoft Windows オペレーティング システムのみでサポートされています。

lastUpdateCount

boolean

["true"|"false"]

true

値が "true" の場合、サーバーに渡された SQL ステートメントから最終的な更新数のみを返します。また、SELECT、INSERT、または DELETE ステートメントのいずれか 1 つで使用して、サーバーのトリガにより追加された更新数を無視することができます。 このプロパティを "false" に設定すると、サーバーのトリガにより返される更新数を含む、すべての更新数が返されます。

注意

このプロパティが適用されるのは、executeUpdate メソッドと一緒に使用された場合だけです。

lockTimeout

int

-1

データベースがロック タイムアウトを通知するまでに待機する時間 (ミリ秒) です。 既定では、無期限に待機します。 指定されている場合、この値は接続上のすべてのステートメントに対する既定値になります。 特定のステートメントに対するタイムアウトは、 Statement.setQueryTimeout() を使用して設定できることに注意してください。 この値は、待機しないことを示す 0 に設定できます。

loginTimeout

int [0..65535]

0

ドライバがタイムアウトを通知して接続を失敗させるまでに待機する時間 (秒) です。 0 の値は、タイムアウト値がないことを示します。 0 以外の値は、ドライバがタイムアウトを通知して接続を失敗させるまでに待機する時間 (秒) を示します。

packetSize

int [-1| 0 | 512..32767]

8000

SQL Server との通信に使用されるネットワーク パケット サイズです (バイトで指定します)。 値が -1 の場合は、サーバーの既定のパケット サイズが使用されます。 値が 0 の場合は、最大値 (32767) が使用されます。 このプロパティが許容範囲外の値に設定されている場合は、例外が発生します。

Note重要 :

暗号化を有効 (encrypt=true) にしている場合に packetSize プロパティを使用することはお勧めしません。 使用すると、接続エラーが発生する可能性があります。 詳細については、SQLServerDataSource クラスの setPacketSize メソッドのトピックを参照してください。

password

String

[<=128 char]

null

データベース パスワードです。

portNumber、port

int [0..65535]

1433

SQL Server が待機しているポートです。 ポート番号が接続文字列に指定されている場合は、sqlbrowser に対する要求は作成されません。 port と instanceName の両方が指定されている場合は、指定されたポートへの接続が確立されます。 ただし、instanceName の検証が行われ、ポートと一致しない場合はエラーがスローされます。

Note重要 :

sqlbrowser を使用する場合よりもセキュリティが向上するため、常にポート番号を指定することをお勧めします。

responseBuffering

String

["full"|"adaptive"]

full

このプロパティが "full" に設定されている場合、ステートメントの実行時に結果セット全体がサーバーから読み取られます。 Microsoft SQL Server 2005 JDBC Driver Version 1.2 の既定のモードは "full" で、Microsoft SQL Server 2005 JDBC Driver Version 1.0 および Version 1.1 との下位互換性が確保されます。 このプロパティを "adaptive" に設定すると、必要に応じて最小限のデータがバッファリングされます。 Microsoft SQL Server 2005 JDBC Driver Version 1.2 の推奨モードは "adaptive" です。

selectMethod

String

["direct"|"cursor"]

direct

このプロパティが "cursor" に設定されている場合、TYPE_FORWARD_ONLY および CONCUR_READ_ONLY のカーソルに対して接続上で作成されるクエリごとに、データベース カーソルが作成されます。 このプロパティは、通常、クライアントのメモリ内に収まらない非常に大きな結果セットをアプリケーションが生成する場合にのみ必要です。 このプロパティが "cursor" に設定されると、結果セットの行が限定された数だけクライアントのメモリに保持されます。 既定の動作では、すべての結果セットの行がクライアントのメモリに保持されます。 この動作により、アプリケーションがすべての行を処理する場合は、パフォーマンスが最も高くなります。

sendStringParametersAsUnicode

boolean

["true"|"false"]

true

"false" に設定すると、文字データに対して準備されたパラメータを Unicode ではなく ASCII で送信します。 このパラメータにより、SQL Server 2000 または SQL Server 2005 のテーブルにおいて、Unicode ではない文字データのインデックス参照のパフォーマンスが向上します。 たとえば、ASCII 行のキーを、Unicode からの変換オーバーヘッドを発生させることなく、直接比較することができます。 詳細については、support.microsoft.com/kb/271566 を参照してください。

serverName、server

String

null

SQL Server を実行しているコンピュータです。

user、userName

String

[<=128 char]

null

データベース ユーザーです。

trustServerCertificate

boolean

["true"|"false"]

false

Microsoft SQL Server 2005 JDBC Driver が SQL Server の SSL 証明書を検証しないようにするには "true" に設定します。

"true" の場合、通信レイヤが SSL で暗号化されていれば SQL Server の SSL 証明書が自動的に信頼されます。

"false" の場合は、Microsoft SQL Server 2005 JDBC Driver がサーバーの SSL 証明書を検証します。 サーバー証明書の検証が失敗した場合は、エラーが発生して接続が終了します。 既定値は "false" です。

注意

このプロパティは、encrypt プロパティと組み合わせて使用されます。 このプロパティがサーバーの SSL 証明書の検証に影響するのは、encrypt プロパティが "true" に設定されている場合だけです。

trustStore

String

null

証明書の trustStore ファイルへのパス (ファイル名を含む) です。 trustStore ファイルには、クライアントが信頼する証明書の一覧が含まれています。

このプロパティが指定されていないか null に設定されている場合、ドライバは、信頼マネージャ ファクトリの検索ルールに従って、使用する証明書ストアを決定します。

既定の SunX509 TrustManagerFactory では、次の順序で信頼済みマテリアルの検索が行われます。

  • Java 仮想マシン (JVM) システム プロパティの "javax.net.ssl.trustStore" で指定されたファイル

  • "<java-home>/lib/security/jssecacerts" ファイル

  • "<java-home>/lib/security/cacerts" ファイル

詳細については、Sun Microsystems の Web サイトで SunX509 TrustManager Interface についてのドキュメントを参照してください。

注意

このプロパティが証明書の trustStore の検索に影響するのは、encrypt プロパティが "true" に設定されていて、trustServerCertificate プロパティが "false" に設定されている場合だけです。

trustStorePassword

String

null

trustStore データの整合性を確認するために使用するパスワードです。

trustStore プロパティは設定されているが trustStorePassword プロパティは設定されていない場合、trustStore の整合性は確認されません。

trustStore プロパティと trustStorePassword プロパティの両方が指定されていない場合、ドライバでは、JVM システム プロパティの "javax.net.ssl.trustStore" と "javax.net.ssl.trustStorePassword" が使用されます。 "javax.net.ssl.trustStorePassword" システム プロパティが指定されていない場合、trustStore の整合性は確認されません。

trustStore プロパティは設定されていないが trustStorePassword プロパティは設定されている場合、JDBC ドライバでは、"javax.net.ssl.trustStore" で指定されたファイルがトラスト ストアとして使用され、指定された trustStorePassword を使用してトラスト ストアの整合性が確認されます。 これは、クライアント アプリケーションでパスワードを JVM システム プロパティに格納しないようにする場合に必要となることがあります。

注意

trustStorePassword プロパティが証明書の trustStore の検索に影響するのは、encrypt プロパティが "true" に設定されていて、trustServerCertificate プロパティが "false" に設定されている場合だけです。

workstationID

String

[<=128 char]

<空の文字列>

ワークステーション ID です。 個別のワークステーションを識別するために、さまざまな SQL Server プロファイリング ツールおよびロギング ツールで使用されます。 何も指定しなかった場合は、<空の文字列> が使用されます。

xopenStates

boolean

["true"|"false"]

false

"true" に設定すると、ドライバが XOPEN 互換の状態コードを例外で返します。 既定では、SQL 99 の状態コードを返します。

参照

その他のリソース

JDBC ドライバによる SQL Server への接続