ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server タイプ4 JDBCドライバ
11g リリース1(10.3.3)
B61001-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストヘ移動
製品
目次へ移動
目次

前
 
次
 

5 Sybaseドライバ

次の項では、WebLogic タイプ4 JDBC Sybaseドライバの構成方法と使用方法について説明します。

ドライバ・クラス

WebLogic タイプ4 JDBC Sybaseドライバのドライバ・クラスは次のとおりです。

WebLogic ServerドメインにJDBCデータ・ソースを構成する場合に、これらのドライバ・クラスを使用します。

Sybase URL

Sybaseドライバの接続URLの形式は次のとおりです。

jdbc:weblogic:sybase://hostname:port[;property=value[;...]]

説明:

例:

jdbc:weblogic:sybase://server2:5000;User=test;Password=secre

J2EEコネクタ・アーキテクチャ・リソース・アダプタ・クラス

Informixリソース・アダプタ用のManagedConnectionFactoryクラスは、次のとおりです。

com.weblogic.resource.spi.InformixManagedConnectionFactory

Sybase接続プロパティ

表5-3に、SybaseドライバでサポートされるJDBC接続プロパティを示し、各プロパティについて説明します。WebLogic ServerドメインのJDBCデータ・ソースの構成でこれらの接続プロパティを使用できます。プロパティを指定するには、JDBCデータ・ソースの構成で次の形式を使用します。 property=value


注意:

すべての接続文字列プロパティ名で、大文字と小文字は区別されません。たとえば、Passwordはpasswordと同じです。各接続プロパティで示されているデータ型は、JDBCデータ・ソースのプロパティ値に使用されるJavaデータ型です。

表5-1 Sybaseの接続プロパティ

プロパティ 説明

AccountingInfo

データベースに格納する会計情報。この値で、データベースのCURRENT CLIENT_ACCTNGレジスタ(Linux/UNIX/Windows上のDB2)またはCLIENT ACCTNGレジスタ(z/OS上のDB2およびiSeries上のDB2)が設定されます。この値は、データベースの管理/監視用の値です。

データ型: String

有効な値: string(ここで、stringは会計情報です)。デフォルトは、空の文字列です。

AlternateServers

選択したフェイルオーバー・メソッドに応じて、新規接続または切断接続の場合に使用される代替データベース・サーバーのリスト。フェイルオーバー・メソッドの選択については、FailoverModeプロパティを参照してください。

データ型: String

有効な値:

(servername1[:port1][;property=value[;...]

,servername2[:port2][;property=value[;...]]]...]

各代替サーバー・エントリでサーバー名(servername1servername2など)が必要です。各代替サーバー・エントリのポート番号(port1port2など)および接続プロパティ(property=value)はオプションです。ポートが指定されていない場合、プライマリ・サーバーのポート番号が使用されます。プライマリ・サーバーのポート番号が指定されていない場合、デフォルトのポート番号である2003が使用されます。オプションの接続プロパティはDatabaseNameおよびInformixServerです。

たとえば、次のURLには、server2およびserver3の代替サーバー・エントリが含まれます。代替サーバー・エントリには、オプションのDatabaseNameプロパティが含まれます。

jdbc:weblogic:sybase://server1:50000;DatabaseName=TEST; User=test;Password=secret;AlternateServers=(server2:50000; DatabaseName=TEST2,server3:50000;DatabaseName=TEST3)

デフォルト: なし

ApplicationName

データベースに格納するアプリケーションの名前。この値によって、sysprocesses表のclientapplname値およびprogram_name値が設定されます。この値は、データベースの管理および監視のために使用されます。

有効な値: string(ここで、stringは、アプリケーション名です)。データベースでは、値の文字長を制限できます。値の文字長が制限を超えた場合、ドライバから切り捨てられます。

データ型: String

デフォルトは空の文字列です。

AuthenticationMethod

ドライバが接続を確立する際に使用する認証方法を指定します。指定された認証方法がデータベース・サーバーでサポートされていない場合は、接続に失敗してドライバから例外がスローされます。

有効な値: kerberos | userIdPassword

データ型: string

kerberosの場合、ドライバではKerberos認証が使用されます。ドライバによって、指定したユーザーIDまたはパスワードが無視されます。この値を設定する場合、ServicePrincipalNameプロパティも設定する必要があります。

userIdPassword(デフォルト)の場合、ドライバでは、ユーザーID/パスワード認証が使用されます。ユーザーIDおよびパスワードを指定しない場合、ドライバによって例外がスローされます。

UserプロパティはユーザーIDを提供します。Passwordプロパティはパスワードを提供します。

Sybaseドライバによる認証の使用方法については、「認証」を参照してください。

デフォルトは、userIdPasswordです。

BatchPerformanceWorkaround

バッチ処理の実行に使用するメソッドを決定します。

有効な値: true | false

データ型: boolean

値がtrueの場合、ドライバではSybaseのネイティブ・バッチ・メカニズムが使用されます。ほとんどの場合は、Sybaseのネイティブ・バッチ機能を使用すると、パフォーマンスが大幅に向上しますが、ドライバがバッチのカウントの更新を戻せない場合がある可能性があります。

false(デフォルト)の場合、ドライバではJDBC 3.0準拠のバッチ・メカニズムが使用されます。

デフォルトはfalseです。

「バッチ挿入とバッチ更新」を参照してください。

BulkLoadBatchSize

データをバルク・ロードするときにデータベースに一度にロードする行数に関して、ドライバに提案します。少数のネットワーク・ラウンド・トリップが必要となるため、ドライバから一度にロードされる行数を増やすことでパフォーマンスが改善されます。ロードされる行数を増やすと、ドライバからクライアントのより多くのメモリーが消費される場合があります。

注意:

  • このプロパティでは、バッチ挿入のための一括ロードまたはDDBulkLoadオブジェクトの使用のどちらを一括ロード方法として使用するかにかかわらず、行数を提案します。

  • DDBulkObject.setBatchSize()メソッドでは、このプロパティで設定された値がオーバーライドされます。

有効な値: x(ここで、xは正の整数です)。デフォルトは2048です。

データ型: long

ClientHostName

データベースに格納されるクライアント・マシンのホスト名。この値により、sysprocesses表のclienthostnameの値およびhostnameの値が設定されます。この値は、データベースの管理および監視のために使用されます。

有効な値: string(ここで、stringは、クライアント・マシンのホスト名です)。データベースでは、このプロパティで設定された値の文字長が制限できます。値の文字長が制限を超えた場合、ドライバから切り捨てられます。デフォルトは空の文字列です。

データ型: String

ClientUser

データベースに格納されるユーザーID。この値により、データベースのsysprocesses表のclientname値が設定されます。この値は、データベースの管理および監視のために使用されます。

有効な値: string(ここで、stringは、有効なユーザーIDです)。データベースでは、このプロパティで設定された値の文字長を制限できます。値の文字長が制限を超えた場合、ドライバから切り捨てられます。デフォルトは空の文字列です。

データ型: String

CodePageOverride

ドライバがCharacterデータの変換に使用するコード・ページ。指定したコード・ページによって、デフォルトのデータベース・コード・ページがオーバーライドされます。データベースとやり取り(取得および書込み)するすべての文字データは、指定したコード・ページを使用して変換されます。値としては、使用しているJVMでサポートされている有効なコード・ページの名前(たとえばCodePageOverride=CP950)を含む文字列を指定する必要があります。

デフォルトでは、文字データの変換に使用するコード・ページが自動的に識別されます。このプロパティは、ドライバのデフォルト動作を変更する必要がある場合にのみ使用します。

ConnectionRetryCount

データベース・サーバーへの正常な接続を確立できるまで、ドライバが接続を再試行する回数。

有効な値: 0 | xxは、任意の正の整数。

データ型: int

0の場合、最初の試行が失敗したら再接続は試行されません。

xの場合、ドライバは、指定された回数文接続を再試行します。接続が再試行中に確立されないと、ドライバは、最後に接続使用としたデータベース・サーバーで生成された例外を戻します。

試行の待機間隔は、ConnectionRetryDelayプロパティで秒単位で指定します。

デフォルトは5です。

ConnectionRetryDelay

ConnectionRetryCountが正の整数に設定されている場合に、ドライバがデータベース・サーバーへの接続を再試行する前に待機する秒数。

有効な値は0またはxxは、時間(秒単位)を示します。

データ型: int

0に設定すると、ドライバでは再試行の間に遅延がありません。

xの場合、ドライバは、指定された秒数、接続再試行間に待機します。

デフォルトは1です。

ConvertNull

データ変換におけるnull値の処理方法を制御します。

有効な値: 0 | 1

データ型: int

1の場合、ドライバは、リクエストされたデータ型とデータを格納する表列のデータ型を照合します。リクエストされた型と列の型の間の変換が定義されていない場合は、列値のデータ型に関係なく、「unsupported data conversion」例外が生成されます。

0の場合、列の値がnullであると、ドライバでデータ型がチェックされません。これによって、リクエストした型および列の型間の変換が定義されていない場合も、null値が戻されます。

デフォルトは1です。

データベース

DatabaseNameの別名。

DatabaseName

接続先のデータベースの名前。

有効な値: stringstringは、Sybaseデータベースの名前を示します。デフォルト: NoneData Type: StringAlias: Databaseプロパティ。接続URLにDatabaseおよびDatabaseNameの両方のプロパティが指定されている場合、接続URLで最後に配置されるプロパティが使用されます。たとえば、アプリケーションで次の接続URLが指定された場合、DatabaseName接続プロパティの値ではなく、Database接続プロパティの値が使用されます。

jdbc:datadirect:sybase://server1:1433;DatabaseName=jdbc; Database=acct;User=test;Password=secret

EnableBulkLoad

