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固有の動作を提供します。

  • TimeおよびTimestampの文字列としての記述(dBASEではTimeやTimestampはサポートされません)

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機能をサポートします。次のような機能があります:

  • DDL作成

  • IDENTITY順序付け

  • SEQUENCEオブジェクト

  • 関数

  • ページ区切り

IBM Cloudscape

org.eclipse.persistence.platform.database.CloudscapePlatform

CloudScape DBMS固有の動作を提供します。

IBM DB2メインフレーム

org.eclipse.persistence.platform.database.DB2MainframePlatform

DB2メインフレーム固有の動作を提供します。これによって、OS390上の特定のDB2バージョンで追加の互換性が実現します。次のような機能があります:

  • 専用のCONCAT構文

IBM DB2

org.eclipse.persistence.platform.database.DB2Platform

DB2固有の動作を提供します。

  • スキーマ作成

  • byte[]、Date、TimeおよびTimestampのネイティブSQL

  • 表修飾名。

  • ストアド・プロシージャ

  • 一時表

  • キャスト

  • データベース関数

  • ID順序付け

  • SEQUENCE順序付け

IBM Informix

org.eclipse.persistence.platform.database.InformixPlatform

次のようなInformix固有の動作を提供します。

  • スキーマ作成のタイプ

  • @SERIALを使用したネイティブ順序付け

Microsoft Access

org.eclipse.persistence.platform.database.AccessPlatformPlatform

Microsoft Access固有の動作を提供します。

Microsoft SQL Server

org.eclipse.persistence.platform.database.SQLServerPlatform

次のようなMicrosoft SQL Server固有の動作を提供します。

  • byte[]、Date、TimeおよびTimestampのネイティブSQL。

  • @IDENTITYを使用したネイティブ順序付け

MySQL

org.eclipse.persistence.platform.database.MySQLPlatform

次のようなMySQL固有の動作を提供します。

  • Date、TimeおよびTimestampのネイティブSQL

  • ネイティブ順序付け

  • スキーマ・フレームワーク用のデータベース・タイプへのクラス・タイプのマッピング

  • ペシミスティック・ロック

  • プラットフォーム固有の演算子

Oracle

org.eclipse.persistence.platform.database.OraclePlatform

次のようなOracle Database固有の動作を提供します。

  • LOB

  • NChar

  • XMLType

  • TIMESTAMP (TZ、LTZ)

  • ネイティブのバッチ書込み

  • 構造化オブジェクト・リレーショナル・データ型

  • PLSQLデータ型およびストアド・プロシージャ

  • VPD、RAC、プロキシ認証

  • XDK XMLパーサー

  • 階層選択(SELECT BY PRIOR)

  • RETURNING句

  • フラッシュバック履歴および問合せ

  • ストアド・プロシージャ、出力パラメータおよび出力カーソル

  • ストアド・ファンクション

  • Oracle AQ

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データベース固有の動作を提供します。

  • Date、TimeおよびTimestampのネイティブSQL

  • ネイティブ順序付け

  • スキーマ・フレームワーク用のデータベース・タイプへのクラス・タイプのマッピング

  • ペシミスティック・ロック

  • プラットフォーム固有の演算子

  • SELECT文のLIMIT/OFFSET問合せ構文

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固有の動作を提供します。

  • byte[]、Date、TimeおよびTimestampのネイティブSQL

  • @IDENTITYを使用したネイティブ順序付け

Fujitsu Symfoware

org.eclipse.persistence.platform.database.SymfowarePlatform

次のようなSymfoware固有の動作を提供します。

  • DDL生成

  • 外部結合

  • 副問合せ(制限付き)

  • ストアド・プロシージャ・コール

  • ストアド・プロシージャ生成

  • ネイティブ順序付け/識別子フィールド

  • JPAバルク更新/削除(制限付き)

  • バッチ読取り

  • バッチ書込み

  • ペシミスティック・ロック(制限付き)

  • 最初の結果/制限(制限付き)

  • 式フレームワーク(制限付き)

  • デリミタ

  • 自動検出

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アプリケーション・サーバー

  • org.eclipse.persistence.platform.server.was.WebSphere_6_1_Platform

  • org.eclipse.persistence.platform.server.was.WebSphere_7_Platform

  • org.eclipse.persistence.platform.server.was.WebSpherePlatform

JBoss Application Server

  • org.eclipse.persistence.platform.server.jboss.JBossPlatform

Oracle Containers for J2EE

  • org.eclipse.persistence.platform.server.oc4j.Oc4jPlatform

Oracle Sun Application Server

  • org.eclipse.persistence.platform.server.sunas

Oracle WebLogic Server

  • org.eclipse.persistence.platform.server.wls.WebLogic_10_Platform

  • org.eclipse.persistence.platform.server.wls.WebLogic_9_Platform

  • org.eclipse.persistence.platform.server.wls.WebLogicPlatform

SAP NetWeaver Application Server

  • org.eclipse.persistence.platform.server.sap.SAPNetWeaver_7_1_Platform

アプリケーション・サーバーのJAXBプロバイダとしてのEclipseLink MOXy

EclipseLink MOXyは、GlassFishおよびWebLogicアプリケーション・サーバーにJAXBプロバイダとして統合されます。

詳細は、次のリンクを参照してください。

非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サポートを提供します。

  • MAPPED JSONデータ

  • JPQLおよび基準問合せ

  • ネイティブ問合せ

  • READ_PREFERENCE、WRITE_CONCERN、OPTIONS、SKIP、LIMIT、BATCH_SIZEのヒント

Oracle NoSQL

org.eclipse.persistence.nosql.adapters.nosql.OracleNoSQLPlatform

次のようなOracle NoSQLサポートを提供します。

  • MAPPEDキー/値データ

  • XMLデータ

  • find()およびSELECTのすべての問合せ

  • CONSISTENCY、DURABILITY、TIMEOUT、VERSIONのヒント

XMLファイル

org.eclipse.persistence.eis.adapters.xmlfile.XMLFilePlatform

XMLファイルに次のような永続性のサポートを提供します。

  • XMLデータ

  • find()およびSELECTのすべての問合せ

  • XPathインタラクション

JMS

org.eclipse.persistence.eis.adapters.jms.JMSPlatform

JMSメッセージを通じて永続性のサポートを提供します。

  • XMLデータ

  • send/receive操作

Oracle AQ

org.eclipse.persistence.eis.adapters.aq.AQPlatform

Oracle AQメッセージを通じて永続性のサポートを提供します。

  • XMLデータ

  • enqueue/dequeue操作