# J2EEへの準拠:Java Transaction APIとjavax.sql インターフェイス

J2EE、Java 2 Platform, Enterprise Editionは、多階層環境の再利用可能なソフトウェア部品に基づきエンタープライズアプリケーションを開発する標準です。 J2EEではJava 2 Platform, Standard Edition (J2SE)に加えて、Enterprise Java Beans (EJB)、Java Server Pages (JSP)、サーブレット、XMLなどの機能を提供しています。 J2EEアーキテクチャにより既存の技術やエンタープライズアプリケーションを統合して、単一の管理が可能な環境にまとめ上げることが可能です。

Derbyは分散化されたJ2EEシステムにおいては、J2EE準拠のソフトウェア部品です。JNDIサーバやコネクションプールのモジュール、トランザクションマネージャ、リソースマネージャ、ユーザアプリケーション等のほかのソフトウェアと並んで、Derbyは大きなシステムの一部となるソフトウェアとなります。Derbyは、これらのうち、リソースマネージャとしての機能を提供します。

J2EEについてのより詳細な情報は、http://java.sun.com/javaee/reference/にて入手可能なJ2EEの仕様を参照してください。

J2EEのシステムにてリソースマネージャとして働くためには、J2EEが要求する以下の基本機能・機構を実現しなければなりません。

- JNDIのサポート

  この機能により、アプリケーションは、データベースの名前を登録して、データベース接続URLではなく、登録した名前によりデータベースに接続できます。JDBCインターフェイスの一つである、javax.sql.DataSourceにより、この機能は実現されています。

- コネクションプーリング

  リソースマネージャ((Derby)への接続を保持する機構です。 接続を要求するユーザは、プールされた接続をこの機構から受け取ることができます。 接続の確率は比較的に高価な処理となるので、クライアント/サーバの環境にてコネクションプールは有用です。組み込み環境では接続は比較的安価に手に入れることができます。したがってコネクションプールによるパフォーマンス上の利得は余りありません。 この機能はJDBCインターフェイスの、javax.sql.ConnectionPoolDataSourceとjavax.sql.PooledConnectionにより提供されます。

- XA のサポート

  XAは分散トランザクション管理の標準の一つです。 これは2フェーズコミットに基づくものです。javax.sql.XAxxxインターフェイスとjava.transaction.xaパッケージはXAの抽象的な実装です。 XAの詳細についてはX/Open CAE Specification-Distributed Transaction Processing: The XA Specification, X/Open Document No. XO/CAE/91/300か、ISBN 1 872630 24 3を参照してください。 JTAのAPIは、java.transaction.xaパッケージのインターフェイス(javax.sql.XAConnection, javax.sql.XADataSource, javax.transaction.xa.XAResource, javax.transaction.xa.Xid, and javax.transaction.xa.XAException)から構成されて、この機能を提供します。

基本となるJDBCのインターフェイスを除いて、これらのインターフェイスはエンドユーザーのアプリケーションからは意識されません。これらはシステムのバックエンドのソフトウェアコンポーネントにて利用されます。
注: これらのインターフェイスを実装するクラスの情報や、どのようにしてDerbyをリソースマネージャーとして使うかは、Derby ディベロッパーズ ガイドの第6章にある「DerbyをJ2EEのリソースマネージャに使う」を参照してください。

- JTA API
- javax.sql:JDBCインターフェイス