ドライバから、バッチ挿入のためにバッチ・メカニズムのかわりにデータベース内のネイティブな一括ロード・プロトコルが使用されるかどうかを指定します。バッチ操作の追加のパフォーマンスとして、データベースから実行されたデータ解析が一括ロードでバイパスされます。このプロパティでは、バッチ挿入のある既存のアプリケーションで、アプリケーション・コードを変更しないで一括ロードが使用できます。

有効な値: true | false

trueの場合、ドライバから、バッチ挿入のためにネイティブな一括ロード・プロトコルが使用されます。BatchPerformanceWorkaroundのすべての値セットが無視されます。

falseの場合、ドライバから、バッチ挿入のためにバッチ・メカニズムが使用されます。

データ型: boolean

デフォルトはfalseです。

EnableCancelTimeout

クエリがタイムアウトしたためドライバから送信された取消しリクエストに、取り消す文と同じ問合せタイムアウト値を適用するかどうかを指定します。

有効な値: true | false

データ型: boolean

trueに設定した場合、取消しリクエストは、取り消す文に設定されているタイムアウト値(秒)と同じ時間でタイムアウトします。たとえば、ある文でアプリケーションがStatement.setQueryTimeout(5)を呼び出し、タイムアウトが経過したためその文が取り消された場合、ドライバから送信される取消リクエストも実行時間が5秒を超えるとタイムアウトします。サーバー・ダウンなどの理由で取消しリクエストがタイムアウトすると、取消しリクエストがタイムアウトしたことを示す例外がドライバからスローされ、その接続はそれ以降無効となります。

false (デフォルト)に設定すると、取消しリクエストはタイムアウトしません。

EncryptionMethod

ドライバとデータベース・サーバーの間でネットワークを介して転送するデータの暗号化と復号化に、SSL暗号化を使用するかどうかを指定します。

有効な値: noEncryption | SSL

データ型: String

noEncryptionに設定すると、データは暗号化/復号化されません。

注意: ドライバがSSLを要求しないデータベース・サーバーへの接続を試行すると、接続のハングが発生する可能性があります。SSLを要求しないサーバーに接続した場合に発生する問題を回避するには、LoginTimeoutプロパティを使用してログイン・タイムアウトを設定します。

SSLに設定すると、データがSSLで暗号化されます。データベース・サーバーでSSLがサポートされていない場合は、接続に失敗して例外がスローされます。SSLを有効にすると、次のプロパティも適用されます。

  • HostNameInCertificate

  • TrustStore

  • TrustStorePassword

  • ValidateServerCertificate

デフォルトはnoEncryptionです。

ErrorBehavior

ストアド・プロシージャから戻されるエラーのドライバによる処理方法を決定します。

有効な値: exception | warning | raiseerrorwarning

データ型: String

exceptionに設定した場合、RAISERRORなどのストアド・プロシージャ・エラーが発生した場合、ドライバは例外をスローします。

warningに設定した場合、ドライバによってRAISERRORなどのストアド・プロシージャ・エラーがSQLWarningsとして戻されます。

raiseerrorwarningに設定した場合、ドライバによって、RAISERRORがSQLWarningsとして戻され、その他のストアド・プロシージャ・エラーの場合は例外がスローされます。

注意: 旧バージョンのSybaseドライバでは、デフォルトで、ストアド・プロシージャから戻されたエラーがSQLWarningsに変換されます。ドライバに依存してエラーから警告への変換を行っていたアプリケーションでは、設定することでその動作に戻すことができます。

デフォルトはexceptionです。

FailoverGranularity

ドライバが、接続の欠落について接続の再確立を試行しているときに例外が発生する場合、プロセスを続行するか全体のフェイルオーバー・プロセスに失敗するかを指定します。FailoverMode=connectの場合、このプロパティが無視されます。

有効な値: nonAtomic | atomic | atomicWithRepositioning | disableIntegrityCheck

nonAtomicの場合、ドライバでフェイルオーバー・プロセスが続行され、例外が発生される文にこの例外がポストされます。

atomicの場合、例外が接続状態のリストアの結果として発生した場合、ドライバは全体のフェイルオーバー・プロセスに失敗します。例外が、進行中の作業状態のリストアの結果として発生した場合、ドライバでフェイルオーバー・プロセスが続行されるがSelect文が再発行される必要があることを示す例外警告が発生します。

atomicWithRepositioningの場合、いずれかの例外が接続の状態または進行中の作業の状態のリストアの結果として発生した場合、ドライバは全体のフェイルオーバー・プロセスに失敗します。

disableIntegrityCheckの場合、フェイルオーバー・プロセスのときにリストアされた行が元の行に一致することがドライバから確認されません。この値は、FailoverMode=selectの場合のみ適用できます。

データ型: String

デフォルトはnonAtomicです。

FailoverMode

ドライバから使用されるフェイルオーバー・メソッドのタイプを指定します。

有効な値: connect | extended| select

connectの場合、ドライバによって、新規接続のみにフェイルオーバー保護が提供されます。

extendedの場合、ドライバによって、新規接続および古い接続にフェイルオーバー保護が提供されますが、進行中の作業には提供されません。

selectの場合、ドライバによって、新規接続および古い接続にフェイルオーバー保護が提供されます。また、Statementオブジェクトに最後のSelect文で実行された操作の状態が保存されます。

注意:

  • AlternateServersプロパティでは、フェイルオーバーのための1つまたは複数の代替サーバーが指定されます。このプロパティは、すべてのフェイルオーバー・メソッドのために必要となります。

  • FailoverGranularityプロパティでは、フェイルオーバー・プロセスのときに例外が発生する場合、ドライバからどのアクションが実行されるかを指定します。

  • FailoverPreconnectプロパティでは、ドライバが一度に複数のデータベース・サーバー(プライマリおよび代替)に接続しようとするかどうかを指定します。

データ型: String

デフォルトはconnectです。

FailoverPreconnect

ドライバが一度にプライマリおよび代替サーバーに接続しようとするかどうかを指定します。FailoverMode=connectの場合、このプロパティは無視されます。

有効な値: true | false

trueの場合、ドライバは一度にプライマリおよび代替サーバーに接続しようとします。アプリケーションが時間を区別し、フェイルオーバー接続を正常に実行するまで待機できない場合、役立ちます。

falseの場合、ドライバは接続欠落または失敗した接続試行でフェイルオーバーが発生したときのみ、代替サーバーに接続しようとします。この値でパフォーマンスが向上しますが、通常、フェイルオーバー接続を試行するときに、アプリケーションで少し時間がかかります。

注意: AlternateServersプロパティでは、フェイルオーバーのための1つまたは複数の代替サーバーが指定されます。

データ型: boolean

デフォルトはfalseです。

HostNameInCertificate

SSL暗号化と証明書の検証が有効になっています( EncryptionMethod=SSL および ValidateServerCertificate=trueが指定されています)場合に、証明書の検証に使用するホスト名を指定します。省略可能なこのプロパティは、ドライバが接続されているサーバーが実際にリクエストされたサーバーであることを保証することにより、介在者の攻撃(man-in-the-middle attack)を防ぐための追加のセキュリティを提供します。

注意:

  • SSL暗号化または証明書の検証が有効になっていない場合、このプロパティは無視されます。

  • SSL暗号化および検証が有効になっていて、このプロパティが指定されていない場合、ドライバによって、接続URLに指定されたサーバー名または接続のデータ・ソースが使用され、証明書が検証されます。

有効な値: host_name | #SERVERNAME#(ここで、host_nameは、有効なホスト名です)。

host_nameが指定されている場合は、ドライバによって、指定されたホスト名が、証明書内のSubjectAlternativeNameDNSName値と照合されます。DNSName値がSubjectAlternativeNameに存在しない場合や、証明書にSubjectAlternativeNameが含まれていない場合、ホスト名は証明書のSubject名のCommon Name(CN)部分と照合されます。値が一致しない場合は、接続に失敗して例外がスローされます。

#SERVERNAME#が指定されている場合は、接続のデータ・ソースまたは接続URL内に指定されたサーバー名が、証明書内のSubjectAlternativeNameのDNSName値と照合されます。DNSName値がSubjectAlternativeNameに存在しない場合や、証明書にSubjectAlternativeNameが含まれていない場合、ホスト名は証明書のSubject名のCN部分と照合されます。値が一致しない場合は、接続に失敗して、ドライバから例外がスローされます。複数CN部分が存在する場合は、ホスト名がそれぞれのCN部分に対して検証されます。検証が1つでも一致すれば、接続が確立されます。

データ型: String

デフォルトは空の文字列です。

ImportStatementPool

文プールの内容をロードするために使用されるファイルのファイル名およびパスを指定します。このプロパティが指定されている場合、文が、指定されたファイルから文プールにインポートされます。接続を確立するとき、指定されたファイルがドライバから見つけられない場合、接続に失敗して例外がスローされます。

有効な値: string(ここで、stringは、文プールの内容をロードするために使用するファイルのファイル名およびパスです)。

データ型: String

デフォルトは空の文字列です。

InitializationString

ドライバがデータベースへの接続を確立し、その接続のすべての初期化を実行した後に実行する1つまたは複数のSQLコマンドを指定します。SQLコマンドの実行が失敗した場合、接続試行も失敗し、どのSQLコマンドが失敗したかを示す例外が、ドライバからスローされます。

有効な値: command[[;command]...]。ここでは、commandはSQLコマンドです。

注意: 複数のコマンドを指定する場合はセミコロンで区切る必要があります。また、このプロパティを接続URL内に指定する場合、複数のコマンドを指定するには値全体をカッコで囲む必要があります。

例: 次の接続URLでは、null値の処理をSybaseのデフォルトに設定し、デリミタ付き識別子を使用できます。

