2.2.10 JDBC Proxy Driverの使用(SQL-Participant限定)
JDBC Proxy Driverを使用するアプリケーションの開発方法について説明します。
JDBC Proxy Driverを使用するアプリケーション、Entity-Serviceのアプリケーションで実装してください。
JDBC Proxy Driverを使用するには、HMP-PCTOのパラメタの設定が必要です。パラメタの設定方法については、「7. パラメタ」を参照してください。
(1) ライブラリの組み込み
JDBC Proxy Driverを使用するには、hmppcto-jdbc-proxy-driverライブラリをアプリケーションに組み込む必要があります。Gradleで組み込む記載例を次に示します。
dependencies {
implementation 'jp.co.Hitachi.soft.hmppcto: hmppcto-jdbc-proxy-driver:<version>'
}
(2) コーディング例
JDBC Proxy Driverは、各ベンダが提供するJDBC Driverを使用する場合と同様にコーディングして使用します。Datasourceを使用してConnectionインスタンスを取得して、任意のSQLを実行します。JDBC Proxy Driverは、同一のトランザクションブランチで初めてgetConnection()が実行されたときにParticipantをトランザクションに参加させます。そのため、アプリケーションでConnectionインスタンスをプールして別のトランザクションブランチでConnectionインスタンスを再利用しないでください。サービスごとにDatasourceを使用してConnectionインスタンスを取得してください。
@Autowired DataSource ds; // JDBC Proxy DriverのDataSourceを挿入 Connection con = ds.getConnection(); // Connectionを取得 con.… // 任意のSQLを実行
(3) エラーハンドリング
JDBC Proxy Driverは、JDBC Driverの仕様に準拠した例外を送出します。各ベンダのJDBC Driverを直接使用している場合と同様にエラーハンドリングできます。
ParticipantでJDBC Driverを実行時に発生した例外のSQLState、例外コード、メッセージ、例外チェーンなどの情報は、ParticipantからEntity-Serviceに応答し、そのままアプリケーションに送出します。
Entity-ServiceとParticipantの間の通信障害など、JDBC Proxy Driver固有の例外は、java.sql.SQLExceptionのサブクラスとして実装しているため、各ベンダのJDBC Driverが送出する例外と同様にエラーハンドリングできます。JDBC Proxy Driver固有の例外の詳細については、「6. API」を参照してください。
取扱説明書「HMP-PCTOテクニカルガイド(SQL-Participant編)」の、DBアクセス機能のRDBMSごとの注意事項も確認してください。
(4) 実行できるSQL
JDBC Proxy Driverを使用して実行できるSQLは、XA接続時に実行可能なSQLです。これは、SQL-participantがDBとの接続にXA接続を使用しているためです。XA接続時に実行可能なSQLについては、使用するDBのマニュアルを参照してください(なお、DBの多くは、XA接続時に定義系SQLは使用できません)。