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ドライバの対応について次の表に示します。
データベース |
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でその機能を使用できません。
接続に使用する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機能はサポートしません。
-