jdbc:datadirect:sybase://server1:5000; InitializationString=(set ANSINULL off; set QUOTED_IDENTIFIER on);DatabaseName=test

データ型: String

InsensitiveResultSetBufferSize

ドライバがインセンシティブな結果セット・データのキャッシュに使用するメモリーの量を指定します。

有効な値: -1 | 0 | x

データ型: int

-1の場合、ドライバはすべてのインセンシティブな結果セット・データをメモリーにキャッシュします。結果セットのサイズが利用できるメモリー容量を超えると、OutOfMemoryExceptionが生成されます。結果セット・データをディスクに書き込む必要がないため、データがより効率的に処理されます。

0の場合、ドライバは2GBを限度としてすべてのインセンシティブな結果セット・データをメモリーにキャッシュします。結果セット・データのサイズが利用できるメモリー容量を超えると、その結果セット・データがディスクにページングされます。結果セット・データがディスクに書き込まれる可能性があるため、ディスクに正しく書き込むためにデータの再フォーマットが必要になることがあります。

xの場合、xは正の整数であり、インセンシティブな結果セット・データのキャッシュに使用するメモリー・バッファのサイズ(KB単位)を指定します。結果セットのサイズがバッファ・サイズを超えると、結果セットがディスクにページングされます。結果セット・データがディスクに書き込まれる可能性があるため、ディスクに正しく書き込むためにデータの再フォーマットが必要になることがあります。バッファ・サイズとして2の累乗を指定すると、メモリーの使用がより効率的になります。

デフォルトは2048 (KB)です。

JavaDoubleToString

double値やfloat値をstring値に変換する際に、ドライバの内部変換アルゴリズムとJVM変換アルゴリズムのどちらを使用するかを指定します。

有効な値: true | false

trueに設定すると、double値やfloat値をstring値に変換する際にJVMアルゴリズムがドライバで使用されます。

falseに設定すると、double値やfloat値をstring値に変換する際にドライバの内部アルゴリズムが使用されます。内部アルゴリズムを使用するとパフォーマンスは向上しますが、JVMアルゴリズムを使用した変換との間で、丸めによる多少の誤差が生じる可能性があります。ただし、これらの誤差はdoubleおよびfloatデータ型の誤差としては許容範囲内であります。

デフォルトはfalseです。

JDBCBehavior

ドライバがJDBC 4.0データ型(NCHARNVARCHARNLONGVARCHARNCLOB、およびSQLXML)にマップするデータ型を記述する方法を決定します。また、DatabaseMetadata.getProcedures()およびDatabaseMetadata.getProcedureColumns()によって戻されるPROCEDURE_NAME列にプロシージャ名の修飾子が含まれるかどうかを制御します。このプロパティは、アプリケーションがJava SE 6を使用する場合のみ適用されます。

有効な値: 0 | 1

データ型: int

0に設定した場合、Java SE 6を使用するときにドライバはデータ型をJDBC 4.0データ型として記述します。また、PROCEDURE_NAME列のspecific_name列にはプロシージャ名の修飾子が含まれません。たとえば、1.sp_productaddという完全修飾プロシージャ名については、ドライバによってsp_productadd;1ではなく、sp_productaddが戻されます。

1に設定した場合、JVMに関係なく、ドライバではJDBC 3.0対応のデータ型を使用してデータ型が記述されます。これにより、アプリケーションはJava SE 6環境で継続してJDBC 3.0データ型を使用できます。また、PROCEDURE_NAME列にはプロシージャ名修飾子が含まれます。たとえば、1.sp_productaddという完全修飾プロシージャ名の場合は、ドライバによってsp_productadd;1が戻されます。

デフォルトは1です。

LoadBalancing

ドライバで、データベース・サーバー(プライマリおよび代替)への接続試行にクライアント・ロード・バランシングが使用されるかどうかを指定します。AlternateServersプロパティを設定して1つ以上の代替サーバーを指定できます。

データ型: boolean

有効な値: true | false

trueの場合、ドライバでクライアント・ロード・バランシングが使用され、データベース・サーバー(プライマリおよび代替)へのランダムな接続が試行されます。ドライバで、プライマリおよび代替サーバーのリストから最初に接続するサーバーがランダムに選択されます。この接続が失敗した場合、ドライバによってもう一度このリストからサーバーがランダムに選択されます。これは、リストのすべてのサーバーへの接続が試行されるか、または正常な接続が確立されるまで繰り返されます。

falseの場合、ドライバは、クライアント・ロード・バランシング使用しないで、サーバーの連続した順序(最初にプライマリ・サーバー、その後、指定された順序で代替サーバー)に応じて各サーバーに接続します。デフォルトの値は、falseです。

LoginTimeout

ドライバが接続が確立されるのを待機する時間(秒単位)。この時間が経過すると、制御がアプリケーションに返され、タイムアウト例外がスローされます。

有効な値: 0 | x(ここで、xは正の整数です)。

データ型: int

0に設定すると、ドライバにより接続リクエストがタイムアウトされません。デフォルトの値は0。

xに設定すると、ドライバが、指定された時間(秒数)まで待機します。この時間を経過すると、制御がアプリケーションに戻され、タイムアウト例外がスローされます。

LongDataCacheSize

ドライバが結果セット内で長いデータ(イメージ、画像、長いテキストまたはバイナリ・データ)をキャッシュするかどうかを決定します。パフォーマンスを向上するために、アプリケーションが結果セット内の定義順に列を取得する場合に長いデータ・キャッシュを無効化できます。

有効な値: -1 | 0 | x(ここで、xは正の整数です)。

-1の場合、ドライバは結果セット内の長いデータをキャッシュしません。長いデータは、サーバーにキャッシュされます。アプリケーションでは結果セットに定義された順序で列を取得する場合のみ、この値を指定します。

0の場合は、ドライバは結果セット内の長いデータをメモリーにキャッシュします。結果セット・データのサイズが使用可能なメモリー容量を超えると、その結果セット・データがディスクにページングされます。

x(xは正の整数)の場合、ドライバは結果セット内の長いデータをメモリーにキャッシュします。この値を使用して、結果セット・データのキャッシュに使用するメモリー・バッファのサイズ(KB単位)が設定されます。結果セット・データのサイズが使用可能なメモリー容量を超えると、その結果セット・データがディスクにページングされます。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

デフォルトは2048です。

MaxPooledStatements

この接続のプールされたプリペアド文の最大数。MaxPooledStatementsをゼロ(0)以上の整数に設定すると、ドライバの内部のプリペアド文プーリングが実行できます。この内部のプリペアド文プーリングは、アプリケーション・サーバーまたは独自のプリペアド文プーリングを提供する別のアプリケーション内部で実行されないドライバの場合に役立ちます。データ型: int

有効な値: 0 | x(ここで、xは正の整数です)。

0に設定すると、ドライバの内部のプリペアド文プーリングが有効になっていません。デフォルトの値は0。

xに設定すると、ドライバによって、文プール・モニターが有効になり、アプリケーションで作成された特定数のプリペアド文をキャッシュするために指定された値が使用されます。このプロパティの値が、アプリケーションで使用されるプリペアド文数より大きい場合は、アプリケーションで作成されたすべてのプリペアド文がキャッシュされます。CallableStatementは、PreparedStatementのサブクラスであるため、CallableStatementsもキャッシュされます。

例: このプロパティの値を20に設定すると、アプリケーションによって作成された最後の20個のプリペアド文がキャッシュされます。

MaxStatements

MaxPooledStatementsプロパティの別名。

PacketSize

データベース・サーバーからクライアント・マシンに転送される各データベース・プロトコル・パケットのバイト数を決定します(Sybaseではこのパケットをネットワーク・パケットと呼びます)。パケット・サイズを調整するとパフォーマンスを向上できます。最適なサイズは、アプリケーションやその実行環境によって挿入、更新、または戻されるデータの一般的なサイズによって異なります。通常は、パケット・サイズを大きくするほど大量のデータを処理しやすくなります。たとえば、アプリケーションが10,000文字の長さの値を定期的に戻す場合は、一般的に32(16 KB)の値を使用するとパフォーマンスが向上します。

有効な値: -1 | 0 | x(ここで、xは、1から127までの整数です)。

データ型: int

-1の場合、ドライバはデータベース・サーバーで使用されている最大パケット・サイズを使用します。

0の場合、ドライバはデータベース・サーバーで使用されているデフォルトの最大パケット・サイズを使用します。

xの場合、ドライバは512バイトの倍数のパケット・サイズを使用します。たとえば、PacketSize=8の場合は、パケット・サイズが8*512バイト(4096バイト)に設定されます。

注意: アプリケーションで小さい結果セットを取得のみを行う問合せを送信する場合、データベース・サーバーで構成されている最大パケット・サイズより小さいパケット・サイズを使用します。1行または2行のみのデータの結果セットが大きいパケット全体を満たさない場合、値を最大パケット・サイズに設定してもパーフォマンスが向上しません。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

デフォルトは0です。

Password

Sybaseデータベースに接続する場合に使用するパスワード。パスワードは、データベースでセキュリティが有効化されている場合にのみ必要となります。その場合、システム管理者に連絡してパスワードを取得します。

有効な値: string (ここで、stringは有効なパスワードです)。パスワードは大文字と小文字が区別されます。

データ型: String

PortNumber (必須)

Sybaseデータベースへの接続をリスニングするプライマリ・データベース・サーバーのTCPポート。このプロパティは、データ・ソース接続でのみサポートされます。

有効な値: port(ここで、portはポート番号です)。デフォルトは、オペレーティング・システムによって異なります。

データ型: int

PrepareMethod

サーバーにプリペアド文用のストアド・プロシージャを作成するかどうかを決定します。

有効な値: StoredProc | StoredProclfParam | Direct

データ型: String

