6.4 サポートされているサードパーティ製のJDBCドライバ

6.4.1 サードパーティ製のJDBCドライバの機能

次の表は、サードパーティ製のJDBCドライバの機能を示します。

Table 6-3 サードパーティ製のJDBCドライバの機能

ドライバ

暗号化された転送のサポート

自動生成されるキーの取得のサポート

BEA* Weblogic* jDriver

×

×

IBM DB2 UDB Type 3

×

×

IBM DB2 UDB Type 4

×

×

Informix

×

×

Microsoft 2000

×

×

MySQL Connector/J

Oracle Thin Client

×

PostgreSQL

○*

×

Sybase jConnect

×

 

 

 

* JDBC 3 (Java 1.4)バージョン以降の場合。

6.4.2 JDBC URLの構文

次の表は、サポートされているサードパーティ製のJDBCドライバのURL構文をまとめたリストです。

Table 6-4 URLの構文

サードパーティ製のJDBCドライバ

JDBC URLの構文

Oracle Thin Client

jdbc:oracle:thin:@ip-address:1521:sid

IBM DB2 UDB Type 3

jdbc:db2://ip-address:6789/database-name

IBM DB2 UDB Type 4, Universal

jdbc:db2://ip-address:50000/database-name

BEA Weblogic jDriver

jdbc:weblogic:mssqlserver4:database-name@ip-address:1433

Microsoft SQL Server

jdbc:microsoft:sqlserver://ip-address-or-dns-name:1433;DatabaseName=database-name

Sybase jConnect

jdbc:sybase:Tds:ip-address:2048/database-name

MySQL Connector/J

jdbc:mysql://ip-address:3306/database-name

Informix

jdbc:informix-sqli://ip-address:1526/database-name:informixserver=server-id

PostgreSQL

jdbc:postgresql://ip-address:5432/database-name

この情報は、「認証コンテキスト」パラメータと組み合わせて使用されます。このパラメータの詳細については、認証コンテキストを参照してください。

6.4.3 JDBCドライバクラス名

次の表は、サポートされているサードパーティ製のJDBCドライバの完全修飾Javaクラス名をまとめたリストです。

Table 6-5 サードパーティ製のJDBCドライバのクラス名

サードパーティ製のJDBCドライバ

クラス名

BEA Weblogic jDriver

weblogic.jdbc.mssqlserver4.Driver

IBM DB2 UDB Type 3

COM.ibm.db2.jdbc.net.DB2Driver

IBM DB2 UDB Type 4, Universal

com.ibm.db2.jcc.DB2Driver

Informix

com.informix.jdbc.IfxDriver

Microsoft 2000

com.microsoft.jdbc.sqlserver.SQLServerDriver

MySQL Connector/J

org.gjt.mm.mysql.Driver

Oracle Thin Client

oracle.jdbc.driver.OracleDriver

PostgreSQL

org.postgresql.Driver

Sybase jConnect 5.5

com.sybase.jdbc2.jdbc.SybDriver

この情報は、「JDBC Driver Class Name (JDBCドライバのクラス名)」パラメータと組み合わせて使用されます。このパラメータの詳細については、サードパーティ製のJDBCドライバのクラス名を参照してください。

6.4.4 BEA Weblogic jDriver for Microsoft SQL Server

Table 6-6 BEA Weblogic jDriver

サポートされているデータベースバージョン

Microsoft SQL Server 6.5、7.x、8.x (2000)

クラス名

weblogic.jdbc.mssqlserver4.Driver

Type

4

URLの構文

jdbc:weblogic:mssqlserver4:database-name@ip-address:1433

ダウンロード方法

登録して(無料)、最新バージョンのWeblogicサーバをダウンロードします。インストーラを実行します。weblogic.jarファイルは、 install-dir/server/libディレクトリにインストールされます。

BEA Download Center

ファイル名

weblogic.jar

マニュアルのURL

jDriver Documentation

NOTE:BEA Weblogicドライバは、サポートされているサードパーティ製のドライバのリストに含まれており、Microsoft SQL Server 7へのJDBCアクセスを提供します。Microsoftのドライバは、バージョン8 (2000)だけをサポートします。

互換性

BEA Weblogicドライバは、後方互換です。データベースサーバおよびドライバは、めったに更新されません。

セキュリティ

BEA Weblogicドライバは、暗号化された転送をサポートしません。

