Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


3.6.3 接続できるデータベース

ここでは,DB Connectorを使用して接続できるデータベースについて説明します。

〈この項の構成〉

(1) 接続できるデータベースの種類

DB Connectorを利用して接続できるデータベースには,HiRDB,MySQL,Oracle,PostgreSQL,SQL Server,XDM/RD E2があります。なお,SQL ServerおよびXDM/RD E2ではグローバルトランザクションは使用できません。

(2) データベースとJDBCドライバの対応

DB Connectorを使用してデータベースに接続するためには,データベースに対応するJDBCドライバが必要です。接続先のデータベースと使用できるJDBCドライバの対応について次の表に示します。

表3‒22 接続先のデータベースと使用できるJDBCドライバ(データベース接続の場合)

データベース

JDBCドライバ

HiRDB Type4 JDBC Driver

MySQL Connector/J

Oracle JDBC Thin Driver

PostgreSQL JDBC Driver

SQL ServerのJDBCドライバ

HiRDB

×

×

×

×

MySQL

×

×

×

×

Oracle

×

×

×

×

PostgreSQL

×

×

×

×

SQL Server

×

×

×

×

XDM/RD E2

×

×

×

×

(凡例)

◎:使用できる。かつ使用を推奨する。

○:使用できる。

×:使用できない。

(3) DB ConnectorがサポートするJDBC仕様

接続に使用するJDBCドライバとDB ConnectorがサポートするJDBC仕様を次の表に示します。ただし,接続に使用するJDBCドライバが,JDBC仕様で規定された機能をサポートしていない場合は,DB Connectorでその機能を使用できません。

表3‒23 接続に使用するJDBCドライバとDB ConnectorがサポートするJDBC仕様

接続に使用するJDBCドライバ

DB ConnectorがサポートするJDBC仕様

HiRDB Type4 JDBC Driver

JDBC 4.0

MySQL Connector/J

JDBC 4.2

Oracle JDBC Thin Driver

JDBC 4.3

PostgreSQL JDBC Driver

JDBC 4.2

SQL Server JDBC Driver

JDBC 4.3

ポイント
  • アプリケーションサーバでOracle JDBC Thin Driverを使用してデータベースと接続する場合,Oracleパッケージのクラスおよびインタフェースを使用したOracle拡張機能は使用できません。

  • アプリケーションサーバでOracle JDBC Thin Driverを使用してデータベースと接続する場合,Oracle JDBC Thin Driverの拡張機能である,文キャッシュおよび接続キャッシュ機能を利用することはできません。アプリケーションサーバで提供するステートメントプーリング,またはコネクションプーリングを使用してください。ステートメントプーリングまたはコネクションプーリングについては,「3.14 パフォーマンスチューニングのための機能」を参照してください。

  • java.sql.Wrapperインタフェースは未サポートです。Wrapperインタフェースのメソッドを使用した場合,UnsupportedOperationException例外がスローされます。

  • 次に示すAPIは未サポートです。

    インタフェース名

    メソッド名

    java.sql.Connection

    default void beginRequest() throws SQLException

    default void endRequest() throws SQLException

    default boolean setShardingKeyIfValid(ShardingKey shardingKey, ShardingKey superShardingKey, int timeout) throws SQLException

    default boolean setShardingKeyIfValid(ShardingKey shardingKey, int timeout) throws SQLException

    default void setShardingKey(ShardingKey shardingKey, ShardingKey superShardingKey) throws SQLException

    default void setShardingKey(ShardingKey shardingKey) throws SQLException

    java.sql.DatabaseMetaData

    default boolean supportsSharding() throws SQLException

    javax.sql.DataSource

    default ConnectionBuilder createConnectionBuilder() throws SQLException

    javax.sql.CommonDataSource

    default ShardingKeyBuilder createShardingKeyBuilder() throws SQLException

注意事項
  • JDBC仕様のjava.sql.Statementインタフェースのメソッドのうち,次に示すものは未サポートです。

    ・setCursorName(String name)

    ・setFetchDirection(int direction)

  • java.sql.Connection.abort(Executor executor)の動作は,標準API仕様の動作とは異なります。具体的には,次の点が異なります。

    ・引数に指定されるExcecutorは何も使用しない。

    ・トランザクション処理中でなければ,論理コネクションをクローズし,物理コネクションを破棄する。トランザクション処理中であれば,トランザクション決着時に論理コネクションをクローズし,物理コネクションを破棄する。

  • JDBC4.3仕様で追加されたSharding機能はサポートしません。