StoredProcの場合、文が作成されるときにストアド・プロシージャが作成され、作成された文が実行されるときにストアド・プロシージャが実行されます。

StoredProcIfParamの場合、プリペアド文に1つ以上のパラメータ・マーカーが含まれる場合にのみストアド・プロシージャが作成されます。この場合も、文が作成されるときにストアド・プロシージャが作成され、作成された文が実行されるときにストアド・プロシージャが実行されます。文にパラメータ・マーカーが含まれていない場合は、ストアド・プロシージャは作成されず、文が直接実行されます。

Directの場合、プリペアド文用のストアド・プロシージャは作成されず、文が直接実行されます。パラメータ・メタデータがリクエストされた場合は、ストアド・プロシージャが作成されることがあります。

アプリケーションがプリペアド文を複数回実行する場合は、このプロパティをStoredProcまたはStoredProclfParamに設定するとパフォーマンスが向上します。これは、いったん作成されたストアド・プロシージャは、単一のSQL文よりも高速に実行できるためです。一方、プリペアド文を1回しか実行しない、または1回も実行しない場合はパフォーマンスが低下するおそれがあります。これは、ストアド・プロシージャを作成する際のサーバーへのオーバーヘッドが、単一のSQL文を実行する負荷よりも大きいからです。アプリケーションがプリペアド文を複数回実行することがない場合は、このプロパティをDirectに設定します。

デフォルトはStoredProclfParamです。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

ProgramID

データベースに格納するクライアント・ドライバの製品およびバージョン情報。この値はローカルに格納され、データベースの管理/監視に使用されます。

データ型: String

有効な値: DDJVVRRM。説明:

  • VVは、2桁のバージョン番号を示します(1桁のバージョンの場合、高位0)。

  • RRは、2桁のリリース番号を示します(1桁のリリースの場合、高位0)。

  • Mは、1文字の変更レベルを示します(0-9またはA-Z)。

  • デフォルトは0000016aです。

例: DDJ04100

QueryTimeout

接続で作成されたすべてのstatementsのデフォルト問合せタイムアウト(秒単位)を設定します。

有効な値: -1 | 0 | x(ここで、xは秒数です)。

データ型: int

-1の場合、問合せタイムアウト機能が無効化されます。ドライバは、通知なしでStatement.setQueryTimeout()メソッドへの呼出しを無視します。

0の場合、デフォルトの問合せタイムアウトは無限大となります(問合せはタイムアウトしません)。

xの場合、ドライバでは、その値が、接続によって作成されたすべての文のデフォルトのタイムアウトとして使用されます。この接続オプションで設定されたデフォルトのタイムアウト値をオーバーライドするには、Statement.setQueryTimeout()メソッドを呼び出して特定の文のタイムアウト値を設定します。

デフォルトは0です。

ResultSetMetaDataOptions

ドライバがSelect文のResultSetメタデータの表名情報を戻すかどうかを決定します。

有効な値: 0 | 1

データ型: int

0の場合は、ResultSetMetaData.getTableName()メソッドが呼び出されると、ドライバでは結果セットの各列の正しい表名を特定するための追加の処理は実行されません。この場合は、getTableName()メソッドは結果セットの各列に空の文字列を戻す場合があります。

1の場合は、ResultSetMetaData.getTableName()メソッドが呼び出されると、結果セットの各列の正しい表名を特定するための追加処理が実行されます。ResultSetMetaData.getSchemaName()メソッドとResultSetMetaData.getCatalogName()メソッドが呼び出された場合、ドライバがこの情報を判別できる場合は、ドライバはスキーマ名とカタログ名の情報を戻すこともできます。

デフォルトは0です。

SelectMethod

ドライバが、Select文でデータベース・カーソルをリクエストするかどうかを判定するためのヒント。ドライバがリクエストされたメソッドを常に満たすとは限らないのでヒントとして定義されるこのプロパティによって、ドライバのパフォーマンスと動作は影響を受けます。

有効な値: direct | cursor

データ型: String

direct(デフォルト)の場合、データベース・サーバーは問合せにレスポンスするときに、ドライバへの1つのレスポンスですべての結果セットを送信します。サーバー側のデータベース・カーソルは作成されません。通常、レスポンスはドライバによってキャッシュされません。このメソッドでは、ドライバは問合せのレスポンス全体を処理してからでないと、次の問合せを送信できません。同じ接続で別の文を使用するなどして問合せがもう1つ送信された場合、ドライバは2番目の問合せを送信する前に最初の問合せのレスポンスをキャッシュします。通常、cursorメソッドよりもdirectメソッドのほうがパフォーマンスがよいです。

cursorの場合、サーバー側のデータベース・カーソルがリクエストされます。送信専用の結果セットを戻すときに、サーバーからブロック単位で行が取得されます。setFetchSize()メソッドを使用すると、各リクエストで戻される行数を制御できます。パフォーマンス・テストの結果から、送信専用の結果セットを戻す場合、Statement.setFetchSize()の値がパフォーマンスに大きく影響することがわかっています。setFetchSize()の値を決定するための簡単なルールはありません。様々なsetFetchSize()の値で実験して、アプリケーションのパフォーマンスが最高になる値を決定することをお薦めします。Cursorメソッドは、大量のデータが得られる問合せ、特に複数の結果セットを開く場合に効果的です。

このプロパティを構成して最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照してください。

デフォルトはdirectです。

ServerName

プライマリ・データベース・サーバーのIPアドレス(IPv4またはIPv6形式)またはサーバー名(ネットワークが名前付きのサーバーをサポートしている場合)を指定します。このプロパティは、データ・ソース接続でのみサポートされます。

有効な値: string(ここで、stringは、有効なIPアドレスまたはサーバー名です)。

データ型: String

ServicePrincipalName

ドライバでKerberos認証に使用されるサービス・プリンシパル名を指定します。Sybaseでは、サービス・プリンシパル名はSybaseインタフェース・ファイルで構成されているサーバーの名前です。このプロパティを設定する場合は、AuthenticationMethodプロパティの値もKerberosに設定する必要があります。Kerberos認証が使用されない場合、このプロパティは無視されます。

有効な値: string(ここで、stringは、有効なサービス・プリンシパル名を示す文字列です)。この名前では、大文字と小文字が区別されます。

データ型: String

このプロパティの値にはオプションでKerberosレルム名を含めることができます。Kerberosレルム名を指定しない場合、デフォルトのKerberosレルム名が使用されます。たとえば、Kerberosレルム名を含むサービス・プリンシパル名がserver/sybase125ase1@XYZ.COMで、デフォルトのレルムがXYZ.COMの場合、このプロパティの有効な値はserver/sybase125ase1@XYZ.COMまたはserver/sybase125ase1になります。

Sybaseドライバによる認証の使用方法については、「認証」を参照してください。

SpyAttributes

Spyを有効にして、アプリケーションのかわりにドライバで発行された呼出しの詳細情報をログします。

有効な値: (spy_attribute[;spy_attribute]...)。ここで、spy_attributeは任意の有効なDataDirect Spyの属性です。詳細は、「WebLogic JDBC SpyによるJDBC呼び出しのトラッキング」を参照してください。

データ型: String

デフォルト: なし。

WindowsでJava文字列を使用してログ・ファイルへのパスをコーディングする場合、バックスラッシュ文字(\)の前にJavaエスケープ文字のバックスラッシュを付ける必要があります。たとえば、log=(file)C:\\temp\\spy.logのようにします。

例: 次の値では、は1行当たり最大80文字を使用してすべてのJDBCアクティビティをファイルにログするようドライバに指示します。

(log=(file)/tmp/spy.log;linelimit=80)

TransactionMode

ドライバがローカル・トランザクションの開始を区切る方法を制御します。

有効な値: implicit | explicit

データ型: String

implicitの場合、暗黙のトランザクション・モードが使用されます。つまり、トランザクション対応の文が実行されると、ドライバではなく、Sybaseが自動的にトランザクションを開始します。通常、暗黙のトランザクション・モードではトランザクションを開始するためにドライバがコマンドを送信する必要がなく、必要になるまでトランザクションが開始されないため、暗黙のトランザクション・モードの方が明示的なトランザクション・モードよりも効率的になります。暗黙のトランザクション・モードでTRUNCATE TABLE文が使用された場合、エラーが発生すると、Sybaseによってトランザクションがロールバックされる場合があります。この状況が起きた場合は、このプロパティの値にexplicitを使用します。

explicitの場合、ドライバでは明示的なトランザクション・モードが使用されます。この場合、前のトランザクションがロールバックまたはコミットされると、Sybaseではなく、ドライバが新しいトランザクションを開始します。

デフォルトは、implicitです。

TrustStore

SSLサーバー認証を使用している場合に、使用するトラスト・ストア・ファイルのディレクトリを指定します。トラスト・ストア・ファイルには、クライアントが信頼する認証局(CA)のリストが格納されています。

この値によって、javax.net.ssl.trustStore Javaシステム・プロパティに指定されたトラストストア・ファイルのディレクトリがオーバーライドされます。このプロパティが指定されていない場合は、トラストストア・ファイルのディレクトリがjavax.net.ssl.trustStore Javaシステム・プロパティによって指定されます。

このプロパティは、ValidateServerCertificate=falseに設定されている場合は無視されます。

有効な値: string(ここで、stringは、トラストストア・ファイルの有効なディレクトリです)。

データ型: String

デフォルト: なし

TrustStorePassword

SSLサーバー認証を使用している場合に、使用するトラスト・ストア・ファイルのパスワードを指定します。トラスト・ストア・ファイルには、クライアントが信頼する認証局(CA)のリストが格納されています。

