12 データベースおよびアプリケーション・サーバーのサポート
この項では、EclipseLinkでサポートされているデータベース・プラットフォームおよびアプリケーション・サーバーについて説明します。
データベースのサポート
EclipseLinkでは、SQLに準拠し、準拠JDBCドライバが存在する任意のリレーショナル・データベースがサポートされます。
EclipseLinkは、複数のデータベース・プラットフォームに拡張サポートを提供しています。拡張サポートは、主に、ネイティブ順序付けサポート、スキーマ作成、および特定のデータベース関数の提供で構成されます。
次の表のデータベースがサポートされます。Javaクラスは、org.eclipse.persistence.platform.databaseパッケージに含まれ、『Java API Reference for EclipseLink』に説明があります。
表12-1 サポートされるデータベース・プラットフォーム
データベース | Javaクラス | 機能 |
---|---|---|
Apache Derby |
org.eclipse.persistence.platform.database.DerbyPlatform |
Derby固有の動作を提供します。 |
Attunity |
org.eclipse.persistence.platform.database.AttunityPlatform |
Attunityの接続JDBCドライバと連携動作するプラットフォーム・クラス。 |
dBASE |
org.eclipse.persistence.platform.database.DBasePlatform |
次のようなdBASE固有の動作を提供します。
|
Firebird |
org.eclipse.persistence.platform.database.FirebirdPlatform |
Firebird固有の動作を提供します。 |
H2 |
org.eclipse.persistence.platform.database.H2Platform |
H2固有の動作を提供します。 |
HyperSQL DataBase (HSQL) |
org.eclipse.persistence.platform.database.HSQLPlatform |
HSQL固有の動作を提供します。1.8.1以上のHSQL機能をサポートします。次のような機能があります:
|
IBM Cloudscape |
org.eclipse.persistence.platform.database.CloudscapePlatform |
CloudScape DBMS固有の動作を提供します。 |
IBM DB2メインフレーム |
org.eclipse.persistence.platform.database.DB2MainframePlatform |
DB2メインフレーム固有の動作を提供します。これによって、OS390上の特定のDB2バージョンで追加の互換性が実現します。次のような機能があります:
|
IBM DB2 |
org.eclipse.persistence.platform.database.DB2Platform |
DB2固有の動作を提供します。
|
IBM Informix |
org.eclipse.persistence.platform.database.InformixPlatform |
次のようなInformix固有の動作を提供します。
|
Microsoft Access |
org.eclipse.persistence.platform.database.AccessPlatformPlatform |
Microsoft Access固有の動作を提供します。 |
Microsoft SQL Server |
org.eclipse.persistence.platform.database.SQLServerPlatform |
次のようなMicrosoft SQL Server固有の動作を提供します。
|
MySQL |
org.eclipse.persistence.platform.database.MySQLPlatform |
次のようなMySQL固有の動作を提供します。
|
Oracle |
org.eclipse.persistence.platform.database.OraclePlatform |
次のようなOracle Database固有の動作を提供します。
|
Oracle JavaDB |
org.eclipse.persistence.platform.database.JavaDBPlatform |
DerbyPlatformのシノニムとしてJavaDBPlatformを使用できます。 |
Oracle TimesTen |
org.eclipse.persistence.platform.database.TimesTenPlatform |
Oracle TimesTenデータベース固有の動作を提供します。 |
Oracle TimesTen7 |
org.eclipse.persistence.platform.database.TimesTen7Platform |
Oracle TimesTen 7データベース固有の動作を提供します。 |
PervasivePlatform |
org.eclipse.persistence.platform.database.PervasivePlatform |
Pervasive PSQLに固有の動作を提供します。 |
PointBase |
org.eclipse.persistence.platform.database.PointBasePlatform |
PointBaseデータベース固有の動作を提供します。 |
PostgreSQL |
org.eclipse.persistence.platform.database.PostgreSQLPlatform |
次のようなPostgreSQLデータベース固有の動作を提供します。
PostgreSQL (http://wiki.eclipse.org/EclipseLink/FAQ/JPA/PostgreSQL)も参照してください |
SAP MaxDB |
org.eclipse.persistence.platform.database.MaxDBPlatform |
MaxDBデータベース固有の動作を提供します。 |
SAP SyBase SQLAnywhere |
org.eclipse.persistence.platform.database.SQLAnywherePlatform |
SQL Anywhere固有の動作を提供します。 |
Sybase |
org.eclipse.persistence.platform.database.SybasePlatform |
次のようなSybase固有の動作を提供します。
|
Fujitsu Symfoware |
org.eclipse.persistence.platform.database.SymfowarePlatform |
次のようなSymfoware固有の動作を提供します。
|
EclipseLinkを拡張して、他のプラットフォームの拡張サポートを追加することも可能です。EclipseLinkインキュベータ・プロジェクトには、複数のユーザー提供プラットフォームもあります。「Platform Incubator」を参照してください:
http://wiki.eclipse.org/EclipseLink/Development/Incubator/Platform
アプリケーション・サーバーのサポート
EclipseLinkは、EclipseLink APIを通じてソフトウェア要件に一致する任意のJava EEアプリケーション・サーバーとともに使用できます。
表12-2に、EclipseLinkによって統合サポートが提供されるアプリケーション・サーバーを示します。表に示されているクラスは、サーバー固有の動作を表す役割を持つEclipseLink org.eclipse.persistence.platform.server.ServerPlatformBaseクラスの具象サブクラスです。これらのクラスによって、サーバーの次の動作が決定されます。
-
使用する外部トランザクション・コントローラ
-
JTAの有効化の有無(外部トランザクション制御)
-
ランタイム・サービスを登録または登録解除する方法(JMXまたはMBean)
-
ランタイム・サービスの有効化の有無
-
コンテナ・スレッドの起動方法
表に示されているJavaクラスの詳細は、『Java API Reference for EclipseLink』を参照してください。
表12-2 サポートされるアプリケーション・サーバー
サーバー名 | Javaクラス |
---|---|
IBM WebSphereアプリケーション・サーバー |
|
JBoss Application Server |
|
Oracle Containers for J2EE |
|
Oracle Sun Application Server |
|
Oracle WebLogic Server |
|
SAP NetWeaver Application Server |
|
アプリケーション・サーバーのJAXBプロバイダとしてのEclipseLink MOXy
EclipseLink MOXyは、GlassFishおよびWebLogicアプリケーション・サーバーにJAXBプロバイダとして統合されます。
詳細は、次のリンクを参照してください。
-
GlassFish Server: http://blog.bdoughan.com/2012/02/glassfish-312-is-full-of-moxy.html
-
WebLogic Server: http://blog.bdoughan.com/2011/12/eclipselink-moxy-is-jaxb-provider-in.html
非SQL標準データベースのサポート: NoSQL
EclipseLink JPAは、NoSQLデータベースとともに使用できます。
Javaクラスは、@NoSQL注釈または<no-sql> XML要素を使用してNoSQLデータ・ソースにマップできます。
EclipseLinkでは、レガシー・データベースおよびシステム(CICS、ADA、VSAM、IMS、MQ、AQ)などのEIS (Enterprise Information Systems)に対して、JPAアクセスも提供します。
EclipseLinkのNoSQLサポートによって、複雑な階層データをマップできます(JSONなどのXMLの索引付き階層型マップ済データを含む)。CRUD操作、埋込みオブジェクトとコレクション、継承およびリレーションシップがサポートされます。JPQLのサブセットとCriteria APIは、NoSQLデータベースの問合せサポートに応じてサポートされます。
また、独自のEISPlatformサブクラスとJCAアダプタを定義して、他のNoSQLデータ・ソースにサポートを追加することもできます。EclipseLinkインキュベータ・プロジェクトには、複数のユーザー提供プラットフォームもあります。次のURLの「Platform Incubator」を参照してください。
http://wiki.eclipse.org/EclipseLink/Development/Incubator/Platform
この表に、EclipseLinkによってサポートされるNoSQLおよびEISデータ・ソースを示します。表に示されているJavaクラスの詳細は、『Java API Reference for EclipseLink』を参照してください。
表12-3 サポートされるNoSQLおよびEISプラットフォーム
データ・ソース | Javaクラス | 機能 |
---|---|---|
MongoDB |
org.eclipse.persistence.nosql.adapters.mongo.MongoPlatform |
次のようなMongoDBサポートを提供します。
|
Oracle NoSQL |
org.eclipse.persistence.nosql.adapters.nosql.OracleNoSQLPlatform |
次のようなOracle NoSQLサポートを提供します。
|
XMLファイル |
org.eclipse.persistence.eis.adapters.xmlfile.XMLFilePlatform |
XMLファイルに次のような永続性のサポートを提供します。
|
JMS |
org.eclipse.persistence.eis.adapters.jms.JMSPlatform |
JMSメッセージを通じて永続性のサポートを提供します。
|
Oracle AQ |
org.eclipse.persistence.eis.adapters.aq.AQPlatform |
Oracle AQメッセージを通じて永続性のサポートを提供します。
|