次の表は、サードパーティ製のJDBCドライバの機能を示します。
Table 6-3 サードパーティ製のJDBCドライバの機能
* JDBC 3 (Java 1.4)バージョン以降の場合。
次の表は、サポートされているサードパーティ製のJDBCドライバのURL構文をまとめたリストです。
Table 6-4 URLの構文
この情報は、「認証コンテキスト」パラメータと組み合わせて使用されます。このパラメータの詳細については、認証コンテキストを参照してください。
次の表は、サポートされているサードパーティ製のJDBCドライバの完全修飾Javaクラス名をまとめたリストです。
Table 6-5 サードパーティ製のJDBCドライバのクラス名
この情報は、「JDBC Driver Class Name (JDBCドライバのクラス名)」パラメータと組み合わせて使用されます。このパラメータの詳細については、サードパーティ製のJDBCドライバのクラス名を参照してください。
Table 6-6 BEA Weblogic jDriver
NOTE:BEA Weblogicドライバは、サポートされているサードパーティ製のドライバのリストに含まれており、Microsoft SQL Server 7へのJDBCアクセスを提供します。Microsoftのドライバは、バージョン8 (2000)だけをサポートします。
BEA Weblogicドライバは、後方互換です。データベースサーバおよびドライバは、めったに更新されません。
BEA Weblogicドライバは、暗号化された転送をサポートしません。
以前のバージョンのBEA Weblogicドライバは、ネイティブのUNIQUEIDENTIFIER列の非標準のjava.sql.Types値を返していました。これに対処するために、JDBC用ドライバは、非標準タイプを標準タイプのjava.sql.Types.BINARYにマップしていました。これがネイティブデータベースタイプ(16バイトの値)の反映として最適だからです。このマッピングにより、Base64でエンコードされた関連付けの値が得られます。
BEA Weblogicドライバのそれ以降のバージョンでは、標準タイプのjava.sql.CHARを返します。このマッピングにより、Base64以外でエンコードされた関連付けの値が得られます。これによって、BEA Weblogicドライバの以前のバージョンを使用して生成されたすべての関連付けが事実上無効になります。この変更によって、実質的に後方互換性が維持されなくなっています。
この問題を解決する最適な方法は、以前のバージョンのBEA Weblogicドライバを引き続き使用することです。アップグレードが必要な場合は、無効になる関連付けをすべて削除し、以前関連付けられていたオブジェクトをすべて再度関連付ける必要があります。
IBM DB2ドライバには、Type 3またはType 4があります。
Table 6-7 IBM DB2 Driver: Type 3
IMPORTANT:Type 3ドライバは、バージョン8では推奨されなくなりました。
IBM DB2ドライバは、バージョン依存度が非常に高いドライバであると位置づけることができます。このドライバは、FixPackを含むDB2のメジャーまたはマイナーバージョン間で互換性がありません。このため、データベースサーバにインストールされているファイルを使用することをお勧めします。
IMPORTANT:FixPackレベルであってもターゲットデータベースが更新されるたびに、IBM DB2ドライバをIdentity Managerまたはリモートローダサーバで更新する必要があります。
IBM DB2ドライバは、暗号化された転送をサポートしません。
IBM DB2ドライバで最もよく発生する問題は、ドライバとデータベースのバージョンの不一致により発生します。バージョンが一致していないと、「CLI0601E Invalid statement handle or statement is closed. (CLI0601E 無効なステートメントハンドルまたはステートメントが閉じられます。)」など、コネクティビティ関連の障害が発生します。問題を解決するには、Identity Managerまたはリモートローダサーバでdb2java.zipファイルを、データベースサーバにインストールされているバージョンで上書きします。
Javaで記述されたユーザ定義のストアドプロシージャおよび関数をインストールおよび実行しようとした場合、多数のエラー状況およびエラーコードが表示される可能性があります。それらを診断しても、時間がかかるだけで結局解決できない可能性があります。ログファイル(データベースサーバ上のdb2diag.log)には、たいていの場合、追加のデバッグ情報が含まれています。また、すべてのエラーコードについて、ドキュメントが用意されており、オンラインで入手できます。
Table 6-8 IBM DB2 Driver: Type 4
NOTE:Type 3ドライバとは異なり、Type 4ドライバは、定義済みのエラーコードの最小セットだけを保持しています。エラーコードセットが不足していることが、JDBC用ドライバがコネクティビティ、再試行、認証、および致命的なエラー状況を区別する機能の妨げになります。
IBM DB2ドライバは、後方互換です。ただし、データベースバージョン7では機能しません。データベースサーバは、頻繁に更新されます。ドライバはめったに更新されません。
IBM DB2ドライバは、さまざまな認証セキュリティメカニズムをサポートしますが、暗号化された転送はサポートしていません。
Javaで記述されたユーザ定義のストアドプロシージャおよび関数をインストールおよび実行しようとした場合、多数のエラー状況およびエラーコードが表示される可能性があります。それらを診断しても、時間がかかるだけで結局解決できない可能性があります。ログファイル(データベースサーバ上のdb2diag.log)には、たいていの場合、追加のデバッグ情報が含まれています。また、すべてのエラーコードについて、ドキュメントが用意されており、オンラインで入手できます。
Table 6-9 Informix JDBC Driver
Informixドライバは、後方互換です。データベースサーバおよびドライバは、めったに更新されません。
Informixドライバは、暗号化された転送をサポートしません。
次の表は、ANSI互換のデータベースに対してInformixドライバと相互運用するときに、JDBC用ドライバで明示的に設定する必要があるドライバパラメータのリストです。
Table 6-10 ANSI互換のデータベース用のドライバ設定
|
表示名 |
タグ名 |
値 |
|---|---|---|
|
メタデータの取得でスキーマをサポートしますか? |
supports-schemas-in-metadata-retrieval メタデータの取得でスキーマをサポートしますか?を参照してください。 |
false |
|
ユーザ名を大文字に固定: |
force-username-case ユーザ名を大文字に固定を参照してください。 |
upper |
次の表は、ランタイム時にJDBC用ドライバが暗黙的に設定するドライバ互換性パラメータのリストです。これらの設定を上書きしないでください。
Table 6-11 上書き不可のInformix JDBC設定
|
表示名 |
タグ名 |
値 |
|---|---|---|
|
関数のリターン方法: |
function-return-method 関数のリターン方法を参照してください。 |
result set |
Table 6-12 Microsoft SQL Server 2000 Driverの設定
SQL Server 2000ドライバは、後方互換です。ただし、データベースバージョン7では機能しません。データベースサーバおよびドライバは、めったに更新されません。
SQL Server 2000ドライバは、暗号化された転送をサポートしません。
URLプロパティは、セミコロン(;)で区切ります。
次の表は、SQL Server 2000ドライバのSelectMethod URLプロパティの値のリストです。
Table 6-13 SelectMethod URLプロパティの値
|
有効な値 |
説明 |
|---|---|
|
direct |
デフォルト値。1つの接続で複数のアクティブステートメントを使用できません。 |
|
cursor |
1つの接続で複数のアクティブステートメントを使用できます。 |
次の表は、ランタイム時にJDBC用ドライバが暗黙的に設定するドライバ互換性パラメータのリストです。これらの設定を明示的に上書きしないでください。
SQL Server 2000ドライバの実装は例外的であり、同じ接続で複数のステートメントを同時にアクティブにできません。これがこのドライバで発生する最も一般的な問題の原因です。その他のサードパーティ実装とは異なり、SQL Server 2000ドライバでは、特定の接続で同時にアクティブにできるjava.sql.Statementオブジェクトは1つだけです。
複数のステートメントオブジェクトを使用しようとすると、「Can’t start manual transaction mode because there are cloned connections. (複製された接続があるので手動トランザクションモードを開始できません。)」というエラーが発生します。このエラーは、ステートメントを再使用しますか?ドライバ互換性パラメータが論理値のTrueに設定されている場合にだけ発生する可能性があります。ベストプラクティスとして、このパラメータを明示的には設定しないでください。代わりに、動的なデフォルト値を使用します。
または、区切りられたプロパティ;SelectMethod=cursorをURL文字列の最後に配置します。この問題の追加情報については、次の補足記事を参照してください。
以前のバージョンのSQL Server 2000ドライバは、ネイティブのUNIQUEIDENTIFIER列の非標準のjava.sql.Types値を返していました。これに対処するために、JDBC用ドライバは、非標準タイプを標準タイプのjava.sql.Types.BINARYにマップしていました。これがネイティブデータベースタイプ(16バイトの値)の反映として最適だからです。このマッピングにより、Base64でエンコードされた関連付けの値が得られます。
SQL Server 2000ドライバのそれ以降のバージョンでは、ドライバは、標準タイプのjava.sql.CHARを返します。このマッピングにより、Base64以外でエンコードされた関連付けの値が得られます。これによって、SQL Server 2000ドライバの以前のバージョンを使用して生成されたすべての関連付けが事実上無効になります。この変更によって、実質的に後方互換性が維持されなくなっています。
この問題を解決する最適な方法は、以前のバージョンのSQL Server 2000ドライバを引き続き使用することです。アップグレードが必要な場合は、無効になる関連付けをすべて削除し、以前関連付けられていたオブジェクトをすべて再度関連付けます。
Table 6-15 MySQL Connector/J JDBC Driverの設定
生成/取得方法(テーブル-グローバル)も参照してください。
Connector/Jドライバは、後方互換です。データベースサーバは、頻繁に更新されます。ドライバはめったに更新されません。
Connector/Jドライバは、JSSE (Java Secure Sockets Extension) SSLで暗号化された転送をサポートします。
次の表は、JDBC用ドライバを、MyISAMテーブルに対してConnector/Jドライバと相互運用できるようにするために、設定する必要があるドライバパラメータのリストです。
Table 6-17 Oracle Thin Clientの設定
Thin Clientドライバは、後方互換です。データベースサーバおよびドライバは、めったに更新されません。
Oracleは、さまざまなJVM用のThin Clientドライバをリリースしています。いずれも本製品で機能しますが、1.4バージョンを使用することをお勧めします。
Thin Clientドライバは、Oracle Advanced Securityで暗号化された転送をサポートしています。
次の表は、ランタイム時にJDBC用ドライバが暗黙的に設定するドライバ互換性パラメータのリストです。これらの設定を明示的に上書きしないでください。
次の表は、このドライバで重要な接続プロパティのリストです。
Table 6-19 Oracle Thin Client: 接続プロパティ
このドライバで最もよく発生する問題は、この高いCPU使用率です。その結果、このドライバは、常にjava.sql.Statement.execute(String stmt)メソッドの呼び出しから、より多くの結果を得られることを示し、無限ループにつながる可能性があります。この状況になるのは、次のすべてにあてはまる場合だけです。
CPU使用率が高くならないようにするには:
NOTE:jdbcネームスペースプリフィックスをurn:dirxml:jdbcにマップする必要があります。
接続プロパティincludeSynonymsをtrueに設定する必要があります。
この問題の解決法としてわかっているのは、ビューを使用する方法だけです。
Table 6-20 PostgreSQL JDBC Driverの設定
|
サポートされているデータベースバージョン |
6.x、7.x、8.x |
|
クラス名 |
org.postgresql.Driver |
|
Type |
4 |
|
URLの構文 |
jdbc:postgresql://ip-address:5432/database-name |
|
ダウンロード方法 |
|
|
マニュアルのURL |
NOTE:PostgreSQLのファイル名は、データベースバージョンによってさまざまです。
PostgreSQLドライバの最新ビルドは、サーババージョン7.2では後方互換です。データベースサーバおよびドライバは頻繁に更新されます。
PostgreSQLドライバは、JDBC 3ドライババージョンの場合のSSLで暗号化された転送をサポートしています。
Table 6-21 Sybase Adaptive Server Enterpriseドライバの設定
Adaptive Serverドライバは、後方互換です。データベースサーバおよびドライバは、めったに更新されません。
Adaptive Serverドライバは、SSLで暗号化された転送をサポートしています。SSL暗号化を有効にするには、SYBSOCKET_FACTORY接続プロパティでカスタムソケット実装を指定する必要があります。接続プロパティ設定方法の詳細については、接続プロパティを参照してください。
SYBSOCKET_FACTORYプロパティは、暗号化された転送をサポートするカスタムソケット実装のクラス名の指定に使用できます。