この値によって、javax.net.ssl.trustStorePassword Javaシステム・プロパティに指定されたトラストストア・ファイルのパスワードがオーバーライドされます。このプロパティが指定されていない場合は、トラストストア・パスワードがjavax.net.ssl.trustStorePassword Javaシステム・プロパティによって指定されます。

このプロパティは、ValidateServerCertificate=falseに設定されている場合は無視されます。

有効な値: string(ここで、stringは、トラストストア・ファイルの有効なパスワードです)。

データ型: String

デフォルト: なし

UseAlternateProductInfo

ドライバがDatabaseMetaData.getDatabaseProductName()メソッドおよびDatabaseMetaData.getDatabaseProductVersion()メソッドのより正確な情報を戻すために必要な追加処理を実行するかどうかを決定します。

有効な値: true | false

データ型: boolean

trueの場合、getDatabaseProductName()が呼び出された場合、ドライバによって取得された文字列から製品名の情報のみが戻され@@versionの値を選択するために追加の問合せが作成されます。getDatabaseProductVersion()が呼び出された場合、文字列全体が戻されます。たとえば次のようになります。

Adaptive Server Enterprise/12.5.1/EBF 11428/P/NT (1X86)/OS 4.0/ase1251/1823/32-bit/OPT/Wed Sep 17 11:10:54 2003

falseの場合、ドライバは、ログイン・プロセス中にサーバーから受信した情報を戻します。旧バージョンのドライバでは、この情報が戻されます。

デフォルトはfalseです。

User

Sybaseデータベースに接続する場合に使用するユーザー名。ユーザー名は、データベースでセキュリティが有効化されている場合にのみ必要となります。その場合、システム管理者に連絡してユーザー名を取得します。

有効な値: string(ここで、stringは有効なユーザー名です)。ユーザー名は大文字と小文字を区別しません。

データ型: String

デフォルト: なし

ValidateServerCertificate

SSL暗号化が有効(EncryptionMethod=SSL)になっている場合に、ドライバがデータベース・サーバーから送信された証明書を検証するかどうかを決定します。SSLサーバーの認証を使用する場合、サーバーから送信されるすべての証明書は、信頼できる認証局(CA)によって発行されたものである必要があります。テスト環境においては、信頼できるCAが発行した証明書でなくても、サーバーから戻されたすべての証明書をドライバが信頼するようにすると、テスト環境内の各クライアントでトラストストア情報を指定する必要がなくなります。

有効な値:true | false

データ型: boolean

trueの場合、ドライバによってデータベース・サーバーから送信された証明書が検証されます。サーバーから送信されるすべての証明書は、トラストストア・ファイル内の信頼できるCAによって発行されている必要があります。HostNameInCertificateプロパティを指定した場合、ドライバはホスト名を使用した証明書の検証も行います。HostNameInCertificateプロパティはオプションであり、ドライバが接続されているサーバーが実際にリクエストされたサーバーであることを保証することにより、介在者の攻撃(man-in-the-middle attack)を防ぐための追加のセキュリティを提供します。

falseに設定した場合、データベース・サーバーから送信された証明書は検証されません。ドライバで、TrustStoreおよびTrustStorePasswordプロパティまたはJavaシステム・プロパティに指定されたすべてのトラストストア情報は無視されます。

デフォルトはtrueです。


パフォーマンスに関する考慮事項

以下に示すSybaseドライバの接続プロパティを設定すると、アプリケーションのパフォーマンスを向上させることができます。

BatchPerformanceWorkaround

ドライバはJDBC 3.0に準拠したバッチ・メカニズムまたはSybaseのネイティブ・バッチ・メカニズムを使用して、バッチ処理を実行できます。特に、パフォーマンスの負荷が大きいネットワークの往復が問題となっている場合、Sybaseのネイティブ・バッチ環境を使用するとパフォーマンスを向上させることができます。ネイティブ・メカニズムを使用すると、バッチを実行してエラーが発生した場合、ドライバはバッチ内でエラーを引き起こした文を判別できません。また、バッチの中にストアド・プロシージャを呼び出した文やトリガーを実行した文が含まれる場合、各バッチ文またはパラメータ・セットに対する複数の更新件数が生成されます。JDBC 3.0に準拠したメカニズムでは、JDBC 3.0仕様で求められているように、バッチ内の文やパラメータごとの更新件数が返されます。Sybaseのネイティブ・バッチ・メカニズムを使用するには、このプロパティをtrueに設定してください。

EnableBulkLoad

バッチ挿入のために、ドライバによって、バッチ・メカニズムのかわりにネイティブな一括ロード・プロトコルを使用できます。バッチ操作の追加のパフォーマンスとして、データベースから実行されたデータ解析が一括ロードでバイパスされます。このプロパティをtrueに設定すると、バッチ挿入との既存のアプリケーションに、コードを変更しないで一括ロードが使用できます。

EncryptionMethod

データの暗号化と復号化により余分なオーバーヘッド(主にCPUの使用率)がかかるため、パフォーマンスが低下する場合があります。

InsensitiveResultSetBufferSize

スクロール・インセンシティブな結果セットを使用する場合のパフォーマンスを向上させるため、ドライバは結果セット・データをディスクに書き込む代わりに、メモリーにキャッシュできます。デフォルトでは、ドライバはインセンシティブな結果セット・データを2 MBまでメモリーにキャッシュし、残りの結果セット・データをディスクに書き込みます。パフォーマンスを向上させるには、ドライバがデータをディスクに書き込む前に使用するメモリーの量を増やすか、ドライバがインセンシティブな結果セット・データをディスクに書込めないようにします。最大キャッシュ・サイズの設定は2 GBです。

LongDataCacheSize

アプリケーションが画像、ピクチャ、長いテキスト、またはバイナリ・データを返すときのパフォーマンスを向上させるために、アプリケーションが長いデータ列値を結果セット内での定義順に返す場合、クライアントで長いデータのキャッシュを無効にすることができます。アプリケーションが長いデータ列値を順不同で返す場合は、長いデータ値をクライアントでキャッシュする必要があります。この場合は、データをディスクに書き込む前にドライバによって使用されるメモリーの容量を増やすことで、パフォーマンスを改善できます。

MaxPooledStatements

ドライバがアプリケーション・サーバーの内部で実行されない場合、または独自のプリペアド文のプールを提供しない別のアプリケーションの内部で実行されない場合は、パフォーマンスを向上させるために、ドライバ独自の内部プリペアド文のプールを有効にする必要があります。ドライバの内部プリペアド文のプールを有効にすると、ドライバはアプリケーションによって作成された一定数のプリペアド文をキャッシュします。たとえば、MaxPooledStatementsプロパティを20に設定した場合、ドライバは、アプリケーションによって作成された最後の20個のプリペアド文をキャッシュします。このプロパティに設定された値が、アプリケーションが使用するプリペアド文の数よりも大きい場合、すべてのプリペアド文がキャッシュされます。プリペアド文プールを使用してパフォーマンスを最適化する方法の詳細は、「rss」を参照してください。

PacketSize

通常、クライアントはサーバーで許可されている最大パケット・サイズを使用するのが適しています。これにより、クライアントへデータを返すために必要な往復回数が減るため、パフォーマンスが向上します。つまり、このプロパティにデータベース・サーバーの最大パケット・サイズを設定すると、パフォーマンスを向上させることができます。

PrepareMethod

アプリケーションがプリペアド文を複数回実行する場合は、このプロパティをStoredProcに設定するとパフォーマンスが向上します。これは、いったん作成されたストアド・プロシージャは、単一のSQL文よりも高速に実行できるためです。アプリケーションがプリペアド文を複数回実行することがない場合は、このプロパティをDirectに設定してください。この場合、ストアド・プロシージャを作成するとパフォーマンスが低下します。これは、ストアド・プロシージャによるサーバーへのオーバーヘッドが、単一のSQL文を実行する場合よりも大きくなるためです。

ResultSetMetaDataOptions

デフォルトでは、ResultSetMetaData.getTableName()メソッドが呼び出された場合、Sybaseドライバは、結果セット内の各列の正しい表名を戻すために必要な追加の処理を省略します。このため、getTableName()メソッドは結果セット内の列ごとに空の文字列を戻す可能性があります。アプリケーションで表名情報が必要ない場合は、この設定によって最適なパフォーマンスが得られます。ResultSetメタデータを戻す方法の詳細は、「ResultSetメタデータのサポート」を参照してください。

SelectMethod

ほとんどの場合、サーバー側のデータベース・カーソルを使用するとパフォーマンスに悪影響を与えます。ただし、アプリケーションが次のような条件に該当する場合は、このプロパティの最適な設定はcursorです。この設定は、サーバー側のデータベース・カーソルを使用することを表します。

  • アプリケーションに大量のデータを返す問合せが含まれています。

  • アプリケーションが、以前の大きな結果セットを処理する前または閉じる前にSQL文を実行し、これを複数回行います。

  • アプリケーションによって返される大きな結果セットが前方専用のカーソルを使用しています。

データ型

表5-2では、Sybaseドライバでサポートされるデータ型と、それらがJDBCデータ型へどのようにマップされるかを示します。

表5-2 Sybaseデータ型

Sybaseのデータ型 JDBCのデータ型

BIGINT脚注1

BIGINT

BINARY

BINARY

BIT

BIT

CHAR

CHAR

DATE脚注2

DATE

DATETIME

TIMESTAMP

DECIMAL

DECIMAL

FLOAT

FLOAT

IMAGE

LONGVARBINARY

INT

INTEGER

MONEY

DECIMAL

NUMERIC

NUMERIC

REAL

REAL

SMALLDATETIME

TIMESTAMP

SMALLINT

SMALLINT

SMALLMONEY

DECIMAL

SYSNAME

VARCHAR

TEXT

LONGVARCHAR

TIME脚注3

TIME

TIMESTAMP

VARBINARY