既知の問題

  • BEA Weblogicドライバは有料です。購入および適切なライセンス契約が必要です。
  • ドライバのバージョン間で、UNIQUEIDENTIFIER列を含む関連付けの値の整合性が取れていません。

    以前のバージョンのBEA Weblogicドライバは、ネイティブのUNIQUEIDENTIFIER列の非標準のjava.sql.Types値を返していました。これに対処するために、JDBC用ドライバは、非標準タイプを標準タイプのjava.sql.Types.BINARYにマップしていました。これがネイティブデータベースタイプ(16バイトの値)の反映として最適だからです。このマッピングにより、Base64でエンコードされた関連付けの値が得られます。

    BEA Weblogicドライバのそれ以降のバージョンでは、標準タイプのjava.sql.CHARを返します。このマッピングにより、Base64以外でエンコードされた関連付けの値が得られます。これによって、BEA Weblogicドライバの以前のバージョンを使用して生成されたすべての関連付けが事実上無効になります。この変更によって、実質的に後方互換性が維持されなくなっています。

    この問題を解決する最適な方法は、以前のバージョンのBEA Weblogicドライバを引き続き使用することです。アップグレードが必要な場合は、無効になる関連付けをすべて削除し、以前関連付けられていたオブジェクトをすべて再度関連付ける必要があります。

  • BEA Weblogicドライバでは、java.sql.Connection.getConnection(String url, String username, String password)メソッドがAIXで呼び出されたときに、java.lang.IllegalMonitorStateExceptionが発生します。

6.4.5 IBM DB2 Universal Database JDBCドライバ

IBM DB2ドライバには、Type 3またはType 4があります。

Type 3

Table 6-7 IBM DB2 Driver: Type 3

サポートされているデータベースバージョン

7.x

クラス名

COM.ibm.db2.jdbc.net.DB2Driver

Type

3

URLの構文

jdbc:db2://ip-address:6789/database-name

ダウンロード方法

データベースサーバから次のファイルをコピーします。

file:///database-installation-directory/java

ファイル名

db2java.zip

マニュアルのURL

DB2 Information Center

JDBC Programming

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関連のエラーの診断および解決は非常に困難です。

    Javaで記述されたユーザ定義のストアドプロシージャおよび関数をインストールおよび実行しようとした場合、多数のエラー状況およびエラーコードが表示される可能性があります。それらを診断しても、時間がかかるだけで結局解決できない可能性があります。ログファイル(データベースサーバ上のdb2diag.log)には、たいていの場合、追加のデバッグ情報が含まれています。また、すべてのエラーコードについて、ドキュメントが用意されており、オンラインで入手できます。

Type 4: Universal Driver

Table 6-8 IBM DB2 Driver: Type 4

サポートされているデータベースバージョン

8.x

クラス名

com.ibm.db2.jcc.DB2Driver

Type

4

URLの構文

jdbc:db2://ip-address:50000/database-name

ダウンロード方法

最新のFixPackの一部としてダウンロードします(推奨)。

IBM Support & Downloads

または

データベースサーバから次のファイルをコピーします。

file:///database-installation-directory/java

ファイル名

db2jcc.jar, db2jcc_license_cu.jar, db2jcc_javax.jar (オプション)

マニュアルのURL

DB2インフォメーションセンター

DB2 Universal JDBCドライバ

DB2 Universal JDBCドライバ使用時のセキュリティ

NOTE:Type 3ドライバとは異なり、Type 4ドライバは、定義済みのエラーコードの最小セットだけを保持しています。エラーコードセットが不足していることが、JDBC用ドライバがコネクティビティ、再試行、認証、および致命的なエラー状況を区別する機能の妨げになります。

互換性

IBM DB2ドライバは、後方互換です。ただし、データベースバージョン7では機能しません。データベースサーバは、頻繁に更新されます。ドライバはめったに更新されません。

セキュリティ

IBM DB2ドライバは、さまざまな認証セキュリティメカニズムをサポートしますが、暗号化された転送はサポートしていません。

既知の問題

  • データベースサーバで発生したJava関連のエラーの診断および解決は非常に困難です。

    Javaで記述されたユーザ定義のストアドプロシージャおよび関数をインストールおよび実行しようとした場合、多数のエラー状況およびエラーコードが表示される可能性があります。それらを診断しても、時間がかかるだけで結局解決できない可能性があります。ログファイル(データベースサーバ上のdb2diag.log)には、たいていの場合、追加のデバッグ情報が含まれています。また、すべてのエラーコードについて、ドキュメントが用意されており、オンラインで入手できます。

6.4.6 Informix JDBC Driver

Table 6-9 Informix JDBC Driver

サポートされているデータベースバージョン

Dynamic Server 7.x、9.x

クラス名

com.informix.jdbc.IfxDriver

Type

4

URLの構文

jdbc:informix-sqli://ip-address:1526/database-name:informixserver=server-id

ダウンロード方法

ダウンロードURL

ファイル名

ifxjdbc.jarifxjdbcx.jar (オプション)

マニュアルのURL

Informix Information Center

Informix JDBC Driver

互換性

Informixドライバは、後方互換です。データベースサーバおよびドライバは、めったに更新されません。

セキュリティ

Informixドライバは、暗号化された転送をサポートしません。

