追加の接続プロパティ

Advanced Server JDBCドライバーは、標準の接続パラメーターに加えて、 EnterpriseDB固有の動作を制御する接続プロパティをサポートしています。これらのプロパティは、接続URLで、またはDriverManager.getConnection()渡されるPropertiesオブジェクトパラメータとして指定できます。リスト1.2は、 Propertiesオブジェクトを使用して追加の接続プロパティを指定する方法を示しています。

リスト1.2

String url = "jdbc:edb://localhost/edb";
Properties props = new Properties();

props.setProperty("user", "enterprisedb");
props.setProperty("password", "enterprisedb");
props.setProperty("sslfactory", "com.edb.ssl.NonValidatingFactory");
props.setProperty("ssl", "true");

Connection con = DriverManager.getConnection(url, props);

注意

デフォルトでは、 SSL=trueと接続URLパラメータsslfactory=org.postgresql.ssl.NonValidatingFactory設定の組み合わせにより、接続が暗号化されますが、SSL証明書は検証されません。証明書の検証を強制するには、 Custom SSLSocketFactory使用する必要があります。 Custom SSLSocketFactory作成の詳細については、PostgreSQL JDBCドライバーのドキュメントを参照してください。

URLに追加の接続プロパティを指定するには、疑問符と、キーワードと値のペアのアンパサンドで区切られたリストを追加します。

String url = "jdbc:edb://localhost/edb?user=enterprisedb&ssl=true";

追加の接続プロパティの一部を次の表に示します。

表5-2-追加の接続プロパティ

名前タイプ説明
ユーザーString接続を確立しているデータベースユーザー。
パスワードStringデータベースユーザーのパスワード。
ssl ブール値認証済みの暗号化されたSSL接続を要求します
ログレベル整数

loglevelの値は、LogStreamまたはLogWriterのDriverManagerの現在の値に出力される詳細の量を決定します。現在、次の値をサポートしています。

com.edb.Driver.DEBUG

com.edb.Driver.INFO

loglevelの値をINFOに設定してスパースログ情報を含めるか、DEBUGに設定して重要な詳細を生成します。

charSet String charSetの値は、データベースとの間で送受信されるデータに使用される文字セットを決定します。
prepareThreshold 整数 prepareThresholdの値は、サーバー側の準備済みステートメントに切り替える前に必要なPreparedStatementの実行回数を決定します。デフォルトは5です。
loadBalanceHosts ブール値デフォルトモード(無効)では、ホストは指定された順序で接続されます。有効な場合、ホストは適切な候補のセットからランダムに選択されます。
targetServerType String必要な状態のサーバーのみへの接続を開くことができます。許可される値は、any、master、secondary、preferSecondary、preferSyncSecondaryです。現在、マスター/セカンダリの区別は、サーバーが書き込みを許可しているかどうかを監視することによって行われます。値preferSecondaryは、使用可能な場合はセカンダリへの接続を試行します。それ以外の場合は、マスターへの接続を許可します。 Advanced Server JDBCコネクターはpreferSyncSecondaryをサポートします。これは、アクティブな同期セカンダリがない場合、同期セカンダリまたはマスターのみへの接続を許可します。 preferSyncSecondaryについては、セクション5.2.2を参照してください。注:値slave、preferSlave、preferSyncSlaveは、「セカンダリ」値に置き換えられたため、非推奨になりました。 「スレーブ」値は現在もサポートされており、「スレーブ」と「セカンダリ」という用語を使用しても同じ機能が提供されますが、「セカンダリ」値を使用することをお勧めします。
skipQuotesOnReturning ブール値 trueに設定すると、RETURNING句の列名は引用されません。これにより、大文字と小文字を区別する列名の比較が不要になります。 false(デフォルト設定)に設定すると、列名が引用されます。