TINYINT

TINYINT

UNICHAR脚注4

CHAR

注意: JDBCBehavior=0の場合、データ型は、アプリケーション: NCHAR(Java SE 6を使用する場合)またはCHAR(別のJVMを使用する場合)で使用されるJVMに依存します。

UNITEXT脚注5

LONGVARCHAR

注意: JDBCBehavior=0の場合、データ型は、LONGNVARCHAR (Java SE 6を使用する場合)またはLONGVARCHAR (その他のJVMを使用する場合)などのアプリケーションで使用されるJVMによって異なります。

UNIVARCHAR脚注6

VARCHAR

注意: JDBCBehavior=0の場合、データ型は、NVARCHAR (Java SE 6を使用する場合)またはVARCHAR (その他のJVMを使用する場合)などのアプリケーションで使用されるJVMによって異なります。

UNSIGNED BIGINT脚注7

DECIMAL

UNSIGNED INT脚注8

BIGINT

UNSIGNED SMALLINT脚注9

INTEGER

VARBINARY

VARBINARY

VARCHAR

VARCHAR


脚注1 Sybase 15でのみサポートされます。

脚注2 Sybase 12.5以上でのみサポートされます。

脚注3 Sybase 12.5以上でのみサポートされます。

脚注4 Sybase 12.5以上でのみサポートされます。

脚注5 Sybase 15でのみサポートされます。

脚注6 Sybase 12.5以上でのみサポートされます。

脚注7 Sybase 15でのみサポートされます。

脚注8 Sybase 15でのみサポートされます。

脚注9 Sybase 15でのみサポートされます。


注意:

SYBASE ADAPTIVE SERVER 12.5以降を使用する場合、Sybaseドライバはcharacterおよびbinaryの列でのXNL (extended new limits)をサポートします。長さが255を超える列がサポートされます。characterおよびbinaryの列におけるXNLの詳細については、Sybaseのドキュメントを参照してください。

データ型の詳細は、付録B「GetTypeInfo」を参照してください。

認証

認証では、ユーザーの識別情報を保護することで、悪意のあるハッカーが転送中のユーザー資格証明を傍受できないようになっています。概要については「認証」を参照してください。

Sybaseドライバでは、以下の認証方法がサポートされます。

ドライバのAuthenticationMethod接続プロパティは、ドライバが接続を確立する際に使用する認証メカニズムを指定するために使用します。このプロパティに設定する値の詳細は、「AuthenticationMethodプロパティの使用」を参照してください。

AuthenticationMethodプロパティの使用

AuthenticationMethod接続プロパティは、ドライバが接続を確立する際に使用する認証メカニズムを指定するために使用します。

AuthenticationMethod=kerberosに設定すると、接続を確立する際にKerberos認証が使用されます。UserプロパティとPasswordプロパティに指定された値は無視されます。

AuthenticationMethod=userIdPassword(デフォルト)の場合、ドライバは接続を確立する際にユーザーID/パスワード認証を使用します。UserプロパティはユーザーIDを提供します。Passwordプロパティはパスワードを提供します。ユーザーIDが指定されていない場合は、ドライバから例外がスローされます。

ユーザーID/パスワード認証の構成

次の手順を実行して、ユーザーIDとパスワードを構成します。

  1. AuthenticationMethodプロパティをuserIdPasswordに設定します。このプロパティに設定する値の詳細は、「AuthenticationMethodプロパティの使用」を参照してください。

  2. UserプロパティにユーザーIDを設定します。

  3. Passwordプロパティにパスワードを設定します。

Kerberos認証の構成

この項では、SybaseドライバにKerberos認証を構成する場合の要件と手順について説明します。

製品要件

ドライバにKerberos認証を構成する前に、使用している環境が表5-3の要件を満たしていることを確認してください。

表5-3 SybaseドライバにKerberos認証を構成する場合の要件

コンポーネント 要件

データベース・サーバー

データベース・サーバーはクライアントを管理している同じドメイン・コントローラによって管理され、Sybase 12.0以上を実行している必要があります。

Kerberosサーバー

Kerberosサーバーは、認証に使用するユーザーIDを管理します。Kerberos KDCもKerberosサーバーで管理します。

ネットワーク認証を、以下のいずれかの方法で提供する必要があります。

  • 以下のいずれかのオペレーティング・システム上のWindows Active Directory。Windows Server 2003、Windows 2000 Server Service Pack 3以上

  • MIT Kerberos 1.4.2以上

クライアント

クライアントはデータベース・サーバーを管理している同じドメイン・コントローラによって管理される必要があります。また、J2SE 1.4.2以上がインストールされている必要があります。


ドライバの構成

WebLogic Server JDBCドライバをインストールする際には、Kerberos認証で必要となるファイルがWL_HOME/server/libフォルダにインストールされます。WL_HOMEはWebLogic Serverのインストール先ディレクトリです。

  • krb5.conf。KerberosレルムやそのレルムのKDC名を保持するKerberos構成ファイルです。WebLogic Serverでは汎用ファイルがインストールされるため、使用している環境に合わせて変更する必要があります。

  • JDBCDriverLogin.confファイル。Kerberos認証に使用するJAAS (Java Authentication and Authorization Service)ログイン・モジュールを指定する構成ファイルです。java.security.auth.login.configシステム・プロパティで別の構成ファイルをロードするように設定されていない限り、このファイルが自動的にロードされます。このファイルを変更することは可能ですが、JAASログイン・モジュールを構成するためには、このファイル内、または指定されている他のログイン構成ファイル内に、JDBC_DRIVER_01エントリが含まれていなければなりません。このファイルの構成オプションの設定については、使用しているJ2SEのドキュメントを参照してください。

ドライバを構成するには:

  1. AuthenticationMethodプロパティをkerberosに設定します。このプロパティに設定する値の詳細は、「AuthenticationMethodプロパティの使用」を参照してください。

  2. ServicePrincipalNameプロパティにKerberos認証で使用されるサービス・プリンシパル名(大文字/小文字を区別します)に設定します。Sybaseでは、サービス・プリンシパル名はSybaseインタフェース・ファイルで構成されているサーバーの名前です。

    ServicePrincipalNameプロパティの値にはKerberosレルム名を含めることができますが、省略可能です。レルム名を指定しない場合は、デフォルトのKerberosレルムが使用されます。たとえば、Kerberosレルム名を含むサーバー・プリンシパル名がserver/sybase125ase1@XYZ.COMで、デフォルト・レルムがXYZ.COMの場合、このプロパティの有効な値は次のようになります。

    server/sybase125ase1@XYZ.COM
    

    および

    server/sybase125ase1
    
  3. krb5.confファイルをテキスト・エディタで編集するか、java.security.krb5.realmおよびjava.security.krb5.kdcシステム・プロパティを指定して、Kerberosレルム名とそのKDC名を指定します。


    注意:

    Windows Active Directoryを使用している場合、Kerberosレルム名はWindowsドメイン名、KDC名はWindowsドメイン・コントローラ名となります。

    たとえば、Kerberosレルム名がXYZ.COM、KDC名がkdc1である場合、krb5.confファイルは次のようになります。

    [libdefaults] 
       default_realm = XYZ.COM
    
    [realms]
       XYZ.COM = {
       kdc = kdc1
       }
    

    krb5.confファイルに有効なKerberosレルム名とKDC名が指定されていない場合は、次の例外がスローされます。

    Message:[OWLS][Sybase JDBC Driver]Could not establish a connection using integrated security: No valid credentials provided
    

    java.security.krb5.confシステム・プロパティで別のKerberos構成ファイルをロードするように設定されていないかぎり、WebLogic Type4 JDBCと一緒にインストールされたkrb5.confファイルが自動的にロードされます。

  4. Java 2プラットフォームのセキュリティ・マネージャでKerberos認証を使用する場合は、アプリケーションとドライバにセキュリティ権限を付与する必要があります。詳細は、「Kerberos認証のための権限」を参照してください。

Kerberos認証のユーザー資格証明の指定

Kerberos認証を使用する場合、デフォルトでは、オペレーティング・システムに保持されているユーザーIDとパスワードを使用して、データベースにアクセスするユーザーの認証が行われます。オペレーティング・システムで使用されているユーザー名とパスワードをデータベースでも使用できるため、有効なオペレーティング・システム・アカウントにログインしているユーザーであれば、ユーザー名とパスワードを入力せずにデータベースにログインできます。

オペレーティング・システムのユーザー名とパスワード以外のユーザー資格証明セットを使用したい場合もあります。たとえば、アプリケーション・サーバーやWebサーバーの多くは、サーバー・ユーザーとしてではなく、アプリケーションが実行されているマシンにログオンしたクライアント・ユーザーの代理として処理を実行します。

ドライバがオペレーティング・システムのユーザー名とパスワード以外のユーザー資格証明を使用する場合は、次のようにコードをアプリケーションに追加し、認証に使用するjavax.security.auth.Subjectを取得してドライバに渡します。

import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
import java.sql.*;

//  The following code creates a javax.security.auth.Subject instance
//  used for authentication. Refer to the Java Authentication 
//  and Authorization Service documentation for details on using a 
//  LoginContext to obtain a Subject.

LoginContext lc = null;
Subject subject = null;

try {

    lc = new LoginContext("JaasSample", new TextCallbackHandler());
    lc.login();
    subject = lc.getSubject();
} 
catch (Exception le) {
    ... // display login error
}

//  This application passes the javax.security.auth.Subject
//  to the driver by executing the driver code as the subject

Connection con = 
   (Connection) Subject.doAs(subject, new PrivilegedExceptionAction() {
    
    public Object run() {
    
        Connection con = null;
    try {

         Class.forName("com.ddtek.jdbc.sybase.SybaseDriver");
         String url = "jdbc:weblogic:sybase://myServer:5000";
         con = DriverManager.getConnection(url);
        }
     catch (Exception except) {

     ... //log the connection error
            Return null;
        }
        
        return con;
    }
});