ANSI互換のデータベースの場合に必須のパラメータ設定

次の表は、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

既知の問題

  • ANSI互換のデータベースではメタデータの取得にスキーマ名を使用できません。メタデータの取得でスキーマをサポートしますか?ドライバ互換性パラメータを論理値のFalseに設定します。 メタデータの取得に使用できるデータベースオブジェクトは、そのデータベースを認証したデータベースユーザに表示できるオブジェクトです。スキーマ修飾子をデータベースオブジェクトの識別に使用することはできません。したがって、命名の衝突(owner1.table1、owner2.table1など)を避けるために、データベース認証ユーザに、同期中のオブジェクトのSELECT特権だけを付与します。
  • ANSI互換のデータベースで使用する場合、ユーザ名は大文字にする必要があります。ユーザ名を大文字に固定ドライバ互換性パラメータをupperに設定します。

6.4.7 Microsoft SQL Server 2000 Driver for JDBC

Table 6-12 Microsoft SQL Server 2000 Driverの設定

サポートされているデータベースバージョン

8 (2000)

クラス名

com.microsoft.jdbc.sqlserver.SQLServerDriver

Type

4

URLの構文

jdbc:microsoft:sqlserver://ip-address-or-dns-name:1433;DatabaseName=database-name

ダウンロード方法

Microsoft JDBCドライバ

ファイル名

msbase.jarmssqlserver.jarmsutil.jar

互換性

SQL Server 2000ドライバは、後方互換です。ただし、データベースバージョン7では機能しません。データベースサーバおよびドライバは、めったに更新されません。

セキュリティ

SQL Server 2000ドライバは、暗号化された転送をサポートしません。

URLプロパティ

URLプロパティは、セミコロン(;)で区切ります。

次の表は、SQL Server 2000ドライバのSelectMethod URLプロパティの値のリストです。

Table 6-13 SelectMethod URLプロパティの値

有効な値

説明

direct

デフォルト値。1つの接続で複数のアクティブステートメントを使用できません。

cursor

1つの接続で複数のアクティブステートメントを使用できます。

動的パラメータのデフォルト

次の表は、ランタイム時にJDBC用ドライバが暗黙的に設定するドライバ互換性パラメータのリストです。これらの設定を明示的に上書きしないでください。

Table 6-14 上書き不可のSQL Server 2000設定

表示名

タグ名

ステートメントを再使用しますか?

reuse-statements

false

既知の問題

  • 複製された接続が原因で、手動トランザクションを開始できません。

    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文字列の最後に配置します。この問題の追加情報については、次の補足記事を参照してください。

  • ドライバのバージョン間で、UNIQUEIDENTIFIER列を含む関連付けの値の整合性が取れていません。

    以前のバージョンの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ドライバを引き続き使用することです。アップグレードが必要な場合は、無効になる関連付けをすべて削除し、以前関連付けられていたオブジェクトをすべて再度関連付けます。

6.4.8 MySQL Connector/J JDBC Driver

Table 6-15 MySQL Connector/J JDBC Driverの設定

サポートされているデータベースバージョン

3.x、4.x

クラス名

org.gjt.mm.mysql.Driver

Type

4

URLの構文

jdbc:mysql://ip-address:3306/database-name

ダウンロード方法

ダウンロードして解凍します。jarファイルは、extract-dir/mysql-connector-java-versionディレクトリにあります。

MySQL Connector/J

ファイル名

mysql-connector-java-version-bin.jar

マニュアルのURL

MySQL Connector/J Documentation

Connecting Over SSL

生成/取得方法(テーブル-グローバル)も参照してください。

互換性

Connector/Jドライバは、後方互換です。データベースサーバは、頻繁に更新されます。ドライバはめったに更新されません。

セキュリティ

Connector/Jドライバは、JSSE (Java Secure Sockets Extension) SSLで暗号化された転送をサポートします。

MyISAMテーブルで必須のパラメータ設定

次の表は、JDBC用ドライバを、MyISAMテーブルに対してConnector/Jドライバと相互運用できるようにするために、設定する必要があるドライバパラメータのリストです。

Table 6-16 MyISAMテーブル用の設定

表示名

タグ名

手動トランザクションを使用しますか?

use-manual-transactions

false

6.4.9 Oracle Thin Client JDBC Driver

Table 6-17 Oracle Thin Clientの設定

サポートされているデータベースバージョン

8i、9i、10g

クラス名

oracle.jdbc.driver.OracleDriver

Type

4

URLの構文

jdbc:oracle:thin:@ip-address:1521:sid

ダウンロード方法

登録して(無料)ダウンロードします。

Oracle Technology Network

1.1ファイル名

classes111.zip, nls_charset11.zip (オプション)

1.2-3ファイル名

classes12.zip, ocrs12.zip (オプション)、nls_charset12.zip (オプション)

