Oracle® Fusion Middleware WebLogic Server Type 4 JDBC ドライバ ガイド 11g リリース 1 (10.3.1) B55561-01 |
|
戻る |
次へ |
以下の節では、WebLogic Type 4 JDBC Sybase ドライバのコンフィグレーション方法と使用方法について説明します。
WebLogic Type 4 JDBC Sybase ドライバのドライバ クラスは次のとおりです。
XA : weblogic.jdbcx.sybase.SybaseDataSource
非 XA : weblogic.jdbc.sybase.SybaseDriver
WebLogic Server ドメインに JDBC データ ソースをコンフィグレーションする場合に、これらのドライバ クラスを使用します。
Sybase ドライバの接続 URL の形式は次のとおりです。
jdbc:weblogic:sybase://hostname:port[;property=value[;...]]
各要素の説明は次のとおりです。
hostname は、接続するサーバの TCP/IP アドレスまたは TCP/IP ホスト名です。IP アドレスの使用については、「IP アドレスの使用」を参照してください。
注意 : 信頼性のないアプレットから、そのホスト以外のマシンへのソケットを開くことはできません。 |
port は、TCP/IP ポートの番号です。
property=value は、接続プロパティを指定します。接続プロパティの一覧および各プロパティに指定できる値については、「Sybase 接続プロパティ」を参照してください。
次に例を示します。
jdbc:weblogic:sybase://server2:5000;User=test;Password=secre
表 5-1 に、Sybase ドライバでサポートされる JDBC 接続プロパティを示し、各プロパティについて説明します。WebLogic Server ドメインの JDBC データ ソースのコンフィグレーションでこれらの接続プロパティを使用できます。プロパティを指定するには、JDBC データ ソースのコンフィグレーションで次の形式を使用します。property=value
。
注意 : すべての接続文字列プロパティ名で、大文字と小文字は区別されません。たとえば、Password は password と同じです。各接続プロパティで示されているデータ型は、JDBC データ ソースのプロパティ値に使用される Java データ型です。 |
表 5-1 Sybase の接続プロパティ
プロパティ | 説明 |
---|---|
AuthenticationMethod |
{kerberos または userIdPassword}。ドライバが接続を確立する際に使用する認証方法を指定する。 kerberos に設定すると、Kerberos 認証が使用される。ユーザ ID やパスワードを指定しても無視される。このプロパティを指定する場合は、 userIdPassword に設定すると、ユーザ ID/パスワード認証が使用される。ユーザ ID とパスワードが指定されていない場合は、ドライバから例外が送出される。
Sybase ドライバによる認証の使用方法については、「認証」を参照。 デフォルトは userIdPassword。 |
BatchPerformanceWorkaround (省略可能) |
True または false。バッチ処理の実行に使用されるメソッドを決定する。 true に設定すると、ネイティブな Sybase バッチ メカニズムが使用される。ほとんどの場合、ネイティブな Sybase バッチ機能を使用するとパフォーマンスは大幅に向上するが、ドライバが常にバッチの更新件数を返せるとは限らない。 false (デフォルト) に設定すると、JDBC 3.0 準拠のバッチ メカニズムが使用される。 デフォルトは false。 「バッチ挿入とバッチ更新」を参照。 |
CodePageOverride (省略可能) |
ドライバが文字データの変換に使用するコード ページ。指定したコード ページによって、デフォルトのデータベース コード ページがオーバーライドされる。データベースとやり取り (取得および書き込み) するすべての文字データは、指定したコード ページを使用して変換される。値としては、使用している JVM でサポートされている有効なコード ページの名前 (たとえば デフォルトでは、文字データの変換に使用するコード ページが自動的に識別される。このプロパティは、ドライバのデフォルト動作を変更する必要がある場合にのみ使用する。 |
ConnectionRetryCount (省略可能) |
データベース サーバへの正常な接続を確立できるまでに、ドライバで接続を再試行する回数。有効な値は、0 または正の整数。 0 に設定すると、最初の試行が失敗した場合でも再接続は試行されない。 アプリケーションによって (たとえば、DataSource.loginTimeout を使用して) ログイン タイムアウト値が設定されている場合は、そのタイムアウトがこのプロパティよりも優先される。 試行の待機間隔は、 デフォルトは 5。 |
ConnectionRetryDelay (省略可能) |
ConnectionRetryCount が正の整数に設定されている場合に、ドライバがデータベース サーバへの接続を再試行する前に待機する秒数。 デフォルトは 1。 |
ConvertNull |
{1 または 0}。データ変換における null 値の処理方法を制御する。 1 (デフォルト) に設定すると、要求されたデータ型とデータを格納するテーブル カラムのデータ型が照合される。要求された型とカラム型の間の変換が定義されていない場合は、カラム値のデータ型に関係なく、「unsupported data conversion」例外が生成される。 0 に設定すると、カラムの値が null の場合でもデータ型の照合は実行されない。このように設定することで、要求された型とカラム型の間の変換が定義されていない場合でも null 値を返すことが可能になる。 デフォルトは 1。 |
DatabaseName (省略可能) |
接続先のデータベースの名前。 「Database 接続プロパティ」を参照。 |
EnableCancelTimeout |
True または false。クエリがタイムアウトしたために送信されたキャンセル リクエストに、キャンセルする文と同じクエリ タイムアウト値を適用するかどうかを指定する。 true に設定した場合、キャンセル リクエストは、キャンセルする文に設定されているタイムアウト値と同じ時間でタイムアウトする。たとえば、ある文でアプリケーションが Statement.setQueryTimeout(5) を呼び出し、タイムアウトが経過したためにその文がキャンセルされた場合、送信されるキャンセル リクエストも実行時間が 5 秒を超えるとタイムアウトする。サーバ ダウン等の理由でキャンセル リクエストがタイムアウトすると、キャンセル リクエストがタイムアウトしたことを示す例外がドライバから送出され、その接続はそれ以降無効となる。 false に設定すると、キャンセル リクエストはタイムアウトしない。 |
EncryptionMethod |
{noEncryption または SSL}。ドライバとデータベース サーバの間でネットワークを介して転送するデータの暗号化と復号化に、SSL 暗号化アルゴリズムを使用するかどうかを指定する。 noEncryption (デフォルト) に設定すると、データは暗号化/復号化されない。 注意 : ドライバが SSL を要求しないデータベース サーバへの接続を試行すると、接続のハングが発生する可能性がある。SSL を要求しないサーバに接続した場合に発生する問題を回避するには、 SSL に設定すると、データが SSL で暗号化される。データベース サーバで SSL がサポートされていない場合は、接続に失敗して例外が送出される。SSL を有効にすると、以下のプロパティも適用される。
注意 : ドライバが SSL をサポートしないデータベース サーバへの接続を試行すると、接続のハングが発生する可能性がある。SSL をサポートしていないサーバに接続した場合に発生する問題を回避するには、 データ暗号化のコンフィグレーションの詳細については、「データの暗号化」を参照。 このプロパティをコンフィグレーションして最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照。 デフォルトは noEncryption。 |
ErrorBehavior |
{exception、warning、または raiseerrorwarning}。ストアド プロシージャから返されたエラーの処理方法を決定する。 exception (デフォルト) に設定すると、RAISERROR などのストアド プロシージャ エラーが発生した場合、ドライバは例外を送出する。 warning に設定すると、RAISERROR などのストアド プロシージャ エラーを SQLWarning として返す。 raiseerrorwarning に設定すると、RAISERROR は SQLWarning として返し、その他のストアド プロシージャ エラーの場合は例外を送出する。 以前のバージョンの Sybase ドライバでは、デフォルトで、ストアド プロシージャから返されたエラーを SQLWarning に変換していた。エラーから警告への変換に依存していたアプリケーションでは、 デフォルトは exception。 |
HostNameInCertificate |
{host_name または #SERVERNAME#}。SSL 暗号化と証明書の検証が有効になっている ( ホスト名が指定されている場合は、指定されたホスト名が、証明書内の SubjectAlternativeName の DNSName 値と照合される。DNSName 値が存在しない場合や、証明書に SubjectAlternativeName が含まれていない場合、ホスト名は証明書のサブジェクト名の共通名 (CN) 部分と照合される。値が一致しない場合は、接続に失敗して例外が送出される。 #SERVERNAME# が指定されている場合は、接続 URL 内に指定されたサーバ名が、証明書内の SubjectAlternativeName の DNSName 値と照合される。DNSName 値が存在しない場合や、証明書に SubjectAlternativeName が含まれていない場合、ホスト名は証明書のサブジェクト名の CN 部分と照合される。値が一致しない場合は、接続に失敗して例外が送出される。 注意 : 複数の CN 部分が存在する場合は、ホスト名がそれぞれの CN 部分と照合される。照合が 1 つでも一致すれば、接続が確立される。 指定されていない場合は、接続 URL 内に指定されたサーバ名または接続のデータ ソースを使用して証明書が検証される。 SSL 暗号化または証明書の検証が有効になっていない場合、このプロパティは無視される。 認証のコンフィグレーションの詳細については、「データの暗号化」を参照。 デフォルトは空の文字列。 |
InitializationString |
ドライバがデータベースへの接続を確立し、その接続のすべての初期化を実行した後に実行する、1 つまたは複数の SQL コマンドを指定する。以下の接続 URL では、null 値の処理を Sybase のデフォルトに設定している。 jdbc:weblogic:sybase://server1:5000; InitializationString=set ANSINULL off; DatabaseName=test 複数のコマンドを指定する場合はセミコロンで区切る必要がある。また、このプロパティを接続 URL 内に指定する場合、複数のコマンドを指定するには値全体を括弧で囲む必要がある。以下の接続 URL では、null 値の処理を Sybase のデフォルトに設定し、識別子の区切りを許可している。 jdbc:weblogic:sybase://server1:5000; InitializationString=(set ANSINULL off; set QUOTED_IDENTIFIER on);DatabaseName=test SQL コマンドの実行が失敗すると、接続の試行も失敗し、どの SQL コマンドが失敗したかを示す例外が送出される。 |
InsensitiveResultSetBufferSize (省略可能) |
-1、ゼロ (0)、または x。ドライバがインセンシティブな結果セット データのキャッシュに使用するメモリの量を指定する。以下のいずれかの値を指定する必要がある。 -1 に設定すると、ドライバはすべてのインセンシティブな結果セット データをメモリにキャッシュする。結果セットのサイズが利用できるメモリ容量を超えると、OutOfMemoryException 例外が生成される。結果セット データをディスクに書き込む必要がないため、データがより効率的に処理される。 0 に設定すると、ドライバは 2GB を限度としてすべてのインセンシティブな結果セット データをメモリにキャッシュする。結果セット データのサイズが利用できるメモリ容量を超えると、その結果セット データがディスクにページングされる。結果セット データがディスクに書き込まれる可能性があるため、ディスクに正しく書き込むためにデータの再フォーマットが必要になることがある。 x (正の整数) に設定すると、インセンシティブな結果セット データのキャッシュに使用するメモリ バッファのサイズ (KB 単位) を指定したことになり、ドライバはすべての結果セット データをメモリにキャッシュする。結果セットのサイズがバッファ サイズを超えると、結果セットがディスクにページングされる。結果セット データがディスクに書き込まれる可能性があるため、ディスクに正しく書き込むためにデータの再フォーマットが必要になることがある。バッファ サイズとして 2 の累乗を指定すると、メモリの使用がより効率的になる。 デフォルトは 2048 (KB)。 このプロパティをコンフィグレーションして最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照。 |
JavaDoubleToString |
True または false。double 値や float 値を string 値に変換する際に、ドライバの内部変換アルゴリズムと JVM 変換アルゴリズムのどちらを使用するかを指定する。 true に設定すると、double 値や float 値を string 値に変換する際に JVM 変換アルゴリズムが使用される。 false (デフォルト) に設定すると、double 値や float 値を string 値に変換する際にドライバの内部変換アルゴリズムが使用される。このプロパティを false に設定するとパフォーマンスは向上するが、JVM アルゴリズムを使用した変換との間で、丸めによる多少の誤差が生じる可能性がある。ただし、これらの誤差は double および float データ型の誤差としては許容範囲内。 デフォルトは false。 |
LoginTimeout (省略可能) |
ドライバが接続が確立されるのを待機する時間 (秒単位)。この時間が経過すると、制御がアプリケーションに返され、タイムアウト例外が送出される。 0 (デフォルト) に設定すると、接続リクエストはタイムアウトしない。 |
LongDataCacheSize |
-1、ゼロ (0)、または x。ドライバが結果セット内の長いデータ (画像、ピクチャ、長いテキスト、バイナリ データ) をキャッシュするかどうかを決定する。パフォーマンスを向上させるために、アプリケーションが結果セット内の定義順にカラムを取得する場合は長いデータのキャッシュを無効にできる。 -1 に設定した場合、ドライバは結果セット内の長いデータをキャッシュしない。サーバでキャッシュされる。この値は、アプリケーションが結果セット内の定義順にカラムを取得する場合にのみ使用する。 0 に設定した場合、ドライバは結果セット内の長いデータをメモリにキャッシュする。結果セット データのサイズが利用できるメモリ容量を超えると、その結果セット データがディスクにページングされる。 x (正の整数) に設定した場合、ドライバは結果セット内の長いデータをメモリにキャッシュする。この値を使用して、結果セット データのキャッシュに使用するメモリ バッファのサイズ (KB 単位) が設定される。結果セット データのサイズが利用できるメモリ容量を超えると、その結果セット データがディスクにページングされる。 このプロパティをコンフィグレーションして最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照。 デフォルトは 2048。 |
PacketSize |
0 または x。データベース サーバからクライアント マシンに転送される各データベース プロトコル パケットのバイト数を決定する (Sybase ではこのパケットのことを「ネットワーク パケット」と呼ぶ)。パケット サイズを調整するとパフォーマンスが向上する可能性がある。最適なサイズは、アプリケーションやその実行環境によって挿入、更新、または返されるデータの一般的なサイズによって異なる。通常は、パケット サイズを大きくするほど大量のデータを処理しやすくなる。たとえば、アプリケーションが 10,000 文字の長さの値を定期的に返す場合は、一般に 32 (16 KB) の値を使用するとパフォーマンスが向上する。 0 に設定した場合、ドライバはデータベース サーバで使用されているデフォルトの最大パケット サイズを使用する。 x (1 ~ 1024 の整数) に設定した場合、ドライバは 512 バイトの倍数のパケット サイズを使用する。たとえば、 注意 : このプロパティをコンフィグレーションして最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照。 デフォルトは 0。 |
Password |
Sybase データベースに接続する場合に使用するパスワード。大文字と小文字を区別する。パスワードは、データベースでセキュリティが有効化されている場合にのみ必要となる。その場合は、システム管理者に連絡してパスワードを取得する。 |
PortNumber |
Sybase データベースへの接続をリスンするプライマリ データベース サーバの TCP ポート。 デフォルトはオペレーティング システムによって異なる。 このプロパティは、データ ソース接続でのみサポートされる。 |
PrepareMethod (省略可能) |
StoredProc に設定すると、文が準備されるときにストアド プロシージャが作成され、プリペアド ステートメントが実行されるときにストアド プロシージャが実行される。 StoredProcIfParam に設定すると、プリペアド ステートメントに 1 つまたは複数のパラメータ マーカが含まれる場合にのみストアド プロシージャが作成される。この場合も、文が準備されるとストアド プロシージャが作成され、プリペアド ステートメントが実行されるとストアド プロシージャが実行される。プリペアド ステートメントにパラメータ マーカが含まれない場合、ストアド プロシージャは作成されず、プリペアド ステートメントが直接実行される。 Direct に設定すると、プリペアド ステートメント用のストアド プロシージャは作成されず、プリペアド ステートメントが直接実行される。パラメータ メタデータが要求された場合は、ストアド プロシージャが作成されることがある。 デフォルトは StoredProclfParam。 アプリケーションがプリペアド ステートメントを複数回実行する場合は、このプロパティを StoredProc または StoredProclfParam に設定するとパフォーマンスが向上する。これは、いったん作成されたストアド プロシージャは、単一の SQL 文よりも高速に実行できるため。一方、プリペアド ステートメントを 1 回しか実行しない、または 1 回も実行しない場合はパフォーマンスが低下するおそれがある。これは、ストアド プロシージャを作成する際のサーバへの負荷が、単一の SQL 文を実行する負荷よりも大きいため。アプリケーションがプリペアド ステートメントを複数回実行することがない場合は、このプロパティを Direct に設定することが望ましい。 このプロパティをコンフィグレーションして最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照。 |
QueryTimeout |
整数、-1、またはゼロ (0)。接続によって作成されるすべての文のデフォルトのクエリ タイムアウトを秒単位で設定する。 正の整数に設定すると、その値が接続によって作成されるすべての文のデフォルト タイムアウトとして使用される。この接続オプションで設定したデフォルト タイムアウトをオーバーライドするには、Statement.setQueryTimeout() メソッドを呼び出して特定の文のタイムアウト値を設定する。 -1 に設定すると、クエリ タイムアウト機能が無効になる。ドライバは、通知なしで Statement.setQueryTimeout() メソッドを呼び出す。 0 (デフォルト) に設定すると、デフォルトのクエリ タイムアウトは無限大となる (クエリはタイムアウトしない)。 デフォルトは 0。 |
ResultSetMetaDataOptions |
ゼロ (0) または 1。アプリケーションでテーブル名情報が必要な場合は、Select 文の ResultSet メタデータにテーブル名情報を含めて返すことができる。 0 (デフォルト) に設定した場合は、ResultSetMetaData.getTableName() メソッドが呼び出されても、結果セットの各カラムの正しいテーブル名を特定するための追加処理は実行されない。この場合、getTableName() メソッドは結果セット内のカラムごとに空の文字列を返す可能性がある。 1 に設定した場合は、ResultSetMetaData.getTableName() メソッドが呼び出されると、結果セットの各カラムの正しいテーブル名を特定するための追加処理が実行される。ドライバは、ResultSetMetaData.getSchemaName() メソッドと ResultSetMetaData.getCatalogName() メソッドが呼び出された場合、スキーマ名とカタログ名の情報を返すこともできます (ドライバがこの情報を判別できる場合)。 ResultSet メタデータを返す方法の詳細については、「ResultSet メタデータのサポート」を参照してください。 |
SelectMethod (省略可能) |
Direct または Cursor。 SQL Server ドライバが、Select 文でデータベース カーソルを要求するかどうかを判定するためのヒント。ドライバが要求されたメソッドを常に満たせるとは限らないので、ドライバのパフォーマンスと動作は、ヒントとして定義されるこのプロパティによって影響を受ける。 direct (デフォルト) に設定した場合、データベース サーバはクエリに応答するときに、ドライバへの 1 つの応答ですべての結果セットを送信する。サーバサイドのデータベース カーソルは作成されない。通常、応答はドライバによってキャッシュされない。このメソッドでは、ドライバはクエリの応答全体を処理してからでないと、次のクエリを送信できない。同じ接続で別の文を使うなどしてクエリがもう 1 つ送信された場合、ドライバは 2 番目のクエリを送信する前に最初のクエリの応答をキャッシュする。通常、cursor メソッドよりも direct メソッドのほうがパフォーマンスが良い。 cursor に設定した場合、サーバサイドのデータベース カーソルが要求される。前方専用の結果セットを返すときに、サーバからブロック単位で行が取得される。setFetchSize() メソッドを使用すると、各リクエストで返される行数を制御できる。パフォーマンス テストの結果から、前方専用の結果セットを返す場合、Statement.setFetchSize() の値がパフォーマンスに大きく影響することがわかっている。setFetchSize() の値を決定するための簡単なルールはない。setFetchSize() の値を変えて実験して、アプリケーションのパフォーマンスが最高になる値を決定することが望ましい。Cursor メソッドは、大量のデータが得られるクエリ、特に複数の結果セットを開く場合に効果的である。 このプロパティをコンフィグレーションして最適なパフォーマンスを実現する方法については、「パフォーマンスに関する考慮事項」を参照。 デフォルトは Direct。 |
ServerName |
プライマリ データベース サーバの IP アドレスまたはサーバ名 (ネットワークが名前付きのサーバをサポートしている場合) を指定する。たとえば、122.23.15.12 または SybaseServer のように指定する。 このプロパティは、データ ソース接続でのみサポートされる。 |
ServicePrincipalName |
Kerberos 認証に使用されるサービス プリンシパル名 (大文字/小文字を区別する) を指定する。Sybase では、サービス プリンシパル名は Sybase インタフェース ファイルでコンフィグレーションされているサーバの名前。このプロパティを設定する場合は、 このプロパティの値には Kerberos レルム名を含めることができるが、省略可能。Kerberos レルム名を指定しない場合は、デフォルトの Kerberos レルムが使用される。たとえば、Kerberos レルム名を含むサービス プリンシパル名が server/sybase125ase1@XYZ.COM で、デフォルト レルムが XYZ.COM の場合、このプロパティの有効な値は次のようになる。 Kerberos 認証が使用されない場合、このプロパティは無視される。 Sybase ドライバによる認証の使用方法については、「認証」を参照。 |
TrustStore |
SSL サーバ認証を使用している場合に、使用するトラストストア ファイルのディレクトリを指定する。トラストストア ファイルには、クライアントが信頼する認証局 (CA) のリストが格納されている。 この値によって、javax.net.ssl.trustStore Java システム プロパティに指定されたトラストストア ファイルのディレクトリがオーバーライドされる。このプロパティが指定されていない場合は、javax.net.ssl.trustStore Java システム プロパティに指定されたトラストストア ファイルのディレクトリが使用される。 このプロパティは、 |
TrustStorePassword |
SSL サーバ認証を使用している場合に、使用するトラストストア ファイルのパスワードを指定する。トラストストア ファイルには、クライアントが信頼する認証局 (CA) のリストが格納されている。 この値によって、javax.net.ssl.trustStorePassword Java システム プロパティに指定されたトラストストア ファイルのパスワードがオーバーライドされる。このプロパティが指定されていない場合は、javax.net.ssl.trustStorePassword Java システム プロパティに指定されたトラストストア ファイルのパスワードが使用される。 このプロパティは、 |
User |
Sybase データベースに接続する場合に使用するユーザ名。大文字と小文字は区別されない。ユーザ名は、データベースでセキュリティが有効化されている場合にのみ必要となる。その場合は、システム管理者に連絡してユーザ名を取得する。 |
以下に示す Sybase ドライバの接続プロパティを設定すると、アプリケーションのパフォーマンスを向上させることができます。
ドライバは JDBC 3.0 に準拠したバッチ メカニズムまたは Sybase のネイティブ バッチ メカニズムを使用して、バッチ処理を実行できます。特に、パフォーマンスの負荷が大きいネットワークの往復が問題となっている場合、Sybase のネイティブ バッチ環境を使用するとパフォーマンスを向上させることができます。ネイティブ メカニズムを使用すると、バッチを実行してエラーが発生した場合、ドライバはバッチ内でエラーを引き起こした文を判別できません。また、バッチの中にストアド プロシージャを呼び出した文やトリガを実行した文が含まれる場合、各バッチ文またはパラメータ セットに対する複数の更新件数が生成されます。JDBC 3.0 に準拠したメカニズムでは、JDBC 3.0 仕様で求められているように、バッチ内の文やパラメータごとの更新件数が返されます。Sybase のネイティブ バッチ メカニズムを使用するには、このプロパティを true に設定してください。
データの暗号化と復号化により余分なオーバーヘッド (主に CPU の使用率) がかかるため、パフォーマンスが低下する場合があります。
スクロールインセンシティブな結果セットを使用する場合のパフォーマンスを向上させるため、ドライバは結果セット データをディスクに書き込む代わりに、メモリにキャッシュできます。デフォルトでは、ドライバはインセンシティブな結果セット データを 2 MB までメモリにキャッシュし、残りの結果セット データをディスクに書き込みます。パフォーマンスを向上させるには、ドライバがデータをディスクに書き込む前に使用するメモリの量を増やすか、ドライバがインセンシティブな結果セット データをディスクに書き込めないようにします。最大キャッシュ サイズの設定は 2 GB です。
アプリケーションが画像、ピクチャ、長いテキスト、またはバイナリ データを返すときのパフォーマンスを向上させるために、アプリケーションが長いデータ カラム値を結果セット内での定義順に返す場合、クライアントで長いデータのキャッシュを無効にすることができます。アプリケーションが長いデータ カラム値を順不同で返す場合は、長いデータ値をクライアントでキャッシュする必要があります。この場合は、データをディスクに書き込む前にドライバによって使用されるメモリの容量を増やすことで、パフォーマンスを改善できます。
通常、クライアントはサーバで許可されている最大パケット サイズを使用するのが適しています。これにより、クライアントへデータを返すために必要な往復回数が減るため、パフォーマンスが向上します。つまり、このプロパティにデータベース サーバの最大パケット サイズを設定すると、パフォーマンスを向上させることができます。
アプリケーションがプリペアド ステートメントを複数回実行する場合は、このプロパティを StoredProc
に設定するとパフォーマンスが向上します。これは、いったん作成されたストアド プロシージャは、単一の SQL 文よりも高速に実行できるためです。アプリケーションがプリペアド ステートメントを複数回実行することがない場合は、このプロパティを Direct
に設定してください。この場合、ストアド プロシージャを作成するとパフォーマンスが低下します。これは、ストアド プロシージャによるサーバへの負荷が、単一の SQL 文を実行する場合よりも大きくなるためです。
デフォルトでは、ResultSetMetaData.getTableName()
メソッドが呼び出された場合、Sybase ドライバは、結果セット内の各カラムの正しいテーブル名を返すために必要な追加の処理を省略します。このため、getTableName()
メソッドは結果セット内のカラムごとに空の文字列を返す可能性があります。アプリケーションでテーブル名情報が必要ない場合は、この設定によって最適なパフォーマンスが得られます。ResultSet メタデータを返す方法の詳細については、「ResultSet メタデータのサポート」を参照してください。
ほとんどの場合、サーバサイドのデータベース カーソルを使用するとパフォーマンスに悪影響を与えます。ただし、アプリケーションが次のような条件に該当する場合は、このプロパティの最適な設定は 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 |
NCHAR |
CHAR |
NUMERIC |
NUMERIC |
NVARCHAR |
VARCHAR |
REAL |
REAL |
SMALLDATETIME |
TIMESTAMP |
SMALLINT |
SMALLINT |
SMALLMONEY |
DECIMAL |
SYSNAME |
VARCHAR |
TEXT |
LONGVARCHAR |
TIME脚注 3 |
TIME |
TIMESTAMP |
VARBINARY |
TINYINT |
TINYINT |
UNICHAR脚注 4 |
CHAR |
UNITEXT脚注 5 |
LONGVARCHAR |
UNIVARCHAR脚注 6 |
VARCHAR |
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 ドライバでは、以下の認証方法がサポートされます。
ユーザ ID/パスワード認証 : アプリケーションで指定されたデータベースのユーザ名とパスワードを使用して、データベースにアクセスするユーザを認証します。
Kerberos 認証 : Kerberos (信頼性のあるサード パーティ認証サービスの 1 つ) を使用してユーザの識別情報を検証します。Kerberos 認証では、オペレーティング システムに保持されているユーザ名とパスワードを利用して、データベースにアクセスするユーザを認証できます。それ以外のユーザ資格セットを使用することも可能です。
この方法を指定する場合は、Kerberos 環境をコンフィグレーションするための知識が必要になります。また、Windows Active Directory Kerberos および MIT Kerberos がサポートされている必要があります。
ドライバの AuthenticationMethod
接続プロパティは、ドライバが接続を確立する際に使用する認証メカニズムを指定するために使用します。このプロパティに設定する値の詳細については、「AuthenticationMethod プロパティの使用」を参照してください。
AuthenticationMethod
接続プロパティは、ドライバが接続を確立する際に使用する認証メカニズムを指定するために使用します。
AuthenticationMethod=kerberos
に設定すると、接続を確立する際に Kerberos 認証が使用されます。User プロパティと Password プロパティに指定された値は無視されます。
AuthenticationMethod=userIdPassword
(デフォルト) に設定すると、接続を確立する際にユーザ ID/パスワード認証が使用されます。User
プロパティはユーザ ID を提供します。Password
プロパティはパスワードを提供します。ユーザ ID が指定されていない場合は、ドライバから例外が送出される。
ユーザ ID とパスワードをコンフィグレーションするには、以下の手順を実行します。
AuthenticationMethod
プロパティを userIdPassword に設定します。このプロパティに設定する値の詳細については、「AuthenticationMethod プロパティの使用」を参照してください。
User
プロパティにユーザ ID を設定します。
Password
プロパティにパスワードを設定します。
この節では、Sybase ドライバに Kerberos 認証をコンフィグレーションする場合の要件と手順について説明します。
ドライバに Kerberos 認証をコンフィグレーションする前に、使用している環境が表 5-3 の要件を満たしていることを確認してください。
表 5-3 Sybase ドライバに Kerberos 認証をコンフィグレーションする場合の要件
コンポーネント | 要件 |
---|---|
データベース サーバ |
データベース サーバはクライアントを管理している同じドメイン コントローラによって管理され、Sybase 12.0 以上を実行している必要がある。 |
Kerberos サーバ |
Kerberos サーバは、認証に使用するユーザ ID を管理する。Kerberos KDC も Kerberos サーバで管理する。 ネットワーク認証を、以下のいずれかの方法で提供する必要がある。
|
クライアント |
クライアントはデータベース サーバを管理している同じドメイン コントローラによって管理される必要がある。また、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 のドキュメントを参照してください。
ドライバをコンフィグレーションするには
AuthenticationMethod
プロパティを kerberos に設定します。このプロパティに設定する値の詳細については、「AuthenticationMethod プロパティの使用」を参照してください。
ServicePrincipalName
プロパティに Kerberos 認証で使用されるサービス プリンシパル名 (大文字/小文字を区別する) に設定します。Sybase では、サービス プリンシパル名は Sybase インタフェース ファイルでコンフィグレーションされているサーバの名前です。
ServicePrincipalName
プロパティの値には Kerberos レルム名を含めることができるが、省略可能です。レルム名を指定しない場合は、デフォルトの Kerberos レルムが使用されます。たとえば、Kerberos レルム名を含むサーバ プリンシパル名が server/sybase125ase1@XYZ.COM で、デフォルト レルムが XYZ.COM の場合、このプロパティの有効な値は次のようになります。
server/sybase125ase1@XYZ.COM
および
server/sybase125ase1
krb5.conf ファイルをテキスト エディタで編集するか、java.security.krb5.realm and 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 ファイルが自動的にロードされます。
Java 2 プラットフォームのセキュリティ マネージャで Kerberos 認証を使用する場合は、アプリケーションとドライバにセキュリティ パーミッションを付与する必要があります。詳細については、「Kerberos 認証のためのパーミッション」を参照してください。
Kerberos 認証を使用する場合、デフォルトでは、オペレーティング システムに保持されているユーザ ID とパスワードを使用して、データベースにアクセスするユーザの認証が行われます。オペレーティング システムで使用されているユーザ名とパスワードをデータベースでも使用できるため、有効なオペレーティング システム アカウントにログインしているユーザであれば、ユーザ名とパスワードを入力せずにデータベースにログインできます。
オペレーティング システムのユーザ名とパスワード以外のユーザ資格セットを使用したい場合もあります。たとえば、アプリケーション サーバや Web サーバの多くは、サーバ ユーザとしてではなく、アプリケーションが実行されているマシンにログオンしたクライアント ユーザの代理として処理を実行します。
オペレーティング システムのユーザ名とパスワード以外のユーザ資格セットを使用する場合は、次のようなコードをアプリケーションに追加し、認証に使用する javax.security.auth.Subject を取得してドライバに渡します。
import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; import java.sql.*; // ここでは、認証に使用する javax.security.auth.Subject インスタンス // を作成する。LoginContext を使用して // Subject を取得する方法の詳細については、 // JAAS (Authentication and Authorization Service) のドキュメントを参照。 LoginContext lc = null; Subject subject = null; try { lc = new LoginContext("JaasSample", new TextCallbackHandler()); lc.login(); subject = lc.getSubject(); } catch (Exception le) { ... // ログイン エラーを表示する } // このアプリケーションは、ドライバ コードをサブジェクトとして実行することで、 // javax.security.auth.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) { ... // 接続エラーをログに記録する。 Return null; } return con; } }); // これで、このアプリケーションで使用する接続がサブジェクトを使用して // 認証されたことになる。これにより、アプリケーションで接続を使用できるようになる。 Statement stmt = con.createStatement(); String sql = "SELECT * FROM employee"; ResultSet rs = stmt.executeQuery(sql); ... // 結果に基づいて処理を行う。
アプリケーション ユーザが 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 暗号化をコンフィグレーションするには
EncryptionMethod
プロパティを SSL に設定します。
SSL サーバ認証に使用するトラストストア ファイルの場所とパスワードを指定します。TrustStore および TrustStorePassword プロパティ、またはそれぞれに対応する Java システム プロパティ (javax.net.ssl.trustStore および javax.net.ssl.trustStorePassword) を設定します。
データベース サーバから送信された証明書を検証する場合は、ValidateServerCertificate
プロパティを true に設定します。
必要に応じて、証明書の検証に使用するホスト名を HostNameInCertificate
プロパティに設定します。HostNameInCertificate
プロパティは、ドライバが接続されているサーバが実際に要求されたサーバであることを保証することにより、介在者の攻撃 (man-in-the-middle attack) を防ぐための追加のセキュリティを提供します。
Sybase ドライバでサポートされている SQL エスケープ シーケンスについては、「C JDBC の SQL エスケープ シーケンス」を参照してください。
Sybase ドライバは、トランザクション アイソレーション レベルとして Read Committed
、Read Uncommitted
、Repeatable Read
、および Serializable
をサポートしています。デフォルトは Read Committed
です。
Sybase ドライバは、ID カラムを持つテーブルから結果セットが返される場合にのみ、スクロールセンシティブな結果セットをサポートします。Sybase ドライバでも、スクロールインセンシティブな結果セット、および更新可能な結果セットをサポートしています。
注意 : Sybase ドライバが、要求された結果セットのタイプまたは同時実行性をサポートできない場合は、カーソルを自動的にダウングレードして詳細情報の入った SQLWarning を生成します。 |
Sybase では Blob
または Clob
データ型は定義されていませんが、Sybase ドライバによって、Blob および Clob 用に設計された JDBC メソッドを使用して長いデータの LONGVARBINARY
および LONGVARCHAR
データを取得および更新できます。これらのメソッドを使用して長いデータを Blob
または Clob
として更新すると、更新は Blob または Clob オブジェクト内のデータのローカル コピーに対して行われます。
Blob および Clob 用の JDBC メソッドを使用して長いデータを取得および更新すると、Blob および Clob を操作した場合と同じメリットが得られます。たとえば Blob および Clob を使用した場合、
データにランダム アクセスできる。
特定の文字列から始まるデータを取得するなど、データのパターン検索が可能になる。
Blob および Clob を使用した場合のこうしたメリットを得るには、データをキャッシュする必要があります。データをキャッシュするので、特に一度にデータの逐次読み出しを行う場合に、パフォーマンスが低下します。長いデータのサイズが使用可能なメモリよりも大きいと、パフォーマンスが著しく低下することがあります。
Sybase ドライバは次のバッチ メカニズムを提供します。
ドライバ内のコードを使用してバッチ処理を実行する、JDBC 3.0 に準拠したメカニズム。これは、Sybase ドライバが使用するデフォルトのメカニズムです。
Sybase のネイティブのバッチ機能を使用するメカニズム。特に、パフォーマンスの負荷が大きいネットワークの往復に関しては、このメカニズムの方が標準のメカニズムより高速になる可能性があります。バッチを実行してエラーが発生した場合、ドライバはバッチ内でエラーを引き起こした文を判別できません。また、バッチの中にストアド プロシージャを呼び出した文やトリガを実行した文が含まれる場合、各バッチ文またはパラメータ セットに対する複数の更新件数が生成されます。
Sybase のネイティブのバッチ メカニズムを使用するには、BatchPerformanceWorkaround
接続プロパティを true に設定します。接続プロパティの指定の詳細については、「Sybase 接続プロパティ」を参照してください。
Sybase ドライバは、あらゆるタイプの SQL 文とストアド プロシージャの引数のパラメータ メタデータを返すことができます。
アプリケーションでテーブル名情報が必要な場合、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()
メソッドが呼び出された場合にのみ実行されます。
Sybase ドライバは、以下のような RowSet インタフェースの JSR 114 実装をサポートします。
CachedRowSet
FilteredRowSet
WebRowSet
JoinRowSet
JDBCRowSet
ドライバで RowSet を使用するには、J2SE 1.4 以上が必要です。
JSR 114 の詳細については、http://www.jcp.org/en/jsr/detail?id=114
を参照してください。
Sybase ドライバは自動生成キーの値の取得をサポートします。Sybase ドライバから返される自動生成キーは、identity カラムの値です。
自動生成キーの値を返すことができるのは、アプリケーションで Insert 文を実行するときです。値を返す方法は、パラメータを含む Insert 文を使用しているかどうかによって異なります。
パラメータを含まない Insert 文を使用する場合、Sybase ドライバは次の形式の Statement.execute() メソッドおよび Statement.executeUpdate() メソッドをサポートする。これらのメソッドは、ドライバに自動生成キーの値を返すよう指示するためのものです。
Statement.execute(String sql, int
autoGeneratedKeys
)
Statement.execute(String sql, int[]
columnIndexes
)
Statement.execute(String sql, String[]
columnNames
)
Statement.executeUpdate(String sql, int
autoGeneratedKeys
)
Statement.executeUpdate(String sql, int[]
columnIndexes
)
Statement.executeUpdate(String sql, String[]
columnNames
)
パラメータを含む Insert 文を使用する場合、Sybase ドライバは次の形式の Connection.prepareStatement() メソッドをサポートする。このメソッドは、ドライバに自動生成キーの値を返すよう指示するためのものです。
Connection.prepareStatement(String sql, int
autoGeneratedKeys
)
Connection.prepareStatement(String sql, int[]
columnIndexes
)
Connection.prepareStatement(String sql, String[]
columnNames
)
自動生成キーの値は、Statement.getGeneratedKeys() メソッドを使用して取得できます。このメソッドは、各自動生成キーのカラムとともに ResultSet オブジェクトを返します。
Sybase ドライバは、接続を確立するときに、Sybase のデータベース オプション ansinull を on に設定します。ansinull を on に設定すると、ドライバは ANSI SQL 標準に準拠し、他の WebLogic Type 4 JDBC ドライバの動作との一貫性が保たれるため、データベース間を横断するアプリケーションの開発が容易になります。
デフォルトでは、Sybase が SQL の等価比較 (=) または不等価比較 (<>) や集約関数において null 値を評価した場合、ANSI SQL 仕様とは異なる動作となります。たとえば、ANSI SQL 仕様では、以下の Select 文のような col1=NULL では常に false と評価するよう定義されています。
SELECT * FROM table WHERE col1 = NULL
デフォルトのデータベース設定 (ansinull=off) を使用した同じ比較では、false ではなく true と評価されます。
ansinull を on に設定すると、データベースによる null 値の処理方法が変わり、=NULL ではなく IS NULL の仕様が強制されます。たとえば、以下の Select 文の col1 の値が null である場合、比較の評価は true になります。
SELECT * FROM table WHERE col1 IS NULL
アプリケーションでは以下の方法で、接続に関する Sybase のデフォルトの動作に戻すことができます。
InitializationString
プロパティを使用して SQL コマンド set ANSINULL off を指定する。たとえば、以下の URL では、現在の接続に関して、null 値の処理が Sybase のデフォルトに戻されます。
jdbc:weblogic:sybase://server1:5000; InitializationString=set ANSINULL off;DatabaseName=test
接続が確立された後で以下の文を明示的に実行する。
SET ANSINULL OFF
グローバル トランザクションで Sybase XA ドライバを使用するには、グローバル トランザクションをサポートするように Sybase サーバを設定しておく必要があります。『Oracle Fusion Middleware Oracle WebLogic Server JTA プログラマーズ ガイド』の「XA をサポートするための Sybase サーバのコンフィグレーション」を参照してください。
Database 接続プロパティは、DatabaseName 接続プロパティのシノニムとして使用できます。
接続 URL に Database と DatabaseName の両方の接続プロパティが指定されている場合は、接続 URL 内で後ろの方に指定されているプロパティが使用されます。たとえば、アプリケーションで次のような URL を指定した場合、DatabaseName 接続プロパティの値ではなく、Database 接続プロパティの値が使用されます。
jdbc:weblogic:sybase://server1:1433;DatabaseName=jdbc;Database=acct; User=test;Password=secret