//  This application now has a connection that was authenticated with 
//  the subject. The application can now use the connection.
Statement   stmt = con.createStatement();
String      sql = "SELECT * FROM employee";
ResultSet   rs = stmt.executeQuery(sql);

... // do something with the results

Kerberosチケット認可チケットの取得

アプリケーション・ユーザーがKerberos認証を使用する場合は、まずKerberosサーバーからKerberosチケット認可チケット(TGT)を取得する必要があります。Kerberosサーバーでは、TGTに格納されている資格証明を使用して、ユーザーの識別情報を検証し、サービスへのアクセスを制御します。

アプリケーションがWindowsクライアントからKerberos認証を使用し、Kerberos認証がWindows Active Directoryから提供されている場合は、アプリケーション・ユーザーがKerberosサーバーにログオンして明示的にTGTを取得する必要はありません。ユーザーのTGTは、Windows Active Directoryによって自動的に取得されます。

アプリケーション・ユーザーは以下の場合にTGTを明示的に取得する必要があります。

  • アプリケーションがUNIXまたはLinuxクライアントからKerberos認証を使用する場合

  • アプリケーションがWindowsクライアントからKerberos認証を使用し、Kerberos認証がMIT Kerberosから提供されている場合

ユーザーがTGTを明示的に取得するには、kinitコマンドを使用してKerberosサーバーにログインする必要があります。たとえば、次に示すコマンドは、存続期間が10時間で5日間更新可能なTGTをサーバーにリクエストしています。

kinit -l 10h -r 5d user

ここでは、userはアプリケーション・ユーザーです。

kinitコマンドの使用とユーザーのTGTの取得については、Kerberosドキュメントを参照してください。

データの暗号化

Sybaseドライバでは、データ暗号化でSSLがサポートされます。SSLが提供する暗号化と認証によって、データの整合性を確保できます。詳細は、「ネットワーク上でのデータの暗号化」を参照してください。


注意:

ドライバがSSL用に構成されているのにデータベース・サーバーでSSLがサポートされていないと、接続のハングが発生する可能性があります。SSLをサポートしていないサーバーに接続した場合に発生する問題を回避するには、LoginTimeoutプロパティを使用してログイン・タイムアウトを設定します。

SSL暗号化を構成するには:

  1. EncryptionMethodプロパティをSSLに設定します。

  2. SSLサーバー認証に使用するトラスト・ストア・ファイルの場所とパスワードを指定します。TrustStoreおよびTrustStorePasswordプロパティ、またはそれぞれに対応するJavaシステム・プロパティ(javax.net.ssl.trustStoreおよびjavax.net.ssl.trustStorePassword)を設定します。

  3. データベース・サーバーから送信された証明書を検証する場合は、ValidateServerCertificateプロパティをtrueに設定します。

  4. 必要に応じて、証明書の検証に使用するホスト名をHostNameInCertificateプロパティに設定します。HostNameInCertificateプロパティは、ドライバが接続されているサーバーが実際にリクエストされたサーバーであることを保証することにより、介在者の攻撃(man-in-the-middle attack)を防ぐための追加のセキュリティを提供します。

接続用のクライアント情報

Sybaseドライバを使用すると、アプリケーションで特定の接続に関する次のタイプのクライアント情報を格納および戻すことができます。

この情報を使用してデータベースの管理および監視を行うことができます。「rss」を参照してください。

SQLエスケープ・シーケンス

SybaseドライバでサポートされるSQLエスケープ・シーケンスの詳細は、付録C「JDBCのSQLエスケープ・シーケンス」を参照してください。

分離レベル

Sybaseドライバは、トランザクション分離レベルとしてRead CommittedRead UncommittedRepeatable Read、およびSerializableをサポートしています。デフォルトはRead Committedです。

スクロール可能なカーソルの使用

Sybaseドライバは、ID列を持つ表から結果セットが返される場合にのみ、スクロール・センシティブな結果セットをサポートします。Sybaseドライバでも、スクロール・インセンシティブな結果セット、および更新可能な結果セットをサポートしています。


注意:

Sybaseドライバが、リクエストされた結果セットのタイプまたは同時実行性をサポートできない場合は、カーソルを自動的にダウングレードして詳細情報の入ったSQLWarningを生成します。

Large Object (LOB)のサポート

SybaseではBlobまたはClobデータ型は定義されていませんが、Sybaseドライバによって、BlobおよびClob用に設計されたJDBCメソッドを使用して長いデータのLONGVARBINARYおよびLONGVARCHARデータを取得および更新できます。これらのメソッドを使用して長いデータをBlobまたはClobとして更新すると、更新はBlobまたはClobオブジェクト内のデータのローカル・コピーに対して行われます。

BlobおよびClob用のJDBCメソッドを使用して長いデータを取得および更新すると、BlobおよびClobを操作した場合と同じメリットが得られます。たとえばBlobおよびClobを使用した場合、

BlobおよびClobを使用した場合のこうしたメリットを得るには、データをキャッシュする必要があります。データをキャッシュするので、特に一度にデータの逐次読出しを行う場合に、パフォーマンスが低下します。長いデータのサイズが使用可能なメモリーよりも大きいと、パフォーマンスが著しく低下することがあります。

バッチ挿入とバッチ更新

Sybaseドライバは次のバッチ・メカニズムを提供します。

Sybaseのネイティブ・バッチ・メカニズムを使用するには、BatchPerformanceWorkaround接続プロパティをtrueに設定します。

パラメータ・メタデータのサポート

Sybaseドライバは、あらゆるタイプのSQL文とストアド・プロシージャの引数のパラメータ・メタデータを返すことができます。

ResultSetメタデータのサポート

アプリケーションで表名情報が必要な場合、SybaseドライバはSelect文のResultSetメタデータに含めて表名情報を返すことができます。ResultSetMetaDataOptionsプロパティを1に設定した場合、ResultSetMetaData.getTableName()メソッドが呼び出されたとき、Sybaseドライバは結果セット内の各列の正しい表名を決定する追加の処理を実行します。それ以外の場合、getTableName()メソッドは結果セット内の列ごとに空の文字列を返す可能性があります。

ResultSetMetaDataOptionsプロパティが1に設定されていて、ResultSetMetaData.getTableName()メソッドが呼び出された場合、Sybaseドライバが返す表名情報は、結果セット内の列がデータベース表内の列にマップされているかどうかによって異なります。結果セット内の各列がデータベース表内の列にマップされている場合、Sybaseドライバはその列に関連付けられている表名を返します。結果セット内の各列が表内の列にマップされていない場合(集約やリテラルなど)、Sybaseドライバは空の文字列を返します。

ResultSetメタデータが返されるSelect文には、別名、結合、および完全修飾名を含めることができます。以下の問合せは、ResultSetMetaData.getTableName()メソッドによってSelectリスト内の各列の正しい表名が返される、Select文の例です。

SELECT id, name FROM Employee
SELECT E.id, E.name FROM Employee E 
SELECT E.id, E.name AS EmployeeName FROM Employee E
SELECT E.id, E.name, I.location, I.phone FROM Employee E, 
   EmployeeInfo I WHERE E.id = I.id
SELECT id, name, location, phone FROM Employee,
   EmployeeInfo WHERE id = empId
SELECT Employee.id, Employee.name, EmployeeInfo.location, 
   EmployeeInfo.phone FROM Employee, EmployeeInfo 
   WHERE Employee.id = EmployeeInfo.id

生成された列の場合、ドライバによって返される表名は空の文字列です。以下の問合せは、生成された列(「upper」という名前の列)を含む結果セットを返すSelect文の例です。

SELECT E.id, E.name as EmployeeName, {fn UCASE(E.name)} 
   AS upper FROM Employee E

Sybaseドライバは、ResultSetMetaData.getSchemaName()メソッドとResultSetMetaData.getCatalogName()メソッドが呼び出された場合、スキーマ名とカタログ名の情報を返すこともできます(ドライバがこの情報を判別できる場合)。たとえば、以下の文の場合、Sybaseドライバはカタログ名として「test」、スキーマ名として「test1」、表名として「foo」を返します。

SELECT * FROM test.test1.foo 

表名、スキーマ名、およびカタログ名の情報を返すために必要な追加の処理は、ResultSetMetaData.getTableName()ResultSetMetaData.getSchemaName()、またはResultSetMetaData.getCatalogName()メソッドが呼び出された場合にのみ実行されます。

Rowsetのサポート

Sybaseドライバは、以下のようなRowSetインタフェースのJSR 114実装をサポートします。

ドライバでRowSetを使用するには、J2SE 1.4以上が必要です。

JSR 114の詳細は、http://www.jcp.org/en/jsr/detail?id=114を参照してください。

自動生成キーのサポート

Sybaseドライバは自動生成キーの値の取得をサポートします。Sybaseドライバから返される自動生成キーは、identity列の値です。

自動生成キーの値を返すことができるのは、アプリケーションでInsert文を実行するときです。値を返す方法は、パラメータを含むInsert文を使用しているかどうかによって異なります。

自動生成キーの値は、Statement.getGeneratedKeys()メソッドを使用して取得できます。このメソッドは、各自動生成キーの列とともにResultSetオブジェクトを戻します。

NULL値

Sybaseドライバは、接続を確立するときに、Sybaseのデータベース・オプションansinullオンに設定します。ansinullをオンに設定した場合、ドライバはANSI SQL標準に準拠し、他のWebLogic タイプ4 JDBCドライバの動作との一貫性が保たれるため、データベース間を横断するアプリケーションの開発が容易になります。