1.4ファイル名

ojdbc14.jar, ocrs12.zip (オプション)

マニュアルのURL

Oracle Advanced Security

JDBC FAQ

互換性

Thin Clientドライバは、後方互換です。データベースサーバおよびドライバは、めったに更新されません。

Oracleは、さまざまなJVM用のThin Clientドライバをリリースしています。いずれも本製品で機能しますが、1.4バージョンを使用することをお勧めします。

セキュリティ

Thin Clientドライバは、Oracle Advanced Securityで暗号化された転送をサポートしています。

動的パラメータのデフォルト

次の表は、ランタイム時にJDBC用ドライバが暗黙的に設定するドライバ互換性パラメータのリストです。これらの設定を明示的に上書きしないでください。

Table 6-18 上書き不可のOracle Thin Client設定

表示名

タグ名

返された結果セットの数:

handle-stmt-results

single

接続プロパティ

次の表は、このドライバで重要な接続プロパティのリストです。

Table 6-19 Oracle Thin Client: 接続プロパティ

プロパティ

意義

includeSynonyms

このプロパティの値がtrueの場合、シノニム列メタデータを使用できます。

ORACLE.NET.ENCRYPTION_CLIENT

クライアントがサーバとネゴシエートするセキュリティのレベルを定義します。

ORACLE.NET.ENCRYPTION_TYPES_CLIENT

使用する暗号化アルゴリズムを定義します。

ORACLE.NET.CRYPTO_CHECKSUM_CLIENT

データの整合性についてサーバとネゴシエートするセキュリティのレベルを定義します。

ORACLE.NET.CRYPTO_CHEKSUM_TYPES_CLIENT

使用するデータ整合性アルゴリズムを定義します。

既知の問題

  • 埋め込みSQLステートメントを実行した場合に、CPUの使用率が高くなります。

    このドライバで最もよく発生する問題は、この高いCPU使用率です。その結果、このドライバは、常にjava.sql.Statement.execute(String stmt)メソッドの呼び出しから、より多くの結果を得られることを示し、無限ループにつながる可能性があります。この状況になるのは、次のすべてにあてはまる場合だけです。

    • 返された結果セットの数ドライバ互換性パラメータでsingleno、またはone以外の値が実行されている。
    • 埋め込みSQLステートメントが実行されている。
    • ステートメントのタイプが明示的に指定されていない。

    CPU使用率が高くならないようにするには:

    • このパラメータを明示的に設定しないでください。動的なデフォルト値を使用します。
    • 埋め込み<jdbc:statement>要素に、常にjdbc:type属性を配置します。

      NOTE:jdbcネームスペースプリフィックスをurn:dirxml:jdbcにマップする必要があります。

  • 同義列メタデータを取得できません。

    接続プロパティincludeSynonymsをtrueに設定する必要があります。

  • シノニムテーブルのプライマリキー制約を表示できません。

    この問題の解決法としてわかっているのは、ビューを使用する方法だけです。

6.4.10 PostgreSQL JDBC Driver

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

ダウンロード方法

JDBC Driver Download

マニュアルのURL

JDBC Driver Documentation

Using SSL

NOTE:PostgreSQLのファイル名は、データベースバージョンによってさまざまです。

互換性

PostgreSQLドライバの最新ビルドは、サーババージョン7.2では後方互換です。データベースサーバおよびドライバは頻繁に更新されます。

セキュリティ

PostgreSQLドライバは、JDBC 3ドライババージョンの場合のSSLで暗号化された転送をサポートしています。

6.4.11 Sybase Adaptive Server Enterprise JConnect JDBCドライバ

Table 6-21 Sybase Adaptive Server Enterpriseドライバの設定

サポートされているデータベースバージョン

Adaptive Server* Enterprise 11.x、12.x

クラス名

com.sybase.jdbc2.jdbc.SybDriver (jconn2.jarの場合) com.sybase.jdbc3.jdbc.SybDriver (jconn3.jarの場合)

Type

4

URLの構文

jdbc:sybase:Tds:ip-address:2048/database-name

ダウンロード方法

Sybase Downloads

ファイル名

jconn2.jarまたはjconn3.jar

マニュアルのURL

jConnect Documentation

互換性

Adaptive Serverドライバは、後方互換です。データベースサーバおよびドライバは、めったに更新されません。

セキュリティ

Adaptive Serverドライバは、SSLで暗号化された転送をサポートしています。SSL暗号化を有効にするには、SYBSOCKET_FACTORY接続プロパティでカスタムソケット実装を指定する必要があります。接続プロパティ設定方法の詳細については、接続プロパティを参照してください。

接続プロパティ

SYBSOCKET_FACTORYプロパティは、暗号化された転送をサポートするカスタムソケット実装のクラス名の指定に使用できます。