デフォルトでは、SybaseはSQLの等価比較(=)または不等価比較(<>)や集約関数におけるnull値の評価を、ANSI SQL準拠の方法では行いません。たとえば、ANSI SQL仕様では、次のSelect文のようなcol1=NULLは常にfalseと評価するよう定義されています。

SELECT * FROM table WHERE col1 = NULL

デフォルトのデータベース設定(ansinull=off)を使用すると、同じ比較がfalseではなくtrueと評価されます。

ansinullをオンに設定した場合、データベースによるnull値の処理方法が変わり、=NULLではなくIS NULLの使用が強制されます。たとえば、次のSelect文のcol1の値がnullである場合、比較の評価はtrueになります。

SELECT * FROM table WHERE col1 IS NULL

アプリケーションでは以下の方法で、接続に関するSybaseのデフォルトの動作に戻すことができます。

SybaseのJTAのサポート

グローバル・トランザクションでSybase XAドライバを使用するには、グローバル・トランザクションをサポートするようにSybaseサーバーを設定しておく必要があります。『Oracle WebLogic Server JTAのプログラミング』のXAをサポートするためのSybaseサーバーの構成に関する項を参照してください。

フェイルオーバーの構成

次の手順を実行して、フェイルオーバーを構成します。

  1. プライマリ・サーバーと代替サーバーを指定します。

    • 接続URLまたはデータ・ソースを使用してプライマリ・サーバーを指定します。

    • AlternateServersプロパティを設定して、1つまたは複数の代替サーバーを指定します。

      rssを参照してください。

  2. FailoverMode接続プロパティを設定して、フェイルオーバー・メソッドを選択します。デフォルト・メソッドは、接続フェイルオーバー(FailoverMode=connect)です。

  3. FailoverMode=extendedまたはFailoverMode=selectの場合、FailoverGranularityプロパティを設定して、失われた接続の再確立を試行しているときに例外が発生した場合のドライバの動作を指定します。ドライバのデフォルトの動作では、フェイルオーバー処理が続行され、例外が発生した文にその例外がポストされます(FailoverGranularity=nonAtomic)。

  4. オプションで、接続再試行機能を構成します。「rss」を参照してください。

  5. オプションで、ドライバによって、一度にプライマリ・サーバーおよび代替サーバーへの接続を確立する場合、FailoverPreconnectプロパティを設定します。デフォルトの動作では、失敗した接続試行または失われた接続で発生したフェイルオーバーの場合、代替サーバーのみへ接続されます。(FailoverPreconnect=false)。

プライマリ・サーバーと代替サーバーの指定

次のいずれかのメソッドを実行して、プライマリ・サーバーと代替サーバーの接続情報を指定できます。

  • JDBCドライバ・マネージャを介した接続URL

  • JDBCデータ・ソース

たとえば、次のInformixドライバ用の接続URLでは、接続URLでプライマリ・サーバーと代替サーバーの接続情報を指定します。

jdbc:datadirect:sybase://server1:4100;DatabaseName=TEST;User=test; Password=secret;AlternateServers=(server2:4100;DatabaseName=TEST2, server3:4100;DatabaseName=TEST3)

この例では:

...server1:4100;DatabaseName=TEST...

これは、プライマリ・サーバー用の接続情報を指定する接続URLの一部です。代替サーバーがAlternateServersプロパティで指定されます。例:

...;AlternateServers=(server2:4100;DatabaseName=TEST2, server3:4100;DatabaseName=TEST3)

同様に、JDBCデータ・ソースで指定されたプライマリ・サーバーと代替サーバーで同一の接続情報は、次のようになります。

例5-1 JDBCデータ・ソースの構成の例

SybaseDataSource mds = new SybaseDataSource();
mds.setDescription("My SybaseDataSource");
mds.setServerName("server1");
mds.setPortNumber(4100);
mds.setDatabaseName("TEST");
mds.setUser("test");
mds.setPassword("secret");
AlternateServers=(server2:4100;DatabaseName=TEST2,
server3:4100;DatabaseName=TEST3)

この例では、ServerNamePortNumber、およびDatabaseNameプロパティを使用して、プライマリ・サーバーの接続情報を指定します。AlternateServersプロパティを使用して代替サーバーの接続情報を指定します。

AlternateServersプロパティの値は、次のフォーマットの文字列です。

((servername1[:port1][;property=value][,servername2[:port2] [;property=value]] ...)

説明:

  • servername1は、1番目の代替データベース・サーバーのIPアドレスまたはサーバー名、servername2は、2番目の代替データベース・サーバーのIPアドレスまたはサーバー名などというようになります。各代替サーバー・エントリにPアドレスまたはサーバー名が必要です。

  • port1は、1番目の代替データベース・サーバーがリスニングするポート番号、port2は2番目の代替データベース・サーバーがリスニングするポート番号などというようになります。ポート番号は、各代替サーバー・エントリのためにオプションです。指定されていない場合、プライマリ・サーバーのために指定されたポート番号が使用されます。

  • property=valueは、DatabaseNameまたはInformixServerのいずれかのプロパティです。これらのプロパティは、各代替サーバー・エントリでオプションとなります。たとえば、次のようになります。

    jdbc:datadirect:sybase://server1:4100;DatabaseName=TEST;User=test; Password=secret;AlternateServers=(server2:4100;DatabaseName=TEST2, server3:4100)

代替サーバーのエントリにDatabaseName接続プロパティを指定しない場合、その代替サーバーへの接続ではプライマリ・サーバーのURLで指定されているプロパティが使用されます。たとえば、次のURLに示すように、プライマリ・サーバーにDatabaseName=TESTを指定し、代替サーバーのエントリにデータベースの名前を指定しない場合、ドライバは代替サーバー上のTESTデータベースに接続しようとします。

jdbc:datadirect:sybase://server1:4100;DatabaseName=TEST;User=test; Password=secret;AlternateServers=(server2:4100,server3:4100)

接続再試行の指定

接続再試行では、Informixドライバがプライマリ・データベース・サーバーへの接続を再試行できます。指定されている場合、正常な接続を確立するまで代替サーバーへの接続を再試行できます。ConnectionRetryCountおよびConnectionRetryDelayプロパティを使用して、接続再試行を有効にでき、その動作を制御できます。たとえば、次のようになります。:

jdbc:datadirect:sybase://server1:4100;DatabaseName=TEST;User=test; Password=secret;AlternateServers=(server2:4100;DatabaseName=TEST2, server3:4100;DatabaseName=TEST3);ConnectionRetryCount=2; ConnectionRetryDelay=5

この例では、データベース・サーバー(プライマリ・サーバーおよび代替サーバー)のリストを介してSQL Serverドライバの最初のパスで接続がまだ確立されていない場合、ドライバはサーバーのリストを同じ順序で2回再試行します(ConnectionRetryCount=2)。接続再試行の遅延が5秒に設定されているため(ConnectionRetryDelay=5)、ドライバは再試行パスの間に5秒まで待機します。

フェイルオーバー・プロパティ

次の表は、Informixドライバでフェイルオーバーの動作を制御する接続プロパティを要約したものです。

表5-4 要約: Informixドライバのフェイルオーバー・プロパティ



AlternateServers

1つまたは複数の代替データベース・サーバー。各サーバーを識別するIPアドレスまたはサーバー名が必要です。ポート番号およびDatabaseName接続プロパティはオプションです。ポート番号を指定しない場合は、プライマリ・サーバーに指定したポート番号が使用されます。

ConnectionRetryCount

ドライバがプライマリ・データベース・サーバーへの接続を再試行する回数。指定されている場合、代替サーバーへ正常に接続するまで再試行します。デフォルトは5です。

ConnectionRetryDelay

ConnectionRetryCountプロパティが正の整数に設定されている場合の接続再試行間の待機間隔(秒単位)。デフォルトは1です。

DatabaseName

接続するデータベースの名前。

FailoverGranularity

切断された接続の再確立中に例外が発生した場合、ドライバがフェイルオーバー処理全体に失敗するか、または処理を続行するかを決定します。デフォルトはnonAtomicです(ドライバはフェイルオーバー処理を続行して、その例外が発生した文に例外をポストします)。

FailoverMode

ドライバで使用されるフェイルオーバー・メソッド。デフォルトはconnectです(接続フェイルオーバーが使用されます)。

FailoverPreconnect

ドライバが同時にプライマリ・サーバーと代替サーバーへの接続を試みるかどうかを指定します。デフォルトはfalseです(ドライバは、接続試行の失敗または接続の切断が原因でフェイルオーバーが発生した場合のみ代替サーバーに接続します)。

LoadBalancing

ドライバで、データベース・サーバー(プライマリ・サーバーと代替サーバー)への接続の試行にクライアント・ロード・バランシングを使用するかどうかを設定します。クライアント・ロード・バランシングを有効にすると、ドライバでは、順次的ではなくランダムに接続が試行されます。デフォルトは、false (クライアント・ロード・バランシングは無効)です。

PortNumber

プライマリ・データベース・サーバーの接続のポート・リスニング。このプロパティは、データ・ソース接続でのみサポートされます。

ServerName

プライマリ・データベース・サーバーのIPアドレスまたはサーバー名。このプロパティは、データ・ソース接続でのみサポートされます。


バルク・ロード

ドライバでは、WebLogicバルク・ロードの機能がサポートされます。この機能を使用すると、アプリケーションでは大量のデータ行を、多数の小さいデータベース・プロトコル・パケットではなく連続ストリームとしてデータベースに送信できます。バッチ操作と同様に、ネットワーク上のラウンド・トリップが少なくなるので、パフォーマンスが向上します。バルク・ロードによって、通常データベースで行われるデータの解析が省略されるので、バッチ操作よりもさらにパフォーマンスが向上します。「rss」を参照してください。