Oracle® Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング

11gリリース1 (10.3.6)

B61625-05(原本部品番号:E13720-07)

目次

タイトルおよび著作権情報

はじめに

- ドキュメントのアクセシビリティについて

- 表記規則

1 概要とロードマップ

- ドキュメントのスコープと対象読者

- このドキュメントの手引き

- 関連ドキュメント

- EJB 3.0開発者向けの包括的なサンプル

- このリリースでの新機能と変更点

2 Enterprise JavaBeans 3.0の理解

- EJB 3.0の新機能およびEJB 2.Xとの相違点

- バージョン2.Xと3.0との間の変更

- EJB 3.0の新機能

- WebLogic ServerのEJB 3.0の付加価値機能

- EJB 3.0のサンプル

- 3.0エンティティのプログラミング

3 Enterprise JavaBeans 3.0の単純なサンプル

- 単純なステートレスEJBのサンプル

- 単純なステートフルEJBのサンプル

- インターセプタ・クラスのサンプル

- セッションBeanから3.0エンティティを呼び出すサンプル

4 Enterprise JavaBeans 3.0の反復的な開発

- EJB 3.0開発プロセスの概要

- ソース・ディレクトリを作成する

- EJB 3.0ビジネス・インタフェースのプログラミング

- ビジネス・インタフェース・アプリケーション例外

- EJBでのジェネリックスの使用

- ビジネス・オブジェクトのシリアライズとデシリアライズ

- アノテーション付きEJBクラスのプログラミング

- インターセプタのプログラミング(オプション)

- Javaソースをコンパイルする

- デプロイメント記述子の作成と編集(オプション)

- EJBのパッケージ化

- EJBのデプロイメント

5 アノテーション付きEJB 3.0クラスのプログラミング

- メタデータ・アノテーションとEJB 3.0 Beanファイルの概要

- Beanファイルのプログラミング:要件および2.Xからの変更点

- Beanファイルの要件と2.Xからの変更点

- Beanクラス・メソッドの要件

- Beanファイルのプログラミング:一般的な手順

- ビジネス・インタフェースとその他のインタフェースを指定する

- Beanタイプ(ステートレス、ステートフル、メッセージドリブン)を指定する

- 変数またはセッター・メソッドにリソース依存関係を注入する

- 3.0エンティティを呼び出す

- メタデータ・アノテーションを使用して永続性コンテキストを注入する

- EntityManager APIを使用してエンティティを検索する

- EntityManagerを使用してエンティティを作成および更新する

- ビジネス・メソッドまたはライフサイクル・コールバック・イベントのインターセプタを指定する

- ビジネス・インターセプタまたはライフサイクル・インターセプタを指定する:一般的な手順

- インターセプタ・クラスをプログラミングする

- ビジネス・メソッド・インターセプタ・メソッドをプログラミングする

- ライフサイクル・コールバック・インターセプタ・メソッドをプログラミングする

- デフォルト・インターセプタ・メソッドを指定する

- InvocationContext APIを使用してインターセプタ間で状態を保存する

- アプリケーション例外をプログラミングする

- EJBへのアクセスにセキュリティを設定する

- トランザクション管理とトランザクション属性を指定する

- メタデータ・アノテーションの機能別一覧

- Beanタイプを指定するためのアノテーション

- ローカル・インタフェースまたはリモート・インタフェースを指定するためのアノテーション

- EJB 2.Xクライアント・ビューをサポートするためのアノテーション

- 3.0エンティティBeanを呼び出すためのアノテーション

- トランザクション関連のアノテーション

- インターセプタを指定するためのアノテーション

- ライフサイクル・コールバックを指定するためのアノテーション

- セキュリティ関連のアノテーション

- コンテキスト依存関係アノテーション

- タイムアウトと例外のアノテーション

6 WebLogic ServerでのOracle TopLinkの使用

- Oracle TopLinkの概要

- Oracle TopLinkとOracle WebLogic Serverの統合

- WebLogic ServerにおけるJPA 2.0とTopLinkの併用

- Smart Updateによるインストール

- 手動インストール

7 WebLogic ServerでのOracle Kodoの使用

- Oracle Kodoの概要

- Oracle Kodoアプリケーションの作成

- バージョンの異なるOracle Kodoの使用

- 永続性の構成

- 構成プロパティ・ファイルを編集する

- 2種類の構成ファイルを組み合せて使用する

- プラグインを構成する

- Oracle Kodoアプリケーションのデプロイ

- Oracle Kodoアプリケーションの構成

- 管理コンソールを使用する

- 管理コンソールを使用せずにOracle Kodoアプリケーションを構成する

A EJB 3.0メタデータ・アノテーション・リファレンス

- EJB 3.0アノテーションの概要

- ステートレスBean、ステートフルBean、メッセージドリブンBeanのアノテーション

- javax.ejb.ActivationConfigProperty

- 説明

- 属性

- javax.ejb.ApplicationException

- 説明

- 属性

- javax.ejb.EJB

- 説明

- 属性

- javax.ejb.EJBs

- 説明

- 属性

- javax.ejb.Init

- 説明

- 属性

- javax.ejb.Local

- 説明

- 属性

- javax.ejb.LocalHome

- 説明

- 属性

- javax.ejb.MessageDriven

- 説明

- 属性

- javax.ejb.PostActivate

- 説明

- javax.ejb.PrePassivate

- 説明

- javax.ejb.Remote

- 説明

- 属性

- javax.ejb.RemoteHome

- 説明

- 属性

- javax.ejb.Remove

- 説明

- 属性

- javax.ejb.Stateful

- 説明

- 属性

- javax.ejb.Stateless

- 説明

- 属性

- javax.ejb.Timeout

- 説明

- javax.ejb.TransactionAttribute

- 説明

- 属性

- javax.ejb.TransactionManagement

- 説明

- 属性

- インターセプタの構成に使用するアノテーション

- javax.interceptor.AroundInvoke

- 説明

- javax.interceptor.ExcludeClassInterceptors

- 説明

- javax.interceptor.ExcludeDefaultInterceptors

- 説明

- javax.interceptor.Interceptors

- 説明

- 属性

- エンティティBeanとの対話に使用するアノテーション

- javax.persistence.PersistenceContext

- 説明

- 属性

- javax.persistence.PersistenceContexts

- 説明

- 属性

- javax.persistence.PersistenceUnit

- 説明

- 属性

- javax.persistence.PersistenceUnits

- 説明

- 属性

- EJB 3.0で使用する標準JDKアノテーション

- javax.annotation.PostConstruct

- 説明

- javax.annotation.PreDestroy

- 説明

- javax.annotation.Resource

- 説明

- 属性

- javax.annotation.Resources

- 説明

- 属性

- EJB 3.0で使用するセキュリティ関連の標準JDKアノテーション

- javax.annotation.security.DeclareRoles

- 説明

- 属性

- javax.annotation.security.DenyAll

- 説明

- javax.annotation.security.PermitAll

- 説明

- javax.annotation.security.RolesAllowed

- 説明

- 属性

- javax.annotation.security.RunAs

- 説明

- 属性

- WebLogicアノテーション

- weblogic.javaee.AllowRemoveDuringTrasaction

- 説明

- weblogic.javaee.CallByReference

- 説明

- weblogic.javaee.DisableWarnings

- 説明

- 属性

- weblogic.javaee.EJBReference

- 説明

- 属性

- weblogic.javaee.Idempotent

- 説明

- 属性

- weblogic.javaee.JMSClientID

- 説明

- 属性

- weblogic.javaee.JNDIName

- 説明

- 属性

- weblogic.javaee.MessageDestinationConfiguration

- 説明

- 属性

- weblogic.javaee.TransactionIsolation

- 説明

- 属性

- weblogic.javaee.TransactionTimeoutSeconds

- 説明

- 属性

B 永続性構成スキーマ・リファレンス

- persistence-configuration.xmlのネームスペース宣言とスキーマの場所

- persistence-configuration.xmlデプロイメント記述子ファイルの構造

- persistence-configuration.xmlデプロイメント記述子の要素

- abstract-store-broker-factory

- 機能

- 例

- access-dictionary

- 機能

- 例

- access-unloaded

- 機能

- 例

- action

- 機能

- 例

- addresses

- 機能

- 例

- advanced-sql

- 機能

- aggregate-listeners

- 機能

- 例

- allocate

- 機能

- 例

- assert-allowed-type

- 機能

- 例

- auto-clear

- 機能

- 例

- auto-detach

- 機能

- 例

- auto-detaches

- 機能

- 例

- base-name

- 機能

- 例

- batching-operation-order-update-manager

- 機能

- 例

- buffer-size

- 機能

- 例

- cache-map

- 機能

- 例

- cache-size

- 機能

- 例

- channel

- 機能

- 例

- class-table-jdbc-seq

- 機能

- 例

- classname

- 機能

- classpath-scan

- 機能

- 例

- clear-on-close

- 機能

- 例

- client-broker-factory

- 機能

- 例

- close-on-managed-commit

- 機能

- 例

- cluster-remote-commit-provider

- 機能

- 例

- commons-log-factory

- 機能

- 例

- compatibility

- 機能

- 例

- concurrent-hash-map

- 機能

- 例

- connection-decorators

- 機能

- 例

- connection-driver-name

- 機能

- 例

- connection-factory-mode

- 機能

- 例

- connection-factory-name

- 機能

- 例

- connection-factory-properties

- 機能

- 例

- connection-factory2-name

- 機能

- 例

- connection-factory2-properties

- 機能

- 例

- connection-password

- 機能

- 例

- connection-properties

- 機能

- 例

- connection-retain-mode

- 機能

- 例

- connection-url

- 機能

- 例

- connection-user-name

- 機能

- 例

- connection2-driver-name

- 機能

- 例

- connection2-password

- 機能

- 例

- connection2-properties

- 機能

- 例

- connection2-url

- 機能

- 例

- connection2-user-name

- 機能

- 例

- constraint-names

- 機能

- 例

- constraint-update-manager

- 機能

- 例

- copy-object-ids

- 機能

- 例

- custom-aggregate-listener

- 機能

- 例

- custom-broker-factory

- 機能

- 例

- custom-broker-impl

- 機能

- 例

- custom-class-resolver

- 機能

- 例

- custom-compatibility

- 機能

- 例

- custom-connection-decorator

- 機能

- 例

- custom-data-cache

- 機能

- 例

- custom-data-cache-manager

- 機能

- 例

- custom-detach-state

- 機能

- 例

- custom-dictionary

- 機能

- 例

- custom-driver-data-source

- 機能

- 例

- custom-filter-listener

- 機能

- 例

- custom-jdbc-listener

- 機能

- 例

- custom-lock-manager

- 機能

- 例

- custom-log

- 機能

- 例

- custom-mapping-defaults

- 機能

- 例

- custom-mapping-factory

- 機能

- 例

- custom-meta-data-factory

- 機能

- 例

- custom-meta-data-repository

- 機能

- 例

- custom-orphaned-key-action

- 機能

- 例

- custom-persistence-server

- 機能

- 例

- custom-proxy-manager

- 機能

- 例

- custom-query-compilation-cache

- 機能

- 例

- custom-remote-commit-provider

- 機能

- 例

- custom-savepoint-manager

- 機能

- 例

- custom-schema-factory

- 機能

- 例

- custom-seq

- 機能

- 例

- custom-sql-factory

- 機能

- 例

- custom-update-manager

- 機能

- 例

- data-caches

- 機能

- 例

- data-cache-manager-impl

- 機能

- 例

- data-cache-timeout

- 機能

- 例

- db2-dictionary

- 機能

- 例

- default-access-type

- 機能

- 例

- default-broker-factory

- 機能

- 例

- default-broker-impl

- 機能

- 例

- default-class-resolver

- 機能

- 例

- default-compatibility

- 機能

- 例

- default-data-cache

- 機能

- 例

- default-detach-state

- 機能

- 例

- default-data-cache-manager

- 機能

- 例

- default-driver-data-source

- 機能

- 例

- default-level

- 機能

- 例

- default-lock-manager

- 機能

- 例

- default-mapping-defaults

- 機能

- 例

- default-meta-data-factory

- 機能

- 例

- default-meta-data-repository

- 機能

- 例

- default-orphaned-key-action

- 機能

- 例

- default-proxy-manager

- 機能

- 例

- default-query-compilation-cache

- 機能

- 例

- default-savepoint-manager

- 機能

- 例

- default-schema-factory

- 機能

- 例

- default-sql-factory

- 機能

- 例

- default-update-manager

- 機能

- 例

- deprecated-jdo-mapping-defaults

- 機能

- 例

- deprecated-jdo-meta-data-factory

- 機能

- 例

- derby-dictionary

- 機能

- 例

- detach-options-all

- 機能

- 例

- detach-options-fetch-groups

- 機能

- 例

- detach-options-loaded

- 機能

- 例

- detach-state

- 機能

- 例

- detached-state-field

- 機能

- 例

- detached-state-manager

- 機能

- 例

- detached-state-transient

- 機能

- 例

- detached-new

- 機能

- 例

- diagnostic-context

- 機能

- 例

- dynamic-data-structs

- 機能

- 例

- dynamic-schema-factory

- 機能

- 例

- eager-fetch-mode

- 機能

- 例

- empress-dictionary

- 機能

- 例

- EnableLogMBean

- 機能

- 例

- EnableRuntimeMBean

- 機能

- 例

- evict-from-data-cache

- 機能

- 例

- eviction-schedule

- 機能

- 例

- exception-orphaned-key-action

- 機能

- 例

- exception-reconnect-attempts

- 機能

- 例

- execution-context-name-provider

- 機能

- 例

- export-profiling

- 機能

- 例

- extension-deprecated-jdo-mapping-factory

- 機能

- 例

- fetch-batch-size

- 機能

- 例

- fetch-direction

- 機能

- 例

- fetch-group

- 機能

- 例

- fetch-groups

- 機能

- 例

- field-override

- 機能

- 例

- file

- 機能

- 例

- file-name

- 機能

- 例

- file-schema-factory

- 機能

- 例

- files

- 機能

- 例

- filter-listeners

- 機能

- 例

- foreign-keys

- 機能

- 例

- format

- 機能

- foxpro-dictionary

- 機能

- 例

- flush-before-queries

- 機能

- 例

- hsql-dictionary

- 機能

- 例

- gem-fire-data-cache

- 機能

- 例

- gem-fire-data-cache-name

- 機能

- 例

- gui-jmx

- 機能

- 例

- gui-profiling

- 機能

- 例

- Host

- 機能

- 例

- host

- 機能

- 例

- http-transport

- 機能

- 例

- ignore-changes

- 機能

- 例

- ignore-unmapped

- 機能

- 例

- ignore-virtual

- 機能

- 例

- in-memory-savepoint-manager

- 機能

- 例

- increment

- 機能

- 例

- indexes

- 機能

- 例

- informix-dictionary

- 機能

- 例

- initial-value

- 機能

- 例

- interval-millis

- 機能

- 例

- inverse-manager

- 機能

- 例

- jdatastore-dictionary

- 機能

- 例

- jdbc-broker-factory

- 機能

- 例

- jdbc-listeners

- 機能

- 例

- jdbc3-savepoint-manager

- 機能

- 例

- jdo-meta-data-factory

- 機能

- 例

- jms-remote-commit-provider

- 機能

- 例

- jmx

- 機能

- 例

- jmx2-jmx

- 機能

- 例

- JNDIName

- 機能

- 例

- kodo-broker

- 機能

- 例

- kodo-concurrent-data-cache

- 機能

- 例

- kodo-data-cache-manager

- 機能

- 例

- kodo-mapping-repository

- 機能

- 例

- kodo-persistence-mapping-factory

- 機能

- 例

- kodo-persistence-meta-data-factory

- 機能

- 例

- kodo-pooling-data-source

- 機能

- 例

- kodo-sql-factory

- 機能

- 例

- large-transaction

- 機能

- 例

- lazy-schema-factory

- 機能

- 例

- level

- 機能

- 例

- local-jmx

- 機能

- 例

- local-profiling

- 機能

- 例

- lock-timeout

- 機能

- 例

- log-factory-impl

- 機能

- 例

- log-orphaned-key-action

- 機能

- 例

- log4j-log-factory

- 機能

- 例

- login-timeout

- 機能

- 例

- lrs-size

- 機能

- 例

- lru-data-cache

- 機能

- 例

- manage-lru

- 機能

- 例

- mapping

- 機能

- 例

- mapping-column

- 機能

- 例

- mapping-defaults-impl

- 機能

- 例

- mapping-file-deprecated-jdo-mapping-factory

- 機能

- 例

- max-active

- 機能

- 例

- max-idle

- 機能

- 例

- max-size

- 機能

- 例

- maximize-batch-size

- 機能

- 例

- MBeanServerStrategy

- 機能

- 例

- multithreaded

- 機能

- 例

- mx4j1-jmx

- 機能

- 例

- mysql-dictionary

- 機能

- 例

- name

- 機能

- name-column

- 機能

- 例

- NamingImpl

- 機能

- 例

- native-jdbc-seq

- 機能

- 例

- none-jmx

- 機能

- 例

- none-lock-manager

- 機能

- 例

- none-log-factory

- 機能

- 例

- none-orphaned-key-action

- 機能

- 例

- none-profiling

- 機能

- 例

- nontransactional-read

- 機能

- 例

- nontransactional-write

- 機能

- 例

- num-broadcast-threads

- 機能

- 例

- operation-order-update-manager

- 機能

- 例

- optimistic

- 機能

- 例

- oracle-dictionary

- 機能

- 例

- oracle-savepoint-manager

- 機能

- 例

- orm-file-jdor-mapping-factory

- 機能

- 例

- order-dirty-objects

- 機能

- 例

- Password

- 機能

- 例

- persistence-configuration

- 機能

- persistence-configuration-unit

- 機能

- pessimistic-lock-manager

- 機能

- 例

- persistence-mapping-defaults

- 機能

- 例

- populate-data-cache

- 機能

- 例

- Port

- 機能

- 例

- port

- 機能

- 例

- postgres-dictionary

- 機能

- 例

- primary-key-column

- 機能

- 例

- primary-key-value

- 機能

- 例

- primary-keys

- 機能

- 例

- profiling

- 機能

- 例

- profiling-proxy-manager

- 機能

- 例

- properties

- 機能

- property

- 機能

- 例

- proxy-manger-impl

- 機能

- 例

- query-caches

- 機能

- 例

- quoted-numbers-in-queries

- 機能

- 例

- read-lock-level

- 機能

- 例

- recover-action

- 機能

- 例

- recovery-time-millis

- 機能

- 例

- resources

- 機能

- 例

- restore-state

- 機能

- 例

- result-set-type

- 機能

- 例

- retain-state

- 機能

- 例

- retry-class-registration

- 機能

- 例

- scan-top-down

- 機能

- 例

- schema

- 機能

- 例

- schema-column

- 機能

- 例

- schemas

- 機能

- 例

- sequence

- 機能

- 例

- sequence-column

- 機能

- 例

- sequence-name

- 機能

- 例

- ServiceURL

- 機能

- 例

- simple-driver-data-source

- 機能

- 例

- single-file

- 機能

- 例

- single-jvm-exclusive-lock-manager

- 機能

- 例

- single-jvm-remote-commit-provider

- 機能

- 例

- soft-reference-size

- 機能

- 例

- so-timeout

- 機能

- 例

- sql-server-dictionary

- 機能

- 例

- stack-execution-context-name-provider

- 機能

- 例

- store-mode

- 機能

- 例

- strict

- 機能

- 例

- strict-identity-values

- 機能

- 例

- style

- 機能

- 例

- subclass-fetch-mode

- 機能

- 例

- sybase-dictionary

- 機能

- 例

- sync-with-managed-transactions

- 機能

- 例

- synchronize-mappings

- 機能

- 例

- table

- 機能

- 例

- table-deprecated-jdo-mapping-factory

- 機能

- 例

- table-jdbc-seq

- 機能

- 例

- table-jdor-mapping-factory

- 機能

- 例

- table-lock-update-manager

- 機能

- 例

- table-name

- 機能

- 例

- table-schema-factory

- 機能

- 例

- tangosol-cache-name

- 機能

- 例

- tangosol-cache-type

- 機能

- 例

- tangosol-data-cache

- 機能

- 例

- tcp-remote-commit-provider

- 機能

- 例

- tcp-transport

- 機能

- 例

- time-seeded-seq

- 機能

- 例

- topic

- 機能

- 例

- topic-connection-factory

- 機能

- 例

- track-changes

- 機能

- 例

- transaction-isolation

- 機能

- 例

- transaction-mode

- 機能

- 例

- transaction-name-execution-context-name-provider

- 機能

- 例

- type

- 機能

- 例

- type-column

- 機能

- 例

- types

- 機能

- 例

- URL

- 機能

- 例

- url

- 機能

- 例

- urls

- 機能

- 例

- use-aliases

- 機能

- 例

- use-schema-validation

- 機能

- 例

- user-object-execution-context-name-provider

- 機能

- 例

- UserName

- 機能

- 例

- validate-false-returns-hollow

- 機能

- 例

- validate-true-checks-store

- 機能

- 例

- value-table-jdbc-seq

- 機能

- 例

- version-check-on-read-lock

- 機能

- 例

- version-check-on-write-lock

- 機能

- 例

- version-lock-manager

- 機能

- 例

- wls81-jmx

- 機能

- 例

- write-lock-level

- 機能

- 例

Oracle® Fusion Middleware

Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング

11gリリース1 (10.3.6)

B61625-05(原本部品番号:E13720-07)

2011年11月

このドキュメントは、WebLogic Server® Enterprise JavaBeans (EJB)バージョン3.0を利用したアプリケーションを開発するソフトウェア開発者を対象としています。

Oracle Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング, 11gリリース1 (10.3.6)

B61625-05

Copyright © 2007, 2011, Oracle and/or its affiliates.All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りがないことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

はじめに

ここでは、このガイド『Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング』で使用されるアクセシビリティ機能および表記規則について説明します。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleのお客様は、My Oracle Supportから電子サポートにアクセスできます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害があるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

表記規則

このドキュメントでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

斜体

イタリックは、ユーザーが特定の値を指定するプレースホルダー変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 概要とロードマップ

この項では、このガイド『Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング』の内容と構成について説明します。

- ドキュメントのスコープと対象読者

- このドキュメントの手引き

- 関連ドキュメント

- EJB 3.0開発者向けの包括的なサンプル

- このリリースでの新機能と変更点

ドキュメントのスコープと対象読者

このドキュメントは、WebLogic Server® Enterprise JavaBeans (EJB)バージョン3.0を利用したアプリケーションを開発するソフトウェア開発者を対象としています。

このドキュメントの大部分は、新しいEJB 3.0プログラミング・モデルの解説に割かれています。具体的には、メタデータ・アノテーションを使用して開発を簡略化する方法について説明します。EJB 2.Xのプログラミングに精通しているユーザーのためにEJB 3.0と2.Xの主な相違点について概説し、新しい3.0プログラミング・モデルを使用する理由を説明します。

このドキュメントでは、バージョン2.Xと3.0で変更されていないEJBに関するトピック(設計上の考慮事項、コンテナ・アーキテクチャ、デプロイメント記述子の使用など)は取扱いません。また、本番段階における管理、モニター、パフォーマンス・チューニングなどについても説明しません。これらのトピックに関するWebLogic Serverのドキュメントとリソースへのリンクについては、「関連ドキュメント」を参照してください。

このドキュメントは、Java Platform, Enterprise Edition (Java EE)バージョン5およびEJB 2.Xの概念に精通している読者を対象としています。

このドキュメントの手引き

- この章「概要とロードマップ」では、このマニュアルの構成を紹介します。

- 第2章「Enterprise JavaBeans 3.0の理解」では、EJB 3.0の新機能と新しいプログラミング・モデルについて概説し、EJB 3.0と2.Xの相違点について簡単に説明します。

- 第3章「Enterprise JavaBeans 3.0の単純なサンプル」では、EJB 3.0仕様の新しいメタデータ・アノテーションを使用したEJBプログラミングの単純なサンプルを紹介します。

- 第4章「Enterprise JavaBeans 3.0の反復的な開発」では、EJBの実装プロセスを説明し、EJBをWebLogic Serverで実行する方法について説明します。

- 第5章「アノテーション付きEJB 3.0クラスのプログラミング」では、メタデータ・アノテーションを含むEJB Beanクラスをプログラミングする際の要件と一般的な手順について説明します。

- 第6章「Oracle WebLogic ServerでのOracle TopLinkの使用」では、Oracle WebLogic Serverを使用したOracle TopLinkアプリケーション開発の概要について説明します。

- 第7章「WebLogic ServerでのOracle Kodoの使い方」では、Oracle Kodoを使用してエンティティBeanを作成する方法について説明します。Oracle Kodoは、EJB 3.0仕様のJava Persistence APIセクションの実装を提供する製品です。また、Java Data Objects (JDO)を始め、永続性に関係するその他のテクノロジの実装も提供します。

- 付録A「EJB 3.0メタデータ・アノテーション・リファレンス」では、EJB 3.0メタデータ・アノテーションのリファレンス情報と、EJBで使用する標準的なメタデータ・アノテーションに関する情報を提供します。

- 付録B「永続性構成スキーマ・リファレンス」では、永続性構成スキーマのリファレンス情報を提供します。

関連ドキュメント

このドキュメントでは、EJB 3.0固有の開発に関する情報を取扱います。また、セッションBeanとメッセージドリブンBeanに関する情報のみ提供します。EJBの設計とアーキテクチャ、EJB 3.0でも完全にサポートされているEJB 2.Xのプログラミング・モデル、3.0エンティティのプログラミングなどに関する一般情報については、以下のドキュメントを参照してください。

- 『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』

- Enterprise JavaBeans 3.0仕様(JSR-220)(http://www.jcp.org/en/jsr/detail?id=220)

WebLogic Serverアプリケーションを開発、デプロイ、およびモニターするための包括的なガイドラインについては、以下のドキュメントを参照してください。

- 『Oracle WebLogic Serverアプリケーションの開発』は、WebLogic Serverアプリケーションの開発ガイドです。

- 『Oracle WebLogic Serverへのアプリケーションのデプロイ』は、開発および本番環境でのWebLogic Serverアプリケーションのデプロイメントについての主要な情報源です。

EJB 3.0開発者向けの包括的なサンプル

WebLogic Serverの配布キットには、このドキュメント、および第3章「Enterprise JavaBeans 3.0の単純なサンプル」で説明する基本的なサンプルに加え、開発者向けの包括的なサンプルも含まれています。このサンプルは、EJB 3.0の動作を例示し、主要なEJB 3.0開発タスクを実行する実践的な手順を示します。具体的には、EJB 3.0で以下を使用する方法が例示されています。

- Java Persistence API

- ステートレス・セッションBean

- メッセージドリブンBean

- JavaScriptベースの非同期のブラウザ・アプリケーション

このサンプルでは、エンティティEJB用の永続ドメイン・モデルが使用されています。

WebLogic Serverでは、必要に応じてこの包括的なサンプルをWL_HOME\samples\server\examples\src\examples\ejb\ejb30にインストールできます。WL_HOMEはWebLogic Serverの最上位のインストール・ディレクトリです。Windowsの場合は、WebLogic Serverのスタート・メニューからサンプル・サーバーを起動し、サンプルとその実行手順に関する情報を確認できます。

Oracleでは、EJB 3.0を使用して独自のアプリケーションをプログラミングする前に、このサンプルを実行することをお薦めします。

このリリースでの新機能と変更点

WebLogic Serverのこのリリースに追加された新機能の一覧については、『Oracle Fusion Middleware Oracle WebLogic Serverの新機能』のOracle WebLogic Serverの新機能に関する項を参照してください。

2 Enterprise JavaBeans 3.0の理解

以下の節では、EJB 3.0の新機能とプログラミング・モデルについて説明します。

ここでは、Javaプログラミング、Java Platform, Enterprise Edition (Java EE)バージョン5、およびEJB 2.xの概念と機能に精通している読者を対象としています。

- EJB 3.0の新機能およびEJB 2.Xとの相違点

- WebLogic ServerのEJB 3.0の付加価値機能

- EJB 3.0のサンプル

- 3.0エンティティのプログラミング

EJB 3.0の新機能およびEJB 2.Xとの相違点

Enterprise JavaBeans (EJB)は、コンポーネント・ベースのビジネス・アプリケーションを開発およびデプロイするためのJava Platform, Enterprise Edition (Java EE)バージョン5テクノロジです。EJBは強力で有用な技術ですが、バージョン2.X以前のプログラミング・モデルは複雑で分かりにくく、非常に単純なEJBでも複数のJavaファイルとデプロイメント記述子を作成する必要がありました。このような複雑さが、EJBの普及を妨げていました。

そのため、EJB仕様バージョン3.0では、EJBをより簡単にプログラムできるようにすることが目標の1つになっています。具体的には、必要となるプログラミング・アーティファクトの数を減らし、Beanファイルをより簡単かつ直感的にプログラミングできるようにするEJB固有のメタデータ・アノテーションのセットが導入されています。

EJB 3.0仕様のもう1つの目標は、永続性フレームワークを標準化し、エンティティBeanプログラミング・モデルとオブジェクト・リレーショナル(O/R)マッピング・モデルの複雑さを軽減することです。

注意:

このドキュメントでは、3.0エンティティBeanについては説明しません。3.0エンティティBeanの詳細は、Oracle Kodoドキュメントの「Java Persistence API」を参照してください。

以降では、EJB 2.XからEJB 3.0になってプログラミング・モデルと要件がどのように変更されたかについて概説し、EJB 3.0の新機能について簡単に説明します。

バージョン2.Xと3.0との間の変更

次に、EJB 2.Xと3.0との間のEJBプログラミングのモデルおよび要件に関する変更点をまとめています。

- EJBデプロイメント記述子ファイル(ejb-jar.xmlなど)を作成する必要がなくなりました。Beanファイル自体の中で、メタデータ・アノテーションを使用してメタデータを構成できます。ただし、必要であれば、引続きXMLデプロイメント記述子を使用することもできます。競合が発生した場合は、デプロイメント記述子の値でアノテーションの値がオーバーライドされます。

- Beanファイルとして、POJO (Plain Old Java Object)を使用できます。javax.ejb.SessionBeanやjavax.ejb.MessageDrivenBeanを実装する必要はありません。

- javax.ejb.SessionBeanやjavax.ejb.MessageDrivenBeanを実装する必要がなくなった結果、BeanファイルにejbCreateやejbPassivateなどのライフサイクル・コールバック・メソッドを実装する必要もなくなりました。ただし、これらのコールバック・メソッドを実装したい場合は、たとえば@javax.ejb.PostActivateのように、それらのメソッドに任意の名前を付けて適切なアノテーションとして追加できます。

- Beanファイルでビジネス・インタフェースを使用する必要があります。ビジネス・インタフェースは、Beanファイルで明示的に実装するか、@javax.ejb.Remoteまたは@javax.ejb.Localアノテーションを使用して指定できます。

- ビジネス・インタフェースはPlain Old Java Interface (POJI)です; それはjavax.ejb.EJBObjectやjavax.ejb.EJBLocalObjectを拡張するべきではありません。

- ビジネス・インタフェースがjava.rmi.Remoteを拡張していない場合は、ビジネス・インタフェース・メソッドからjava.rmi.RemoteExceptionがスローされない可能性があります。

EJB 3.0プログラミング・モデルは非常にシンプルであるため、OracleではEJB 3.0 BeanにおいてEJBGenタグおよびコード生成ツールをサポートしないことになりました。このツールは、2.X Beanでのみ使用できます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のEJBGenリファレンスに関する項を参照してください。

EJB 3.0の新機能

- Beanファイルでメタデータ・アノテーションを使用してメタデータを構成できるようになり、デプロイメント記述子は必要なくなりました。

- Beanファイルで必須となるメタデータ・アノテーションは、記述するEJBのタイプを指定するアノテーション(@javax.ejb.Stateless、@javax.ejb.Stateful、@javax.ejb.MessageDriven、または@javax.persistence.Entity)のみです。それ以外のアノテーションのデフォルト値は、EJBの典型的かつ標準的な用途を反映したものになっています。これにより、典型的なEJBをプログラミングする場合であればBeanファイルに記述するコードが減り、デフォルト値が適切でない場合にのみアノテーションを追加するだけで済みます。

- Beanファイルで、依存関係インジェクションがサポートされるようになりました。依存関係インジェクションでは、Beanコンテキスト内の別のEJB、リソース、環境エントリへの参照が、EJBコンテナによってBeanファイル内の変数またはセッター・メソッドに自動的に提供(注入)されます。

- Beanファイルでインターセプタがサポートされるようになりました。インターセプタは、EJBでアスペクト指向プログラミングを使用するための標準的な方法です。

- 2種類のインターセプタ・メソッドを構成できます。ビジネス・メソッドをインターセプトするメソッドと、ライフサイクル・コールバックをインターセプトするメソッドです。

- 特定の順序でチェーンとして実行する複数のインターセプタ・メソッドを構成できます。

- JARファイルに含まれるすべてのEJBで実行するデフォルト・インターセプタ・メソッドを構成できます。

WebLogic ServerのEJB 3.0の付加価値機能

以下の機能は、Enterprise JavaBeans 3.0仕様には含まれていませんが、EJB 3.0プログラミング・モデルをより簡略化するための付加価値機能です。

- 変数名に基づく永続性ユニットの自動デプロイメント
セッションBean内でエンティティを問合せおよび更新する場合は、@javax.persistence.PersistenceContextまたは@javax.persistence.PersistenceUnitアノテーションを変数に追加します。これにより、変数に永続性ユニットの情報が注入されます。unitName属性を指定すると、EJB JARファイルのpersistence.xmlファイル内の特定の永続性ユニットを参照できます。この場合は、EJBコンテナによって永続性ユニットが自動的にデプロイされ、persistence.xmlファイル内のリストに従って、そのJNDI名が永続ユニット名に設定されます。注入された変数の名前を、変数に注入したい永続性ユニットとまったく同じ名前にすることもできます。この場合は、unitName属性を指定する必要はありませんが、永続性ユニットは自動的にデプロイされ、そのJNDI名が永続ユニット名に設定されます。

セッションBeanからエンティティを呼び出す方法については、「3.0エンティティを呼び出す」を参照してください。アノテーションのリファレンス情報については、「エンティティBeanとの対話に使用するアノテーション」を参照してください。

- 特定の永続性プロバイダからEntityManagerを注入する場合のベンダー固有のサブインタフェースのサポート
@javax.persisetence.PersistenceContextまたは@javax.persistence.PersistenceUnitを使用して変数に永続性コンテキストを注入する場合、注入先の変数の標準データ型はEntityManagerです。永続性プロバイダがEntityManagerのサブインタフェース(たとえばOracle KodoであればKodoEntityManager)を提供している場合、EJB 3.0仕様で説明されているような複雑なルックアップ・メカニズムを使用しなくても、注入先の変数のデータ型を簡単に設定することができます。例:

@PersistenceContext private KodoEntityManager em;

EntityManagerおよびOracle Kodoが提供するKodoEntityManagerの詳細は、「3.0エンティティを呼び出す」および「KodoEntityManager」を参照してください。

EJB 3.0のサンプル

ステートレスおよびステートフル・セッションBean、インターセプタ・クラス、エンティティの呼出し方法などに関する単純なサンプルについては、第3章「Enterprise JavaBeans 3.0の単純なサンプル」を参照してください。この節では、これらのサンプルについて詳しく解説しています。これらのサンプルの目的は、EJBのビジネス・コードをプログラミングする方法を説明することではなく、EJB 3.0の新しいメタデータ・アノテーションとプログラミング・モデルの使用方法を示すことです。

実際のビジネス・コードを含むより複雑なサンプルは、インストールしたWebLogic Serverのsamplesディレクトリ内(WL_HOME/samples/server/examples/src/examples/ejb/ejb30)に含まれています。WL_HOMEは、WebLogic Serverのインストール・ディレクトリ(たとえば/Oracle/Middleware/wlserver_10.3)です。

3.0エンティティのプログラミング

このドキュメントでは、3.0のセッションEJBおよびメッセージドリブンEJBをプログラミングする方法や、セッションEJBから3.0エンティティを呼び出す方法について説明します。3.0エンティティの実際のプログラミングや構成の方法については説明しません。この詳細な手順については、Oracle Kodoドキュメントの「Java Persistence API」を参照してください。

3 Enterprise JavaBeans 3.0の単純なサンプル

以下の節では、新しいメタデータ・アノテーション・プログラミング・モデルを使用するEJBの単純なJavaサンプルについて説明します。

- 単純なステートレスEJBのサンプル

- 単純なステートフルEJBのサンプル

- インターセプタ・クラスのサンプル

- セッションBeanから3.0エンティティを呼び出すサンプル

これらのサンプルを参照してEJBをプログラミングする方法については、このマニュアルの別の節で説明します。

単純なステートレスEJBのサンプル

次に、ServiceBeanステートレス・セッションEJBの単純なビジネス・インタフェースのコードを示します。

package examples;
/**
* Business interface of the Service stateless session EJB
*/
public interface Service {
public void sayHelloFromServiceBean();
}

このコードは、Serviceビジネス・インタフェースに、1つのメソッドsayHelloFromServiceBean()が含まれていることを示します。このメソッドは、パラメータを取らず、voidを返します。

次に、上のServiceインタフェースを実装するBeanファイルのコードを示します。太字部分については、後ほど解説します。

package examples;
import static javax.ejb.TransactionAttributeType.*;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.interceptor.ExcludeDefaultInterceptors;
/**
* Bean file that implements the Service business interface.
* Class uses following EJB 3.0 annotations:
*   - @Stateless - specifies that the EJB is of type stateless session
*   - @TransactionAttribute - specifies that the EJB never runs in a
*       transaction
*   - @ExcludeDefaultInterceptors - specifies any configured default
*      interceptors should not be invoked for this class
*/
@Stateless
@TransactionAttribute(NEVER)
@ExcludeDefaultInterceptors
public class ServiceBean
implements Service
{
public void sayHelloFromServiceBean() {
System.out.println("Hello From Service Bean!");
}
}

このサンプル・コードで注目すべき主な点は以下のとおりです。

- 標準のimport文を使用して、Beanファイルで使用するメタデータ・アノテーションをインポートしています。

import static javax.ejb.TransactionAttributeType.*;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.interceptor.ExcludeDefaultInterceptors

EJB 3.0にのみ適用されるアノテーションは、javax.ejbパッケージに含まれています。他のJava Platform, Enterprise Edition (Java EE)バージョン5コンポーネントで使用できるアノテーションは、より一般的なパッケージ(javax.interceptor、javax.annotationなど)に含まれています。

- ServiceBean Beanファイルは、Serviceビジネス・インタフェースを実装するプレーンJavaファイルで、EJB固有のインタフェースを実装する必要はありません。つまり、Beanファイルには、2.Xプログラミング・モデルでは必須だったライフサイクル・メソッド(ejbCreate、ejbPassivateなど)を実装する必要はないということです。

- クラス・レベルの@Statelessメタデータ・アノテーションは、EJBのタイプがステートレス・セッションであることを指定しています。

- クラス・レベルの@TransactionAttribute(NEVER)アノテーションは、EJBがトランザクション内で実行されることはないことを指定しています。

- クラス・レベルの@ExcludeDefaultInterceptorsアノテーションは、ejb-jar.xmlデプロイメント記述子ファイルでデフォルト・インターセプタが定義されている場合でも、このEJBのメソッド呼出しに対しては、そのデフォルト・インターセプタを呼び出さないことを指定しています。

単純なステートフルEJBのサンプル

次に、AccountBeanステートフル・セッションEJBの単純なビジネス・インタフェースのコードを示します。

package examples;
/**
* Business interface for the Account stateful session EJB.
*/
public interface Account {
public void deposit(int amount);
public void withdraw(int amount);
public void sayHelloFromAccountBean();
}

このコードは、Accountビジネス・インタフェースに3つのメソッド(deposit、withdraw、およびsayHelloFromAccountBean)が含まれていることを示します。

次に、上のAccountインタフェースを実装するBeanファイルのコードを示します。太字部分については、後ほど解説します。

package examples;
import static javax.ejb.TransactionAttributeType.*;
import javax.ejb.Stateful;
import javax.ejb.TransactionAttribute;
import javax.ejb.Remote;
import javax.ejb.EJB;
import javax.annotation.PreDestroy;
import javax.interceptor.Interceptors;
import javax.interceptor.ExcludeClassInterceptors;
import javax.interceptor.InvocationContext;
/**
* Bean file that implements the Account business interface.
* Uses the following EJB annotations:
*    -  @Stateful: specifies that this is a stateful session EJB
*    -  @TransactionAttribute - specifies that this EJB never runs
*         in a transaction
*    -  @Remote - specifies the Remote interface for this EJB
*    -  @EJB - specifies a dependency on the ServiceBean stateless
*         session ejb
*    -  @Interceptors - Specifies that the bean file is associated with an
*         Interceptor class; by default all business methods invoke the
*         method in the interceptor class annotated with @AroundInvoke.
*    -  @ExcludeClassInterceptors - Specifies that the interceptor methods
*         defined for the bean class should NOT fire for the annotated
*         method.
*    -  @PreDestroy - Specifies lifecycle method that is invoked when the
*         bean is about to be destoryed by EJB container.
*
*/
@Stateful
@TransactionAttribute(NEVER)
@Remote({examples.Account.class})
@Interceptors({examples.AuditInterceptor.class})
public class AccountBean
implements Account
{
private int balance = 0;
@EJB(beanName="ServiceBean")
private Service service;
public void deposit(int amount) {
balance += amount;
System.out.println("deposited: "+amount+" balance: "+balance);
}
public void withdraw(int amount) {
balance -= amount;
System.out.println("withdrew: "+amount+" balance: "+balance);
}
@ExcludeClassInterceptors
public void sayHelloFromAccountBean() {
service.sayHelloFromServiceBean();
}
@PreDestroy
public void preDestroy() {
System.out.println("Invoking method: preDestroy()");
}
}

このサンプル・コードで注目すべき主な点は以下のとおりです。

- 標準のimport文を使用して、Beanファイルで使用するメタデータ・アノテーションをインポートしています。

import static javax.ejb.TransactionAttributeType.*;
import javax.ejb.Stateful;
import javax.ejb.TransactionAttribute;
import javax.ejb.Remote;
import javax.ejb.EJB;

import javax.annotation.PreDestroy;

import javax.interceptor.Interceptors;
import javax.interceptor.ExcludeClassInterceptors;

EJB 3.0にのみ適用されるアノテーションは、javax.ejbパッケージに含まれています。他のJava Platform, Enterprise Edition (Java EE)バージョン5コンポーネントで使用できるアノテーションは、より一般的なパッケージ(javax.interceptor、javax.annotationなど)に含まれています。

- インターセプタ間の状態を保持するために使用するInvocationContextクラスをインポートしています。

import javax.interceptor.InvocationContext;

- AccountBean Beanファイルは、Accountビジネス・インタフェースを実装するプレーンJavaファイルで、EJB固有のインタフェースを実装する必要はありません。つまり、Beanファイルには、2.Xプログラミング・モデルでは必須だったライフサイクル・メソッド(ejbCreate、ejbPassivateなど)を実装する必要はないということです。

- クラス・レベルの@Statefulメタデータ・アノテーションは、EJBのタイプがステートフル・セッションであることを指定しています。

- クラス・レベルの@TransactionAttribute(NEVER)アノテーションは、EJBがトランザクション内で実行されることはないことを指定しています。

- クラス・レベルの@Remoteアノテーションは、EJBのリモート・インタフェースの名前(ここでは、ビジネス・インタフェースと同じAccount)を指定しています。

- クラス・レベルの@Interceptors({examples.AuditInterceptor.class})アノテーションは、Beanファイルに関連付けるインターセプタ・クラスを指定しています。通常、このクラスには、ビジネス・メソッド・インターセプタ・メソッドとライフサイクル・コールバック・インターセプタ・メソッドが含まれます。このクラスの詳細は、「インターセプタ・クラスのサンプル」を参照してください。

- フィールド・レベルの@EJBアノテーションは、アノテーション変数serviceに、依存しているServiceBeanステートレス・セッションBeanのコンテキストを注入することを指定しています。注入されるフィールドのデータ型はServiceです。これは、ServiceBean EJBのビジネス・インタフェースです。sayHelloFromAccountBeanメソッド内の次のコードは、依存しているServiceBeanのsayHelloFromServiceBeanメソッドを呼び出す方法を示しています。

service.sayHelloFromServiceBean();

- メソッド・レベルの@ExcludeClassInterceptorsアノテーションは、sayHelloFromAccountBeanメソッドに対しては、関連付けられているインターセプタ・クラス(AuditInterceptor)で指定されている@AroundInvokeメソッドを呼び出さないことを指定しています。

- メソッド・レベルの@PreDestroyアノテーションは、EJBコンテナがAccountBeanのインスタンスを破棄する前にpreDestroyメソッドを呼び出すことを指定しています。ビジネス・メソッドおよびライフサイクル・コールバックのインターセプタ・メソッドは、インターセプタ・クラスを関連付ける方法だけでなく、このようにBeanファイル自体の中で指定することもできます。

インターセプタ・クラスのサンプル

次に、インターセプタ・クラスのサンプル・コードを示します。このAuditInterceptorクラスは、上のサンプルで示したAccountBeanステートフル・セッションBeanから@Interceptors({examples.AuditInterceptor.class})アノテーションで参照しているインターセプタ・クラスです。太字部分については、後ほど解説します。

package examples;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
/**
* Interceptor class.  The interceptor method is annotated with the
*  @AroundInvoke annotation.
*/
public class AuditInterceptor {
public AuditInterceptor() {}
@AroundInvoke
public Object audit(InvocationContext ic) throws Exception {
System.out.println("Invoking method: "+ic.getMethod());
return ic.proceed();
}
@PostActivate
public void postActivate(InvocationContext ic) {
System.out.println("Invoking method: "+ic.getMethod());
}
@PrePassivate
public void prePassivate(InvocationContext ic) {
System.out.println("Invoking method: "+ic.getMethod());
}
}

このサンプル・コードで注目すべき主な点は以下のとおりです。

- これまでのサンプルと同様に、ファイル内で使用するメタデータ・アノテーションをインポートしています。

import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;

- インターセプタ・クラスはプレーンJavaクラス。

- このクラスには、次のような空のコンストラクタが含まれています。

public AuditInterceptor() {}

- メソッド・レベルの@AroundInvokeは、ビジネス・メソッド・インターセプタ・メソッドを指定しています。このアノテーションは、1つのインターセプタ・クラス内で一度だけ使用できます。

- メソッド・レベルの@PostActivateおよび@PrePassivateアノテーションは、EJBコンテナがBeanを再アクティブ化した後とBeanをパッシブ化する前に呼び出すメソッドをそれぞれ指定しています。

注意:

これらのライフサイクル・コールバック・インターセプタ・メソッドは、ステートフル・セッションBeanにのみ適用されます。

セッションBeanから3.0エンティティを呼び出すサンプル

セッションBeanからエンティティを呼び出すサンプルについては、配布キットに含まれているEJB 3.0のサンプルを参照してください。WebLogic Serverをインストールすると、次のディレクトリにサンプルがインストールされます。

WL_HOME/samples/server/examples/src/examples/ejb/ejb30

WL_HOMEは、WebLogic Serverのインストール・ディレクトリ(たとえば/Oracle/Middleware/wlserver_10.3)です。

4 Enterprise JavaBeans 3.0の反復的な開発

次の項では、EJB 3.0の一般的な実装プロセスを説明し、EJB 3.0をWebLogic Serverで実行する方法について説明します。

WebLogic Server EJBの機能の概要については、「WebLogic ServerのEJB 3.0の付加価値機能」を参照してください。

- EJB 3.0開発プロセスの概要

- ソース・ディレクトリを作成する

- EJB 3.0ビジネス・インタフェースのプログラミング

- アノテーション付きEJBクラスのプログラミング

- インターセプタのプログラミング(オプション)

- Javaソースをコンパイルする

- デプロイメント記述子の作成と編集(オプション)

- EJBのパッケージ化

- EJBのデプロイメント

EJB 3.0開発プロセスの概要

この節では、EJB 3.0の開発プロセスを簡単に説明します。主な実装タスクと関連する結果について説明します。

次の節の大部分では、EJB 3.0プログラミング・モデルについて説明しています。3.0と2.Xでのプログラミング・モデルの相違点については、一部で簡単に触れているだけです。EJB 2.Xに精通しており、2つのモデルの相違点について詳しく知りたい場合は、「EJB 3.0の新機能およびEJB 2.Xとの相違点」を参照してください。

表4-1 EJB開発タスクと結果

#

ステップ

説明

結果

1

ソース・ディレクトリを作成する

Javaソース・ファイルのディレクトリ構造を作成し、必要に応じてデプロイメント記述子を作成します。

ローカル・ドライブ上のディレクトリ構造

2

EJB 3.0ビジネス・インタフェースのプログラミング

EJBを記述するために必要なビジネス・インタフェースを作成します。

.javaファイル

3

アノテーション付きEJBクラスのプログラミング

ビジネス・インタフェースを実装するJavaファイルを作成し、EJBの動作を記述するEJB 3.0メタデータ・アノテーションを含めます。

.javaファイル

4

インターセプタのプログラミング(オプション)

必要に応じて、ビジネス・メソッド呼出しやライフサイクル・コールバック・イベントをインターセプトするインターセプタを記述したインターセプタ・クラスを作成します。

.javaファイル

5

Javaソースをコンパイルする

ソース・コードをコンパイルします。

各クラスおよびインタフェースの.classファイル

6

デプロイメント記述子の作成と編集(オプション)

必要に応じて、EJB固有のデプロイメント記述子を作成します。この手順は、EJB 3.0プログラミング・モデルを使用する場合は不要です。

- ejb-jar.xml

- weblogic-ejb-jar.xml (WebLogic Server固有の機能を制御する要素が格納されます)

- weblogic-cmp-jar.xml (Beanがコンテナ管理による永続性エンティティBeanである場合)

7

EJBのパッケージ化

コンパイル済みのクラス(および、必要に応じてデプロイメント記述子)をデプロイメント用にパッケージ化します。

状況によっては、ファイルをアーカイブせずにディレクトリ形式で展開しておくことも可能です。

アーカイブ・ファイル(EJB JARまたはエンタープライズ・アプリケーションEAR)、または対応する展開済みディレクトリ

8

EJBのデプロイメント

選択したステージング・モードに従って、アーカイブまたはアプリケーション・ディレクトリのターゲットとして目的の管理対象サーバーまたはWebLogic Serverクラスタを設定します。

Beanのデプロイメント設定は、config.xmlのEJBComponent要素に書き込まれます。

ソース・ディレクトリを作成する

EJB 3.0をアセンブルするソース・ディレクトリを作成します。

ソース・ファイルと出力ファイルを並列ディレクトリ構造に分離する分割開発ディレクトリ構造をお薦めします。分割ディレクトリ構造を準備し、EJB 3.0をエンタープライズ・アプリケーション・アーカイブ(EAR)としてパッケージ化する方法については、『Oracle WebLogic Serverアプリケーションの開発』の分割開発ディレクトリ環境の概要に関する項を参照してください。

EJB 3.0をJARファイルにパッケージ化してデプロイする場合は、クラス・ファイル用のディレクトリを作成します。また、デプロイメント記述子も作成する場合は、META-INFというサブディレクトリに格納します(なお、EJB 3.0プログラミング・モデルでは、デプロイメント記述子は省略可能ですがサポートはされています)。

例4-1 JARをパッケージ化するためのディレクトリ構造

myEJB/
META-INF/
ejb-jar.xml
weblogic-ejb-jar.xml
weblogic-cmp-jar.xml
foo.class
fooHome.class
fooBean.class

EJB 3.0ビジネス・インタフェースのプログラミング

EJB 3.0ビジネス・インタフェースは、EJBのすべてのビジネス・メソッドの完全なシグネチャを記述するプレーンJavaインタフェースです。たとえば、Account EJBが顧客の当座預金口座を表す場合であれば、そのビジネス・インタフェースには顧客がその口座を管理するためのメソッド(withdraw、deposit、balanceなど)を含めます。

EJB 3.0ビジネス・インタフェースは、他のインタフェースを拡張できます。メッセージドリブンBeanの場合であれば、ビジネス・インタフェースはメッセージ・リスナー・インタフェースにするのが一般的です。どのメッセージング・リスナー・インタフェースにするかは、そのBeanで使用するメッセージングの種類によって決まります。たとえば、JMSの場合はjavax.jms.MessageListenerになります。セッションBeanのインタフェースには、このような明確な種類はありません。ビジネス・ニーズに合わせて、どのようなインタフェースでも使用できます。

注意:

EJB 3.0ビジネス・インタフェースの唯一の要件は、javax.ejb.EJBObjectまたはjavax.ejb.EJBLocalObjectを拡張してはいけないことです(EJB 2.Xでも同様)。

ステートレスおよびステートフル・セッションBeanによって実装されたビジネス・インタフェースのサンプルについては、「単純なステートレスEJBのサンプル」および「単純なステートフルEJBのサンプル」を参照してください。

ビジネス・インタフェース・アプリケーション例外

EJBのビジネス・メソッドを設計する場合は、EJBのビジネス・インタフェースのメソッドのthrows句にアプリケーション例外を定義できます。「アプリケーション例外」とは、Beanクラス内に作成したプログラムからクライアントに、アプリケーション・レベルの異常な状態を警告するための例外です。たとえば、顧客が当座預金口座の引出し可能額を超える金額を引き出そうとしたときに、その口座を表すAccount EJBのwithdraw()メソッドからアプリケーション例外をスローできます。

アプリケーション例外は、システム例外とは異なります。システム例外は、データベース管理システムが利用できないなど、システム・レベルの例外をクライアントに警告するためにEJBコンテナからスローされる例外です。システム・レベルのエラーが、アプリケーション例外として報告されないようにしてください。

また、インタフェースがリモート・ビジネス・インタフェースである場合や、Beanクラスに@WebService JWSアノテーションが含まれている場合、およびメソッドに@WebMethodアノテーションが含まれている場合でも、ビジネス・メソッドがjava.rmi.RemoteException例外をスローしないようにする必要があります。唯一の例外は、ビジネス・インタフェースがjava.rmi.Remoteを拡張している場合です。EJBコンテナでプロトコル・レベルの問題が発生すると、基底のRemoteExceptionをラップしたEJBExceptionがスローされます。

注意:

@WebServiceおよび@WebMethodアノテーションは、javax.jwsパッケージに含まれています。これらのアノテーションは、EJBにWebサービスを実装すること、およびEJBビジネスをパブリックなWebサービス操作として公開することを指定するために使用します。これらのアノテーションの詳細、およびWebサービスのプログラミング全般については、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』を参照してください。

EJBでのジェネリックスの使用

EJB 3.0プログラミング・モデルでは、ビジネス・インタフェースにおいてクラス・レベルでジェネリックスを使用できます。

ジェネリックスを使用する場合のベスト・プラクティスとしては、まずジェネリックスを使用するスーパーインタフェースを定義し、実際のビジネス・インタフェースでは特定のデータ型を使用してこのスーパーインタフェースを拡張することをお薦めします。

次に、この方法のサンプルを示します。まず、ジェネリックスを使用するスーパーインタフェースをプログラミングします。

public interface RootI<T> {
public T getObject();
public void updateObject(T object);
}

次に、実際のビジネス・インタフェースをプログラミングし、特定のデータ型でRootI<T>を拡張します。

@Remote
public interface StatelessI extends RootI<String> { }

最後に、実際のステートレス・セッションBeanをプログラミングしてビジネス・インタフェースを実装します。メソッドの実装では、指定したデータ型(この場合はString)を使用します。

@Stateless
public class StatelessSample implements StatelessI {
public String getObject() {
return null;
}
public void updateObject(String object) {
}
}

ビジネス・インタフェースまたはクラスで型変数を定義しても削除されます。この場合、ビジネス・インタフェースがBeanクラスによって他のジェネリック情報ではなくその型パラメータの上限値でパラメータ化されている場合のみ、EJBアプリケーションを正常にデプロイすることができます。たとえば、次の例の上限値はObjectです。

public class StatelessSample implements StatelessI<Object> {
public Object getObject() {
return null;
}
public void updateObject(Object object) {
}
}

ビジネス・オブジェクトのシリアライズとデシリアライズ

ビジネス・オブジェクトのシリアライズとデシリアライズは、以下のインタフェースでサポートされます。これらのインタフェースは、すべてのビジネス・オブジェクトで実装されます。

- weblogic.ejb.spi.BusinessObject

- weblogic.ejb.spi.BusinessHandle

BusinessObject._WL_getBusinessObjectHandle()メソッドを使用して、ビジネス・ハンドル・オブジェクトを取得し、シリアライズします。

ビジネス・オブジェクトをデシリアライズするには、ビジネス・ハンドル・オブジェクトをデシリアライズし、BusinessHandle.getBusinessObject()メソッドを使用してビジネス・オブジェクトを取得します。

アノテーション付きEJBクラスのプログラミング

EJB Beanクラスは、EJBプログラミングの主要なアーティファクトで、EJBビジネス・インタフェースを実装し、EJBメタデータ・アノテーションを含みます。EJBメタデータ・アノテーションの用途としては、EJBコンテナへのセマンティクスおよび要件の指定、コンテナ・サービスのリクエスト、アプリケーション・デプロイヤやコンテナ・ランタイムへの構造情報および構成情報の提供などがあります。

EJB 3.0プログラミング・モデルで必須なアノテーションは、EJBのタイプを指定する@javax.ejb.Stateful、@javax.ejb.Stateless、または@javax.ejb.MessageDrivenのいずれか1つのみです。他にも様々なアノテーションを使用してEJBを細かく構成できますが、それらのアノテーションには一般的なデフォルト値が設定されているため、デフォルト以外の動作を設定したい場合を除けば、Beanクラス内で明示的にそれらのアノテーションを使用する必要はありません。このようなプログラミング・モデルにより、一般的な動作を実行するEJBのプログラミングが非常に簡単になっています。

Beanクラスのプログラミングの詳細やサンプルについては、第5章「アノテーション付きEJB 3.0クラスのプログラミング」を参照してください。

インターセプタのプログラミング(オプション)

インターセプタは、ビジネス・メソッドの呼出しやライフサイクル・コールバック・イベントをインターセプトするメソッドです。

インターセプタ・メソッドは、実際のBeanクラス内に定義できますが、Beanクラスとは別にインターセプタ・クラスをプログラミングして@javax.ejb.InterceptorアノテーションでBeanクラスに関連付けることもできます。

インターセプタを使用するBeanクラスのプログラミングについては、「ビジネス・メソッドまたはライフサイクル・コールバック・イベントのインターセプタを指定する」を参照してください。

Javaソースをコンパイルする

EJB BeanクラスのJavaソース・コードの記述と、必要に応じてインターセプタ・クラスの記述が完了したら、それらをクラス・ファイルにコンパイルする必要があります。コンパイルするためのツールとしては以下が一般的です。

- weblogic.appc: weblogic.appc Javaクラス(またはこれと同等のAntタスクwlappc)は、EJBおよびJSPをWebLogic Serverにデプロイするのに必要なクラスを生成し、コンパイルします。また、オプションのデプロイメント記述子を検証して、個別のモジュール・レベルとアプリケーション・レベルの両方で現在の仕様に準拠しているかどうかをチェックします。アプリケーション・レベルのチェックでは、個別のモジュールに対するアプリケーション・レベルのデプロイメント記述子のチェックと、モジュール全体の検証チェックが行われます。詳細は、『Oracle WebLogic Serverアプリケーションの開発』のwlappcを使用したモジュールとアプリケーションのビルドに関する項を参照してください。

- wlcompile Antタスク: javacコンパイラを呼び出して、アプリケーションのJavaコンポーネントを分割開発ディレクトリ構造にコンパイルします。詳細は、『Oracle WebLogic Serverアプリケーションの開発』のwlcompileを使用したアプリケーションのコンパイルに関する項を参照してください。

- javac: Java SE JDKに付属のjavacコンパイラは、javaコンパイル機能を提供します。http://www.oracle.com/technetwork/java/index-jsp-142903.html#documentationを参照してください。

デプロイメント記述子の作成と編集(オプション)

新しいEJB 3.0プログラミング・モデルの非常に重要な点は、メタデータ・アノテーションが導入されたことです。アノテーションを使用すると、コンテナ内でのBeanの動作、依存関係インジェクションのリクエスト方法などをJavaクラス自体の中で指定でき、EJBの開発プロセスを簡略化できます。アノテーションは、EJBの2.X以前のバージョンで必要だったデプロイメント記述子にかわるものです。

デプロイメント記述子は、EJB 3.0でも引続き完全にサポートされます。ただし、Java Platform, Enterprise Edition (Java EE)バージョン5標準のデプロイメント記述子は必須ではありません。たとえば、従来の2.Xプログラミング・モデルを使用したい場合や、後々の開発やデプロイメントの段階でより細かくカスタマイズできるようにしたい場合、メタデータ・アノテーションに加えて(またはメタデータ・アノテーションの代わりに)標準のデプロイメント記述子を作成できます。

デプロイメント記述子要素は、対応するアノテーションを常にオーバーライドします。たとえば、Beanクラス内に@javax.ejb.TransactionManagement(BEAN)アノテーションを指定した上で、そのEJB用のejb-jar.xmlデプロイメント記述子を作成し、<transaction-type>要素をcontainerに設定した場合は、デプロイメント記述子の値が優先され、このEJBではコンテナ管理によるトランザクションの境界設定が使用されます。

注意:

EJB 3.0バージョンでは、2.XでサポートされていたWebLogic固有のEJB機能がすべてサポートされます。ただし、weblogic-ejb-jar.xmlまたはweblogic-cmp-rdbms-jar.xmlデプロイメント記述子ファイルで構成する機能は、このEJB 3.0のリリースでも引続き同じ方法で構成する必要があります。これは、現時点ではそれらの機能と同等のアノテーションが存在しないためです。

『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』の2.Xバージョンでは、Java EE標準およびWebLogic固有のEJBデプロイメント記述子の作成と編集について詳しく説明しています。特に、次の項を参照してください。

- 「EJBデプロイメント記述子」(EJBデプロイメント記述子の概要)

- 「デプロイメント記述子を編集する」

- 「デプロイメント記述子スキーマおよびドキュメント・タイプ定義リファレンス」

- 「weblogic-ejb-jar.xmlデプロイメント記述子のリファレンス」

- 「weblogic-cmp-jar.xmlデプロイメント記述子のリファレンス」

EJBのパッケージ化

EJBをエンタープライズ・アプリケーションの一部としてパッケージ化することをお薦めします。詳細は、『Oracle WebLogic Serverアプリケーションの開発』の分割開発ディレクトリからのデプロイとパッケージ化に関する項を参照してください。

EJB固有のパッケージ化に関するその他の情報については、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のクライアントが他のアプリケーションにあるEJBのパッケージ化の考慮事項に関する項を参照してください。

EJBのデプロイメント

EJBをデプロイすると、WebLogic ServerはEJBのコンポーネントをクライアントに提供できるようになります。EJBは、ユーザーの環境とEJBが本番環境に置かれるかどうかに基づいて、複数の手順のうちの1つでデプロイできます。3.0プログラミング・モデルで作成したEJBのデプロイメント方法は、2.Xプログラミング・モデルで作成したEJBのデプロイメント方法と同じです。

WebLogic Serverアプリケーションおよびモジュール(EJBを含む)をデプロイする一般的な手順については、『Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。EJB固有のデプロイメントの問題と手順については、2.Xプログラミング・モデルに特化した『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のEnterprise JavaBeansのデプロイメント・ガイドラインに関する項を参照してください。

5 アノテーション付きEJB 3.0クラスのプログラミング

以下の節では、アノテーション付きEJB 3.0クラス・ファイルをプログラミングする方法について説明します。

- メタデータ・アノテーションとEJB 3.0 Beanファイルの概要

- Beanファイルのプログラミング:要件および2.Xからの変更点

- Beanファイルのプログラミング:一般的な手順

- メタデータ・アノテーションの機能別一覧

メタデータ・アノテーションとEJB 3.0 Beanファイルの概要

新しいEJB 3.0プログラミング・モデルでは、JDK 5.0メタデータ・アノテーション機能(http://java.sun.com/developer/technicalArticles/releases/j2se15を参照)を使用して、アノテーション付きEJB 3.0 Beanファイルを作成します。次に、WebLogicコンパイル・ツールweblogic.appc (またはこれと同等のAntタスクwlappc)を使用してBeanファイルをJavaクラス・ファイルにコンパイルし、必要となるEJBインタフェースやデプロイメント記述子など、関連するEJBアーティファクトを生成します。

アノテーション付き3.0 Beanファイルは、EJBの中核部分です。このファイルにはEJBの動作を決定するJavaコードが含まれています。3.0 Beanファイルは、EJBのビジネス・メソッドを作成するEJBビジネス・インタフェースを実装した通常のJavaクラス・ファイルです。このBeanファイルにJDK 5.0メタデータ・アノテーションを追加することで、EJBの構造や特性を指定し、EJBをドキュメント化し、実行時の特別なサービス(ビジネス・レベルの拡張セキュリティ、特別なビジネス・ロジックなど)を提供します。

「メタデータ・アノテーションの機能別一覧」には、Beanファイル内で指定できるアノテーションを機能別にまとめてあります。これらのアノテーションには、以下の仕様に記述されているアノテーションが含まれます。

- Enterprise JavaBeans 3.0仕様(JSR-220)(http://www.jcp.org/en/jsr/detail?id=220)

- Common Annotations for the Java Platform (JSR-250)(http://www.jcp.org/en/jsr/detail?id=250)

詳細は、付録A「EJB 3.0メタデータ・アノテーション・リファレンス」を参照してください。これらのアノテーションのリファレンス情報をアルファベット順にまとめてあります。

このトピックは、EJB 4を作成するための反復的な開発手順の一部です。詳細な開発手順については、第4章「Enterprise JavaBeans 3.0の反復的な開発」を参照してください。

Beanファイルのプログラミング:要件および2.Xからの変更点

3.0 Beanクラス・ファイルをプログラミングする上での要件は、基本的には2.Xでの要件と同じです。この節では、Beanクラスの基本的な必須要件について簡単に説明し、2.Xと3.0の要件の相違点について説明します。

Beanクラスをプログラミングする上での必須要件と任意要件の詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』を参照してください。

Beanファイルの要件と2.Xからの変更点

以下に、3.0でBeanクラスをプログラミングする上での新しい要件と、2.Xの要件のうち3.0には適用されなくなったものをまとめます。

- クラスにBeanタイプを指定する必要があります。通常は、以下のメタデータ・アノテーションのいずれかを使用して指定します。これらのアノテーションは、デプロイメント記述子を使用してオーバーライドすることもできます。

- @javax.ejb.Stateless

- @javax.ejb.Stateful

- @javax.ejb.MessageDriven

- @javax.ejb.Entity

注意:

3.0エンティティのプログラミングについては、別のドキュメントで説明しています。詳細については、Oracle Kodoドキュメントの「Java Persistence API」を参照してください。

- BeanがセッションBeanである場合は、Beanのビジネス・インタフェース(または、Beanのビジネス・インタフェースにメソッドがある場合はそのメソッド)を、Beanクラスに実装する必要があります。

- セッションBeanにjavax.ejb.SessionBeanを実装する必要がなくなりました。つまり、ejbCreate()やejbPassivate()などのejbXXX()メソッドを実装する必要がなくなりました。

- ステートフル・セッションBeanにjava.io.Serializableを実装する必要がなくなりました。

- メッセージドリブンBeanにjavax.ejb.MessageDrivenBeanを実装する必要がなくなりました。

以下の要件はEJB 2.Xから変更されていませんが、念のため簡単にまとめておきます。

- クラスはpublicとして定義する必要があります。finalやabstractとして定義することはできません。クラスは最上位のクラスでなければなりません。

- クラスには、パラメータを取らないpublicコンストラクタが必要です。

- クラスにfinalize()メソッドを定義することはできません。

- BeanがメッセージドリブンBeanである場合は、Beanでサポートするメッセージング・タイプに必要なメッセージ・リスナー・インタフェース(またはそのメッセージ・リスナー・インタフェースのメソッド)を、Beanクラスに直接的または間接的に実装する必要があります。JMSの場合であれば、メッセージ・リスナー・インタフェースはjavax.jms.MessageListenerインタフェースになります。

Beanクラス・メソッドの要件

メソッドの要件はEJB 2.Xから変更されていませんが、念のため簡単にまとめておきます。

セッションBeanクラスのメソッド(ビジネス・インタフェース・メソッドを実装するメソッド)の要件は以下のとおりです。

- メソッドには任意の名前を付けることができます。

- ビジネス・メソッドはpublicとして宣言する必要があります。finalやstaticとして宣言することはできません。

- セッションBeanのリモート・ビジネス・インタフェース(またはリモート・インタフェース)のビジネス・メソッドに対応するメソッドの場合は、引数や戻り値の型をRMI/IIOPの有効な型にする必要があります。

- throws句で任意のアプリケーション例外を定義できます。

メッセージドリブンBeanクラスのメソッドの要件は以下のとおりです。

- メソッドには、メッセージ・リスナー・インタフェースのリスナー・メソッドを実装する必要があります。

- メソッドはpublicとして宣言する必要があります。finalやstaticとして宣言することはできません。

Beanファイルのプログラミング:一般的な手順

次の手順では、EJBの3.0 Beanファイルをプログラミングする場合の一般的で基本的な手順を説明します。細かな手順は、どのような動作のEJBを作成するかによって異なります。

以降の節で使用するサンプル・コードについては、第3章「Enterprise JavaBeans 3.0の単純なサンプル」を参照してください。

1. Beanファイルで使用するEJB 3.0アノテーションおよびその他の共通アノテーションをインポートします。一般的なEJBアノテーションはjavax.ejbパッケージに含まれています。また、インターセプタ・アノテーションはjavax.interceptorパッケージ、3.0エンティティを呼び出すためのアノテーションはjavax.persistenceパッケージ、共通アノテーションはjavax.commonまたはjavax.common.securityパッケージに含まれています。例:

import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.interceptor.ExcludeDefaultInterceptors;

2. EJBに実装するビジネス・インタフェースと、その他の標準インタフェースを指定します。インタフェースは、明示的に実装しても、アノテーションを使用して指定しても構いません。
「ビジネス・インタフェースとその他のインタフェースを指定する」を参照してください。

3. 必須のアノテーションを使用して、プログラミングするBeanのタイプ(セッションまたはメッセージドリブン)を指定します。
「Beanタイプ(ステートレス、ステートフル、メッセージドリブン)を指定する」を参照してください。

4. 必要に応じて依存関係インジェクションを設定し、外部リソース(別のEJB、他のJava Platform, Enterprise Edition (Java EE)バージョン5オブジェクトなど)を使用できるようにします。
「変数またはセッター・メソッドにリソース依存関係を注入する」を参照してください。

5. 必要に応じてEntityManagerオブジェクトを作成し、エンティティ・アノテーションを使用してエンティティ情報を注入します。
「3.0エンティティを呼び出す」を参照してください。

6. 必要に応じて、ビジネス・メソッドまたはライフサイクル・コールバック・メソッドのインターセプタ・メソッドをプログラミングおよび構成します。インターセプタ・メソッドは、Beanファイル自体の中でも、別のJavaファイル内でもプログラミングできます。
「ビジネス・メソッドまたはライフサイクル・コールバック・イベントのインターセプタを指定する」を参照してください。

7. ビジネス・インタフェースにアプリケーション例外をスローするビジネス・メソッドを指定した場合は、例外クラスをプログラミングする必要があります。この点は、EJB 2.Xでも同様です。
EJB 3.0固有の情報については、「アプリケーション例外をプログラミングする」を参照してください。

8. 必要に応じ、セキュリティ関連のメタデータ・アノテーションを使用して、EJBメソッドを呼び出すことができるセキュリティ・ロールを指定します。
「EJBへのアクセスにセキュリティを設定する」を参照してください。

9. 必要に応じて、EJBで実行するデフォルトのトランザクション構成を変更します。
「トランザクション管理とトランザクション属性を指定する」を参照してください。

ビジネス・インタフェースとその他のインタフェースを指定する

EJB 3.0プログラミング・モデルを使用してBeanをプログラミングする場合は、ビジネス・インタフェースを指定する必要があります。

EJB Beanクラスのビジネス・インタフェースを指定する方法は2つあります。

- implements Javaキーワードを使用してビジネス・インタフェースを明示的に実装します。

- メタデータ・アノテーション(たとえばjavax.ejb.Localやjavax.ejb.Remote)を使用してビジネス・インタフェースを指定します。この場合は、Beanクラスに明示的にビジネス・インタフェースを実装する必要はありません。

通常、EJB Beanクラスに実装したインタフェースは、そのEJBのビジネス・インタフェースと見なされます。また、リモート・インタフェースであることを明示しない限り、ビジネス・インタフェースはローカル・インタフェースと見なされます。ビジネス・インタフェースをリモート・インタフェースとして明示するには、javax.ejb.Remoteアノテーションを使用するか、適切なEJBデプロイメント記述子を更新します。javax.ejb.Remoteおよびjavax.ejb.Localアノテーションは、ビジネス・インタフェース自体で指定することも、そのインタフェースを実装するBeanクラスで指定することもできます。

Beanクラスには、複数のインタフェースを実装できます。その場合(ただし、下に示すインタフェースは対象外)は、EJBのビジネス・インタフェースをjavax.ejb.Localまたはjavax.ejb.Remoteアノテーションを使用して明示的に指定する必要があります。指定する場所は、ビジネス・インタフェース自体でも、そのビジネス・インタフェースを実装するBeanクラスでも、適切なデプロイメント記述子でも構いません。

Beanクラスに複数のインタフェースが実装されているかどうかを判断する際、以下のインタフェースは対象外となります。

- java.io.Serializable

- java.io.Externalizable

- javax.ejbパッケージで定義されたすべてのインタフェース

次のコード・スニペットに、Beanクラスのビジネス・インタフェースを明示的に実装して指定する方法を示します。

public class ServiceBean
implements Service

サンプル全体を見るには、「単純なステートレスEJBのサンプル」を参照してください。

Beanタイプ(ステートレス、ステートフル、メッセージドリブン)を指定する

3.0 Beanクラスで必須となるメタデータ・アノテーションは、プログラミングするBeanのタイプを指定するアノテーション1つのみです。以下のアノテーションのうち、いずれか1つのみを指定する必要があります。

- @javax.ejb.Stateless - ステートレス・セッションBeanをプログラミングすることを指定します。

- @javax.ejb.Stateful - ステートフル・セッションBeanをプログラミングすることを指定します。

- @javax.ejb.MessageDriven - メッセージドリブンBeanをプログラミングすることを指定します。

- @javax.ejb.Entity - エンティティBeanをプログラミングすることを指定します。

注意:

3.0エンティティのプログラミングについては、別のドキュメントで説明しています。Oracle Kodoドキュメントの「Enterprise JavaBeans 3 Persistence」を参照してください。

必須ではありませんが、アノテーションの属性を指定すると、Beanタイプをより詳しく記述できます。たとえば、以下の属性はすべてのBeanタイプに設定できます。

- name - Beanクラスの名前です。デフォルト値は、未修飾のBeanクラス名です。

- mappedName - Beanの製品固有の名前です。

- description - Beanについての説明です。

メッセージドリブンBeanをプログラミングする場合は、以下の属性を指定することもできます。

- messageListenerInterface - メッセージ・リスナー・インタフェースを明示的に実装していない場合や、Beanに追加のインタフェースを実装する場合に、メッセージ・リスナー・インタフェースを指定します。

- activationConfig - アクティブ化構成の名前と値のペアの配列を指定します。この配列は、Beanを操作環境で構成するために使用します。

次のコード・スニペットに、Beanがステートレス・セッションBeanであることを指定する方法を示します。

@Stateless
public class ServiceBean
implements Service

サンプル全体を見るには、「単純なステートレスEJBのサンプル」を参照してください。

変数またはセッター・メソッドにリソース依存関係を注入する

「依存関係インジェクション」では、Beanコンテキスト内のリソースや他の環境エントリを元に、EJBコンテナによってBeanの変数またはセッター・メソッドが自動的に提供(または「注入」)されます。依存関係インジェクションは、javax.ejb.EJBContextインタフェースまたはJNDI APIを使用したリソースのルックアップを、より簡単にプログラミングするための方法にすぎません。

依存関係インジェクションを指定するには、注入するリソースのタイプに応じて、以下のアノテーションのいずれかを変数またはセッター・メソッドに追加します。

- @javax.ejb.EJB - 別のEJBへの依存関係を指定します。

- @javax.annotation.Resource - 外部リソース(JDBCデータ・ソース、JMS宛先、接続ファクトリなど)への依存関係を指定します。

注意:

このアノテーションは、EJB固有のものではありません。様々なJava EEコンポーネントで使用するメタデータ・アノテーションの共通セットの一部です。

これらのアノテーションには、複数のリソースへの依存関係を指定するため、それぞれに相当するグループ化アノテーション(@javax.ejb.EJBsおよび@javax.annotation.Resources)があります。

必須ではありませんが、これらの依存関係アノテーションに属性を指定すると、依存リソースを明示的に記述できます。指定する必要のある情報の量は、その使用コンテキストと、EJBコンテナがそのコンテキストからどの程度の情報を推測できるかによって異なります。これらの属性の詳細と、どのような場合に使用すべきかについては、「javax.ejb.EJB」および「javax.annotation.Resource」を参照してください。

次のコード・スニペットでは、@javax.ejb.EJBアノテーションを使用して、EJBへの依存関係を変数に注入する方法を示します。ここでは、Beanファイル内の関連する部分のみを示します。

package examples;
import javax.ejb.EJB;
...
@Stateful
public class AccountBean
implements Account
{
@EJB(beanName="ServiceBean")
private Service service;
...
public void sayHelloFromAccountBean() {
service.sayHelloFromServiceBean();
}

この例では、プライベート属性serviceに@javax.ejb.EJBアノテーションを付けて、Bean名ServiceBeanでEJBへの参照を作成しています。サービス変数のデータ型はServiceです。これは、ServiceBean Beanクラスが実装するビジネス・インタフェースです。EJBコンテナは、AccountBean EJBを作成し、即座にServiceBeanへの参照をservice変数に注入します。これにより、この変数から、SessionBeanのすべてのビジネス・メソッドに直接アクセスできるようになります。その結果、例に示されているように、sayHelloFromAccountBeanメソッド実装でsayHelloFromServiceBeanメソッドを呼び出すことが可能になります。

3.0エンティティを呼び出す

この節では、セッションBean内から3.0エンティティを呼び出して更新する方法について説明します。

注意:

この節では、すでにエンティティのプログラミングが完了しており、そのエンティティをサポートするデータベース・リソースが構成されていることを前提としています。詳細については、Oracle Kodoドキュメントの「Java Persistence API」を参照してください。

エンティティとは、データ・ストア・レコードを表す永続オブジェクトです。通常、エンティティのインスタンスは、データベース表の単一の行を表します。エンティティを使用すると、永続ストア内の情報の問合せや更新を、Java EEコンポーネント内(セッションBeanなど)から簡単に行えます。たとえば、Personエンティティであれば、name、address、ageなどのフィールドを含み、それぞれのフィールドがデータベース内の表の列に対応します。javax.persistence.EntityManagerオブジェクトを使用してエンティティにアクセスして管理する場合、一意のIDまたはSQL問合せを使用してPersonレコードを簡単に取得でき、情報を変更した場合はその情報が基底のデータ・ストアに自動的に送信されます。

以下の節では、セッションBeanをエンティティと対話させるために必要な一般的なプログラミング・タスクについて説明します。

- メタデータ・アノテーションを使用して永続性コンテキストを注入する

- EntityManager APIを使用してエンティティを検索する

- EntityManagerを使用してエンティティを作成および更新する

メタデータ・アノテーションを使用して永続性コンテキストを注入する

セッションBeanでは、以下のメタデータ・アノテーションを使用して、変数にエンティティ情報を注入できます。

- @javax.persistence.PersistenceContext - 永続性コンテキストをjavax.persistence.EntityManagerデータ型の変数に注入します。「永続性コンテキスト」は単なるエンティティのセットで、1つの永続IDに1つの一意のエンティティ・インスタンスが対応します。persistence.xmlファイル内に、セッションBeanで使用できる永続性コンテキストを定義して名前を付けます。

- @javax.persistence.PersistenceContexts - 複数の永続性コンテキストのセットを指定します。

- @javax.persistence.PersistenceUnit - 永続性コンテキストをjavax.persistence.EntityManagerFactoryデータ型の変数に注入します。

- @javax.persistence.PersistenceUnits - 複数の永続性コンテキストのセットを指定します。

@PersistenceContextアノテーションと@PersistenceUnitアノテーションは、ほとんど同じ機能(変数に永続性コンテキスト情報を注入する)を果たします。大きな違いは、情報の注入先となるインスタンスのデータ型です。セッションBean内のEntityManagerのライフサイクルを完全に制御したい場合は、@PersistenceUnitを使用してEntityManagerFactoryインスタンスに注入し、EntityManagerを手動で作成するためのコードを記述します。処理が完了したら、リソースを解放するために破棄します。EntityManagerのライフサイクルをEJBコンテナで管理したい場合は、@PersistenceContextアノテーションを使用してEntityManagerに直接注入します。

次の例では、永続性コンテキストをEntityManagerデータ型の変数emに注入する方法を示します。該当するコードは太字で示してあります。

package examples;

import javax.ejb.Stateless;

import javax.persistence.PersistenceContext;
import javax.persistence.EntityManager;

@Stateless
public class ServiceBean
implements Service

{
@PersistenceContext private EntityManager em;

...

EntityManager APIを使用してエンティティを検索する

EntityManagerオブジェクトをいったんインスタンス化したら、そのメソッドを使用して永続性コンテキスト内のエンティティと対話できます。この節では、エンティティのライフサイクルを特定および管理するメソッドについて説明します。EntityManagerのその他の用途(トランザクション管理、キャッシュ処理など)については、Oracle Kodoドキュメントの「EntityManager」を参照してください。

注意:

この節では、理解しやすいように、エンティティがデータベース表の実際の行を表すように構成されているものとします。

EntityManager.find()メソッドを使用すると、表内の行をその主キーに基づいて検索できます。findメソッドは2つのパラメータをとります。1つは問合せするエンティティ・クラス(たとえばPerson.class)、もう1つは取得する特定の行の主キーの値です。行を取得したら、標準のgetXXXメソッドを使用して、エンティティの特定のプロパティを取得できます。次のコードの抜粋に、主キーの値が10のPersonを検索してその住所を取得する方法を示します。

public List<Person> findPerson () {

Person p = em.find(Person.class, 10);
Address a = p.getAddress();

Query q = em.createQuery("select p from Person p where p.name = :name");
q.setParameter("name", "Patrick");
List<Person> l = (List<Person>) q.getResultList();

return l;

}

この例では、EntityManager.createQuery()メソッドを使用して、カスタムSQL問合せを含むQueryオブジェクトを作成する方法も示されています。この方法は、表の主キーだけで問合せを行えるEntityManager.find()メソッドとは対照的です。この例では、表内のPatrickという名前のPersonをすべて問合せし、行の結果セットをList<Person>オブジェクトに設定して呼出し側のメソッドfindPerson()に返しています。

EntityManagerを使用してエンティティを作成および更新する

新しいエンティティ・インスタンスを作成する(つまり、データベースに新しい行を追加する)には、次のコード・スニペットに示すように、EntityManager.persistメソッドを使用します

@TransactionAttribute(REQUIRED)
public Person createNewPerson(String name, int age) {

Person p = new Person(name, age);
em.persist(p); // register the new object with the database

Address a = new Address();
p.setAddress(a);
em.persist(a); // depending on how things are configured, this may or
// may not be required
return p;

}

注意:

エンティティの作成および更新は、常にトランザクション内から行う必要があります。この例で、@TransactionAttributeアノテーションがREQUIREDに設定されているのはそのためです。

前述の例では、createNewPersonメソッドに渡されたパラメータに基づいて新しいPersonを作成する方法を示しています。その後、EntityManager.persistメソッドを呼び出すことで、行がデータベース表に自動的に追加されます。

例では、新しく作成したPersonエンティティ(つまり、新しい表行)のAddressを、setAddress()エンティティ・メソッドを使用して更新する方法も示されています。Personエンティティのカスケード構成によっては、2番目のpersist()呼出しが不要な場合もあります。これは、データベースへの更新が、setAddress()メソッドによって自動的にトリガーされる場合があるためです。カスケード処理の詳細については、Oracle Kodoドキュメントの「Cascade Type」を参照してください。

EntityManager.find()メソッドを使用してエンティティ・インスタンスを検索し、setXXXメソッドを使用してエンティティのプロパティを変更する場合は、データベースが自動的に更新されるため、EntityManager.persist()メソッドを明示的に呼び出す必要はありません。次のコード・スニペットを参照してください。

@TransactionAttribute(REQUIRED)
public Person changePerson(int id, int newAge) {
Person p = em.find(Person.class, id);
p.setAge(newAge);
return p;
}

この例では、Person.setAge()メソッドの呼出しによって、データベース表内の適切な行への更新が自動的にトリガーされています。

EntityManager.merge()メソッドを使用すると、クライアントによるエンティティの更新に基づいて、データベース表内の行をすばやく簡単に更新できます。次に例を示します。

@TransactionAttribute(REQUIRED)
public Person applyOfflineChanges(Person pDTO) {
return em.merge(pDTO);
}

この例のapplyOfflineChanges()メソッドはセッションBeanのビジネス・メソッドで、パラメータとしてセッションBeanクライアントによって作成済みのPersonを取ります。このPersonをEntityManager.merge()メソッドに渡すと、EJBコンテナが自動的にデータベース表の既存の行を検索し、その行を新しいデータで更新します。更新後には、merge()メソッドによってその行のコピーが返されます。

ビジネス・メソッドまたはライフサイクル・コールバック・イベントのインターセプタを指定する

インターセプタは、ビジネス・メソッドの呼出しやライフサイクル・コールバック・イベントをインターセプトするメソッドです。インターセプタ・メソッドには、ビジネス・メソッドをインターセプトするメソッドと、ライフサイクル・コールバック・メソッドをインターセプトするメソッドの2種類があります。

インターセプタは、セッションBeanおよびメッセージドリブンBeanに指定できます。

インターセプタ・メソッドは、Beanクラス自体の中でプログラミングできますが、Beanクラスとは別にインターセプタ・クラスをプログラミングして@javax.interceptor.InterceptorsアノテーションでBeanクラスに関連付けることもできます。特定の順序でチェーンとして実行する複数のインターセプタ・メソッドを作成できます。

インターセプタ・インスタンスには状態を保持できます。インターセプタ・インスタンスのライフサイクルは、それが関連付けられているBeanインスタンスのライフサイクルと同じです。インターセプタからは、JNDI、JDBC、JMS、他のエンタープライズBean、およびEntityManagerを呼び出すことができます。インターセプタ・メソッドでは、その呼出しの対象となったBeanのJNDIネームスペースが共有されます。エンタープライズBeanのコンポーネントに適用する制約をプログラミングすると、それがインターセプタにも適用されます。

インターセプタは、javax.interceptorパッケージのメタデータ・アノテーションを使用して構成します。構成方法については後ほど説明します。

以下の節では、Beanクラスのインターセプタを実際にプログラミングする方法について説明します。

- ビジネス・インターセプタまたはライフサイクル・インターセプタを指定する:一般的な手順

- インターセプタ・クラスをプログラミングする

- ビジネス・メソッド・インターセプタ・メソッドをプログラミングする

- ライフサイクル・コールバック・インターセプタ・メソッドをプログラミングする

- デフォルト・インターセプタ・メソッドを指定する

- InvocationContext APIを使用してインターセプタ間で状態を保存する

ビジネス・インターセプタまたはライフサイクル・インターセプタを指定する:一般的な手順

次に示す手順は、Beanクラスのインターセプタを指定してプログラミングする一般的な手順です。

インターセプタを指定しているサンプルについては「単純なステートフルEJBのサンプル」を、インターセプタ・クラスのプログラミングのサンプルについては「インターセプタ・クラスのサンプル」を参照してください。

1. インターセプタ・メソッドを、Beanクラス内でプログラミングするか、別のインターセプタ・クラス内でプログラミングするかを決めます。

2. インターセプタ・メソッドを別のインターセプタ・クラス内でプログラミングする場合は

1. 「インターセプタ・クラスをプログラミングする」の説明に従ってクラスをプログラミングします。

2. Beanクラスでは、@javax.interceptor.Interceptorsアノテーションを使用して、インターセプタ・クラスをBeanクラスに関連付けます。インターセプタ・クラス内のメソッドには、@javax.interceptor.AroundInvokeアノテーションを付けます。これで、そのBeanクラスのビジネス・メソッド・インターセプタ・メソッドになります。同様に、ライフサイクル・コールバック・アノテーションを付けたメソッドは、そのBeanクラスのライフサイクル・コールバック・インターセプタ・メソッドになります。

1つのBeanクラスに指定できるインターセプタ・クラスの数に制限はありません。複数のインターセプタ・クラスを指定した場合は、アノテーションに記述されている順序で実行されます。インターセプタ・クラスをクラス・レベルで指定した場合、インターセプタ・メソッドは適切なすべてのBeanクラス・メソッドに適用されます。インターセプタ・クラスをメソッド・レベルで指定した場合は、アノテーションを付けたメソッドにのみ適用されます。

3. インターセプタ・メソッドをプログラミングしたクラス(Beanクラスまたはインターセプタ・クラス)で、「ビジネス・メソッド・インターセプタ・メソッドをプログラミングする」の説明に従ってビジネス・メソッド・インターセプタ・メソッドをプログラミングします。

4. インターセプタ・メソッドをプログラミングしたクラス(Beanクラスまたはインターセプタ・クラス)で、「ライフサイクル・コールバック・インターセプタ・メソッドをプログラミングする」の説明に従ってライフサイクル・コールバック・インターセプタ・メソッドをプログラミングします。

5. 必要に応じ、Beanクラス内でメソッドに@javax.interceptor.ExcludeClassInterceptorsアノテーションを付けて、クラス・レベルで定義したインターセプタを除外します。

6. 必要に応じ、Beanクラス内でクラスまたはメソッドに@javax.interceptor.ExcludeDefaultInterceptorsアノテーションを付けて、後で定義する可能性のあるデフォルト・インターセプタを除外します。デフォルト・インターセプタは、ejb-jar.xmlデプロイメント記述子で構成します。アノテーションを使用して明示的に除外しない限り、JARファイル内のすべてのEJBに適用されます。

7. 必要に応じ、「デフォルト・インターセプタ・メソッドを指定する」の説明に従って、EJB JARファイル全体に適用されるデフォルト・インターセプタを指定します。

インターセプタ・クラスをプログラミングする

インターセプタ・クラスは、インターセプタ・アノテーションを含むプレーンJavaクラスです。インターセプタ・アノテーションによって、どのメソッドでビジネス・メソッドやライフサイクル・コールバック・メソッドをインターセプトするかを指定します。

インターセプタ・クラスでは、依存関係インジェクションがサポートされます。依存関係インジェクションは、インターセプタ・クラス・インスタンスの作成時に、関連付けられているエンタープライズBeanのネーミング・コンテキストを使用して実行されます。

インターセプタ・クラスには、引数を取らないパブリック・コンストラクタを含める必要があります。

インターセプタ・クラスに含めるメソッドの数に制限はありませんが、インターセプタ・アノテーションを付けることのできるメソッドの数に上限があるためその制約を受けます。この点については、以降の節で説明します。

サンプルについては、「インターセプタ・クラスのサンプル」を参照してください。

ビジネス・メソッド・インターセプタ・メソッドをプログラミングする

ビジネス・メソッド・インターセプタ・メソッドを指定するには、メソッドに@AroundInvokeアノテーションを付けます。

@AroundInvokeアノテーションを付けたメソッドは、インターセプタ・クラスまたはBeanクラスごとに1つしか指定できません。1つのビジネス・メソッドに対して複数のインターセプタ・メソッドを指定するには、Beanファイル自体の中にインターセプタ・メソッドを指定した上で(この指定は省略可能)、複数のインターセプタ・クラスをBeanファイルに関連付ける必要があります。インターセプタ・メソッドが実行される順序は、関連付けられたインターセプタ・クラスを@Interceptorアノテーション内で指定する順序によって決まります。Beanファイル自体の中に指定したインターセプタ・メソッドは、インターセプタ・クラス内に定義されたメソッドの後に実行されます。

ビジネス・メソッド自体に@AroundInvokeアノテーションを付けることはできません。

@AroundInvokeメソッドのシグネチャは次のようになっている必要があります。

Object <METHOD>(InvocationContext) throws Exception

@AroundInvokeアノテーションを付けたメソッドは、常にInvocationContext.proceed()を呼び出すようにするか、ビジネス・メソッドや後続の@AroundInvokeメソッドが呼び出されないようにする必要があります。InvocationContext APIの詳細は、「InvocationContext APIを使用してインターセプタ間で状態を保存する」を参照してください。

ビジネス・メソッド・インターセプタ・メソッドの呼出しは、対象となるビジネス・メソッドと同じトランザクションおよびセキュリティ・コンテキストの中で発生します。ビジネス・メソッド・インターセプタ・メソッドからは、ビジネス・メソッドのthrows句で許可されている実行時例外やアプリケーション例外がスローされることがあります。

サンプルについては、「インターセプタ・クラスのサンプル」を参照してください。

ライフサイクル・コールバック・インターセプタ・メソッドをプログラミングする

ライフサイクル・コールバック・インターセプタ・メソッドとして指定したメソッドは、EJBコンテナからライフサイクル・イベントの通知を受信できます。ライフサイクル・イベントには、Beanインスタンスの作成、パッシブ化、破棄などがあります。

ライフサイクル・コールバック・インターセプタ・メソッドには任意の名前を付けることができます。この点は、メソッドの名前をejbCreate()やejbPassivate()などにしなければならなかったEJB 2.Xプログラミング・モデルとは異なります。

メソッドをライフサイクル・コールバック・インターセプタ・メソッドとして指定するには、以下のライフサイクル・インターセプタ・アノテーションを使用します。

- @javax.ejb.PrePassivate - EJBコンテナがステートフル・セッションBeanをパッシブ化する直前に通知を受信するメソッドを指定します。

- @javax.ejb.PostActivate - EJBコンテナがステートフル・セッションBeanを再アクティブ化した直後に通知を受信するメソッドを指定します。

- @javax.annotation.PostConstruct - EJBコンテナが1番目のビジネス・メソッドを呼び出す前と、依存関係インジェクションを完了した後に通知を受信するメソッドを指定します。通常、このアノテーションは、初期化を実行するメソッドに適用します。

注意:

このアノテーションは、javax.ejbパッケージではなく、javax.annotationパッケージに含まれています。

- @javax.annotation.PreDestroy - EJBコンテナがBeanインスタンスを破棄する直前に通知を受信するメソッドを指定します。通常、このアノテーションは、Beanクラスが保持しているリソースを解放するメソッドに適用します。

注意:

このアノテーションは、javax.ejbパッケージではなく、javax.annotationパッケージに含まれています。

上に挙げたアノテーションは、メソッドがBeanクラス内にあるか別のインターセプタ・クラス内にあるかに関係なく同じ方法で使用します。1つのメソッドに複数のアノテーションを付けることもできます。

また、Beanクラス内または関連付けられたインターセプタ・クラス内に、ライフサイクル・コールバック・アノテーションのサブセットや組合せを指定することも可能です。ただし、1つのクラス内に、同じコールバック・アノテーションを複数回指定することはできません。1つのクラス内に複数のコールバック・アノテーションを指定した場合、そのEJBはデプロイされません。

1つのライフサイクル・コールバック・イベントに対して複数のインターセプタ・メソッドを指定するには、Beanファイル自体の中にライフサイクル・コールバック・インターセプタ・メソッドを指定した上で(この指定は省略可能)、複数のインターセプタ・クラスをBeanファイルに関連付ける必要があります。インターセプタ・メソッドが実行される順序は、関連付けられたインターセプタ・クラスを@Interceptorアノテーション内で指定する順序によって決まります。Beanファイル自体の中に指定したインターセプタ・メソッドは、インターセプタ・クラス内に定義されたメソッドの後に実行されます。

アノテーションを付けたメソッドのシグネチャは、メソッドをどこで定義したかによって異なります。

- Beanクラスで定義したライフサイクル・コールバック・メソッドのシグネチャは次のようになります。

void <METHOD>()

- インターセプタ・クラスで定義したライフサイクル・コールバック・メソッドのシグネチャは次のようになります。

void <METHOD>(InvocationContext)

InvocationContext APIの詳細は、「InvocationContext APIを使用してインターセプタ間で状態を保存する」を参照してください。

ライフサイクル・インターセプタ・クラスをプログラミングする際のその他の要件については、「javax.ejb.PostActivate」、「javax.ejb.PrePassivate」、「javax.annotation.PostConstruct」、および「javax.annotation.PreDestroy」を参照してください。

サンプルについては、「インターセプタ・クラスのサンプル」を参照してください。

デフォルト・インターセプタ・メソッドを指定する

デフォルト・インターセプタ・メソッドは、特定のEJB JARファイル内または展開されたディレクトリ内のすべてのコンポーネントに適用されます。したがって、必ずejb-jar.xmlデプロイメント記述子で構成する必要があり、メタデータ・アノテーションは特定のEJBにしか適用されないため使用できません。

デフォルト・インターセプタ・メソッドが設定されている場合、EJBコンテナは、EJBに対して定義されている他のすべてのインターセプタ(ビジネスおよびライフサイクルの両方)を呼び出す前に、このデフォルト・インターセプタ・メソッドを呼び出します。特定のEJBでデフォルト・インターセプタが呼び出されないようにするには、Beanファイルでクラス・レベルの@javax.interceptor.ExcludeDefaultInterceptorsアノテーションを指定します。

ejb-jar.xmlファイルでは、<assembly-descriptor>の<interceptor-binding>子要素を使用してデフォルト・インターセプタを指定します。具体的には、<ejb-name>子要素を*に設定してそのクラスがすべてのEJBに適用されるようにしてから、<interceptor-class>子要素をインターセプタ・クラスの名前に設定します。

次のejb-jar.xmlからのスニペットに、デフォルト・インターセプタ・クラスorg.mycompany.DefaultICを指定する方法を示します。

<?xml version="1.0" encoding="UTF-8"?>

<ejb-jar version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">

...

<assembly-descriptor>

...

<interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>org.mycompany.DefaultIC</interceptor-class>
</interceptors>

</assembly-descriptor>

</ejb-jar>

InvocationContext APIを使用してインターセプタ間で状態を保存する

javax.interceptor.InvocationContext APIを使用すると、特定のビジネス・メソッドまたはライフサイクル・コールバックに対して実行するインターセプタ間で状態情報をやり取りできます。EJBコンテナは、同じInvocationContextインスタンスを各インターセプタ・メソッドに渡します。したがって、たとえばビジネス・メソッド・インターセプタ・メソッドを初めて実行したときの情報を保存しておき、このビジネス・メソッドに対して実行する後続のインターセプタ・メソッドにこの情報を渡すことができます。InvocationContextインスタンスは、ビジネス・メソッド呼出しやライフサイクル・コールバック呼出しの間では共有されません。

すべてのインターセプタ・メソッドは、InvocationContextパラメータを取る必要があります。これにより、InvocationContextインタフェースのメソッドを使用して、コンテキスト情報を取得したり設定したりすることが可能になります。次に、InvocationContextインタフェースを示します。

public interface InvocationContext {
public Object getBean();
public Method getMethod();
public Object[] getParameters();
public void setParameters(Object[]);
public java.util.Map getContextData();
public Object proceed() throws Exception;
}

getBeanメソッドは、Beanインスタンスを返します。getMethodメソッドは、呼び出されたインターセプタ・メソッドが対象とするビジネス・メソッドの名前を返します。ライフサイクル・コールバック・インターセプタ・メソッドの場合はnullを返します。

proceedメソッドは、チェーン内の次のインターセプタ・メソッドの呼出しを発生させます。チェーン内の最後の@AroundInvokeインターセプタ・メソッドから呼び出された場合は、ビジネス・メソッド自体の呼出しを発生させます。

InvocationContextを使用しているサンプルについては、「インターセプタ・クラスのサンプル」を参照してください。

アプリケーション例外をプログラミングする

ビジネス・インタフェースにアプリケーション例外をスローするメソッドを指定した場合は、その例外をBeanクラスとは別のクラスとしてプログラミングする必要があります。

@javax.ejb.ApplicationExceptionアノテーションを使用すると、例外クラスがEJBのビジネス・メソッドによってスローされるアプリケーション例外であることを指定できます。アプリケーション・エラーが発生すると、EJBコンテナからクライアントに直接例外が報告されます。

アプリケーション・エラーが発生したときに現在のトランザクションをロールバックするかどうかを指定するには、@ApplicationExceptionのrollbackブール属性を使用します。デフォルトでは、エラーが発生しても現在のトランザクションはロールバックされません。

このアノテーションでは、検査済みの例外も未検査の例外も指定できます。

次に示すProcessingException.javaファイルでは、@ApplicationExceptionアノテーションを使用して、例外クラスがEJBのビジネス・メソッドによってスローされるアプリケーション例外であることを指定する方法を示します。

package examples;

import javax.ejb.ApplicationException;

/**
* Application exception class thrown when there was a processing error
* with a business method of the EJB.  Annotated with the
* @ApplicationException annotation.
*/

@ApplicationException()
public class ProcessingException extends Exception {

/**
* Catches exceptions without a specified string
*
*/
public ProcessingException() {}

/**
* Constructs the appropriate exception with the specified string
*
* @param message           Exception message
*/
public ProcessingException(String message) {super(message);}
}

EJBへのアクセスにセキュリティを設定する

デフォルトでは、EJBのパブリック・メソッドはどのユーザーでも呼び出すことができます。EJBへのアクセスを制限したい場合は、以下のセキュリティ関連アノテーションを使用して、すべてのメソッド(またはメソッドのサブセット)を呼び出すことができるロールを指定します。

- javax.annotation.security.DeclareRoles - EJBのセキュリティ設定に使用するセキュリティ・ロールのリストを明示的に宣言します。

- javax.annotation.security.RolesAllowed - EJBのメソッドを呼び出すことができるセキュリティ・ロールを指定します。すべてのメソッドを呼び出すことができるロールはクラス・レベルで指定し、特定のメソッドのみを呼び出すことができるロールはメソッド・レベルで指定します。

- javax.annotation.security.DenyAll - どのロールでも呼び出すことができないメソッドを指定します。

- javax.annotation.security.PermitAll - すべてのロールで呼び出すことができるメソッドを指定します。

- javax.annotation.security.RunAs - EJBを実行するロールを指定します。デフォルトでは、EJBはそれを実際に呼び出したユーザーとして実行されます。

上に挙げたアノテーションは、EJB 3.0だけでなく、メタデータ・アノテーションをサポートする様々なJava EEコンポーネントで使用できます。

セキュリティ・ロールを作成し、ロールにユーザーをマッピングするには、WebLogic Server管理コンソールでセキュリティ・レルムを更新します。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのセキュリティ・ロールの管理に関する項を参照してください。

次に、すべてのセキュリティ関連アノテーションを使用した単純なステートレス・セッションEJBのサンプルを示します。太字で示した部分については後ほど解説します。

package examples;

import javax.ejb.Stateless;

import javax.annotation.security.DeclareRoles;
import javax.annotation.security.PermitAll;
import javax.annotation.security.DenyAll;
import javax.annotation.security.RolesAllowed;
import javax.annotation.security.RunAs;

/**
* Bean file that implements the Service business interface.
*/

@Stateless
@DeclareRoles( { "admin", "hr" } )
@RunAs ("admin")

public class ServiceBean
implements Service
{
@RolesAllowed ( {"admin", "hr"} )
public void sayHelloRestricted() {
System.out.println("Only some roles can invoke this method.");
}

@DenyAll
public void sayHelloSecret() {
System.out.println("No one can invoke this method.");
}

@PermitAll
public void sayHelloPublic() {
System.out.println("Everyone can invoke this method.");
}
}

このサンプル・コードで注目すべき主な点は以下のとおりです。

- セキュリティ関連メタデータ・アノテーションをインポートしています。

import javax.annotation.security.DeclareRoles;
import javax.annotation.security.PermitAll;
import javax.annotation.security.DenyAll;
import javax.annotation.security.RolesAllowed;
import javax.annotation.security.RunAs;

- クラス・レベルの@DeclareRolesアノテーションは、後ほど設定する一部またはすべてのメソッドのセキュリティで、adminおよびhrセキュリティ・ロールを使用することを明示的に指定している。このアノテーションは必須ではありません。たとえば、@RolesReferencedアノテーションで参照されるすべてのセキュリティ・ロールは暗黙的に宣言されます。しかし、セキュリティ・ロールを明示的に宣言することでコードが理解しやすくなります。

- クラス・レベルの@RunAsアノテーションは、EJBの特定のメソッドを実際にどのユーザーが呼び出したかに関係なく、EJBコンテナがメソッドをadminロールとして実行することを指定しています。もちろん、元のユーザーにそのメソッドの呼出しが許可されていることが前提になっています。

- sayHelloRestrictedメソッドの@RolesAllowedアノテーションは、このメソッドの呼出しをadminまたはhrロールにマッピングされているユーザーにのみ許可することを指定しています。

- sayHelloSecretメソッドの@DenyAllアノテーションは、このメソッドの呼出しをどのロールにマッピングされているユーザーにも許可しないことを指定しています。

- sayHelloPublicメソッドの@PermitAllアノテーションは、このメソッドの呼出しをどのロールにマッピングされているユーザーにも許可することを指定しています。

トランザクション管理とトランザクション属性を指定する

デフォルトでは、EJBコンテナはビジネス・メソッドをトランザクション・コンテキスト内で呼び出します。また、トランザクションをコミットまたはロールバックするかどうかはEJBコンテナ自体が決定します。これを、コンテナ管理によるトランザクションの境界設定といいます。

このデフォルト動作は、Beanファイルで以下のアノテーションを使用して変更できます。

- javax.ejb.TransactionManagement - トランザクションの境界設定を、EJBコンテナで管理するかBeanファイルで管理するかを指定します。Beanファイル管理を指定する場合は、Beanファイル内でトランザクション管理をプログラミングする必要があります。通常はJava Transaction API (JTA)を使用してプログラミングします。

- javax.ejb.TransactionAttribute - EJBコンテナがメソッドをトランザクション内で呼び出すかどうかを指定します。

javax.ejb.TransactionAttributeアノテーションを使用しているサンプルについては、「単純なステートフルEJBのサンプル」を参照してください。

メタデータ・アノテーションの機能別一覧

ここに示すEJB 3.0メタデータ・アノテーションについては、完全なリファレンス情報を付録A「EJB 3.0メタデータ・アノテーション・リファレンス」にアルファベット順でまとめてあります。この節の表では、アノテーションを機能別にグループ化しています。

Beanタイプを指定するためのアノテーション

以下の表では、Beanタイプの指定に使用するアノテーションについて簡単に説明します。

表5-1 Beanタイプを指定するためのアノテーション

アノテーション

説明

@javax.ejb.Stateless

Beanクラスがステートレス・セッションBeanであることを指定します。詳細については、「javax.ejb.Stateless」を参照してください。

@javax.ejb.Stateful

Beanクラスがステートフル・セッションBeanであることを指定します。詳細については、「javax.ejb.Stateful」を参照してください。

@javax.ejb.Init

ステートフル・セッションBeanメソッドと、適合するEJB 2.1 EJBHomeまたはEJBLocalHomeクライアント・ビューのcreate<METHOD>メソッドとの対応関係を指定します。詳細については、「javax.ejb.Init」を参照してください。

@javax.ejb.Remove

ステートフル・セッションBeanのremoveメソッドを指定します。詳細については、「javax.ejb.Remove」を参照してください。

@javax.ejb.MessageDriven

BeanクラスがメッセージドリブンBeanであることを指定します。詳細については、「javax.ejb.MessageDriven」を参照してください。

@javax.ejb.ActivationConfigProperty

操作環境でメッセージドリブンBeanを構成するために使用するプロパティを指定します。詳細については、「javax.ejb.ActivationConfigProperty」を参照してください。

ローカル・インタフェースまたはリモート・インタフェースを指定するためのアノテーション

以下の表では、ローカル・インタフェースまたはリモート・インタフェースの指定に使用するアノテーションについて簡単に説明します。

表5-2 ローカル・インタフェースまたはリモート・インタフェースを指定するためのアノテーション

アノテーション

説明

@javax.ejb.Local

Beanのローカル・インタフェースを指定します。詳細については、「javax.ejb.Local」を参照してください。

@javax.ejb.Remote

Beanのリモート・インタフェースを指定します。詳細については、「javax.ejb.Remote」を参照してください。

EJB 2.Xクライアント・ビューをサポートするためのアノテーション

以下の表では、EJB 2.Xクライアント・ビューのサポートに使用するアノテーションについて簡単に説明します。

表5-3 EJB 2.Xクライアント・ビューをサポートするためのアノテーション

アノテーション

説明

@javax.ejb.LocalHome

Beanのローカル・ホーム・インタフェースを指定します。詳細については、「javax.ejb.LocalHome」を参照してください。

@javax.ejb.RemoteHome

Beanのリモート・ホーム・インタフェースを指定します。詳細については、「javax.ejb.RemoteHome」を参照してください。

3.0エンティティBeanを呼び出すためのアノテーション

以下の表では、3.0エンティティBeanの呼出しに使用するアノテーションについて簡単に説明します。

表5-4 3.0エンティティBeanを呼び出すためのアノテーション

アノテーション

説明

@javax.persistence.PersistenceContext

EntityManager永続性コンテキストへの依存関係を指定します。詳細は、「javax.persistence.PersistenceContext」を参照してください。

@javax.persistence.PersistenceContexts

1つまたは複数のPersistenceContextアノテーションを指定します。詳細は、「javax.persistence.PersistenceContexts」を参照してください。

@javax.persistence.PersistenceUnit

EntityManagerFactoryへの依存関係を指定します。詳細は、「javax.persistence.PersistenceUnit」を参照してください。

@javax.persistence.PersistenceUnits

1つまたは複数のPersistenceUnitアノテーションを指定します。詳細は、「javax.persistence.PersistenceUnits」を参照してください。

トランザクション関連のアノテーション

以下の表では、トランザクションに使用するアノテーションについて簡単に説明します。

表5-5 トランザクション関連のアノテーション

アノテーション

説明

@javax.ejb.TransactionManagement

トランザクションの境界設定管理の種類(コンテナ管理またはBean管理)を指定します。詳細については、「javax.ejb.TransactionManagement」を参照してください。

@javax.ejb.TransactionAttribute

ビジネス・メソッドをトランザクションのコンテキスト内で呼び出すかどうかを指定します。詳細については、「javax.ejb.TransactionManagement」を参照してください。

インターセプタを指定するためのアノテーション

以下の表では、インターセプタの指定に使用するアノテーションについて簡単に説明します。

表5-6 インターセプタを指定するためのアノテーション

アノテーション

説明

@javax.interceptor.Interceptors

Beanクラスまたはメソッドに関連付けるインターセプタ・クラスのリストを指定します。詳細については、「javax.interceptor.Interceptors」を参照してください。

@javax.interceptor.AroundInvoke

インターセプタ・メソッドを指定します。詳細については、「javax.interceptor.AroundInvoke」を参照してください。

@javax.interceptor.ExcludeClassInterceptors

アノテーションを付けたメソッドが呼び出されたときに、クラス・レベルのインターセプタを呼び出さないことを指定します。詳細は、javax.interceptor.ExcludeClassInterceptorsを参照してください。

@javax.interceptor.ExcludeDefaultInterceptors

アノテーションを付けたメソッドが呼び出されたときに、デフォルト・インターセプタを呼び出さないことを指定します。詳細は、javax.interceptor.ExcludeDefaultInterceptorsを参照してください。

ライフサイクル・コールバックを指定するためのアノテーション

以下の表では、ライフサイクル・コールバックの指定に使用するアノテーションについて簡単に説明します。

表5-7 ライフサイクル・コールバックを指定するためのアノテーション

アノテーション

説明

@javax.ejb.PostActivate

ステートフル・セッションBeanがアクティブ化された後にコールバックを受信するメソッドを指定します。詳細については、「javax.ejb.PostActivate」を参照してください。

@javax.ejb.PrePassivate

ステートフル・セッションBeanがパッシブ化される前にコールバックを受信するメソッドを指定します。詳細については、「javax.ejb.PrePassivate」を参照してください。

@javax.annotation.PostConstruct

依存関係インジェクションが完了した後に、初期化を実行するために呼び出す必要のあるメソッドを指定します。詳細については、「javax.annotation.PostConstruct」を参照してください。

@javax.annotation.PreDestroy

コンテナがインスタンスを削除しようとしていることを知らせるコールバック通知を受信するメソッドを指定します。詳細については、「javax.annotation.PreDestroy」を参照してください。

セキュリティ関連のアノテーション

以下のメタデータ・アノテーションは、EJB 3.0固有のアノテーションではなく、javax.annotation.securityパッケージに含まれる一般的なセキュリティ関連アノテーションです。

表5-8 セキュリティ関連のアノテーション

アノテーション

説明

@javax.annotation.security.DeclareRoles

Beanクラス内のセキュリティ・ロールへの参照を指定します。詳細については、「javax.annotation.security.DeclareRoles」を参照してください。

@javax.annotation.security.RolesAllowed

Beanのビジネス・メソッドを呼び出すことができるセキュリティ・ロールのリストを指定します。詳細については、「javax.annotation.security.RolesAllowed」を参照してください。

@javax.annotation.security.PermitAll

そのメソッドがすべてのセキュリティ・ロールで呼び出せることを指定します。詳細については、「javax.annotation.security.PermitAll」を参照してください。

@javax.annotation.security.DenyAll

そのメソッドがどのセキュリティ・ロールでも呼び出せないことを指定します。詳細については、「javax.annotation.security.DenyAll」を参照してください。

@javax.annotation.security.RunAs

そのメソッドをどのセキュリティ・ロールとして実行するかを指定します。詳細については、「javax.annotation.security.RunAs」を参照してください。

コンテキスト依存関係アノテーション

以下の表では、コンテキスト依存関係に使用するアノテーションについて簡単に説明します。

表5-9 コンテキスト依存関係アノテーション

アノテーション

説明

@javax.ejb.EJB

EJBビジネス・インタフェースまたはホーム・インタフェースへの依存関係を指定します。詳細については、「javax.ejb.EJB」を参照してください。

@javax.ejb.EJBs

1つまたは複数の@EJBアノテーションを指定します。詳細は、「javax.ejb.EJBs」を参照してください。

@javax.annotation.Resource

Beanの環境内の外部リソースへの依存関係を指定します。詳細については、「javax.annotation.Resource」を参照してください。

@javax.annotation.Resources

1つまたは複数の@Resourceアノテーションを指定します。詳細は、「javax.annotation.Resources」を参照してください。

タイムアウトと例外のアノテーション

以下の表では、タイムアウトと例外に使用するアノテーションについて簡単に説明します。

表5-10 タイムアウトと例外のアノテーション

アノテーション

説明

@javax.ejb.Timeout

Beanクラスのタイムアウト・メソッドを指定します。詳細については、「javax.ejb.Timeout」を参照してください。

@javax.ejb.ApplicationException

例外がアプリケーション例外で、クライアントに直接報告することを指定します。詳細については、「javax.ejb.ApplicationException」を参照してください。

6 WebLogic ServerでのOracle TopLinkの使用

この章では、Oracle WebLogic Serverを使用したOracle TopLinkアプリケーションの開発の概要を示します。以下の内容について説明します。

- Oracle TopLinkの概要

- Oracle TopLinkとOracle WebLogic Serverの統合

- WebLogic ServerにおけるJPA 2.0とTopLinkの併用

Oracle TopLinkの概要

Oracle TopLinkは高度なオブジェクト永続性およびオブジェクト変換フレームワークであり、開発と保守にかかる労力を削減して、エンタープライズ・アプリケーションの機能性を高める開発ツールと実行時機能を提供します。

Oracle TopLinkには、Java EEおよびJava SE環境でのEJB 3.0のサポートや、EJB 2.nのコンテナ管理による永続性(CMP)のサポートが含まれています。Oracle TopLinkは、Oracle WebLogic Server、OC4J、SunAS、JBoss、IBM WebSphereなどの様々なアプリケーション・サーバーと統合できます。

Oracle TopLinkアプリケーションの開発、デプロイ、構成の詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

今回のWebLogic Serverリリースで永続性プロバイダとしてTopLinkを使用するとき、JPA 2.0用のサポートを提供するパッチをインストールできます。「WebLogic ServerにおけるJPA 2.0とTopLinkの併用」を参照してください。

Oracle TopLinkとOracle WebLogic Serverの統合

『Oracle Fusion Middleware Oracle TopLink開発者ガイド』のTopLinkapアプリケーション開発の概要に関する項の説明に従って、Oracle TopLinkアプリケーションを開発します。

Oracle TopLinkアプリケーションをOracle WebLogic Serverにデプロイする前に、以下の統合手順を実行する必要があります。

- JTAを使用する場合は、必要に応じて、外部トランザクション・コントローラを構成します。

- デプロイ済みのJMX MBeanを使用して、実行時のOracle TopLinkセッションを構成します。

詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』のIntegrating TopLink with Oracle WebLogic Serverに関する項を参照してください。また、同ドキュメントの「Integrating TopLink with an Application Server」で説明されている要件を満たす必要があります。

WebLogic ServerにおけるJPA 2.0とTopLinkの併用

今回のWebLogic Serverリリースで永続性プロバイダとしてTopLinkを使用するとき、Java Persistence Architecture (JPA) 2.0用のサポートを提供するパッチをインストールできます。

JPA 2.0では、ドメイン・モデリング、オブジェクト/リレーショナル・マッピング、EntityManagerインタフェース、問合せインタフェースおよびJava Persistence Query Language (JPQL)の各機能が向上し、強化されています。条件問合せ、メタモデルAPIおよび検証のサポート用の新しいAPIが含まれています。JPA 2.0の仕様は、「JSR-000317 Java Persistence 2.0 (最終リリース)」(http://jcp.org/aboutJava/communityprocess/final/jsr317/index.html)を参照してください。

注意:

JPA 2.0は、Java Platform, Enterprise Edition (Java EE) 6の一部であるため、WebLogic ServerでのJPA 2.0のサポートはパッチとして提供されます。このため、現在のリリースでJPA 2.0のサポートを有効にすると、WebLogic ServerがJava EE 5との互換性の要件に一部適合しなくなります。現在のリリースでJava EE 5との互換性を保つために、サポートに必要なファイル(WebLogic Serverの標準インストールに含まれています)がデフォルトでは有効になりません。

今回のWebLogic ServerリリースでJPA 2.0を使用するには、次の手順を実行します。

1. 『Oracle Fusion Middleware Oracle TopLink開発者ガイド』のTopLinkとOracle WebLogic Serverの統合に関する項で説明されているように、Oracle TopLinkを永続性プロバイダとして使用します。

2. 次の2つの方法のいずれかを使用してパッチをインストールします。

- Smart Updateによるインストール

- 手動インストール

Smart Updateによるインストール

Oracle Smart Updateとは、WebLogic Serverインストールにパッチを適用するプロセスを簡略化するスタンドアロンJavaアプリケーションです。これはMiddlewareホーム・ディレクトリに自動的にインストールされます。Smart Updateを使用するためのアクティブなMy Oracle Supportアカウントが必要です。

Smart Updateを使用してパッチをインストールするには、次の手順を実行します。

1. My Oracle Support (https://support.oracle.com/CSP/ui/flash.html)にサインインします(アカウントを持っていない場合は作成する必要があります)。

2. パッチ「Enable JPA 2.0 support on WebLogic Server」を見つけてダウンロードします。

注意:

パッチの番号とIDは、WebLogic Serverのリリース間で変わる場合があります。WebLogic Server 10.3.5では、パッチは「Patch 9923849: SU Patch [QWG8]: Enable JPA 2.0 support on WebLogic Server」になります。

パッチの検索とダウンロードの詳細は、Oracle Smart Updateパッチおよびメンテナンス・パックのインストールの概要に関する項とパッチのダウンロードに関する項を参照してください。

3. 『Oracle Smart Updateパッチおよびメンテナンス・パックのインストール』のSmart Updateの起動に関する項とパッチの適用に関する項の説明に従い、ダウンロードしたパッチを解凍し、Smart Updateツールを使用してパッチをインストールします。

Smart Updateを使用してパッチを適用すると、次が実行されます。

- パッチ・ファイルがMW_HOME/patch_wls1036/patch_jarsにコピーされます。

- MW_HOME\patch_wls1036\profiles\default\sys_manifest_classpath\weblogic_patch.jarが、FMW_HOME/wlserver_10.3\common\bin\setPatchEnv.cmdによってCLASSPATHに追加されます。

- 標準のstartWeblogic.cmdまたはstartWeblogic.shを使用してサーバーを起動できます。それ以上の変更は必要ありません。

- カスタム・スクリプトを使用してサーバーを起動する場合、MW_HOME\modules\javax.persistence_1.0.0.0_2-0-0.jar;%wls_modules%\com.oracle.jpa2support_1.0.0.0_2-0.jarまたはMW_HOME\patch_wls1036\profiles\default\sys_manifest_classpath\weblogic_patch.jarを、CLASSPATHの先頭に配置する必要があります。これを実行する方法は、「手動インストール」を参照してください。

手動インストール

JPA 2.0のサポートに必要なファイルは、デフォルトのWebLogic Serverインストールに含まれますが、デフォルトでは有効化されてはいません。ファイルは、WL_HOME\modulesディレクトリにインストールされます。ファイルは次のような内容です。

- javax.persistence_1.0.0.0_2-0-0 JARファイルには、JPA 2.0ライブラリが含まれます。

- com.oracle.jpa2support_1.0.0.0_2-0.jarファイルには、WebLogic ServerでJPA 2.0サポートを有効化するためのファイルが含まれます。

アクティブなMy Oracle Supportアカウント(Smart Updateの使用に必要)を持っていない場合、WebLogicのクラスパスの先頭にファイルを配置することによって、手動でパッチをインストールできます。たとえば、次のいずれかの方法を使用できます。

- WebLogic Server起動前にPRE_CLASSPATH環境変数を定義します。
たとえば、Windowsコンソールのウィンドウで、startWebLogic.cmdを実行する前に次のスクリプトを実行します。

@echo off
if ".%1" == "." goto TellSyntax
set wls_modules=%1
set PRE_CLASSPATH=%wls_modules%\javax.persistence_1.0.0.0_2-0-0.jar;
%wls_modules%\com.oracle.jpa2support_1.0.0.0_2-0.jar
goto End
:TellSyntax
echo setJPA2SupportPatch [path-to-weblogic-modules-directory
:End
echo PRE_CLASSPATH=%PRE_CLASSPATH%

同様のスクリプトは、Linux、UNIX、またはMacintosh用に記述できます。

- WL_HOME/common/binディレクトリのcommEnv.cmdまたはcommEnv.shスクリプトを変更し、スクリプトの先頭でPRE_CLASSPATHを定義します。

7 WebLogic ServerでのOracle Kodoの使い方

この章では、WebLogic ServerでのOracle Kodoアプリケーションの開発、デプロイメント、および構成について概説します。以下の内容について説明します。

- Oracle Kodoの概要

- Oracle Kodoアプリケーションの作成

- バージョンの異なるOracle Kodoの使用

- 永続性の構成

- Oracle Kodoアプリケーションのデプロイ

- Oracle Kodoアプリケーションの構成

注意:

Oracle Kodo JPA/JDOはこのリリースで非推奨になりました。Oracle TopLinkの使用を検討することをお薦めします。Oracle TopLinkの詳細は、「WebLogic ServerでのOracle TopLinkの使用」を参照してください。

TopLinkを使用する場合、JPA 2.0をサポートするパッチをWebLogic Serverにインストールできます。詳細は、「WebLogic ServerにおけるJPA 2.0とTopLinkの併用」を参照してください。WebLogic Serverは、Kodoを使用する場合、JPA 2.0をサポートしません。

Oracle Kodoの概要

Oracle Kodoは、Java Persistence API (JPA)およびJava Data Objects (JDO)仕様の、透過的なデータ・オブジェクト用の実装です。Oracle Kodoは、スタンドアロン製品として使用することも、WebLogic Serverに統合することもできます。

この章では、WebLogic ServerでJPAやJDOを使用してアプリケーションを実装する方法について説明します。WebLogic Serverでは、JPAおよびJDO実装が、WebLogic Server全体のEnterprise JavaBean 3.0永続性実装の一部になっています。

JPAおよびJDOを使用したアプリケーションの作成に関する一般的な情報については、Kodo 4.2.0 JPA/JDO開発者ガイドを参照してください。

Oracle Kodoアプリケーションの作成

WebLogic ServerにOracle Kodoアプリケーションを実装するには、最初にアプリケーションのコードを記述する必要があります。Oracle Kodoを使用してデータの永続性を管理するアプリケーションの記述については、以下のリソースを参照してください。

- Oracle Kodo JPAチュートリアル

- Oracle Kodo JDOチュートリアル

Oracle Kodoを使用してアプリケーションを作成する手順を理解し、実際にアプリケーションを作成したら、WebLogic Serverを使用してアプリケーションをデプロイおよび構成します。手順については、以降の節を参照してください。

バージョンの異なるOracle Kodoの使用

WebLogic Serverでデフォルトで提供されているOracle Kodoとは異なるバージョンのOracle Kodoを使用する場合は、FilteringClassLoaderを使用して、システム・クラスローダーからではなくアプリケーションからロードするパッケージ(この場合はOracle KodoとOpenJPA)を指定する必要があります。

以下の例では、weblogic-application.xmlを使用して、アプリケーションからOracle KodoおよびOpenJPAパッケージをロードする方法を示します。

<prefer-application-packages>
<package-name>org.apache.openjpa.*</package-name>
<package-name>kodo.*</package-name>
<package-name>com.solarmetric.*</package-name>
</prefer-application-packages>

フィルタリング・クラスローダーの詳細は、『Oracle WebLogic Serverアプリケーションの開発』のWebLogic Serverアプリケーションのクラスローディングの理解に関する項を参照してください。

その後で、『Oracle WebLogic Serverアプリケーションの開発』のライブラリ・ディレクトリに関する項で説明するように、ライブラリ・ディレクトリを使用して、Oracle KodoおよびOpenJPAをアプリケーション内にパッケージ化できます。

永続性の構成

以下の節では、永続性を構成する方法について説明します。

- 構成プロパティ・ファイルを編集する

- 2種類の構成ファイルを組み合せて使用する

- プラグインを構成する

構成プロパティ・ファイルを編集する

Oracle Kodoでは、次の表に示す2つのXMLファイルを使用して構成プロパティを定義します。

表7-1 永続性構成ファイル

構成ファイル

説明

persistence.xml

JPA機能仕様で定義されているOracle Kodo構成パラメータ。このファイルは必須です。

この構成を構造化するためのXMLスキーマは、http://java.sun.com/xml/ns/persistence/persistence_1_0.xsdから入手できます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの第6章「永続性」を参照してください。

persistence-configuration.xml

Oracle Kodo固有の構成パラメータ。このファイルは、アプリケーションのデプロイメントにおいて必須ではありません。これを指定する場合でも、persistence.xml記述子は必要です。

デプロイメントにpersistence-configuration.xmlが含まれていない場合は、各構成パラメータの妥当なデフォルト値が設定されます。

この構成を構造化するためのXMLスキーマは、http://xmlns.oracle.com/weblogic/persistence-configuration/1.0/persistence-configuration.xsdから入手できます。

注意: Java SE環境でpersistent-configuration.xmlファイルを使用する場合は、weblogic.jarファイルをCLASSPATHに含める必要があります。

必要に応じて構成ファイルを編集し、永続性を構成します。永続性ユニットは、WARまたはEJB JARファイルの一部としてパッケージ化するか、WARまたはEARファイルに含めることのできるJARファイルとしてパッケージできます。これらのファイルは、永続性ユニットのルートにあるMETA-INFディレクトリ内のリソースとして使用できるようにする必要があります。永続性ユニットのルートは、コンテナ環境では以下のいずれかになります。

- EJB-JARファイル

- WARファイルのWEB-INF/classesディレクトリ

- WARファイルのWEB-INF/libディレクトリ内のJARファイル

- EARのルートにあるJARファイル

- EARライブラリ・ディレクトリ内のJARファイル

- アプリケーション・クライアントjarファイル

2種類の構成ファイルを組み合せて使用する

永続性のプロパティは、persistence.xmlまたはpersistence-configuration.xmlのいずれかの構成ファイルで構成できます。ただし、永続性のプロパティが両方のファイルで構成される場合、動作は定義されません。

プラグインを構成する

Oracle Kodoは高度なカスタマイズが可能な環境であるため、構成プロパティの多くが、システム・プラグインの作成および構成に関係しています。プラグイン・プロパティの構文は、Javaアノテーションの構文によく似ています。プラグイン・プロパティを使用することで、プラグインにどのクラスを使用するか、また、インスタンス化されたプラグイン・インスタンスのパブリック・フィールドやBeanプロパティをどのように構成するかを指定できます。

基本的に、プラグインは名前と値のペアによる一連のプロパティを使用して定義します。次のサンプルでは、persistence.xml内でプラグインを定義する方法を示します。

<properties>
<property name='myplugin.DataCache' value='com.bea.MyDataCache(CacheSize=1000, RemoteHost='CacheServer)'>
</properties>

Oracle Kodoアプリケーションのデプロイ

Oracle Kodoアプリケーションをデプロイする前に、以下のタスクを完了する必要があります。

- Oracle Kodoアプリケーションを作成します。詳細については、「Oracle Kodoアプリケーションの作成」を参照してください。

- 永続性を構成します。詳細については、「永続性の構成」を参照してください。

- アプリケーションを作成し、.earまたは.warにアーカイブします。

これらのタスクが完了したら、そのアプリケーションをWebLogic Serverにデプロイできます。構成が完了していれば、Oracle Kodoアプリケーションは他のアプリケーションと同じ方法でデプロイできます。アプリケーションのデプロイメントの詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。

Oracle Kodoアプリケーションの構成

注意:

管理コンソールでは、新しい永続性ユニットを作成することはできません。新しい永続性ユニットを作成するには、persistence.xmlを手動で編集する必要があります。

Oracle Kodoアプリケーションをデプロイしたら、persistence.xmlおよびpersistence-configuration.xmlで定義されている構成パラメータを変更できます。

以下の節では、Oracle Kodoアプリケーションを管理コンソールで構成する方法と、管理コンソールを使用せずに構成する方法について説明します。

管理コンソールを使用する

デプロイしたアプリケーションの永続性がpersistence.xmlで定義されている場合は、次の手順で管理コンソールから構成にアクセスできます。

1. 「デプロイメント」を選択します。

2. 構成したい永続性ユニットが含まれているモジュールの名前を選択します。

3. 「構成」タブを選択します。

4. 「永続性」タブを選択します。

5. 表示された一覧から、構成する永続性ユニットを選択します。

これによって、管理コンソールで編集可能なすべてのOracle Kodo永続性パラメータにアクセスできるようになります。

管理コンソールを使用せずにOracle Kodoアプリケーションを構成する

管理コンソールを使用できない環境でパラメータを変更する必要がある場合は、以下の方法で変更できます。

- アプリケーションと一緒にアーカイブされているpersistence.xmlおよびpersistence-configuration.xmlファイルを手動で編集します。

- SessionHelperを使用してデプロイメント・プランにアクセスして構成します。詳細は、『Oracle WebLogic Serverデプロイメントのプログラミング』のWebLogicデプロイメントAPIに関する章にあるToolsパッケージの項の「SessionHelper」を参照してください。

- WLST loadApplication()メソッドを使用して、アプリケーション・デプロイメント・プランをロードして更新します。詳細は、『Oracle WebLogic Scripting Tool』のデプロイメント・プランの更新に関する項を参照してください。

- デプロイメント・プランを手動で編集します。詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』の「デプロイするアプリケーションの新しい環境へのエクスポート」のデプロイメント・プランの手動カスタマイズに関する項を参照してください。

A EJB 3.0メタデータ・アノテーション・リファレンス

以下の節では、EJB 3.0メタデータ・アノテーションに関するリファレンス情報を提供します。

- EJB 3.0アノテーションの概要

- ステートレスBean、ステートフルBean、メッセージドリブンBeanのアノテーション

- インターセプタの構成に使用するアノテーション

- エンティティBeanとの対話に使用するアノテーション

- EJB 3.0で使用する標準JDKアノテーション

- EJB 3.0で使用するセキュリティ関連の標準JDKアノテーション

- WebLogicアノテーション

EJB 3.0アノテーションの概要

新しいEJB 3.0プログラミング・モデルでは、JDK 5.0メタデータ・アノテーション機能(http://java.sun.com/developer/technicalArticles/releases/j2se15を参照)を使用して、アノテーション付きEJB 3.0 Beanファイルを作成します。次に、WebLogicコンパイル・ツールweblogic.appc (またはこれと同等のAntタスクwlappc)を使用してBeanファイルをJavaクラス・ファイルにコンパイルし、必要となるEJBインタフェースやデプロイメント記述子など、関連するEJBアーティファクトを生成します。

以降の節では、EJB Beanファイルで指定できるメタデータ・アノテーションのリファレンス情報を提供します。一部のアノテーションはjavax.ejbパッケージに含まれています。つまり、EJBに固有のアノテーションです。それ以外のアノテーションは、より一般的で他のJava Platform, Enterprise Edition (Java EE)バージョン5コンポーネントでも使用するアノテーションです。したがって、javax.annotationなどの一般的なパッケージに含まれています。

ステートレスBean、ステートフルBean、メッセージドリブンBeanのアノテーション

この節では、以下のアノテーションのリファレンス情報を提供します。

- javax.ejb.ActivationConfigProperty

- javax.ejb.ApplicationException

- javax.ejb.EJB

- javax.ejb.EJBs

- javax.ejb.Init

- javax.ejb.Local

- javax.ejb.LocalHome

- javax.ejb.MessageDriven

- javax.ejb.PostActivate

- javax.ejb.PrePassivate

- javax.ejb.Remote

- javax.ejb.RemoteHome

- javax.ejb.Remove

- javax.ejb.Stateful

- javax.ejb.Stateless

- javax.ejb.Timeout

- javax.ejb.TransactionAttribute

- javax.ejb.TransactionManagement

javax.ejb.ActivationConfigProperty

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:すべて

操作環境でメッセージドリブンBeanを構成するために使用するプロパティを指定します。確認応答モード、メッセージ・セレクタ、想定される宛先やエンドポイントのタイプなどの情報を含めることができます。

このアノテーションは、@javax.ejb.MessageDrivenアノテーションのactivationConfig属性の値としてのみ使用されます。このアノテーションの詳細は、『Oracle WebLogic ServerメッセージドリブンBeanのプログラミング』のEJB 3.0コンプライアンスMDBの使用およびMDB向けデプロイメント要素およびアノテーションに関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-1 javax.ejb.ActivationConfigPropertyアノテーションの属性

名前

説明

データ型

必須?

propertyName

アクティブ化プロパティの名前を指定します。

String

はい

propertyValue

アクティブ化プロパティの値を指定します。

String

はい

javax.ejb.ApplicationException

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

その例外がアプリケーション例外で、クライアント・アプリケーションに直接(ラップせずに)報告することを指定します。

このアノテーションは、検査済みの例外と未検査の例外の両方に適用できます。

属性

次の表で属性について簡単に説明します。

表A-2 javax.ejb.ApplicationExceptionアノテーションの属性

名前

説明

データ型

必須?

rollback

BeanがEJBコンテナ内部で呼び出されている場合に、例外がスローされたらトランザクションをロールバックするかどうかを指定します。

この属性の有効な値は、trueおよびfalseです。デフォルト値はfalseで、その場合トランザクションはロールバックされません。

boolean

いいえ

javax.ejb.EJB

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド、フィールド

EJBビジネス・インタフェースまはたホーム・インタフェースへの依存関係(参照)を指定します。

他のEJBへの依存関係を指定するには、Beanのインスタンス変数に@EJBアノテーションを付けます。WebLogic Serverでは、アノテーションを付けた変数が、依存先のEJBへの参照に基づいて自動的に初期化されます。これを依存関係インジェクションと呼びます。この初期化は、BeanのEJBContextが設定された後、Beanのビジネス・メソッドが呼び出される前に発生します。

このアノテーションをBeanクラス内のセッター・メソッドに付けることもできます。その場合、WebLogic Serverはセッター・メソッド自体を使用して依存関係インジェクションを実行します。この方法でインスタンス変数に依存関係を注入することもできます。

このアノテーションをクラスに適用すると、Beanが実行時にルックアップするEJBが宣言されます。

変数またはセッター・メソッドへの注入を使用する場合、WebLogic Serverは、アノテーション付きインスタンス変数またはセッター・メソッドのパラメータの名前またはデータ型に基づいて参照先のEJBの名前を決定します。少しでも不明確な場合は、@EJBアノテーションのbeanName属性またはmappedName属性を使用して、依存しているEJBの名前を明示的に指定する必要があります。

属性

次の表で属性について簡単に説明します。

表A-3 javax.ejb.EJBアノテーションの属性

名前

説明

データ型

必須?

name

環境内で参照先EJBのルックアップに使用する名前を指定します。

この名前は、クラスおよびそのスーパークラスからなるデプロイメント・ユニット内で一意でなければなりません。

String

いいえ

beanInterface

参照先EJBのインタフェース・タイプ(ビジネス・インタフェースまたはホーム・インタフェース)を指定します。

この属性のデフォルト値はObject.classです。

Class

いいえ

beanName

参照先EJBの名前を指定します。

この属性は、参照先EJBの@Statelessまたは@Statefulアノテーションのname要素(デフォルトでは、参照先Beanクラスの未修飾名)に対応します。

EJB JARファイル内の複数のセッションBeanが同じインタフェースを実装している場合は、各Beanの名前を一意にする必要があるため、この属性が非常に有用になります。

String

いいえ

mappedName

参照先EJBのグローバルJNDI名を指定します。

例:

mappedName="bank.Account"

この場合は、WebLogic Server JNDIツリー内にデプロイされているbank.AccountというグローバルJNDI名の参照先EJBを指定しています。

注意: マッピングされた名前を使用するEJBは、移行できなくなる可能性があります。

String

いいえ

description

EJB参照の説明。

String

いいえ

javax.ejb.EJBs

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

@javax.ejb.EJBアノテーションの配列を指定します。

属性

次の表で属性について簡単に説明します。

表A-4 javax.ejb.EJBsアノテーションの属性

名前

説明

データ型

必須?

value

@javax.ejb.EJBアノテーションの配列を指定します

EJB[]

いいえ

javax.ejb.Init

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

Beanクラス内のメソッドと、適合するEJB 2.1 EJBHomeまたはEJBLocalHomeクライアント・ビューのcreateMETHODメソッドとの対応関係を指定します。

このアノテーションは、ステートフル・セッションBean(または、クラス・レベルの@javax.ejb.Statefulアノテーション付きのBean)でのみ使用されます

@javax.ejb.Initアノテーションを付けたメソッドの戻り値の型はvoidでなければなりません。また、パラメータの型は、参照するcreateMETHODメソッドのパラメータの型とまったく同じである必要があります。

@Initアノテーションが必要になるのは、Remote-HomeまたはLocalHomeインタフェースを提供するステートフル・セッションBeanのみです。少しでも不明確な場合は、value属性を使用して、HomeまたはLocalHomeインタフェースの適合するcreateメソッドの名前を指定する必要があります。

属性

次の表で属性について簡単に説明します。

表A-5 javax.ejb.Initアノテーションの属性

名前

説明

データ型

必須?

value

対応するcreateMETHODメソッドの名前を指定します。

この属性を指定する必要があるのは、@Initアノテーションを使用して、複数のcreate<METHOD>メソッドを含むステートフル・セッションBeanの適合するHomeインタフェースを関連付ける場合のみです。

String

いいえ

javax.ejb.Local

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

セッションBeanのローカル・インタフェースを指定します。ローカル・インタフェースは、ビジネス・ロジックをローカル・クライアント(EJBと同じアプリケーションで動作しているクライアント)に公開します。ローカル・クライアントから呼び出せるビジネス・メソッドを定義します。

Beanクラスに複数のインタフェース(ただし以下のインタフェースを除く)が実装されている場合は、このアノテーションを指定する必要があります。

- java.io.Serializable

- java.io.Externalizable

- javax.ejb.*

このアノテーションは、ステートレスまたはステートフル・セッションBeanにのみ適用されます。

属性

次の表で属性について簡単に説明します。

表A-6 javax.ejb.Localの属性

名前

説明

データ型

必須?

value

ローカル・インタフェースのリストをクラスの配列として指定します。

この属性を指定する必要があるのは、Beanクラスに複数のインタフェース(ただし以下のインタフェースを除く)が実装されている場合のみです。

- java.io.Serializable

- java.io.Externalizable

- javax.ejb.*

Class[]

いいえ

javax.ejb.LocalHome

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

Beanクラスのローカル・ホーム・インタフェースを指定します。

ローカル・ホーム・インタフェースは、ローカル・クライアント(EJBと同じアプリケーションで動作するクライアント)から使用して、Beanのインスタンスを作成、削除、および(エンティティBeanの場合は)検索することができるメソッドを提供します。ローカル・ホーム・インタフェースには、特定のBeanインスタンスに固有ではないビジネス・ロジックであるホーム・メソッドもあります。

この属性は、ステートレスおよびステートフル・セッションBeanにのみ適用されます。

通常、この属性は、EJB 3.0 Beanの適合するEJB 2.1コンポーネント・ビューを提供する予定がある場合にのみ指定します。このアノテーションは、EJB 2.1 APIに記述されているBeanクラスにも使用できます。

属性

次の表で属性について簡単に説明します。

表A-7 javax.ejb.LocalHomeアノテーションの属性

名前

説明

データ型

必須?

value

ローカル・ホーム・クラスを指定します。

Class

はい

javax.ejb.MessageDriven

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

Enterprise JavaBeansがメッセージドリブンBeanであることを指定します。

属性

次の表で属性について簡単に説明します。

表A-8 javax.ejb.MessageDrivenアノテーションの属性

名前

説明

データ型

必須?

name

このメッセージドリブンBeanの名前を指定します。

この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。

String

いいえ

messageListenerInterface

Beanクラスのメッセージ・リスナー・インタフェースを指定します。

Beanクラスにメッセージ・リスナー・インタフェースが明示的に実装されていない場合や、Beanクラスに複数のインタフェース(ただし、java.io.Serializable、java.io.Externalizable、およびjavax.ejbパッケージ内のすべてのインタフェースを除く)が実装されている場合は、この属性を指定する必要があります。

この属性のデフォルト値はObject.classです。

Class

いいえ

activationConfig

操作環境でのメッセージドリブンBeanの構成を指定します。確認応答モード、メッセージ・セレクタ、想定される宛先やエンドポイントのタイプなどの情報を含めることができます。

アクティブ化構成情報(プロパティ名や値)は、@javax.ejb.ActivationConfigPropertyアノテーションの配列を使用して指定します。

ActivationConfigProperty[]

いいえ

mappedName

メッセージドリブンBeanをマッピングする製品固有の名前を指定します。

この属性を使用して、このメッセージドリブンBeanのメッセージ宛先のJNDI名を指定することもできます。例:

mappedName="my.Queue"

このメッセージドリブンBeanは、WebLogic Server JNDIツリー内にデプロイされているmy.QueueというJNDI名のJMSキューに関連付けられます。

注意: この属性を指定した場合は、そのメッセージドリブンBeanを移行できなくなる可能性があります。

String

いいえ

description

メッセージドリブンBeanの説明を指定します。

String

いいえ

javax.ejb.PostActivate

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

EJBコンテナがBeanインスタンスを再アクティブ化した直後に通知を受信するライフサイクル・コールバック・メソッドを指定します。

このアノテーションは、ステートフル・セッションBeanにのみ適用されます。ステートフル・セッションBeanインスタンスがパッシブ化されたときの会話状態はEJBコンテナによって自動的に保持されるため、ほとんどのステートフル・セッションBeanではこのアノテーションを指定する必要はありません。このアノテーション(およびこれと対をなす@PrePassivate)を使用する必要があるのは、ステートフル・セッションBeanで開いておきたいリソースがあり、そのリソースをBeanインスタンスのパッシブ化の前に閉じ、Beanインスタンスのアクティブ化中に開きなおす必要がある場合のみです。

このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。

@PostActivateアノテーションを付けるメソッドは、以下の要件を満たす必要があります。

- メソッドの戻り値の型がvoidでなければなりません。

- メソッドは、検査済みの例外をスローしてはなりません。

- メソッドは、public、protected、package private、またはprivateにすることは可能です。

- メソッドは、staticであってはなりません。

- メソッドは、finalであってはなりません。

このアノテーションには、属性はありません。

javax.ejb.PrePassivate

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

EJBコンテナがBeanインスタンスをパッシブ化する直前に通知を受信するライフサイクル・コールバック・メソッドを指定します。

このアノテーションは、ステートフル・セッションBeanにのみ適用されます。ステートフル・セッションBeanインスタンスがパッシブ化されたときの会話状態はEJBコンテナによって自動的に保持されるため、ほとんどのステートフル・セッションBeanではこのアノテーションを指定する必要はありません。このアノテーション(およびこれと対をなす@PostActivate)を使用する必要があるのは、ステートフル・セッションBeanで開いておきたいリソースがあり、そのリソースをBeanインスタンスのパッシブ化の前に閉じ、Beanインスタンスのアクティブ化中に開きなおす必要がある場合のみです。

このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。

@PrePassivateアノテーションを付けるメソッドは、以下の要件を満たす必要があります。

- メソッドの戻り値の型がvoidでなければなりません。

- メソッドは、検査済みの例外をスローしてはなりません。

- メソッドは、public、protected、package private、またはprivateにすることは可能です。

- メソッドは、staticであってはなりません。

- メソッドは、finalであってはなりません。

このアノテーションには、属性はありません。

javax.ejb.Remote

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

セッションBeanのリモート・インタフェースを指定します。リモート・インタフェースはビジネス・ロジックをリモート・クライアント(EJBとは別のアプリケーションで動作するクライアント)に公開します。リモート・クライアントから呼び出せるビジネス・メソッドを定義します。

このアノテーションは、ステートレスまたはステートフル・セッションBeanにのみ適用されます。

属性

次の表で属性について簡単に説明します。

表A-9 javax.ejb.Remoteアノテーションの属性

名前

説明

データ型

必須?

value

リモート・インタフェースのリストをクラスの配列として指定します。

この属性を指定する必要があるのは、Beanクラスに複数のインタフェース(ただし以下のインタフェースを除く)が実装されている場合のみです。

- java.io.Serializable

- java.io.Externalizable

- javax.ejb.*

Class[]

いいえ

javax.ejb.RemoteHome

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

Beanクラスのリモート・ホーム・インタフェースを指定します。

リモート・ホーム・インタフェースは、リモート・クライアント(EJBとは別のアプリケーションで動作するクライアント)でBeanのインスタンスを作成、削除、および検索するためのメソッドを提供します。

この属性は、ステートレスおよびステートフル・セッションBeanにのみ適用されます。

通常、この属性は、EJB 3.0 Beanの適合するEJB 2.1コンポーネント・ビューを提供する予定がある場合にのみ指定します。このアノテーションは、EJB 2.1 APIに記述されているBeanクラスにも使用できます。

属性

次の表で属性について簡単に説明します。

表A-10 javax.ejb.RemoteHomeアノテーションの属性

名前

説明

データ型

必須?

value

リモート・ホーム・クラスを指定します。

Class

はい

javax.ejb.Remove

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

@javax.ejb.Removeアノテーションは、ステートフル・セッションBeanのremoveメソッドを指定するために使用します。

EJBコンテナは、そのメソッドが完了したときに、@javax.annotation.PreDestroyアノテーションが付いているメソッドがあればそれを呼び出してからステートフル・セッションBeanを破棄します。

属性

次の表で属性について簡単に説明します。

表A-11 javax.ejb.Removeアノテーションの属性

名前

説明

データ型

必須?

retainIfException

このアノテーションを付けたメソッドがアプリケーション例外で異常終了した場合には、ステートフル・セッションBeanを削除しないことを指定します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

boolean

いいえ

javax.ejb.Stateful

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

Enterprise JavaBeansがステートフル・セッションBeanであることを指定します。

属性

次の表で属性について簡単に説明します。

表A-12 javax.ejb.Statefulアノテーションの属性

名前

説明

データ型

必須?

name

このステートフル・セッションBeanの名前を指定します。

この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。

String

いいえ

mappedName

ステートフル・セッションBeanをマッピングする製品固有の名前を指定します。

この属性を使用して、このステートフル・セッションBeanのJNDI名を指定することもできます。WebLogic Serverでは、BeanのグローバルJNDI名を作成する際にmappedName属性の値を使用します。具体的には、JNDI名は次のようになります。

mappedName#name_of_businessInterface

name_of_businessInterfaceは、このセッションBeanのビジネス・インタフェースの完全修飾名です。

たとえば、ビジネス・インタフェースの完全修飾名がcom.CheckingAccountである場合にmappedName="bank"と指定すると、このビジネス・インタフェースのJNDI名はbank#com.CheckingAccountとなります。

注意: この属性を指定した場合は、そのステートフル・セッションBeanを移行できなくなる可能性があります。

String

いいえ

description

ステートフル・セッションBeanの説明。

String

いいえ

javax.ejb.Stateless

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

Enterprise JavaBeansがステートレス・セッションBeanであることを指定します。

属性

次の表で属性について簡単に説明します。

表A-13 javax.ejb.Statelessアノテーションの属性

名前

説明

データ型

必須?

name

このステートレス・セッションBeanの名前を指定します。

この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。

String

いいえ

mappedName

ステートレス・セッションBeanをマッピングする製品固有の名前を指定します。

この属性を使用して、このステートレス・セッションBeanのJNDI名を指定することもできます。WebLogic Serverでは、BeanのグローバルJNDI名を作成する際にmappedName属性の値を使用します。具体的には、JNDI名は次のようになります。

mappedName#name_of_businessInterface

name_of_businessInterfaceは、このセッションBeanのビジネス・インタフェースの完全修飾名です。

たとえば、ビジネス・インタフェースの完全修飾名がcom.CheckingAccountである場合にmappedName="bank"と指定すると、このビジネス・インタフェースのJNDI名はbank#com.CheckingAccountとなります。

注意: この属性を指定した場合は、そのステートレス・セッションBeanを移行できなくなる可能性があります。

String

いいえ

description

ステートレス・セッションBeanの説明。

String

いいえ。

javax.ejb.Timeout

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

Beanクラスのタイムアウト・メソッドを指定します。

このアノテーションは、Beanクラス内でEJBタイマー・サービスを簡単にプログラミングするためのアノテーションです。EJBタイマー・サービスはEJBコンテナによって提供されるサービスです。このサービスを使用すると、タイマー・オブジェクトが期限切れになったときに発生するコールバックをスケジューリングするタイマーを作成できます。

EJB 3.0より前のバージョンでタイマー・サービスをプログラミングするには、Beanクラスにjavax.ejb.TimedObjectオブジェクトを実装する必要がありました。また、BeanクラスにejbTimeoutという名前のメソッドを含める必要もありました。EJBのバージョン3.0では、これらの要件が緩和されました。javax.ejb.TimedObjectインタフェースを実装する必要はなくなり、@Timeoutアノテーションを付けている限り、タイムアウト・メソッドに任意の名前を付けることができるようになりました。ただし、必要であれば、3.0より前の方法でタイマー・サービスをプログラミングすることもできます。

詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のEJBタイマー・サービスのプログラミングに関する項を参照してください。

このアノテーションには、属性はありません。

javax.ejb.TransactionAttribute

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド

EJBコンテナがEJBビジネス・メソッドをトランザクション・コンテキスト内で呼び出すかどうかを指定します。

注意:

このアノテーションを指定した場合は、@TransactionManagementアノテーションを使用して、コンテナ管理によるトランザクションの境界設定を指定する必要があります。

このアノテーションは、Beanクラスに指定することも、クラスの特定のメソッド(ビジネス・インタフェースのメソッド)に指定することもできます。Beanクラスに指定した場合、アノテーションはそのクラスの該当するすべてのビジネス・インタフェース・メソッドに適用されます。特定のメソッドに指定した場合は、そのメソッドにのみ適用されます。このアノテーションをクラス・レベルとメソッド・レベルの両方で指定し、それらの値が食い違っている場合は、メソッド・レベルの値が優先されます。

Beanクラスで@TransactionAttributeアノテーションを指定しない場合は、コンテナ管理によるトランザクションの境界設定が使用されます。トランザクション属性のセマンティクスはREQUIREDと見なされます。

属性

次の表で属性について簡単に説明します。

表A-14 javax.ejb.TransactionAttributeアノテーションの属性

名前

説明

データ型

必須?

value

ビジネス・メソッドの呼出し時に、EJBコンテナがトランザクションの境界設定を管理する方法を指定します。

これらの値の詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のコンテナ管理によるトランザクション要素に関する項の表のtrans-attribute要素の説明を参照してください。

この属性の有効な値は次のとおりです:

- TransactionAttributeType.MANDATORY

- TransactionAttributeType.REQUIRED

- TransactionAttributeType.REQUIRED_NEW

- TransactionAttributeType.SUPPORTS

- TransactionAttributeType.NOT_SUPPORTED

- TransactionAttributeType.NEVER

デフォルト値はTransactionAttributeType.REQUIREDです。

TransactionAttributeType

いいえ。

javax.ejb.TransactionManagement

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

セッションBeanまたはメッセージドリブンBeanのトランザクションの境界設定管理の種類を指定します。

トランザクションとは、ディスク上、メモリー内、またはデータベース内にあるアプリケーションの状態を変更する作業の1単位であり、一度開始されると最後まで完了するか、あるいは一切何も行われません。トランザクションは、EJBコンテナ、Beanのコード、またはクライアント・コードによって境界設定(開始およびコミットまたはロールバックでの終了)できます。このアノテーションは、トランザクションの境界設定を、EJBコンテナで管理するか、ユーザーが記述したBeanコードで管理するかを指定します。

Beanクラスにこのアノテーションを指定しない場合、そのBeanではトランザクションの境界設定をコンテナで管理するものと見なされます。

トランザクションの詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のトランザクションの設計と管理のオプションに関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-15 javax.ejb.TransactionManagementアノテーションの属性

名前

説明

データ型

必須?

value

Beanクラスで使用するトランザクションの境界設定管理の種類を指定します。

この属性の有効な値は次のとおりです:

- TransactionManagementType.CONTAINER

- TransactionManagementType.BEAN

デフォルト値はTransactionManagementType.CONTAINERです。

TransacationManagementType

いいえ。

インターセプタの構成に使用するアノテーション

この節では、以下のアノテーションのリファレンス情報を提供します。

- javax.interceptor.AroundInvoke

- javax.interceptor.ExcludeClassInterceptors

- javax.interceptor.ExcludeDefaultInterceptors

- javax.interceptor.Interceptors

javax.interceptor.AroundInvoke

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

Beanクラスまたはインターセプタ・クラスのビジネス・メソッド・インターセプタを指定します。

@AroundInvokeアノテーションは、Beanクラスまたはインターセプタ・クラス内の1つのメソッドにのみ付けることができます。なお、Beanクラスのビジネス・メソッドに付けることはできません。

このアノテーションには、属性はありません。

javax.interceptor.ExcludeClassInterceptors

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

このアノテーションを付けたメソッドに対して、クラス・レベルのインターセプタを呼び出さないことを指定します。デフォルト・インターセプタの呼出しは、@ExcludeDefaultInterceptorsアノテーションでのみ除外できます。

このアノテーションには、属性はありません。

javax.interceptor.ExcludeDefaultInterceptors

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド

定義されているどのデフォルト・インターセプタも呼び出さないことを指定します(デフォルト・インターセプタは、EJBデプロイメント記述子でのみ指定できます。アノテーションでは指定できません)。

クラス・レベルで定義した場合、デフォルト・インターセプタはBeanのどのビジネス・メソッドに対しても呼び出されません。メソッド・レベルで定義した場合は、その特定のビジネス・メソッドに対しては呼び出されませんが、それ以外の@ExludeDefaultInterceptorsアノテーションが付いていないすべてのビジネス・メソッドに対しては呼び出されます。

このアノテーションには、属性はありません。

javax.interceptor.Interceptors

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド

Beanクラスまたはメソッドに関連付けるインターセプタ・クラスを指定します。インターセプタ・クラスは、Beanクラスとはまったく別のクラスです。インターセプタ・クラスのメソッドは、Beanのビジネス・メソッド呼び出しまたはライフサイクル・イベントにレスポンスする形で呼び出されます。

インターセプタ・クラスには、ビジネス・インターセプタ・メソッド(@javax.interceptor.AroundInvokeアノテーションを付けたメソッド)と、ライフサイクル・コールバック・メソッド(@javax.annotation.PostConstruct、@javax.annotation.PreDestroy、@javax.ejb.PostActivate、または@javax.ejb.PrePassivateアノテーションを付けたメソッド)の両方を含めることができます。

Beanクラスに対して定義できるインターセプタ・クラスの数に制限はありません。複数のインターセプタ・クラスを定義した場合は、そのアノテーション内に指定した順序で呼び出されます。

アノテーションをクラス・レベルで指定した場合、インターセプタはEJBのすべてのビジネス・メソッドに適用されます。メソッド・レベルで指定した場合は、そのメソッドにのみ適用されます。同じインターセプタ・クラスを、Beanクラスの複数のメソッドに指定することもできます。メソッド・レベルのインターセプタは、デフォルトでは、適用されるすべてのインターセプタ(デフォルト・インターセプタ、クラス・レベルのインターセプタなど)の後に呼び出されます。

属性

次の表で属性について簡単に説明します。

表A-16 javax.interceptor.Interceptorsアノテーションの属性

名前

説明

データ型

必須?

value

インターセプタ・クラスの配列を指定します。配列に複数のインターセプタ・クラスを含める場合は、配列内で指定した順序によって呼出しの順序が決まります。

Class[]

はい

エンティティBeanとの対話に使用するアノテーション

この節では、以下のアノテーションのリファレンス情報を提供します。

- javax.persistence.PersistenceContext

- javax.persistence.PersistenceContexts

- javax.persistence.PersistenceUnit

- javax.persistence.PersistenceUnits

javax.persistence.PersistenceContext

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド、フィールド

コンテナ管理のEntityManager永続性コンテキストへの依存関係を指定します。

このアノテーションは、3.0エンティティBeanと対話するために使用します。通常はEntityManagerインスタンスへの依存関係インジェクションを実行します。

EntityManagerインタフェースには、永続性コンテキストとの対話に使用するメソッドが定義されています。永続性コンテキストとは、エンティティ・インスタンスのセットです。エンティティとは、軽量の永続ドメイン・オブジェクトです。EntityManager APIを使用すると、永続エンティティ・インスタンスの作成や削除、主キーに基づくエンティティの検索、およびエンティティに対する問合せを実行できます。

属性

次の表で属性について簡単に説明します。

表A-17 javax.persistence.PersistenceContextAnnotationの属性

名前

説明

データ型

必須?

name

EntityManagerとその永続性ユニットの名前(セッションBeanまたはメッセージドリブンBeanのコンテキスト内で使用する名前)を指定します。

この属性は、JNDIルックアップを使用してEntityManagerを取得する場合にのみ指定します。依存関係インジェクションを使用する場合は指定する必要はありません。

String

いいえ

unitName

永続性ユニットの名前を指定します。

この属性の値としてpersistence.xmlファイル内の永続性ユニットと同じ名前を指定すると、EJBコンテナによって永続性ユニットが自動的にデプロイされ、そのJNDI名としてその永続性ユニット名が設定されます。同様に、この属性を指定しない場合でも、永続性コンテキスト情報を注入する変数の名前をpersistence.xmlファイル内の永続性ユニットの名前と同じにすれば、EJBコンテナによって永続性ユニットが自動的にデプロイされ、そのJNDI名が永続性ユニット名と同じになるように設定されます。

注意: persistence.xmlファイルは、EJB JARファイルのMETA-INFディレクトリに格納されているXMLファイルで、エンティティBeanで使用するデータベースと、EntityManagerのデフォルトの動作を指定します。

参照するスコープ内に複数の永続性ユニットがある場合は、この属性を指定する必要があります。

String

いいえ

type

永続性コンテキストの存続期間を、1つのトランザクションのスコープに限定するか、1つのトランザクションのスコープを超えて延長させるかを指定します。

この属性の有効な値は次のとおりです:

- PersistenceContextType.TRANSACTION

- PersistenceContextType.EXTENDED

デフォルト値はPersistenceContextType.TRANSACTIONです。

PersistenceContextType

いいえ

javax.persistence.PersistenceContexts

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

@javax.persistence.PersistenceContextアノテーションの配列を指定します。

属性

次の表で属性について簡単に説明します。

表A-18 javax.persistence.PersistenceContextsアノテーションの属性

名前

説明

データ型

必須?

value

@javax.persistence.PersistenceContextアノテーションの配列を指定します。

PersistenceContext[]

はい。

javax.persistence.PersistenceUnit

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド、フィールド

EntityManagerFactoryオブジェクトへの依存関係を指定します。

このアノテーションは、3.0エンティティBeanと対話するために使用します。通常は、EntityManagerFactoryへの依存関係インジェクションを実行します。このEntityManagerFactoryを使用して、1つまたは複数のEntityManagerインスタンスを作成できます。このアノテーションは@PersistenceContextアノテーションに似ていますが、EntityManagerの作成や破棄をEJBコンテナに任せずユーザー自身が行うため、その存続期間をより細かく制御できる点が異なります。

EntityManagerインタフェースには、永続性コンテキストとの対話に使用するメソッドが定義されています。永続性コンテキストとは、エンティティ・インスタンスのセットです。エンティティとは、軽量の永続ドメイン・オブジェクトです。EntityManager APIを使用すると、永続エンティティ・インスタンスの作成や削除、主キーに基づくエンティティの検索、およびエンティティに対する問合せを実行できます。

属性

次の表で属性について簡単に説明します。

表A-19 javax.persistence.PersistenceUnitアノテーションの属性

名前

説明

データ型

必須?

name

EntityManagerFactoryの名前(セッションBeanまたはメッセージドリブンBeanのコンテキスト内で使用する名前)を指定します

この属性は、依存関係インジェクションを使用する場合は指定する必要はありません。JNDIも使用して情報をルックアップする場合にのみ指定します。

String

いいえ

unitName

persistence.xmlファイルに定義されている永続性ユニットの名前を参照します。このファイルは、EJB JARファイルのMETA-INFディレクトリに格納されているXMLファイルで、エンティティBeanで使用するデータベースと、EntityManagerのデフォルトの動作を指定します。

この属性を設定した場合は、参照先の永続性ユニットがEJBコンテナによって自動的にデプロイされ、そのJNDI名としてその永続性ユニット名が設定されます。同様に、この属性を指定しない場合でも、永続性コンテキスト情報を注入する変数の名前をpersistence.xmlファイル内の永続性ユニットの名前と同じにすれば、EJBコンテナによって永続性ユニットが自動的にデプロイされ、そのJNDI名が永続性ユニット名と同じになるように設定されます。

参照するスコープ内に複数の永続性ユニットがある場合にのみ、この属性を指定する必要があります。

String

いいえ

javax.persistence.PersistenceUnits

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

@javax.persistence.PersistenceUnitアノテーションの配列を指定します。

属性

次の表で属性について簡単に説明します。

表A-20 javax.persistence.PersistenceUnitsアノテーションの属性

名前

説明

データ型

必須?

value

@javax.persistence.PersistenceUnitアノテーションの配列を指定します。

PersistenceUnit[]

はい

EJB 3.0で使用する標準JDKアノテーション

この節では、以下のアノテーションのリファレンス情報を提供します。

- javax.annotation.PostConstruct

- javax.annotation.PreDestroy

- javax.annotation.Resource

- javax.annotation.Resources

javax.annotation.PostConstruct

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

依存関係インジェクションが完了した後、1番目のビジネス・メソッドを呼び出す前に、初期化を実行するためにEJBコンテナから呼び出す必要のあるライフサイクル・コールバック・メソッドを指定します。

依存関係インジェクションを含むすべてのBeanクラスには、@PostConstructメソッドを指定できます。

このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。

@PostConstructアノテーションを付けるメソッドは、以下の要件を満たす必要があります。

- メソッドの戻り値の型がvoidでなければなりません。

- メソッドは、検査済みの例外をスローしてはなりません。

- メソッドは、public、protected、package private、またはprivateにすることは可能です。

- メソッドは、staticであってはなりません。

- メソッドは、finalであってはなりません。

このアノテーションには、属性はありません。

javax.annotation.PreDestroy

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

EJBコンテナがBeanクラス・インスタンスを破棄する直前に通知を受信するライフサイクル・コールバック・メソッドを指定します。通常、このアノテーションは、Beanクラスが保持しているリソースを解放するメソッドに適用します。

このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。

@PreDestroyアノテーションを付けるメソッドは、以下の要件を満たす必要があります。

- メソッドの戻り値の型がvoidでなければなりません。

- メソッドは、検査済みの例外をスローしてはなりません。

- メソッドは、public、protected、package private、またはprivateにすることは可能です。

- メソッドは、staticであってはなりません。

- メソッドは、finalであってはなりません。

このアノテーションには、属性はありません。

javax.annotation.Resource

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド、フィールド

外部リソース(JDBCデータ・ソース、JMS宛先、接続ファクトリなど)への依存関係を指定します。

このアノテーションをフィールドまたはメソッドに指定すると、Beanの初期化時に、リクエストされたリソースのインスタンスがBeanに注入されます。このアノテーションをクラスに適用すると、Beanが実行時にルックアップするリソースが宣言されます。

属性

次の表で属性について簡単に説明します。

表A-21 javax.annotation.Resourceアノテーションの属性

名前

説明

データ型

必須?

name

リソース参照の名前を指定します。

@Resourceアノテーションをフィールドに適用した場合は、クラス名で修飾されたフィールド名がname属性のデフォルト値になります。メソッドに適用した場合は、そのメソッドに対応するJavaBeanプロパティ名をクラス名で修飾した名前がデフォルト値になります。このアノテーションをクラスに適用した場合はデフォルト値がないため、この属性を指定する必要があります。

String

いいえ

type

リソースのJavaデータ型を指定します。

@Resourceアノテーションをフィールドに適用した場合は、そのフィールドの型がtype属性のデフォルト値になります。メソッドに適用した場合は、JavaBeanプロパティの型がデフォルトになります。クラスに適用した場合はデフォルト値がないため、この属性を指定する必要があります。

Class

いいえ

authenticationType

このリソースに使用する認証タイプを指定します。

この属性は、サポートされるタイプの接続ファクトリを表すリソースにのみ指定します。

この属性の有効な値は次のとおりです:

- AuthenticationType.CONTAINER

- AuthenticationType.APPLICATION

デフォルト値はAuthenticationType.CONTAINERです。

AuthenticationType

いいえ

shareable

リソースを、このEJBと他のEJBとの間で共有できるかどうかを指定します。

この属性は、サポートされるタイプの接続ファクトリまたはORBオブジェクト・インスタンスを表すリソースにのみ指定します。

この属性の有効な値は、trueおよびfalseです。デフォルト値はtrueです。

boolean

いいえ

mappedName

依存リソースのグローバルJNDI名を指定します。

例:

mappedName="my.Datasource"

この場合は、WebLogic Server JNDIツリー内にデプロイされているmy.DatasourceというグローバルJNDI名の依存リソースを指定しています。

String

いいえ

description

リソースの説明を指定します。

String

いいえ

javax.annotation.Resources

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

@Resourceアノテーションの配列を指定します。

属性

次の表で属性について簡単に説明します。

表A-22 javax.annotation.Resourcesアノテーションの属性

名前

説明

データ型

必須?

value

@Resourceアノテーションの配列を指定します。

Resource[]

はい

EJB 3.0で使用するセキュリティ関連の標準JDKアノテーション

この節では、以下のアノテーションのリファレンス情報を提供します。

- javax.annotation.security.DeclareRoles

- javax.annotation.security.DenyAll

- javax.annotation.security.PermitAll

- javax.annotation.security.RolesAllowed

- javax.annotation.security.RunAs

javax.annotation.security.DeclareRoles

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

EJBで使用するセキュリティ・ロールを定義します。

通常、このアノテーションは、アノテーションを付けたクラスのメソッド内から(たとえばisUserInRoleメソッドを使用して)テストできるロールを定義するために使用します。また、クラスまたはクラスのメソッドで@RolesAllowedアノテーションを使用している場合はロールが暗黙的に宣言されますが、このアノテーションを使用することでそれらのロールを明示的に宣言できます。

セキュリティ・ロールは、WebLogic Serverで管理コンソールを使用して作成できます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのセキュリティ・ロールの管理に関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-23 javax.annotation.security.DeclareRolesアノテーションの属性

名前

説明

データ型

必須?

value

Beanクラス内で使用するセキュリティ・ロールの配列を指定します。

String[]

はい。

javax.annotation.security.DenyAll

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

このアノテーションを付けたメソッドへのアクセスを、どのセキュリティ・ロールにも許可しないことを指定します。つまり、このメソッドは、EJBコンテナでの実行から除外されます。

このアノテーションには、属性はありません。

javax.annotation.security.PermitAll

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

このアノテーションを付けたメソッドへのアクセスを、WebLogic Serverに定義されているすべてのセキュリティ・ロールに許可することを指定します。

このアノテーションには、属性はありません。

javax.annotation.security.RolesAllowed

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド

EJB内のメソッドにアクセスできるセキュリティ・ロールのリストを指定します。

クラス・レベルで指定した場合は、Beanクラス内のすべてのメソッドに適用されます。メソッド・レベルで指定した場合は、そのメソッドにのみ適用されます。このアノテーションをクラス・レベルとメソッド・レベルの両方で指定した場合は、クラス・レベルの値がメソッド・レベルの値によってオーバーライドされます。

セキュリティ・ロールは、WebLogic Serverで管理コンソールを使用して作成できます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのセキュリティ・ロールの管理に関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-24 javax.annotation.security.RolesAllowedアノテーションの属性

名前

説明

データ型

必須?

value

Beanクラスのメソッドにアクセスできるセキュリティ・ロールのリストを指定します。

String[]

はい。

javax.annotation.security.RunAs

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

EJBコンテナ内で実際にEJBを実行するセキュリティ・ロールを指定します。

セキュリティ・ロールは、WebLogic Serverセキュリティ・レルムにあり、ユーザーやグループにマップする必要があります。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのセキュリティ・ロールの管理に関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-25 javax.annotation.security.RunAsアノテーションの属性

名前

説明

データ型

必須?

value

EJBをどのセキュリティ・ロールとして実行するかを指定します。

String

はい。

WebLogicアノテーション

この節では、以下のWebLogicアノテーションのリファレンス情報を提供します。

- weblogic.javaee.AllowRemoveDuringTrasaction

- weblogic.javaee.CallByReference

- weblogic.javaee.DisableWarnings

- weblogic.javaee.EJBReference

- weblogic.javaee.Idempotent

- weblogic.javaee.JMSClientID

- weblogic.javaee.JNDIName

- weblogic.javaee.MessageDestinationConfiguration

- weblogic.javaee.TransactionIsolation

- weblogic.javaee.TransactionTimeoutSeconds

注意:

この項で説明するアノテーションは、それぞれに相当する構成がweblogic-ejb-jar.xmlデプロイメント記述子で定義されている場合はオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

weblogic.javaee.AllowRemoveDuringTrasaction

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス(ステートフル・セッションEJBのみ)

トランザクション中にインスタンスが削除できるかどうかを指定するフラグです。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のallow-remove-during-transaction要素によってオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

weblogic.javaee.CallByReference

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス(ステートフルまたはステートレス・セッションEJBのみ)

EJBがリモートから呼び出されたか同じEAR内から呼び出されたかに関係なく、パラメータをコピーするかどうか(または参照によって渡すかどうか)を指定するフラグです。

注意:

メソッドのパラメータは、EJBがリモートで呼び出されたときには常に値で渡されます。このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のenable-call-by-reference要素によってオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

weblogic.javaee.DisableWarnings

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

IDを指定した警告メッセージをWebLogic Serverが無効化するように指定します。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のdisable-warning要素によってオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-26 weblogic.javaee.DisableWarningsの属性

名前

説明

データ型

必須?

WarningCode

警告コードを指定します。以下の4つの値のいずれかに設定します。

- BEA-010001 - 警告メッセージ「デプロイメント中にシステム・クラスパスからEJBクラスがロードされました。」を無効化します。

- BEA-010054 - 警告メッセージ「コンパイル中にシステム・クラスパスからEJBクラスがロードされました。」を無効化します。

- BEA-010200 - 警告メッセージ「EJB実装クラスにpublic staticフィールド、メソッドまたはクラスが含まれています」を無効化します。

- BEA-010202 - 警告メッセージ「参照呼出しが有効になっていません。」を無効化します。

String

はい

weblogic.javaee.EJBReference

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス、メソッド、フィールド

EJB参照名をJNDI名にマップします。

属性

次の表で属性について簡単に説明します。

表A-27 weblogic.javaee.EJBReferenceアノテーションの属性

名前

説明

データ型

必須?

name

環境内で参照先EJBのルックアップに使用する名前を指定します。

この名前は、クラスおよびそのスーパークラスからなるデプロイメント・ユニット内で一意でなければなりません。

String

はい

jndiName

WebLogic Serverで使用可能な実際のEJB、リソース、または参照のJNDI名を指定します。

String

はい

weblogic.javaee.Idempotent

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

同じメソッドを同じ引数で繰返し呼び出しても、1回の呼出しと同じ効果がもたらされるように記述されたEJBを指定します。これにより、フェイルオーバー・ハンドラは、失敗したサーバー上で実際に呼出しがコンパイルされるかどうかを知らなくても、失敗した呼出しを再試行できるようになります。あるメソッドについて多重呼出し不変を有効にした場合、EJBスタブは、EJBのホスト・サーバーに接続できるかぎり、あらゆる失敗から自動的に回復することができます。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のidempotent-methodおよびretry-methods-on-rollback要素によってオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-28 weblogic.javaee.Idempotentの属性

名前

説明

データ型

必須?

retryOnRollbackCount

ロールバックされたコンテナ管理のトランザクションを自動的に再試行する回数。

この属性のデフォルトは0です。

int

いいえ

weblogic.javaee.JMSClientID

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

JMS宛先に接続するときのMDBのクライアントIDを指定します。JMSトピックに対する恒久サブスクリプションで必須です。

weblogic.javaee.MessageDestinationConfigurationでMDBが使用する接続ファクトリを指定した場合、クライアントIDはconfig.xml内の関連付けられているJMSConnectionFactory要素のClientID要素で定義できます。

config.xmlのJMSConnectionFactoryでClientIDを指定しないか、デフォルト接続ファクトリを使用する(weblogic.javaee.MessageDestinationConfigurationを指定しない)場合、MDBはjms-client-id値をそのクライアントIDとして使用します。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のjms-client-id要素によってオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-29 weblogic.javaee.JMSClientIDの属性

名前

説明

データ型

必須?

value

クライアントID。

String

いいえ

generateUniqueID

MDBのすべてのインスタンスについて、EJBコンテナで一意のクライアントIDを生成するかどうかを示すフラグ。このフラグを有効にすると、WebLogic Serverクラスタ内の複数のサーバー・インスタンスへの恒久MDBのデプロイが容易になります。

Class

いいえ

weblogic.javaee.JNDIName

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス(ステートフルまたはステートレス・セッションEJBのみ)

WebLogic Serverで使用可能な実際のEJB、リソース、または参照のJNDI名を指定します。リモート・インタフェースが1つしかない場合、このアノテーションはリモート・インタフェースおよび実装クラスで有効です。

注意:

JNDI名をBeanに割り当てるのは推奨されません。グローバルJNDI名は、クラスタ化されたサーバーの起動時に大量のマルチキャスト・トラフィックを引き起こします。『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のEnterprise JavaBeansの実装に関する項のEJBリンクの使用に関する項を参照してください。

EJBを含むEARライブラリがある場合、JNDI名の競合が起きるため、そのライブラリを参照するアプリケーションを複数デプロイすることはできません。これは、EARライブラリ内の個々のEJBに対してグローバルJNDI名を設定できないからです。グローバルJNDI名はライブラリ全体に対してのみ設定できます。

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のjndi-name要素によってオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-30 weblogic.javaee.JNDINameの属性

名前

説明

データ型

必須?

value

JNDI名。

String

はい

weblogic.javaee.MessageDestinationConfiguration

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス(メッセージドリブンEJBのみ)

メッセージドリブンEJBがキューとトピックを作成するためにルックアップするJMS接続ファクトリのJNDI名を指定します。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のconnection-factory-jndi-name要素によってオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-31 weblogic.javaee.MessageDestinationConfigurationの属性

名前

説明

データ型

必須?

connectionFactoryJNDIName

接続ファクトリのJNDI名。この属性のデフォルトは空文字列です。

String

いいえ

initialContextFactory

WebLogic初期コンテキスト・ファクトリ。この属性のデフォルトはweblogic.jndi.WLInitialContextFactory.classです。

Class

いいえ

providerURL

プロバイダのURL。この属性のデフォルトはt3://localhost:7001です。

String

いいえ

weblogic.javaee.TransactionIsolation

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:メソッド

EJBのメソッド・レベルのトランザクション・アイソレーション設定です。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のtrans-timeout-seconds要素によってオーバーライドされます。詳細は、『Oracle WebLogic Server Enterprise JavaBeansのプログラミング』のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスに関する項を参照してください。

属性

次の表で属性について簡単に説明します。

表A-32 weblogic.javaee.Idempotentの属性

名前

説明

データ型

必須?

IsolationLevel

分離レベル。有効な値は次のとおりです:

- READ_COMMITTED - トランザクションは、他のトランザクションでコミットされた更新のみ読み取ることができます。

- READ_UNCOMITTED - トランザクションでは、他のトランザクションでコミットされていない更新のみ読み取ることができます。

- REPEATABLE_READ - トランザクションでデータの一部を読み取ると、そのデータが他のトランザクションで変更されても、最初の読取り時と同じ値が返されます。

- SERIALIZABLE - このトランザクションを同時に複数回実行すると、トランザクションを順番に複数回実行することと同じことになります。

この属性のデフォルトはDEFAULTです。

int

いいえ

weblogic.javaee.TransactionTimeoutSeconds

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:クラス

トランザクションのタイムアウトを秒単位で定義します。

属性

次の表で属性について簡単に説明します。

表A-33 weblogic.javaee.TransactionTimeoutSecondsの属性

名前

説明

データ型

必須?

value

トランザクション・タイムアウトの値(秒)。この属性のデフォルトは30(秒)です。

int

いいえ

B 永続性構成スキーマ・リファレンス

以下の節では、Kodo固有のデプロイメント記述子persistence-configuration.xmlのネームスペース、スキーマの場所、ファイル構造、および要素について説明します。

- persistence-configuration.xmlのネームスペース宣言とスキーマの場所

- persistence-configuration.xmlデプロイメント記述子ファイルの構造

- persistence-configuration.xmlデプロイメント記述子の要素

persistence-configuration.xmlのネームスペース宣言とスキーマの場所

Kodoのpersistence-configuration.xmlファイルのネームスペース宣言とスキーマの場所を表す正確なテキストは次のとおりです。

<persistence-configuration
xmlns="http://xmlns.oracle.com/weblogic/persistence-configuration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/persistence-configuration
http://xmlns.oracle.com/weblogic/persistence-configuration/1.0/persistence-configuration.xsd">

...

</persistence-configuration>

persistence-configuration.xmlデプロイメント記述子ファイルの構造

persistence-configuration.xmlデプロイメント記述子ファイルには、Oracle Kodoに固有な要素を記述します。

Kodoのpersistence-configuration.xmlの最上位要素は次のとおりです。

- persistence-configuration

- persistence-configuration-unit

- aggregate-listeners

- auto-clear

- auto-detaches

- default-broker-factory | abstract-store-broker-factory | client-broker-factory | jdbc-broker-factory | custom-broker-factory

- default-broker-impl | kodo-broker | custom-broker-impl

- default-class-resolver | custom-class-resolver

- default-compatibility | compatibility | default-compatibility

- connection2-driver-name

- connection2-password

- connection2-properties

- connection2-url

- connection2-user-name

- connection-decorators

- connection-driver-name

- connection-factory2-name

- connection-factory2-properties

- connection-factory-mode

- connection-factory-name

- connection-factory-properties

- connection-password

- connection-properties

- connection-retain-mode

- connection-url

- connection-user-name

- data-caches

- default-data-cache-manager | kodo-data-cache-manager | data-cache-manager-impl | custom-data-cache-manager

- data-cache-timeout

- access-dictionary | db2-dictionary | derby-dictionary | empress-dictionary | foxpro-dictionary | hsql-dictionary | informix-dictionary | jdatastore-dictionary | mysql-dictionary | oracle-dictionary | postgres-dictionary | sql-server-dictionary | sybase-dictionary | custom-dictionary

- default-detach-state | detach-options-loaded | detach-options-fetch-groups | detach-options-all | custom-detach-state

- default-driver-data-source | kodo-pooling-data-source | simple-driver-data-source | custom-driver-data-source

- stack-execution-context-name-provider | transaction-name-execution-context-name-provider | user-object-execution-context-name-provider

- none-profiling | local-profiling | export-profiling | gui-profiling

- none-jmx | local-jmx | gui-jmx | jmx2-jmx | mx4j1-jmx | wls81-jmx

- dynamic-data-structs

- eager-fetch-mode

- fetch-batch-size

- fetch-direction

- fetch-groups

- filter-listeners

- flush-before-queries

- ignore-changes

- inverse-manager

- jdbc-listeners

- default-lock-manager | pessimistic-lock-manager | none-lock-manager | single-jvm-exclusive-lock-manager | version-lock-manager | custom-lock-manager

- lock-timeout

- commons-log-factory | log4j-log-factory | log-factory-impl | none-log-factory | custom-log

- lrs-size

- mapping

- default-mapping-defaults | deprecated-jdo-mapping-defaults | mapping-defaults-impl | persistence-mapping-defaults | custom-mapping-defaults

- extension-deprecated-jdo-mapping-factory | kodo-persistence-mapping-factory | mapping-file-deprecated-jdo-mapping-factory | orm-file-jdor-mapping-factory | table-deprecated-jdo-mapping-factory | table-jdor-mapping-factory | custom-mapping-factory

- default-meta-data-factory | jdo-meta-data-factory | deprecated-jdo-meta-data-factory | kodo-persistence-meta-data-factory | custom-meta-data-factory

- default-meta-data-repository | kodo-mapping-repository | custom-meta-data-repository

- multithreaded

- nontransactional-read

- nontransactional-write

- optimistic

- default-orphaned-key-action | log-orphaned-key-action | exception-orphaned-key-action | none-orphaned-key-action | custom-orphaned-key-action

- http-transport | tcp-transport | custom-persistence-server

- default-proxy-manager | profiling-proxy-manager | proxy-manger-impl | custom-proxy-manager

- query-caches

- default-query-compilation-cache | cache-map | concurrent-hash-map | custom-query-compilation-cache

- read-lock-level

- jms-remote-commit-provider | single-jvm-remote-commit-provider | tcp-remote-commit-provider | cluster-remote-commit-provider | custom-remote-commit-provider

- restore-state

- result-set-type

- retain-state

- retry-class-registration

- default-savepoint-manager | in-memory-savepoint-manager | jdbc3-savepoint-manager | oracle-savepoint-manager | custom-savepoint-manager

- schema

- default-schema-factory | dynamic-schema-factory | file-schema-factory | lazy-schema-factory | table-schema-factory | custom-schema-factory

- schemas

- class-table-jdbc-seq | native-jdbc-seq | table-jdbc-seq | time-seeded-seq | value-table-jdbc-seq | custom-seq

- default-sql-factory | kodo-sql-factory | custom-sql-factory

- subclass-fetch-mode

- synchronize-mappings

- transaction-isolation

- transaction-mode

- default-update-manager | constraint-update-manager | batching-operation-order-update-manager | operation-order-update-manager | table-lock-update-manager | custom-update-manager

- write-lock-level

- profiling

- none-profiling

- local-profiling

- export-profiling

- gui-profiling

- execution-context-name-provider

- stack-execution-context-name-provider

- transaction-name-execution-context-name-provider

- user-object-execution-context-name-provider

- jmx

- none-jmx

- local-jmx

- gui-jmx

- jmx2-jmx

- mx4j1-jmx

- wls81-jmx

persistence-configuration.xmlデプロイメント記述子の要素

以下のpersistence-configuration.xml要素のリストには、このリリースのKodoでサポートされているすべての要素が含まれています。

abstract-store-broker-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.kernel.BrokerFactoryタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、抽象ストア)。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerFactoryに関する項を参照してください。

例

<abstract-store-broker-factory/>

access-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

Accessディクショナリの構成値を定義します。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのAccessディクショナリの構成に関する項を参照してください。

例

各構成値のデフォルト値を次の例に示します。

<access-dictionary>
<char-type-name>CHAR</char-type-name>
<outer-join-clause>LEFT OUTER JOIN</outer-join-clause>
<binary-type-name>BINARY</binary-type-name>
<clob-type-name>CLOB</clob-type-name>
<supports-locking-with-distinct-clause>true</supports-locking-with-distinct-clause>
<simulate-locking>false</simulate-locking>
<system-tables>true</system-tables>
<concatenate-function>({0}||{1})</concatenate-function>
<substring-function-name>SUBSTR</substring-function-name>
<supports-query-timeout>true</supports-query-timeout>
<use-set-bytes-for-blobs>true</use-set-bytes-for-blobs>
<max-constraint-name-length>18</max-constraint-name-length>
<search-string-escape>\\</search-string-escape>
<supports-cascade-update-action>true</supports-cascade-update-action>
<string-length-function>CHAR_LENGTH({0})</string-length-function>
<long-varbinary-type-name>LONGVARBINARY</long-varbinary-type-name>
<supports-unique-constraints>true</supports-unique-constraints>
<supports-restrict-delete-action>true</supports-restrict-delete-action>
<trim-leading-function>LTRIM(LEADING '{1}' from {0})</trim-leading-function>
<supports-default-delete-action>false</supports-default-delete-action>
<next-sequence-query></next-sequence-query>
<long-varchar-type-name>LONGVARCHAR</long-varchar-type-name>
<cross-join-clause>CROSS JOIN</cross-join-clause>
<max-embedded-clob-size>-1</max-embedded-clob-size>
<date-type-name>DATE</date-type-name>
<supports-schema-for-get-tables>true</supports-schema-for-get-tables>
<supports-alter-table-with-drop-column>true</supports-alter-table-with-drop-column>
<current-time-function>CURRENT_TIME</current-time-function>
<requires-condition-for-cross-join>false</requires-condition-for-cross-join>
<ref-type-name>REF</ref-type-name>
<concatenate-delimiter>'OPENJPATOKEN'</concatenate-delimiter>
<catalog-separator>.</catalog-separator>
<supports-mod-operator>false</supports-mod-operator>
<schema-case>upper</schema-case>
<java-object-type-name>JAVA_OBJECT</java-object-type-name>
<driver-vendor></driver-vendor>
<supports-locking-with-multiple-tables>true</supports-locking-with-multiple-tables>
<max-column-name-length>128</max-column-name-length>
<double-type-name>DOUBLE</double-type-name>
<use-get-string-for-clobs>false</use-get-string-for-clobs>
<decimal-type-name>DECIMAL</decimal-type-name>
<smallint-type-name>SMALLINT</smallint-type-name>
<date-precision>1000000</date-precision>
<supports-alter-table-with-add-column>true</supports-alter-table-with-add-column>
<bit-type-name>BIT</bit-type-name>
<supports-null-table-for-get-columns>true</supports-null-table-for-get-columns>
<to-upper-case-function>UPPER({0}))</to-upper-case-function>
<supports-select-end-index>false</supprots-select-end-index>
<supports-auto-assign>false</supports-auto-assign>
<store-large-numbers-as-strings>false</store-large-numbers-as-strings>
<constraint-name-mode>before</constraint-name-mode>
<allows-alias-in-bulk-clause>true</allows-alias-in-bulk-clause>
<supports-select-for-update>true</supports-select-for-update>
<distinct-count-column-separator></distinct-count-column-separator>
<supports-subselect>true</supports-subselect>
<time-type-name>TIME</time-type-name>
<auto-assign-type-name></auto-assign-type-name>
<use-get-object-for-blobs>false</use-get-object-for-blobs>
<max-auto-assign-name-length>31</max-auto-assign-name-length>
<validation-sql></validation-sql>
<struct-type-name>STRUCT</struct-type-name>
<varchar-type-name>VARCHAR</varchar-type-name>
<range-position>0</range-position>
<supports-restrict-update-action>true</supports-restrict-update-action>
<auto-assign-clause></auto-assign-clause>
<supports-multiple-nontransactional-result-sets>true</supports-multiple-nontransactional-result-sets>
<bit-length-function>(OCTET_LENGTH({0}) * 8)</bit-length-function>
<create-primary-keys>true</create-primary-keys>
<null-type-name>NULL</null-type-name>
<float-type-name>FLOAT</float-type-name>
<use-get-bytes-for-blobs>true</use-get-bytes-for-blobs>
<table-types>TABLE</table-types>
<numeric-type-name>NUMERIC</numeric-type-name>
<table-for-update-clause></table-for-update-clause>
<integer-type-name>INTEGER<integer-type-name>
<blob-type-name>BLOB</blob-type-name>
<for-update-clause>FOR UPDATE</for-update-clause>
<boolean-type-name>BOOLEAN</boolean-type-name>
<use-get-best-row-identifier-for-primary-keys>false</use-get-best-row-identifier-for-primary-keys>
<supports-foreign-keys>true</supports-foreign-keys>
<drop-table-sql>DROP TABLE {0}</drop-table-sql>
<use-set-string-for-clobs>false</use-set-string-for-clobs>
<supports-locking-with-order-clause>false</supports-locking-with-order-clause>
<platform>Generic</platform>
<fixed-size-type-names></fixed-size-type-names>
<store-chars-as-numbers>true</store-chars-as-numbers>
<max-indexes-per-table>2147483647</max-indexes-per-table>
<requires-cast-for-comparisons>false</requires-cast-for-comparisons>
<supports-having>true</supports-having>
<supports-locking-with-outer-join>true</supports-locking-with-outer-join>
<supports-correlated-subselect>true</supports-correlated-subselect>
<supports-null-table-for-get-imported-keys>false</supports-null-table-for-get-imported-keys>
<bigint-type-name>BIGINT</bigint-type-name>
<last-generated-key-query></last-generated-key-query>
<reserved-words></reserved-words>
<supports-null-update-action>true</supports-null-update-action>
<use-schema-name>true</use-schema-name>
<supports-deferred-constraints>true</supports-deferred-constraints>
<real-type-name>REAL</real-type-name>
<requires-alias-for-subselect>false</requires-alias-for-subselect>
<supports-null-table-for-get-index-info>false</supports-null-table-for-get-index-info>
<trim-trailing-function>TRIM(TRAILING '{1}' FROM {0}))</trim-trailing-function>
<supports-locking-with-select-range>true</supports-locking-with-select-range>
<storage-limitations-fatal>false</storage-limitations-fatal>
<supports-locking-with-inner-join>true</supports-locking-with-inner-join>
<current-timestamp-function>CURRENT_TIMESTAMP</current-timestamp-funct    <cast-function>CAST({0} AS {1})</cast-function>
<other-type-name>OTHER</other-type-name>
<max-index-name-length>128</max-index-name-length>
<distinct-type-name>DISTINCT</distinct-type-name>
<character-column-size>255</character-column-size>
<varbinary-type-name>VARBINARY</varbinary-type-name>
<max-table-name-length>128</max-table-name-length>
<close-pool-sql></close-pool-sql>
<current-date-function>CURRENT_DATE</current-date-function>
<join-syntax>sql92</join-syntax>
<max-embedded-blob-size>-1</max-embedded-blob-size>
<trim-both-function>TRIM(BOTH '{1}' FROM {0})</trim-both-function>
<supports-select-start-index>false</supports-select-start-index>
<to-lower-case-function>LOWER({0})</to-lower-case-function>
<array-type-name>ARRAY</array-type-name>
<inner-join-clause>INNER JOIN</inner-join-clause>
<supports-default-update-action>true</supports-default-update-action>
<supports-schema-for-get-columns>true</supports-schema-for-get-columns>
<tinyint-type-name>TINYINT</tinyint-type-name>
<supports-null-table-for-get-primary-keys>false</supports-null-table-for-get-primary-keys>
<system-schemas></system-schemas>
<requires-cast-for-math-functions>false</requires-cast-for-math-functions>
<supports-null-delete-action>true</supports-null-delete-action>
<requires-auto-commit-for-meta-data>false</requires-auto-commit-for-meta-data>
<timestamp-type-name>TIMESTAMP</timestamp-type-name>
<initialization-sql></initialization-sql>
<supports-cascade-delete-action>true</supports-cascade-delete-action>
<supports-timestamp-nanos>true</supports-timestamp-nanos>
</access-dictionary>

access-unloaded

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
detach-options-all

persistence-configuration
persistence-configuration-unit
detach-options-fetch-groups

persistence-configuration
persistence-configuration-unit
detach-options-loaded

機能

デタッチされたオブジェクトのアンロード・フィールドへのアクセスを許可するかどうかを指定するフラグ。falseに設定すると、アンロード・フィールドへのアクセス時に例外がスローされます。このオプションは、デタッチ状態マネージャを使用している場合にのみ利用できます。

デタッチ状態の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<access-unloaded>true</access-unloaded>

action

値の範囲: warn | exception

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
inverse-manager

機能

インバース・マネージャによって双方向の関係に不整合が検出されたときに実行する処理を制御します。有効なオプションは次のとおりです。

- warn - 警告をログに記録します。

- exception - 例外をスローします。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理対象の逆数に関する項を参照してください。

例

<action>warn</action>

addresses

値の範囲: 有効なIPアドレス

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

通知の送信先となるIPアドレスを、セミコロン区切りのリストで指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTCPに関する項を参照してください。

例

<addresses>[]</addresses>

advanced-sql

値の範囲: 文字列

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

高度なSQL機能を構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.SQLFactoryに関する項を参照してください。

aggregate-listeners

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

すべての問合せで利用できる集約リスナーのリストを指定します。各リスナーは、org.apache.openjpa.kernel.exps.AggregateListenerインタフェースを実装する必要があります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.AggregateListenersに関する項を参照してください。

例

<aggregate-listeners>
<custom-aggregate-listener>
<classname>...</classname>
<properties>...</properties>
</custom-aggregate-listener>
</aggregate-listener>

allocate

値の範囲: 整数

デフォルト値: 50

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

persistence-configuration
persistence-configuration-unit
native-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-jdbc-seq

persistence-configuration
persistence-configuration-unit
value-table-jdbc-seq

機能

各データベース・アクセス処理でメモリーに割り当てる値の数を指定します。50がデフォルト値です。これは、シーケンス表にアクセスするたびに次の50の値がクラスで除外されることを意味します。この場合、Kodoは、50のシーケンス値のリクエストにつき1回のみデータベースにアクセスし、新しいシーケンス値を取得します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<allocate>50</allocate>

assert-allowed-type

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit

機能

メタデータで宣言されている要素型に割り当てられない要素をコレクションやマップに追加しようとした際に、すぐに例外をスローするかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・プロキシに関する項を参照してください。

例

<assert-allowed-type>false</assert-allowed-type>

auto-clear

値の範囲 :

persistence-configuration-unit: datastore | all

kodo-broker: 0 | 1

デフォルト値: datastore (0)

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

トランザクションへの移行時にオブジェクトのフィールド値をクリアするかどうかを制御します。有効な値は次のとおりです:

- datastore (0) - データ・ストアのトランザクションに移行する際に、オブジェクトのフィールド値をクリアします。これがデフォルトです。

- all (1) - どのようなトランザクションに移行しても、オブジェクトのフィールド値をクリアします。

例

<auto-clear>datastore</auto-clear>

auto-detach

値の範囲 :

auto-detaches: close | commit | nontx-read

kodo-broker: 0 | 1 | 2

デフォルト値: close (0)

親要素 :

persistence-configuration
persistence-configuration-unit
auto-detaches

persistence-configuration
persistence-configuration-unit
kodo-broker
auto-detach

機能

管理対象インスタンスが自動的にデタッチされるイベントを指定します。auto-detaches要素の子として指定する場合、次のタイプのイベントを指定できます。

- close (0) - PersistenceManagerの終了時にすべてのオブジェクトをデタッチします。これがデフォルトです。

- commit (1) - トランザクションの終了時にすべてのオブジェクトをデタッチします。

- nontx-read (2) - トランザクション外の読取り時に、結果が返される前にインスタンスを自動的にデタッチします。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの自動デタッチに関する項を参照してください。

例

<auto-detach>close</auto-detach>

auto-detaches

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

管理対象インスタンスが自動的にデタッチされるイベントのリストを指定します。1つまたは複数のauto-detach要素を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの自動デタッチに関する項を参照してください。

例

<auto-detaches>
<auto-detach>close</auto-detach>
</auto-detaches>

base-name

値の範囲: 文字列

デフォルト値: なし

親要素 :

profiling
export-profiling

機能

作成するエクスポート・データ・ファイルのベース名を定義します。Kodo 4.2.0 JPA/JDO開発者ガイドのバッチ・プロセスによるプロファイル・データのディスクへのダンプに関する項を参照してください。

例

<base-name>base</base-name>

batching-operation-order-update-manager

値の範囲: なし

デフォルト値: なし

親要素 :

profiling

機能

外部キーおよび表レベルのロックを無視し、アプリケーションがオブジェクトを変更した順序に基づいて最適化する、文のバッチ処理が可能な更新マネージャを定義します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュ・サイズの構成に関する項と問合せキャッシュに関する項を参照してください。

例

<batching-operation-order-update-manager>
<maximize-batch-size>true</maximize-batch-size>
</batching-operation-order-update-manager>

buffer-size

値の範囲: 整数

デフォルト値: 10

親要素 :

persistence-configuration
persistence-configuration-unit
cluster-remote-commit-provider

機能

リモート・コミット・プロバイダのバッファ・サイズを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのリモート・コミット・プロバイダの構成に関する項を参照してください。

例

<buffer-size>10</buffer-size>

cache-map

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

問合せ文字列とその解析形式の関連付けに使用するキャッシュ・マップを定義します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの問合せコンパイルのキャッシュに関する項を参照してください。

例

<cache-map>
<cache-size>1000</cache-size>
<soft-reference-size>-1</soft-reference-size>
</cache-map>

cache-size

値の範囲: 整数

デフォルト値: 1000

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-concurrent-data-cache

persistence-configuration
persistence-configuration-unit
lru-data-cache

persistence-configuration
persistence-configuration-unit
kodo-query-cache

persistence-configuration
persistence-configuration-unit
lru-query-cache

機能

データまたは問合せのキャッシュ・サイズを設定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュ・サイズの構成に関する項と問合せキャッシュに関する項を参照してください。

例

<cache-size>1000</cache-size>

channel

値の範囲: 文字列

デフォルト値: openjpa.Runtime

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ログを記録するチャネルを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの孤立キーに関する項を参照してください。

例

<channel>openjpa.Runtime</channel>

class-table-jdbc-seq

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

独自のカスタム・ジェネレータの作成に使用するkodo.kernel.Seqインタフェースを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、kodo.jdbc.kernel.TableJDBCSeq)。

TableJDBCSeqは、特殊な単一行の表にグローバル・シーケンス番号を格納します。この表は、この表を必要とするクラスに対してマッピング・ツールを最初に実行したときに存在しない場合は作成されます。表の操作には、そのクラスのmainメソッドやsequencetableシェル/バッチ・スクリプトを使用することもできます(使用方法の詳細は、JavadocのTableJDBCSeq.mainメソッドを参照)。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<class-table-jdbc-seq>
<type>0</type>
<allocate>50</allocate>
<table-name>OPENJPA_SEQUENCES_TABLE</table-name>
<ignore-virtual>false</ignore-virtual>
<ignore-unmapped>false</ignore-unmapped>
<table>OPENJPA_SEQUENCES_TABLE</table>
<primary-key-column>ID</primary-key-column>
<use-aliases>false</use-aliases>
<sequence-column>SEQUENCE_VALUE</sequence-column>
<increment>1</increment>
</class-table-jdbc-seq>

classname

値の範囲: 有効なクラス名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
aggregate-listener
custom-aggregate-listener

persistence-configuration
persistence-configuration-unit
custom-broker-factory

persistence-configuration
persistence-configuration-unit
custom-broker-impl

persistence-configuration
persistence-configuration-unit
custom-class-resolver

persistence-configuration
persistence-configuration-unit
custom-compatibility

persistence-configuration
persistence-configuration-unit
custom-connection-decorator

persistence-configuration
persistence-configuration-unit
custom-data-cache

persistence-configuration
persistence-configuration-unit
custom-dictionary

機能

カスタム機能に関連付けられるクラスの名前。

classpath-scan

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
deprecated-jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
extension-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-meta-data-factory

persistence-configuration
persistence-configuration-unit
mapping-file-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
orm-file-jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

機能

現在のクラスパスにリストされるディレクトリまたはjarアーカイブを、セミコロン区切りのリストで指定します。各ディレクトリおよびjarアーカイブでは、使用しているメタデータ・ファクトリに基づいて、アノテーションが付いたJPエンティティまたはJDOメタデータ・ファイルがスキャンされます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<classpath-scan>build</classpath-scan>

clear-on-close

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
tangosol-data-cache

機能

EntityManagerFactoryまたはPersistenceManagerFactoryの終了時に、Tangosol指定のキャッシュを完全にクリアするかどうかを指定するフラグ。

例

<clear-on-close>false</clear-on-close>

client-broker-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.kernel.BrokerFactoryタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、remote)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerFactoryに関する項を参照してください。

例

<client-broker-factory/>

close-on-managed-commit

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
compatibility

機能

管理対象トランザクションのコミット後に、closeメソッドを呼び出したものと想定し、JDO PersistenceManagerを終了するかどうかを指定するフラグ。

falseに設定すると、PersistenceManagerは終了しません。つまり、同じJVMの処理層に渡されたオブジェクトは、所有しているPersistenceManagerが終了しないため、使用可能なままになります。この動作は、JDO仕様に厳密に準拠するわけではありませんが、こうした状況でPersistenceManagerを終了しないKodo 2.xに対してコーディングされたアプリケーションには便利です。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<close-on-managed-commit>false</close-on-managed-commit>

cluster-remote-commit-provider

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

クラスタ内のpersistenceManagerFactories間でコミット通知を共有するようKodoを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのリモート・コミット・プロバイダの構成に関する項を参照してください。

例

<cluster-remote-commit-provider>
<name>kodo.RemoteCommitProvider</name>
<buffer-size>10</buffer-size>
<recover-action>none</recover-action>
</cluster-remote-commit-provider>

commons-log-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ログ・メッセージの発行に使用するApache Jakarta Commons Loggingシン・ライブラリを指定します。Commons Loggingライブラリは、Jakarta Log4JプロジェクトやJDK 1.4のネイティブjava.util.logging packageなど、よく利用されている多くのロギングAPIのラッパーとして機能します。これらのライブラリがどちらも利用できない場合は、単純なコンソールでのロギングが使用されます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのApache共通ロギングに関する項を参照してください。

例

<commons-log-factory/>

compatibility

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

実行時の特定の動作について後方互換性の設定を構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<compatibility>
<copy-object-ids>false</copy-object-ids>
<close-on-managed-commit>true</close-on-managed-commit>
<validate-true-checks-store>false</validate-true-checks-store>
<validate-false-returns-hollow>true</validate-false-returns-hollow>
<strict-identity-values>false</strict-identity-values>
<quoted-numbers-in-queries>false</quoted-numbers-in-queries>
</compatibility>

concurrent-hash-map

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

問合せ文字列とその解析形式の関連付けに使用する同時ハッシュ・マップを定義します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの問合せコンパイルのキャッシュに関する項を参照してください。

例

<concurrent-hash-map>
<max-size>2147483647</max-size>
</concurrent-hash-map>

connection-decorators

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

接続ファクトリ上にインストールするorg.apache.openjpa.lib.jdbc.ConnectionDecorator実装を表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。1つまたは複数のcustom-connection-decorator要素を指定します。

これらのデコレータは、基底のDataSourceから渡された接続をラップして機能性を高めることができます。Kodoでは、すべての接続が使用される前にデコレータのリストを介して渡されます。

注意:

Kodo JPA/JDOでは、com.solarmetric.jdbcパッケージ内の組込みデコレータがデフォルトで使用されるため、この要素でデコレータを指定する必要はありません。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.ConnectionDecoratorsに関する項を参照してください。

例

<connection-decorators>
<custom-connection-decorator>
<classname>...</classname>
<properties>...</properties>
</custom-connection-decorator>
</connection-decorators>

connection-driver-name

値の範囲: 有効なクラス名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-pooling-data-source

persistence-configuration
persistence-configuration-unit
simple-driver-data-source

機能

データベースへの接続に使用するJDBCのjava.sql.Driverまたはjavax.sql.DataSource実装の完全修飾クラス名。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項を参照してください。

以下にサンプルの値を示します。

COM.FirstSQL.Dbcp.DbcpDriver
COM.cloudscape.core.JDBCDriver
COM.ibm.db2.jdbc.app.DB2Driver
COM.ibm.db2.jdbc.net.DB2Driver
centura.java.sqlbase.SqlbaseDriver
com.ddtek.jdbc.db2.DB2Driver
com.ddtek.jdbc.oracle.OracleDriver|
com.ddtek.jdbc.sqlserver.SQLServerDriver
com.ddtek.jdbc.sybase.SybaseDriver
com.ibm.as400.access.AS400JDBCDriver
com.imaginary.sql.msql.MsqlDriver
com.inet.tds.TdsDriver
com.informix.jdbc.IfxDriver
com.internetcds.jdbc.tds.Driver
com.jnetdirect.jsql.JSQLDriver
com.mckoi.JDBCDriver
com.microsoft.jdbc.sqlserver.SQLServerDriver
com.mysql.jdbc.DatabaseMetaData
com.mysql.jdbc.Driver
com.pointbase.jdbc.jdbcUniversalDriver
com.sap.dbtech.jdbc.DriverSapDB
com.sybase.jdbc.SybDriver
com.sybase.jdbc2.jdbc.SybDriver
com.thinweb.tds.Driver
in.co.daffodil.db.jdbc.DaffodilDBDriver
interbase.interclient.Driver
intersolv.jdbc.sequelink.SequeLinkDriver
openlink.jdbc2.Driver
oracle.jdbc.driver.OracleDriver
oracle.jdbc.pool.OracleDataSource
org.axiondb.jdbc.AxionDriver
org.enhydra.instantdb.jdbc.idbDriver
org.gjt.mm.mysql.Driver
org.hsql.jdbcDriver
org.hsqldb.jdbcDriver
org.postgresql.Driver
org.sourceforge.jxdbcon.JXDBConDriver|
postgres95.PGDriver
postgresql.Driver
solid.jdbc.SolidDriver
sun.jdbc.odbc.JdbcOdbcDriver
weblogic.jdbc.mssqlserver4.Driver
weblogic.jdbc.pool.Driver

例

<connection-driver-name>oracle.jdbc.driver.OracleDriver</connection-driver-name>

connection-factory-mode

値の範囲: local | managed

デフォルト値: local

親要素 :

persistence-configuration
persistence-configuration-unit

機能

アプリケーション・サーバーの管理対象トランザクションとの統合時に使用する接続ファクトリのモード。有効なオプションは次のとおりです。

- local - Kodo制御下の標準データ・ソースを指定します。

- managed - アプリケーション・サーバーで管理され、グローバル・トランザクションに自動登録されるデータ・ソースを指定します。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理対象データソースとXAデータソースに関する項を参照してください。

例

<connection-factory-mode>local</connection-factory-mode>

connection-factory-name

値の範囲: JNDI名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベースへの接続に使用するjavax.sql.DataSourceのJNDIロケーション。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項を参照してください。

例

<connection-factory-name>java:/OracleSource</connection-factory-name>

connection-factory-properties

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用されているjavax.sql.DataSource(http://docs.oracle.com/javase/6/docs/api/javax/sql/DataSource.htmlで説明しています)の構成用のプロパティをリストするプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項を参照してください。

例

<connection-factory-properties>
<property>
<name>QueryTimeout</name>
<value>5000</value>
<name>MaxIdle</name>
<value>1</value>
</property>
</connection-factory-properties>

connection-factory2-name

値の範囲: JNDI名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベースへの接続に使用する管理対象ではないjavax.sql.DataSourceのJNDIロケーション。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのXAトランザクションに関する項を参照してください。

例

<connection-factory2-name>java:/OracleXASource</connection-factory2-name>

connection-factory2-properties

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

非管理対象のConnectionFactoryとして使用するjavax.sql.DataSource(http://docs.oracle.com/javase/6/docs/api/javax/sql/DataSource.htmlで説明しています)を構成するために使用されるプロパティ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理対象データソースとXAデータソースに関する項を参照してください。

例

<connection-factory2-properties>
<property>
<name>MaxActive</name>
<value>20</value>
<name>MaxIdle</name>
<value>1</value>
</property>
</connection-factory2-properties>

connection-password

値の範囲: 有効なパスワード

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

connection-user-nameで指定されるユーザーのパスワード。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項を参照してください。

例

<connection-password>tiger</connection-password>

connection-properties

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

connection-driver-name要素にリストされるドライバの構成プロパティをリストするプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。これらのプロパティは、与えられたドライバ・クラスがDataSourceである場合、そのDataSourceのBeanプロパティの構成に使用されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項を参照してください。

例

<connection-properties>
<property>
<name>PortNumber</name>
<value>1521</value>
</property>
<property>
<name>ServerName</name>
<value>saturn</value>
</property>
<property>
<name>DatabaseName</name>
<value>solarisid</value>
</property>
<property>
<name>DriverType</name>
<value>thin</value>
</property>
</connection-properties>

connection-retain-mode

値の範囲: always | on-demand | persistence-manager | transaction

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データ・ストア接続の使用方法を制御します。有効な値は次のとおりです:

- always - 各EntityManagerまたはPersistenceManagerが単一の接続を取得し、EntityManagerまたはPersistenceManagerが終了するまでその接続を使用します。

- on-demand - 接続は必要時にのみ取得されます。このオプションは、データ・ストア・トランザクションが使用されている場合、transactionオプションと同じです。ただし、オプティミスティック・トランザクションの場合は、データ・ストアのフラッシュおよびコミット・プロセス中にのみ接続が保持されることになります。

- persistence-manager - 接続は永続性マネージャから取得されます。

- transaction - 接続は各トランザクション(オプティミスティックまたはデータ・ストア)の開始時に取得され、トランザクションの完了時にリリースされます。非トランザクション接続は、必要に応じて取得されます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBC接続の使用の構成に関する項を参照してください。

例

<connection-retain-mode>on-demand</connection-retain-mode>

connection-url

値の範囲: 有効なURL

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-pooling-data-source

persistence-configuration
persistence-configuration-unit
simple-driver-data-source

機能

データベースのJDBC URL。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項を参照してください。

以下のような値を指定できます。

jdbc:JSQLConnect://<hostname>/database=<database>
jdbc:cloudscape:<database>;create=true
jdbc:daffodilDB_embedded:<database>;create=true
jdbc:datadirect:db2://<hostname>:50000;databaseName=<database>
jdbc:datadirect:oracle://<hostname>:1521;SID=<database>;MaxPooledStatements=0
jdbc:datadirect:sqlserver://<hostname>:1433;SelectMethod=cursor;DatabaseName=<database>
jdbc:datadirect:sybase://<hostname>:5000
jdbc:db2://<hostname>/<database>
jdbc:dbaw://<hostname>:8889/<database>
jdbc:hsqldb:<database>
jdbc:idb:<database>.properties
jdbc:inetdae:<hostname>:1433
jdbc:informix-sqli://<hostname>:1526/<database>:INFORMIXSERVER=<database>
jdbc:interbase://<hostname>//<database>.gdb
jdbc:microsoft:sqlserver://<hostname>:1433;DatabaseName=<database>;SelectMethod=cursor
jdbc:mysql://<hostname>/<database>?autoReconnect=true
jdbc:odbc:<database>
jdbc:openlink://<hostname>/DSN=SQLServerDB/UID=sa/PWD=
jdbc:oracle:thin:@<hostname>:1521:<database>
jdbc:postgresql://<hostname>:5432/<database>
jdbc:postgresql:net//<hostname>/<database>
jdbc:sequelink://<hostname>:4003/[Oracle]
jdbc:sequelink://<hostname>:4004/[Informix];Database=<database>
jdbc:sequelink://<hostname>:4005/[Sybase];Database=<database>
jdbc:sequelink://<hostname>:4006/[SQLServer];Database=<database>
jdbc:sequelink://<hostname>:4011/[ODBC MS Access];Database=<database>
jdbc:solid://<hostname>:<port>/<UID>/<PWD>
jdbc:sybase:Tds:<hostname>:4100/<database>?ServiceName=<database>
jdbc:twtds:sqlserver://<hostname>/<database>
jdbc:weblogic:mssqlserver4:<database>@<hostname>:1433

例

<connection-url>
jdbc:oracle:thin:@<hostname>:1521:<database>
</connection-url>

connection-user-name

値の範囲: 有効なユーザー名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-pooling-data-source

persistence-configuration
persistence-configuration-unit
simple-driver-data-source

機能

connection-urlで指定されているデータ・ソースへの接続に使用するユーザー名。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項を参照してください。

例

<connection-user-name>scott</connection-user-name>

connection2-driver-name

値の範囲: 有効なユーザー名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

非管理対象データベースへの接続に使用するJDBCのjava.sql.Driverまたはjavax.sql.DataSource実装の完全なクラス名。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理対象データソースとXAデータソースに関する項を参照してください。

例

<connection2-driver-name>oracle.jdbc.driver.OracleDriver</connection2-driver-name>

connection2-password

値の範囲: 有効なパスワード

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

connection2-urlで指定されている非管理対象データ・ソースのパスワード。

例

<connection2-password>tiger</connection2-password>

connection2-properties

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

connection2-driver-nameで指定される非管理対象データ・ソースのプロパティ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理対象データ・ソースとXAデータ・ソースに関する項を参照してください。

例

<connection2-properties>
<property>
<name>PortNumber</name>
<value>1521</value>
</property>
<property>
<name>ServerName</name>
<value>saturn</value>
</property>
<property>
<name>DatabaseName</name>
<value>solarisid</value>
</property>
<property>
<name>DriverType</name>
<value>thin</value>
</property>
</connection2-properties>

connection2-url

値の範囲: 有効なURL

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

非管理対象データ・ソースのJDBC URL。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理対象データソースとXAデータソースに関する項を参照してください。

例

<connection2-url>jdbc:oracle:thin:@CROM:1521:KodoDB</connection2-url>

connection2-user-name

値の範囲: 有効なユーザー名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

connection2-driver-nameで指定されているデータ・ソースへの接続に使用するユーザー名。

例

<connection2-user-name>scott</connection2-user-name>

constraint-names

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
table-jdor-mapping-factory

機能

生成されるすべてのマッピングに一意制約や外部キーの名前を含めるかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<constraint-names>false</constraint-names>

constraint-update-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

文のバッチ処理および外部キー制約の評価が可能な、標準の更新マネージャを定義します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュ・サイズの構成に関する項と問合せキャッシュに関する項を参照してください。

例

<constraint-update-manager>
<maximize-batch-size>true</maximize-batch-size>
</constraint-update-manager>

copy-object-ids

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
compatibility

機能

oidオブジェクトが返される前にコピーするかどうかを指定するフラグ。3.0より前のバージョンのKodoでは、oidオブジェクトが返される前に常にコピーされていました。これにより、oidオブジェクトを参照で変更することによって生じるエラーを回避することができますが、oidインスタンスを変更しない大多数のユーザーにとっては効率が良くありませんでした。したがって、3.0以上のKodoでは、oidはデフォルトではコピーされません。このプロパティをtrueに設定すると、oidがコピーされます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<copy-object-ids>false</copy-object-ids>

custom-aggregate-listener

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
aggregate-listeners

機能

カスタム集約リスナーを定義します。各リスナーは、org.apache.openjpa.kernel.exps.AggregateListenerインタフェースを実装する必要があります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.AggregateListenersに関する項を参照してください。

例

<aggregate-listeners>
<custom-aggregate-listener>
<classname>...</classname>
<properties>...</properties>
</custom-aggregate-listener>
</aggregate-listener>

custom-broker-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・ブローカ・ファクトリを指定することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerFactoryに関する項を参照してください。

例

<custom-broker-factory>
<classname>...</classname>
<properties>...</properties>
</custom-broker-factory>

custom-broker-impl

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・ブローカ実装を定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerImplに関する項を参照してください。

例

<custom-broker-impl>
<classname>...</classname>
<properties>...</properties>
</custom-broker-impl>

custom-class-resolver

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

クラス名を解決するためのカスタム・クラス・リゾルバを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.ClassResolverに関する項を参照してください。

例

<custom-class-resolver>
<classname>...</classname>
<properties>...</properties>
</custom-class-resolver>

custom-compatibility

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

独自のカスタム互換性フラグを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<custom-compatibility>
<classname>...</classname>
<properties>...</properties>
</custom-compatibility>

custom-connection-decorator

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
connection-decorators

機能

すべての接続プール上にインストールするカスタムorg.apache.openjpa.lib.jdbc.ConnectionDecorator実装を定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.ConnectionDecoratorsに関する項を参照してください。

例

<connection-decorators>
<custom-connection-decorator>
<classname>...</classname>
<properties>...</properties>
</custom-connection-decorator>
</connection-decorators>

custom-data-cache

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
data-caches

機能

カスタム・データ・キャッシュを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.DataCacheに関する項を参照してください。

例

<data-caches>
<custom-data-cache>
<name>...</name>
<classname>...</classname>
<properties>...</properties>
</custom-data-cache>
</data-caches>

custom-data-cache-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・データ・キャッシュ・マネージャを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.DataCacheManagerに関する項を参照してください。

例

<custom-data-cache-manager>
<classname>...</classname>
<properties>...</properties>
</custom-data-cache-manager>

custom-detach-state

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・デタッチ状態を定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.DetachStateに関する項を参照してください。

例

<custom-detach-state>
<classname>...</classname
<properties>...</properties>
</custom-detach-state>

custom-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・ディクショナリを定義することができます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのカスタム・ディクショナリの構成に関する項を参照してください。

例

<custom-dictionary>
<name>custom-dictionary</name
<classname>..</classname>
<properties>...</properties>
</custom-dictionary>

custom-driver-data-source

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・データ・ソース・ドライバを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.DriverDataSourceに関する項を参照してください。

例

<custom-driver-data-source>
<classname>...</classname
<properties>...</properties>
</custom-driver-data-source>

custom-filter-listener

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
filter-listeners

機能

カスタム・フィルタ・リスナーを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.FilterListenersに関する項を参照してください。

例

<filter-listeners>
<custom-filter-listener>
<classname>...</classname>
<properties>...</properties>
</custom-filter-listener>
</filter-listeners>

custom-jdbc-listener

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
jdbc-listeners

機能

カスタムJDBCリスナーを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.JDBCListenerに関する項を参照してください。

例

<jdbc-listeners>
<custom-jdbc-listener>
<classname>...</classname>
<properties>...</properties>
</custom-jdbc-listener>
</jdbc-listeners>

custom-lock-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・ロック・マネージャを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのロック・マネージャに関する項を参照してください。

例

<custom-lock-manager>
<classname>...</classname>
<properties>...</properties>
</custom-lock-manager>

custom-log

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・ログ・ファイルを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・ログに関する項を参照してください。

例

<custom-log>
<classname>...</classname>
<properties>...</properties>
</custom-log>

custom-mapping-defaults

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

マッピングのカスタム・デフォルト設定を定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<custom-mapping-defaults>
<classname>...</classname
<properties>...</properties>
</custom-mapping-defaults>

custom-mapping-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

マッピングのカスタム・ファクトリを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<custom-mapping-factory/>

custom-meta-data-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・メタデータ・ファクトリを指定することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<custom-meta-data-factory>
<classname>...</classname>
<properties>...</properties>
</custom-meta-data-factory>

custom-meta-data-repository

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・メタデータ・リポジトリを指定することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<custom-meta-data-repository>
<classname>...</classname>
<properties>...</properties>
</custom-meta-data-repository>

custom-orphaned-key-action

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

孤立キーのカスタム動作を定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの孤立キーに関する項を参照してください。

例

<custom-orphaned-key-action>
<channel>openjpa.Runtime</channel>
<level>4</level>
<classname>...</classname>
<properties>...</properties>
</custom-orphaned-key-action>

custom-persistence-server

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム永続性サーバーを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスタンドアロン永続性サーバーに関する項を参照してください。

例

<custom-persistence-server>
<classname>...</classname>
<properties>...</properties>
</custom-persistence-server>

custom-proxy-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・プロキシ・マネージャを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・プロキシに関する項を参照してください。

例

<custom-proxy-manager>
<classname>...</classname
<properties>...</properties>
</custom-proxy-manager>

custom-query-compilation-cache

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム問合せコンパイルのキャッシュを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの問合せコンパイルのキャッシュに関する項を参照してください。

例

<custom-query-compilation-cache>
<classname>...</classname
<properties>...</properties>
</custom-query-compilation-cache>

custom-remote-commit-provider

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・リモート・コミット・プロバイダを指定することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJMSに関する項を参照してください。

例

<custom-remote-commit-provider>
<name>kodo.RemoteCommitProvider</name>
<classname>...</classname>
<properties>...</properties>
</custom-remote-commit-provider>

custom-savepoint-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・セーブポイント・マネージャを指定することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのセーブポイントに関する項を参照してください。

例

<custom-savepoint-manager>
<classname>...</classname>
<properties>...</properties>
</custom-savepoint-manager>

custom-schema-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・スキーマ・ファクトリを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<custom-schema-factory>
<classname>...</classname>
<properties>...</properties>
</custom-schema-factory>

custom-seq

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタム・ジェネレータを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<custom-seq>
<classname>...</classname
<properties>...</properties>
</custom-seq>

custom-sql-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

カスタムSQLファクトリを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.SQLFactoryに関する項を参照してください。

例

<custom-sql-factory>
<classname>...</classname>
<properties>...</properties>
</custom-sql-factory>

custom-update-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

永続オブジェクトの変更をデータストアへフラッシュするために使用する、カスタム更新マネージャを定義することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.UpdateManagerに関する項を参照してください。

例

<custom-update-manager>
<classname>..</classname>
<properties>...</properties>
</custom-update-manager>

data-caches

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データストアからロードされたデータのキャッシュに使用するプラグインを指定します。org.apache.openjpa.datacache.DataCacheを実装する必要があります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュに関する項を参照してください。

例

<data-caches>
<default-data-cache>...</default-data-cache>
<kodo-concurrent-data-cache>...</kodo-concurrent-data-cache>
<gem-fire-data-cache>...</gem-fire-data-cache>
<lru-data-cache>...</lru-data-cache>
<tangosol-data-cache>...</tangosol-data-cache>
<custom-data-cache>...</custom-data-cache>
</data-caches>

data-cache-manager-impl

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

システム・データ・キャッシュを管理するkodo.datacache.DataCacheManagerを有効にします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.DataCacheManagerに関する項を参照してください。

例

<data-cache-manager-impl/>

data-cache-timeout

値の範囲: 整数

デフォルト値: -1

親要素 :

persistence-configuration
persistence-configuration-unit

機能

クラスのデータを有効に保つ時間をミリ秒単位で指定します。-1を指定すると、期限が設定されません。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュ・タイムアウト値の設定に関する項を参照してください。

例

<data-cache-timeout>-1</data-cache-timeout>

db2-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

DB2ディクショナリの永続性プラグインの構成値を定義します。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのDB2ディクショナリの構成に関する項を参照してください。

例

db2-dictionary要素の下位要素は、access-dictionaryと同じです。

default-access-type

値の範囲: FIELD | PROPERTY

デフォルト値: FIELD

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-persistence-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-meta-data-factory

機能

デフォルトのアクセス・タイプを指定します。有効な値は次のとおりです:

- FIELD - 状態は永続フィールドに直接書き込まれ、変更時もフィールドから取得されます。

- PROPERTY - 状態は、JavaBeanの「getter」および「setter」メソッドで取得およびロードします。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのフィールドとプロパティのメタデータに関する項を参照してください。

例

<default-access-type>FIELD</default-access-type>

default-broker-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.kernel.BrokerFactoryタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここではデフォルトのJDBC)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerFactoryに関する項を参照してください。

例

<default-broker-factory/>

default-broker-impl

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

実行時に使用するkodo.kernel.Brokerタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここではデフォルト値)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerImplに関する項を参照してください。

例

<default-broker-impl/>

default-class-resolver

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

クラス名の解決に使用するkodo.util.ClassResolver実装を表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルト値)特別なクラス・ローディングが必要な場合は、独自のリゾルバを設定することもできます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.ClassResolverに関する項を参照してください。

例

<default-class-resolver/>

default-compatibility

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトの互換性設定を設定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<default-compatibility/>

default-data-cache

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
data-caches

機能

デフォルトのデータ・キャッシュを定義します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュに関する項を参照してください。

例

<data-caches>
<default-data-cache>
<name>kodo.DataCache</name>
</default-data-cache>
</data-caches>

default-detach-state

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトのデタッチ状態を指定します(ここでは、loaded)。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<default-detach-state/>

default-data-cache-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

システム・データ・キャッシュを管理するkodo.datacache.DataCacheManagerを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルト値)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュに関する項を参照してください。

例

<default-data-cache-manager>...</default-data-cache-manager>

default-driver-data-source

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

javax.sql.DataSourceインスタンスを使用したJDBCドライバ・クラスのラップに使用するデフォルトのkodo.jdbc.schema.DriverDataSource実装を指定します。デフォルトの実装として提供されているkodo.jdbc.schema.KodoPoolingDataSourceは、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項で説明するように、接続プーリングを実行します。

例

<default-driver-data-source/>

default-level

値の範囲: TRACE | DEBUG | INFO | WARN | ERROR

デフォルト値: INFO

親要素 :

persistence-configuration
persistence-configuration-unit
log-factory-impl

機能

構成されていないチャネルのデフォルトのロギング・レベルを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのKodoロギングに関する項を参照してください。

例

<default-level>INFO</default-level>

default-lock-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトのロック・マネージャを使用するように指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデフォルト・ロックの構成に関する項を参照してください。

例

<default-lock-manager/>

default-mapping-defaults

値の範囲: 文字列

標準的な実装: jdoおよびjpa

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトの列名、表名、および永続クラスの制約の定義に使用するkodo.jdbc.meta.MappingDefaultsを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。詳細と標準実装のリストは、Kodo 4.2.0 JPA/JDO開発者ガイドのデフォルトのマッピングに関する項を参照してください。

例

<default-mapping-defaults>jpa</default-mapping-defaults>

default-meta-data-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.meta.MetaDataFactoryタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここではデフォルトのkodo.jdo.JDOMetaDataFactory)。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<default-meta-data-factory/>

default-meta-data-repository

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

永続クラスのメタデータの格納に使用するkodo.meta.MetaDataRepositoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルト値)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<default-meta-data-repository/>

default-orphaned-key-action

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

孤立データストア・キーの検出時に呼び出すkodo.event.OrphanedKeyActionを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルトのkodo.event.LogOrphanedKeyAction)。この場合、孤立キーごとにメッセージがロギングされます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの孤立キーに関する項を参照してください。

例

<default-orphaned-key-action>
<channel>openjpa.Runtime</channel>
<level>4</level>
</default-orphaned-key-action>

default-proxy-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

可変の別のクラス・オブジェクトのプロキシに使用するkodo.util.ProxyManagerを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルトのkodo.util.ProxyManagerImpl)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・プロキシに関する項を参照してください。

例

<default-proxy-manager/>

default-query-compilation-cache

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

問合せ文字列とその解析形式の関連付けに使用するマップを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルト値)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの問合せコンパイルのキャッシュに関する項を参照してください。

例

<default-query-compilation-cache/>

default-savepoint-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

トランザクションのセーブポイントの管理に使用するkodo.kernel.SavepointManagerを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルトのkodo.kernel.InMemorySavepointManager)このプラグインは、フィールド値を含むすべての状態をメモリーに格納します。このため、設定される各セーブポイントは、トランザクション・オブジェクト数がそれほど多くない状況に対して設計されています。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのセーブポイントに関する項を参照してください。

例

<default-savepoint-manager/>

default-schema-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベース・スキーマに関する情報の格納および取得に使用するkodo.jdbc.schema.SchemaFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、デフォルトのkodo.jdbc.schema.DynamicSchemaFactory)。

DynamicSchemaFactoryは、データベースに対してマッピング情報を検証しないため、最もパフォーマンスの優れたスキーマ・ファクトリです。かわりに、すべてのオブジェクト・リレーショナル・マッピング情報が正しいと想定し、現在のマッピング・メタデータからスキーマのメモリー内表現を動的に構築します。このファクトリを使用するには、外部キー制約がSQL文で満たされるよう、マッピング・メタデータが現在のデータベースの外部キー制約を正しく表現している必要があります。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<default-schema-factory/>

default-sql-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

共通のSQLコンストラクトの抽出に使用するkodo.jdbc.SQLFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルト値)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.SQLFactoryに関する項を参照してください。

例

<default-meta-data-factory/>

default-update-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトの更新マネージャkodo.jdbc.kernel.ConstraintUpdateManagerを使用するように指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.UpdateManagerに関する項を参照してください。

例

<default-update-manager/>

deprecated-jdo-mapping-defaults

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

JDO 1.0のマッピングのデフォルト設定を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピングのデフォルトに関する項を参照してください。

例

deprecated-jdo-mapping-defaults要素は、mapping-defaults-implと同じ下位要素を共有します。

deprecated-jdo-meta-data-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.meta.MetaDataFactoryタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、kodo.jdo.DeprecatedJDOMetaDataFactory)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<deprecated-jdo-meta-data-factory>
<use-schema-validation>false</use-schema-validation>
<urls>t3://localhost:7001/metadata.jar</urls>
<files>com/file1;com/file2</files>
<classpath-scan>build</classpath-scan>
<types>classname1;classname2</types>
<store-mode>1</store-mode>
<strict>false</strict>
<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>
<scan-top-down>false</scan-top-down>
</deprecated-jdo-meta-data-factory>

derby-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

Derbyディクショナリを構成します。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのDerbyディクショナリの構成に関する項を参照してください。

例

derby-dictionary要素は、同じ下位要素を共有します。さらに、次の下位要素(デフォルト値を表示)も持ちます:

<derby-dictionary>
...
<shutdown-on-close>true</shutdown-on-close>
</derby-dictionary>

detach-options-all

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デタッチ状態をallに設定し、すべてのフィールドおよびリレーションをデタッチします。関連性の高いドメイン・モデルを使用している場合、データベース内のすべてのオブジェクトがメモリーに格納される恐れがあるため、このモードの使用には注意が必要です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<detach-options-all>
<detached-state-manager>true</detached-state-manager>
<detached-state-transient>false</detached-state-transient>
<access-unloaded>true</access-unloaded>
<detached-state-field>true</detached-state-field>
</detach-options-all>

detach-options-fetch-groups

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトのフェッチ・グループ内、および現在のフェッチ構成に追加したその他のフェッチ・グループ内のすべてのフィールドおよびリレーションをデタッチするようにデタッチ状態を設定します。カスタム・フェッチ・グループの詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのフェッチ・グループに関する項を参照してください。デタッチ状態の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<detach-options-fetch-groups>
<detached-state-manager>true</detached-state-manager>
<detached-state-transient>false</detached-state-transient>
<access-unloaded>true</access-unloaded>
<detached-state-field>true</detached-state-field>
</detach-options-fetch-groups>

detach-options-loaded

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ロード済のすべてのフィールドおよびリレーションをデタッチするようデタッチ状態を設定します。ただし、ロードされていないフィールドはデタッチ・グラフに含めません。これがデフォルトです。デタッチ状態の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<detach-options-loaded>
<detached-state-manager>true</detached-state-manager>
<detached-state-transient>false</detached-state-transient>
<access-unloaded>true</access-unloaded>
<detached-state-field>true</detached-state-field>
</detach-options-loaded>

detach-state

値の範囲: 1 | 2 | 3

デフォルト値: 1

親要素 :

persistence-configuration
persistence-configuration-unit]
kodo-broker

機能

デタッチ状態を構成します。有効な値は次のとおりです:

- 1 (loaded): ロード済のすべてのフィールドおよびリレーションをデタッチします。ただし、ロードされていないフィールドはデタッチ・グラフに含めません。

- 2 (fetch-groups) - 現在のフェッチ構成内のすべてのフィールドおよびリレーションをデタッチします。

- 3(all) - すべてのフィールドおよびリレーションをデタッチします。関連性の高いドメイン・モデルを使用している場合、データベース内のすべてのオブジェクトがメモリーに格納される恐れがあるため、このモードの使用には注意が必要です。

デタッチ・モードで特定されないフィールドはすべて、デタッチ・インスタンスのJavaデフォルト値に設定されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<detach-state>1</detach-state>

detached-state-field

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
detach-options-all

persistence-configuration
persistence-configuration-unit
detach-options-fetch-groups

persistence-configuration
persistence-configuration-unit
detach-options-loaded

機能

アタッチ・プロセスを効率化するため、デタッチ状態フィールドを利用するかどうかを指定するフラグ。このフィールドはエンハンサによって追加され、アプリケーションには表示されません。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのアタッチの動作に関する項を参照してください。

デタッチ状態の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<detached-state-field>true</detached-state-field>

detached-state-manager

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
detach-options-all

persistence-configuration
persistence-configuration-unit
detach-options-fetch-groups

persistence-configuration
persistence-configuration-unit
detach-options-loaded

機能

デタッチ状態マネージャを使用するかどうかを指定するフラグ。デタッチされた状態マネージャでアタッチがより効率よく行われます。しかし、デタッチ状態フィールドと同様に、改善されていないクラスが一時的でない場合、クラスとのシリアライゼーションに関する互換性を中断します。

この設定は、detached-state-field要素に依存します。デタッチ状態フィールドが一時的なものなら、デタッチ状態マネージャも一時的になります。デタッチ状態フィールドを無効にすると、デタッチ状態マネージャも無効化されます。通常はこの設定にします。

ただし、detach-state-field要素をtrueに設定(あるいは一時的に設定)し、このプロパティをfalseに設定すると、デタッチ状態マネージャを使用せずにデタッチ状態フィールドを使用することができます。この設定は、デタッチ状態マネージャを利用しないKodoの以前の動作に慣れていたユーザーが、デタッチ状態マネージャを利用するKodoの動作に違和感がある場合や、デバッグを行う場合に役立つ場合があります。

デタッチ状態の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<detached-state-manager>true</detached-state-manager>

detached-state-transient

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
detach-options-all

persistence-configuration
persistence-configuration-unit
detach-options-fetch-groups

persistence-configuration
persistence-configuration-unit
detach-options-loaded

機能

デタッチ状態フィールドを一時的に使用するかどうかを指定するフラグ。trueに設定すると、シリアライズされないローカル・オブジェクトでデタッチ状態フィールドのメリットを利用でき、改善されていないバージョンのクラスへアクセスできないクライアント層のシリアライゼーションに関する互換性も維持されます。

デタッチ状態の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<detached-state-transient>false</detached-state-transient>

detached-new

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

シリアライゼーションに関する互換性がないオブジェクトでも効率的にアタッチできるよう、一時的でないデタッチ状態フィールドを使用するかどうかを指定するフラグ。ただし、この機能を利用するには、改善されたバージョンのクラスおよびKodoライブラリがクライアント層に存在する必要があります。

デタッチ状態の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデタッチされたオブジェクト・グラフの定義に関する項を参照してください。

例

<detached-new>true</detached-new>

diagnostic-context

値の範囲: 文字列

デフォルト値: kodo.IDプロパティ(設定している場合)

親要素 :

persistence-configuration
persistence-configuration-unit
log-factory-impl

機能

すべてのログ・メッセージの先頭に付加する文字列。指定している場合、kodo.IDプロパティがデフォルトで使用されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのKodoロギングに関する項を参照してください。

例

<diagnostic-context>KodoID</diagnostic-context>

dynamic-data-structs

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit

機能

永続データを保持するカスタマイズされた構造体を動的に生成するかどうかを指定するフラグ。Kodoのデータ・キャッシュとリモート・フレームワークはどちらも、データ構造体に基づき永続状態のキャッシュおよび転送を行います。Kodoでは、動的な構造体により、クラスごとにデータ・ストレージをカスタマイズでき、プリミティブ・ラッパー・オブジェクトを生成せずに済みます。これによってメモリーを節約し、特定の実行時処理を素早く完了することができます。

反面、カスタム・クラスの生成とJVMへのロードに時間がかかるため、アプリケーションのウォームアップ時間が長くなります。したがって、アプリケーションの実行時間が長くても、メモリーおよび処理時間の最適化により、クラスの初期生成コストが徐々に相殺される場合にのみ、このプロパティをtrueに設定してください。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.DynamicDataStructsに関する項を参照してください。

例

<dynamic-data-structs>false</dynamic-data-structs>

dynamic-schema-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベース・スキーマに関する情報の格納および取得に使用するkodo.jdbc.schema.SchemaFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、デフォルトのkodo.jdbc.schema.DynamicSchemaFactory)。

DynamicSchemaFactoryは、データベースに対してマッピング情報を検証しないため、最もパフォーマンスの優れたスキーマ・ファクトリです。かわりに、すべてのオブジェクト・リレーショナル・マッピング情報が正しいと想定し、現在のマッピング・メタデータからスキーマのメモリー内表現を動的に構築します。このファクトリを使用するには、外部キー制約がSQL文で満たされるよう、マッピング・メタデータが現在のデータベースの外部キー制約を正しく表現している必要があります。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<dynamic-schema-factory/>

eager-fetch-mode

値の範囲: join | multiple | none | parallel | single

デフォルト値: parallel

親要素 :

persistence-configuration
persistence-configuration-unit

機能

イーガー・フェッチを構成します。イーガー・フェッチは、サブクラス・データと関連オブジェクトを、問合せ対象のベース・インスタンスとともに効率的にロードする機能です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのイーガー・フェッチに関する項を参照してください。

このプロパティは、以下のいずれかの値に設定することができます。

- join - このモードに設定すると、構成されているフェッチ・グループの対1リレーションへの結合が行われます。単一インスタンスのデータをロードする場合は、構成されているフェッチ・グループのコレクション・フィールドへの結合も行われます。ただし、問合せの実行時など、複数インスタンスのデータをロードする場合は、コレクションへはデフォルトで結合されません。かわりに、次に説明するように、コレクションに対してはデフォルトでparallelモードになります。コレクション・フィールドに対してparallelモードではなくjoinモードを使用するように設定するには、Kodo 4.2.0 JPA/JDO開発者ガイドのイーガー・フェッチ・モードに関する項で説明されているメタデータ拡張を使用します。
Kodoは、joinモードの場合、左外部結合(リレーションのフィールド・メタデータで、nullがそのリレーションで許可されないと宣言されている場合は内部結合)を使用して、関連データをターゲット・オブジェクトのデータとともに選択します。このプロセスは、対1結合に対して再帰的に機能するため、PersonがAddressを、AddressがTelephoneNumberを持ち、フェッチ・グループが適切に構成されている場合、Kodoはこれら3つのクラスの表間を結合する単一のSELECT文を発行することができます。対多結合により、他の対多結合が再帰的に生成されることはありませんが、再帰的な対1結合が生成される場合があります。

joinのサブクラス・フェッチ・モードでは、問合せ対象タイプのすべてのサブクラス表への外部結合によって、結合表内のサブクラス・データが選択されます。結合されていないサブクラス・データは、利用可能であればSQL UNIONで選択されます。以下に示すように、サブクラス・データのフェッチは、リレーション・フェッチとは別に構成され、特定のクラスに対して無効化することができます。

- multiple - parallelと同じです。

- none - イーガー・フェッチを実行しません。関連オブジェクトは常に、独立したSELECT文でロードされます。結合されたサブクラス・データは、問合せ対象の基本タイプの1つまたは複数の表内にない限りロードされません。結合されていないサブクラス・データは、SQL UNION演算ではなく、別個のSELECT文でロードされます。

- parallel - このモードに設定すると、Kodoは、joinモードの欄で説明したように、対1リレーションと結合コレクションに対してSELECTを実行します。ただし、結合されていないコレクション・フィールドは、コレクションごとに別個のSELECT文でイーガー・フェッチされ、これはターゲット・オブジェクトに対するSELECT文と並列的に実行されます。並列的に実行されるこれらのSELECT文では、プライマリSELECT文からWHERE条件を使用して選択しますが、関連データにアクセスするため独自の結合を追加します。たとえば、100個のCompanyオブジェクトを返す問合せを実行する際、各企業にEmployeeオブジェクト・リストおよびDepartmentオブジェクト・リストが存在する場合は、3つの問合せが実行されます。1つ目の問合せはCompanyオブジェクトを選択し、2つ目の問合せは選択された企業のEmployeeオブジェクトを選択し、3つ目の問合せはそれらの企業のDepartmentオブジェクトを選択します。このプロセスは、joinの場合と同様に、イーガー・フェッチ対象のリレーション内のオブジェクトに対して再帰的に適用されます。この例でいくと、ロード対象のいずれかのフェッチ・グループにEmployeeクラスのProjectsリストがあった場合、Kodoは、一致する企業の全従業員のプロジェクトのロードと並列的に、1つのSELECT文を追加実行します。
追加のSELECT文を使用して各コレクションをロードすることにより、データベースからアプリケーションに必要以上のデータを転送せずに済みます。並列SELECT文のかわりにイーガー結合を使用すると、構成されているフェッチ・グループに追加される各コレクションによって、ネットワークがあっという間にダウンするほど大量のデータが転送されてしまう場合があります。

クラスごとに1つの表(table-per-class)のマッピングへのポリモフィックな対1リレーションでは、適切な結合が不可能なため、並列のイーガー・フェッチが使用されます。他の対1リレーションで、joinモードのイーガー・フェッチではなくparallelモードを使用するように設定するには、Kodo 4.2.0 JPA/JDO開発者ガイドのイーガー・フェッチ・モードに関する項で説明されているメタデータ拡張を使用します。

サブクラスのフェッチ・モードをparallelに設定すると、table-per-class階層および垂直継承階層に影響します。Kodoは、parallelモードの場合、joinモードでのすべてのサブクラス表のUNION演算ではなく、table-per-class継承階層のサブクラスごとに別個のSELECT文を発行します。これは、問合せ、IDによるルックアップ、リレーション・トラバースなど、table-per-classベース・クラスに対するあらゆる処理に適用されます。

一方、垂直にマップされた階層を処理する場合、parallelのサブクラス・フェッチ・モードが適用されるのは問合せのみです。Kodoは、サブクラス表への外部結合ではなく、サブクラスごとに問合せを別個に発行します。その他の状況下におけるparallelのサブクラス・フェッチ・モードの動作は、垂直にマップされたサブクラスに関してはjoinモードと同じです。

Kodoは、選択しているオブジェクトが1つしかない場合、parallelモードを使用しません。これは、追加のSELECT文を同じ効率で遅延実行できるためです。このモードがjoinモードより効率的なのは、イーガー・リレーションを持つ複数のオブジェクトがロードされる場合や、すべてのサブクラスへ結合するより複数のSELECT文を実行した方が速く処理が完了する場合のみです。

- single - joinと同じです。

例

<eager-fetch-mode>parallel</eager-fetch-mode>

empress-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

Empressディクショナリを構成します。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのEmpressディクショナリの構成に関する項を参照してください。

例

empress-dictionary要素の下位要素は、access-dictionaryと同じです。さらに以下の下位要素(デフォルト値を表示)も持ちます。

<empress-dictionary>
...
<allow-concurrent-read>false</allow-concurrent-read>
</empress-dictionary>

EnableLogMBean

値の範囲: true | false

デフォルト値: なし

親要素 :

jmx
local-jmx

機能

LogMBeanを登録するかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理グループのオプションのパラメータに関する項を参照してください。

例

<EnableLogMBean>true</EnableLogMBean>

EnableRuntimeMBean

値の範囲: true | false

デフォルト値: なし

親要素 :

jmx
local-jmx

機能

RuntimeMBeanを登録するかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理グループのオプションのパラメータに関する項を参照してください。

例

<EnableRuntimeMBean>true</EnableRuntimeMBean>

evict-from-data-cache

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

特定の間隔でデータ・キャッシュからデータをクリアするかどうかを指定するフラグ。クリア・スケジュールは、eviction-schedule要素で定義します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュに関する項を参照してください。

例

<evict-from-data-cache>true</evict-from-data-cache>

eviction-schedule

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
data-caches
gem-fire-data-cache

persistence-configuration
persistence-configuration-unit
data-caches
kodo-current-data-cache

persistence-configuration
persistence-configuration-unit
data-caches
lru-data-cache

persistence-configuration
peristence-configuration-unit
data-caches
tangosol-data-cache

機能

特定の間隔でデータ・キャッシュをクリアすることができます。Kodoのキャッシュ実装のEvictionScheduleプロパティでは、cronスタイルのクリア・スケジュールを指定できます。このプロパティの書式は、5つのトークンをホワイトスペース区切りでリストします。*記号(アスタリスク)をあらゆる値に一致するワイルドカードとして使用することができます。以下に、これらのトークンを指定すべき順序で示します。

- 分

- 時

- 日

- 月

- 曜日

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの追出しスケジュールの構成に関する項を参照してください。

例

以下の設定では、日曜日の午後3時15分および3時45分にキャッシュからデータをクリアするようにデフォルトのキャッシュをスケジューリングしています。

<eviction-schedule>15,45 15 * * 1</eviction-schedule>

exception-orphaned-key-action

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

孤立データストア・キーの検出時に呼び出すkodo.event.OrphanedKeyActionを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、kodo.event.ExceptionOrphanedKeyAction)この場合、孤立キーごとに例外がスローされます。JPAでは、javax.persistence.EntityNotFoundExceptionの例外になります。JDOでは、javax.jdo.JDOObejctNotFoundExceptionの例外になります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの孤立キーに関する項を参照してください。

例

<exception-orphaned-key-action/>

exception-reconnect-attempts

値の範囲: 整数

デフォルト値: 0

親要素 :

persistence-configuration
persistence-configuration-unit
jms-remote-commit-provider

機能

JMSシステムから重大な接続エラーが通知された場合の、再接続の試行回数を指定します。0(デフォルト値)はKodoがエラーをログに記録することを示しますが、それ以外の場合は、接続がまだ有効であると想定してエラーを無視します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJMSに関する項を参照してください。

例

<exception-reconnect-attempts>0<exception-reconnect-attempts>

execution-context-name-provider

値の範囲: なし

デフォルト値: なし

親要素: なし

機能

実行コンテキスト名プロバイダを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.ExecutionContextNameProviderに関する項を参照してください。

例

<execution-context-name-provider>
<stack-execution-context-name-provider>...
</stack-execution-context-name-provider>
<transaction-name-execution-context-name-provider>...
</transaction-name-execution-context-name-provider>
<user-object-execution-context-name-provider>...
</user-object-execution-context-name-provider>
</execution-context-name-provider>

export-profiling

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

profiling

機能

エクスポート・プロファイリング・データを構成します。Kodo 4.2.0 JPA/JDO開発者ガイドのバッチ・プロセスによるプロファイル・データのディスクへのダンプに関する項を参照してください。

例

<profiling>
<export-profiling>
<interval-millis>-1</interval-millis>
<base-name>name</base-name>
</export-profiling>
</profiling>

extension-deprecated-jdo-mapping-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

永続クラスのオブジェクト・リレーショナル・マッピング情報の格納および取得に使用するkodo.meta.MetaDataFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。この設定はJDO 1.0で有効です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<extension-deprecated-jdo-mapping-factory>
<use-schema-validation>true</use-schema-validation>
<urls>t3://localhost:7001/metadata.jar</urls>
<files>com/file1;com/file2</files>
<classpath-scan>build</classpath-scan>
<types>classname1;classname2</types>
<store-mode>1</store-mode>
<strict>false</strict>
<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>
<scan-top-down>false</scan-top-down>
</extension-deprecated-jdo-mapping-factory>

fetch-batch-size

値の範囲: 整数

デフォルト値: -1

親要素 :

persistence-configuration
persistence-configuration-unit

機能

結果セットをスクロールする際に一度にフェッチする行数。フェッチ・サイズは、実行時にも設定することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの大きな結果セットに関する項を参照してください。

例

<fetch-batch-size>-1</fetch-batch-size>

fetch-direction

値の範囲: forward | reverse | unknown

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit

機能

問合せ結果リストがアクセスされる順序。この値は、結果の格納に使用されるデータ構造のタイプに影響し、特定のアクセス・パターンで最適化が可能な場合はJDBCドライバに渡されます。この要素には、以下に示す値を指定できます。各値は、同じ名前のjava.sql.ResultSet FETCH定数に対応しています。

- forward - 問合せ結果が順番にリストされます。これがデフォルトです。

- reverse - 問合せ結果が逆の順序でリストされます。

- unknown - 順序が指定されません。

このプロパティは、実行時にも変更することができます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの大きな結果セットに関する項を参照してください。

例

<fetch-direction>forward</fetch-direction>

fetch-group

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
fetch-group

機能

フェッチ・グループの名前。フェッチ・グループ名はグローバルで、クラス間で共有されます。たとえば、ショッピングWebサイトで、各製品クラスに詳細なフェッチ・グループを使用すると、各製品の「詳細な」ページの表示に必要なすべてのデータを効率的にロードすることができます。このWebサイトでは、検索結果などに製品表の表示に必要なフィールドのみが含まれる、スパース・リストのフェッチ・グループを定義することもできます。

jdo、ejb、kodoで始まる名前、およびdefault、values、all、noneはKodoで使用するため予約されています。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・フェッチ・グループに関する項を参照してください。

例

<fetch-groups>
<fetch-group>detail</fetch-group>
</fetch-groups>

fetch-groups

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

1つまたは複数のカスタム・フェッチ・グループを定義します。

デフォルトでは、JPAメタデータ規則に基づきイーガー・ロードされるすべてのフィールドが、組込みのデフォルト・フェッチ・グループ内に配置されます。独自の名前のフェッチ・グループを定義し、それらを実行時にアクティブ化したり非アクティブ化することができます。すべてのアクティブなフェッチ・グループ内のフィールドは、データストアからのオブジェクトのロード時にイーガー・ロードされます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・フェッチ・グループに関する項を参照してください。

例

<fetch-groups>
<fetch-group>detail</fetch-group>
</fetch-groups>

field-override

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-persistence-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-meta-data-factory

機能

フィールドのオーバーライドを有効にするかどうかを指定するフラグ。

例

<field-override>true</field-override>

file

値の範囲: 文字列

デフォルト値: 以下参照

親要素 :

persistence-configuration
persistence-configuration-unit
file-schema-factory

persistence-configuration
persistence-configuration-unit
log-factory-impl

機能

親要素がfile-schema-factoryの場合、XMLスキーマ・ファイルのリソース名を指定します。このファクトリはデフォルトで、CLASSPATHの最上位レベルのディレクトリ内、またはCLASSPATHのJARの最上位レベルにあるpackage.schemaという名前のリソースを検索します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

親要素がlog-factory-implの場合は、メッセージのログが記録されるファイルの名前を指定します。stdoutまたはstderrを指定し、ログ・メッセージをそれぞれ標準出力または標準エラーに出力します。stderrがデフォルトです。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのKodoロギングに関する項を参照してください。

例

<file>stdout</file>

file-name

値の範囲: 文字列

デフォルト値: package.schema

親要素 :

persistence-configuration
persistence-configuration-unit
file-schema-factory

機能

XMLスキーマ・ファイルのリソース名を指定します。このファクトリはデフォルトで、CLASSPATHの最上位レベルのディレクトリ内、またはCLASSPATHのJARの最上位レベルにあるpackage.schemaという名前のリソースを検索します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<file-name>package.schema</file-name>

file-schema-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベース・スキーマに関する情報の格納および取得に使用するkodo.jdbc.schema.SchemaFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、kodo.jdbc.schema.FileSchemaFactory)。

このファクトリはtable-schema-factoryと似ており、同じメリットとデメリットがあります。XMLスキーマ定義がデータベース表ではなく、ファイルに保存されます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<file-schema-factory>
<file-name>package.schema</file-name>
<file>package.schema</file>
</file-schema-factory>

files

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
deprecated-jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
extension-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-meta-data-factory

persistence-configuration
persistence-configuration-unit
mapping-file-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
orm-file-jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

機能

メタデータ・ファイルまたはJARアーカイブを、セミコロン区切りのリストで指定します。各jarアーカイブでは、使用しているメタデータ・ファクトリに基づいて、アノテーションが付いたJPAエンティティまたはJDOメタデータ・ファイルがスキャンされます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<files>com/file1;com/file2</files>

filter-listeners

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

リスナーの標準セットに加え、すべての問合せで利用可能にするカスタムkodo.FilterListenersの1つまたは複数の完全なプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を定義します。Kodo 4.2.0 JPA/JDO開発者ガイドの問合せ言語の拡張機能で説明するように、個々の問合せにフィルタ・リスナーを追加することもできます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.FilterListenersに関する項を参照してください。

例

<filter-listeners>
<custom-filter-listener>detail</custom-filter-listener>
</filter-listeners>

foreign-keys

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
lazy-schema-factory

機能

スキーマの検証時に、外部キー情報を自動的に読み取るかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<foreign-keys>false</foreign-keys>

format

値の範囲: 文字列

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
native-jdbc-seq

機能

形式を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

foxpro-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

FoxProディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのFoxProディクショナリの構成に関する項を参照してください。

例

foxpro-dictionary要素の下位要素は、access-dictionaryと同じです。

flush-before-queries

値の範囲: true | false | with-connection

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit

機能

問合せを実行する前に、現在のトランザクションで行われた変更をデータ・ストアにフラッシュするかどうかを指定するフラグ。有効な値は次のとおりです:

- true - メモリー内で問合せを実行せずに常にフラッシュします。現在のトランザクションが、オプティミスティック・トランザクションである場合、ロックされないデータ・ストア・トランザクションが開始されます。これがデフォルトです。

- false - 問合せの前にフラッシュしません。

- with-connection - EntityManagerまたはPersistenceManagerがデータ・ストアとの専用接続を確立している場合にのみフラッシュし、そうでない場合は、インメモリーで問合せを実行します。
このオプションは、実行時間が長いオプティミスティック・トランザクションで、コミットするまでデータベース・リソースを消費しないようにする場合に役立ちます。Kodoのこのオプションの動作は、トランザクションのステータスやモードに加え、この節で説明したconnection-retain-modeの構成によって変わります。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBC接続の使用の構成に関する項を参照してください。

例

<flush-before-queries>true</flush-before-queries>

hsql-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

HSQLディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのHSQLディクショナリの構成に関する項を参照してください。

例

hsql-dictionary要素の下位要素は、access-dictionaryと同じです。

gem-fire-data-cache

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
data-caches

機能

GemStoneのGemFire v5.0.1キャッシュ・システムと統合します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのGemStoneのGemFireの統合に関する項を参照してください。

例

<data-caches>
<gem-fire-data-cache>
<name>kodo.DataCache</name>
<gem-fire-cache-name>root/kodo-data-cache</gem-fire-cache-name>
<eviction-schedule>15, 45 15 * * 1</eviction-schedule>
</gem-fire-data-cache>
</data-caches>

gem-fire-data-cache-name

値の範囲: 有効なGemFire地域名

デフォルト値 :

データ・キャッシュ: root/kodo-data-cache

問合せキャッシュ: root/kodo-query-cache

親要素 :

persistence-configuration
persistence-configuration-unit
data-caches
gem-fire-data-cache

機能

GemFireの領域名。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのGemStoneのGemFireの統合に関する項を参照してください。

例

<gem-fire-data-cache-name>root/kodo-data-cache</gem-fire-data-cache-name>

gui-jmx

値の範囲: なし

デフォルト値: なし

親要素 :

jmx

機能

管理を有効にし、ローカルJVMでJMX管理コンソールを呼び出します。Kodo 4.2.0 JPA/JDO開発者ガイドの管理グループのオプションのパラメータに関する項で説明するように、Management Groupのオプション・パラメータをサポートします。

例

<gui-jmx>
<MBeanServerStrategy>any-create</MBeanServerStrategy>
<EnableLogMBean>true</EnableLogMBean>
<EnableRuntimeMBean>true</EnableRuntimeMBean>
</gui-jmx>

gui-profiling

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

profiling

機能

ローカルのプロファイリングGUIを起動します。詳細については、『Kodo Developer's Guide』の「Profiling in an Embedded GUI」を参照してください。

例

<profiling>
<gui-profiling/>
</profiling>

Host

値の範囲: なし

デフォルト値: なし

親要素 :

jmx
mx4j1-jmx

機能

RMIレジストリ・ネーミング・サービスがリスニングするホスト名。localhostがデフォルトです。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのリモート・グループのオプションのパラメータに関する項を参照してください。

例

<Host>localhost</Host>

host

値の範囲: 有効なホスト名

デフォルト値: localhost

親要素 :

persistence-configuration
persistence-configuration-unit
tcp-transport

機能

サーバーのホスト名を指定します。この設定は、サーバーではなく、クライアントが使用します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスタンドアロンの永続性サーバーに関する項を参照してください。

例

<host>localhost</host>

http-transport

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

リモート・サーバーのURLを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのクライアント・マネージャに関する項を参照してください。

例

<http-transport>
<url>servlet-url</url>
</http-transport>

ignore-changes

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

問合せの評価時に、現在のトランザクションで永続オブジェクトに対して行われた変更を考慮するかどうかを指定するフラグ。trueに設定すると、変更が無視され、データストアに対して直接問合せが実行されます。falseに設定すると、現在のトランザクションにおける変更が問合せに影響するかどうかが考慮され、影響する場合は、その問合せがメモリー内で評価されるか、実行前にデータストアにフラッシュされます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.IgnoreChangesに関する項を参照してください。

例

<ignore-changes>false</ignore-changes>

ignore-unmapped

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

機能

マップされていないベース・クラスを無視するかわりに、最も派生の少ないマップされたクラスごとに1行を使用するかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<ignore-unmapped>false</ignore-unmapped>

ignore-virtual

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

機能

仮想クラスを無視するかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<ignore-virtual>false</ignore-virtual>

in-memory-savepoint-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

トランザクションのセーブポイントの管理に使用するkodo.kernel.SavepointManagerを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、kodo.kernel.InMemorySavepointManager)このプラグインは、フィールド値を含むすべての状態をメモリーに格納します。このため、設定される各セーブポイントは、トランザクション・オブジェクト数がそれほど多くない状況に対して設計されています。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのセーブポイントに関する項を参照してください。

例

<in-memory-savepoint-manager/>

increment

値の範囲: 整数

デフォルト値: 1

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

persistence-configuration
persistence-configuration-unit
native-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-jdbc-seq

persistence-configuration
persistence-configuration-unit
time-seeded-seq

persistence-configuration
persistence-configuration-unit
value-table-jdbc-seq

機能

シーケンス増分の量を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<increment>1</increment>

indexes

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
lazy-schema-factory

機能

スキーマの検証時に、索引情報を自動的に読み取るかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<indexes>false</indexes>

informix-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

Informixディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのInformixディクショナリの構成に関する項を参照してください。

例

informix-dictionary要素の下位要素は、access-dictionaryと同じです。さらに以下の下位要素(デフォルト値を表示)も持ちます。

<informix-dictionary>
...
<lock-mode-enabled>false</lock-mode-enabled>
<lock-wait-seconds>30</lock-wait-seconds>
<swap-schema-and-catalog>true</swap-schema-and-catalog>
</informix-dictionary>

initial-value

値の範囲: なし

デフォルト値: 1

親要素 :

persistence-configuration
persistence-configuration-unit
native-jdbc-seq

機能

シーケンスの初期値を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<initial-value>1</intial-value>

interval-millis

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
export-profiling

profiling
export-profiling

機能

エクスポートの間隔(ミリ秒単位)。デフォルト値の-1は、終了時に1回、エクスポートされることを示します。Kodo 4.2.0 JPA/JDO開発者ガイドのバッチ・プロセスによるプロファイル・データのディスクへのダンプに関する項を参照してください。

例

<interval-millis>-1</interval-millis>

inverse-manager

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit

機能

フラッシュ時に双方向のリレーションの管理に使用するkodo.kernel.InverseManagerを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理対象の逆数に関する項を参照してください。

例

<inverse-manager>
<action>warn</action>
<manage-lrs>false</manage-lrs>
</inverse-manager>

jdatastore-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

JDataStoreディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDataStoreディクショナリの構成に関する項を参照してください。

例

jdatastore-dictionary要素の下位要素は、access-dictionaryと同じです。

jdbc-broker-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.kernel.BrokerFactoryタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、JDBC)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerFactoryに関する項を参照してください。

例

<jdbc-broker-factory/>

jdbc-listeners

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

リスナーの標準セットに加え、すべての問合せで利用可能にするカスタムkodo.jdbc.kernel.exps.JDBCFilterListenersの1つまたは複数の完全なプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を定義します。Kodo 4.2.0 JPA/JDO開発者ガイドの問合せ言語の拡張機能で説明するように、個々の問合せにフィルタ・リスナーを追加することもできます。

例

<jdbc-listeners>detail</jdbc-listeners>

jdbc3-savepoint-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

トランザクションのセーブポイントの管理に使用するkodo.kernel.SavepointManagerを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルトのkodo.jdbc.kernel.JDBCSavepointManager)このプラグインは、データベースへのフラッシュの発行によりセーブポイントを実装します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのセーブポイントに関する項を参照してください。

例

<jdbc3-savepoint-manager/>

jdo-meta-data-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.meta.MetaDataFactoryタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここではkodo.jdo.JDOMetaDataFactory)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<jdo-meta-data-factory>
<use-schema-validation>false</use-schema-validation>
<urls>t3://localhost:7001/metadata.jar</urls>
<files>com/file1;com/file2</files>
<classpath-scan>build</classpath-scan>
<constraint-names>false</constraint-names>
<types>classname1;classname2</types>
<store-mode>1</store-mode>
<strict>false</strict>
<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>
<scan-top-down>false</scan-top-down>
</jdo-meta-data-factory>

jms-remote-commit-provider

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

JMSリモート・コミット・プロバイダを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJMSに関する項を参照してください。

例

<jms-remote-commit-provider>
<name>kodo.RemoteCommitProvider</name>
<topic>topic/KodoCommitProviderTopic</topic>
<exception-reconnect-attempts>0<exception-reconnect-attempts>
<topic-connection-factory>java:/ConnectionFactory</topic-connection-factory>
</jms-remote-commit-provider>

jmx

値の範囲: なし

デフォルト値: なし

親要素 :

機能

管理機能を構成できるようにします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理と監視に関する項を参照してください。

例

<jmx>
<none-jmx/>
<local-jmx>...</local-jmx>
<gui-jmx>...</gui-jmx>
<jmx2-jmx>...</jmx2-jmx>
<mx4j1-jmx>...</mx4j1-jmx>
<wls81-jmx>...</wls81jmx>
</jmx>

jmx2-jmx

値の範囲: なし

デフォルト値: なし

親要素 :

jmx

機能

JMX v.1.2実装を介してリモート管理できるようにします(リモート管理に関するJSR 160をサポート)。Management GroupおよびJSR 160 Groupのオプション・パラメータをサポートします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理グループのオプションのパラメータに関する項とJSR 160グループのオプションのパラメータに関する項をそれぞれ参照してください。

例

<jmx2-jmx>
<MBeanServerStrategy>any-create</MBeanServerStrategy>
<EnableLogMBean>true</EnableLogMBean>
<EnableRuntimeMBean>true</EnableRuntimeMBean>
<NamingImpl>mx4j.tools.naming.NamingService</NamingImpl>
<ServiceURL>service:jmx:rmi://localhost/jndi/jmxservice</ServiceURL>
</jmx2-jmx>

JNDIName

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
JNDIName

機能

リモートJMXアダプタの登録JNDI名。jrmpがデフォルトです。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのリモート・グループのオプションのパラメータに関する項を参照してください。

例

<JNDIName>jrmp</JNDIName>

kodo-broker

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

kodo.BrokerImplを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerImplに関する項を参照してください。

例

<kodo-broker>
<large-transaction>false</large-transaction>
<auto-clear>datastore</auto-clear>
<detach-state>1</detach-stage>
<nontransactional-read>true</nontransactional-read>
<retain-state>false</retain-state>
<evict-from-data-cache>false</evict-from-data-cache>
<detached-new>true</detached-new>
<optimistic>true</optimistic>
<nontransactional-write>flase</nontransactional-write>
<sync-with-managed-transacations>false</sync-with-managed-transactions>
<multithreaded>false</multithreaded>
<populate-data-cache>true</populate-data-cache>
<ignore-changes>false</ignore-changes>
<auto-detach>0</auto-detach>
<restore-state>1</restore-state>
<order-dirty-objects>false</other-dirty-objects>
</kodo-broker>

kodo-concurrent-data-cache

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
data-caches

機能

基本の同時データ・キャッシュを有効にします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュに関する項を参照してください。

例

<data-caches>
<kodo-concurrent-data-cache>
<name>default</name>
<cache-size>1000</cache-size>
<soft-reference-size>0</soft-reference-size>
<eviction-schedule>15,45 15 * * 1</eviction-schedule>
</kodo-concurrent-data-cache>
</data-caches>

kodo-data-cache-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

システム・データ・キャッシュを管理するkodo.datacache.DataCacheManagerを有効にします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.DataCacheManagerに関する項を参照してください。

例

<kodo-data-cache-manager/>

kodo-mapping-repository

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.meta.MetaDataRepositoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.MetaDataRepositoryに関する項を参照してください。

例

<kodo-mapping-repository>
<resolve>3</resolve>
<validate>7</validate>
<source-mode>7</source-mode>
</kodo-mapping-repository>

kodo-persistence-mapping-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

永続クラスのオブジェクト・リレーショナル・マッピング情報の格納および取得に使用するkodo.meta.MetaDataFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。この設定はJPA 1.0で有効です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<kodo-persistence-mapping-factory>
<urls>t3://localhost:7001/metadata.jar</urls>
<files>com/file1;com/file2</files>
<classpath-scan>build</classpath-scan>
<default-access-type>FIELD</default-access-type>
<field-override>true</field-override>
<types>classname1;classname2</types>
<store-mode>1</store-mode>
<strict>false</strict>
<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>
</kodo-persistence-mapping-factory>

kodo-persistence-meta-data-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するkodo.meta.MetaDataFactoryタイプを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、org.apache.openjpa.persistence.PersistenceMetaDataFactory)詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<kodo-persistence-meta-data-factory>
<urls>t3://localhost:7001/metadata.jar</urls>
<files>com/file1;com/file2</files>
<classpath-scan>build</classpath-scan>
<default-access-type>FIELD</default-access-type>
<field-override>true</field-override>
<types>classname1;classname2</types>
<store-mode>1</store-mode>
<strict>false</strict>
<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>
</kodo-persistence-meta-data-factory>

kodo-pooling-data-source

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトで接続プーリングを実行するkodo.jdbc.schema.KodoPoolingDataSourceを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJDBCに関する項を参照してください。

例

<kodo-pooling-data-source>
<connection-user-name>KodoPool</connection-user-name>
<login-timeout>10</login-timeout>
<connection-password>password</connection-password>
<connection-url>jdbc:hsqldb:db-hypersonic</connection-url>
<connection-driver-name>org.hsqldb.jdbcDrier</connection-driver-name>
</kodo-pooling-data-source>

kodo-sql-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

共通のSQLコンストラクトの抽出に使用するkodo.jdbc.SQLFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.SQLFactoryに関する項を参照してください。

例

<kodo-sql-factory>
<advanced-sql>...</advanced-sql>
</kodo-sql-factory>

large-transaction

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

トランザクションで多数のオブジェクトを生成するかどうかを指定するフラグ。

例

<large-transaction>false</large-transaction>

lazy-schema-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベース・スキーマに関する情報の格納および取得に使用するkodo.jdbc.schema.SchemaFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、kodo.jdbc.schema.LazySchemaFactory)。

アプリケーションで永続クラスがロードされる際に、永続クラスのメタデータおよびオブジェクト・リレーショナル・マッピング情報が読み取られます。このファクトリは、java.sql.DatabaseMetaDataインタフェースを使用してスキーマでの反映を行い、読取り対象のマッピング・データとの整合性を確保します。表定義に対する反映は、その表がマッピング情報で示されるまで行われないため、この処理は「レイジー」と呼ばれています。このファクトリは、開発期間中に、マッピング・メタデータとデータベースの整合性を前もって検証する場合に使用します。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<lazy-schema-factory>
<foreign-keys>false</foreign-keys>
<indexes>false</indexes>
<primary-keys>false</primary-keys>
</lazy-schema-factory>

level

値の範囲: 1 | 2 | 3 | 4 | 5

デフォルト値: 4

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ログのレベルを指定します。有効な値は、1(TRACE)、2(DEBUG)、3(INFO)、4(WARN)、5(ERROR)です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの孤立キーに関する項を参照してください。

例

<level>4</level>

local-jmx

値の範囲: なし

デフォルト値: なし

親要素 :

jmx

機能

ローカル管理を有効にします。この設定は、ユーザー定義のメカニズム、あるいはMBeanServerで定義されるメカニズムで管理するため、すべてのMBeanをJMX MBeanServerに登録する必要があるJBossなどの環境で使用するのに適しています。Kodo 4.2.0 JPA/JDO開発者ガイドの管理グループのオプションのパラメータに関する項で説明するように、Management Groupのオプション・パラメータをサポートします。

例

<local-jmx>
<MBeanServerStrategy>any-create</MBeanServerStrategy>
<EnableLogMBean>true</EnableLogMBean>
<EnableRuntimeMBean>true</EnableRuntimeMBean>
</local-jmx>

local-profiling

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

profiling

機能

エクスポートまたはGUIを使用しないプロファイリングを有効にします。プログラムでProfilingAgentにアクセスする場合に役立ちます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのプロファイリングに関する項を参照してください。

例

<profiling>
<local-profiling/>
</profiling>

lock-timeout

値の範囲: 整数

デフォルト値: -1

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ロックを取得するまでのデフォルトの待機時間。値-1を指定すると、制限なく待機します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデフォルト・ロックの構成に関する項を参照してください。

例

<lock-timeout>-1</lock-timeout>

log-factory-impl

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトのロギング・システムを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのKodoロギングに関する項を参照してください。

例

<log-factory-impl>
<diagnostic-context>ID</diagnostic-context>
<default-level>INFO</default-level>
<file>stdout</file>
</log-factory-impl>

log-orphaned-key-action

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

孤立データストア・キーの検出時に呼び出すkodo.event.OrphanedKeyActionを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、kodo.event.LogOrphanedKeyAction)この場合、孤立キーごとにメッセージがロギングされます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの孤立キーに関する項を参照してください。

例

<log-orphaned-key-action>
<channel>openjpa.Runtime</channel>
<level>4</level>
</log-orphaned-key-action>

log4j-log-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ロギングにLog4Jを使用するように指定します。スタンドアロン・アプリケーションの場合、Log4Jロギング・レベルは、log4j.propertiesという名前のリソースによって制御されます。このリソースは、最上位レベルの(jarファイルの最上位レベルにあるか、いずれかのCLASSPATHディレクトリのルートにある)リソースとして利用できる必要があります。WebまたはEJBアアプリケーション・サーバーにデプロイするとき、Log4J構成は、多くの場合プロパティ・ファイルではなくlog4j.xmlファイルで行われます。Log4Jの構成に関する詳細については、Log4Jマニュアル(http://logging.apache.org/)を参照してください。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのLog4Jに関する項を参照してください。

例

<log4j-log-factory/>

login-timeout

値の範囲: 有効なクラス名

デフォルト値 :

kodo-pooling-data-source: 10

simple-driver-data-source: 0

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-pooling-data-source

persistence-configuration
persistence-configuration-unit
simple-driver-data-source

機能

ログイン・タイムアウトを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのKodoデータ・ソースの使用に関する項を参照してください。

例

<login-timeout>0</login-timeout>

lrs-size

値の範囲: query | last | unknown

デフォルト値: query

親要素 :

persistence-configuration
persistence-configuration-unit

機能

結果セットのサイズを指定します。このプロパティは、必要に応じて結果がロードされるよう、fetch-batch-sizeのデフォルト値 -1を変更した場合にのみ使用します。有効な値は次のとおりです:

- query - 問合せ結果のサイズを最初に問い合わせたときに、予想される結果の数がSELECT COUNT(*)問合せで特定されます。報告されるサイズは、トランザクションのステータスおよび設定に応じて、実際の結果の数と若干異なる場合がある点に注意する必要があります。これがデフォルトです。

- last - スクロール可能な結果セット・タイプを選択している場合、ResultSet.lastメソッドが使用され、結果セットの最後の要素に移動し、その索引を取得します。一部のJDBCドライバでは、最後の要素にアクセスするために、すべての結果がメモリーに格納されてしまいます。スクロール可能な結果セット・タイプを選択していない場合は、unknownの動作と同じです。デフォルトの結果セット・タイプはforward-onlyであるため、このプロパティを利用するには、結果セット・タイプを変更する必要があります。

- unknown - 必要に応じたロードを使用する問合せ結果のサイズとして、Integer.MAX_VALUEが返されます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの大きな結果セットに関する項を参照してください。

例

<lrs-size>query</lrs-size>

lru-data-cache

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
data-caches

機能

最長時間未使用(LRU)のデータ・キャッシュ・オプションを設定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのLRUキャッシング・オプションの構成に関する項を参照してください。

例

<data-caches>
<lru-data-cache>
<name>kodo.DataCache</name>
<cache-size>1000</cache-size>
<soft-reference-size>0</soft-reference-size>
<eviction-schedule>15,45 15 * * 1</eviction-schedule>
</lru-data-cache>
</data-caches>

manage-lru

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
inverse-manager

機能

大きな結果セットのフィールドを管理に含めるかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理対象の逆数に関する項を参照してください。

例

<manage-lrs>false</manage-lrs>

mapping

値の範囲: 文字列

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
orm-filie-mapping-factory

機能

子要素がpersistence-configuration-unitの場合、使用するオブジェクトとデータストアのマッピングの識別名を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・メタデータ(JPA)またはマッピング・メタデータの配置(JDO)に関する項を参照してください。

子要素がorm-file-jdor-mapping-factoryの場合、これらのマッピングの論理名を指定します。マッピング・ファイルには、接尾辞がlogicalname.ormのように付きます。論理名を指定しない場合は、kodo.Mapping構成プロパティが使用されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<mapping>org/mag/Magazine-hsql.orm</mapping>

mapping-column

値の範囲: 文字列

デフォルト値: MAPPING_DEF

親要素 :

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
table-jdor-mapping-factory

機能

XMLマッピングを保持する列名を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<mapping-column>MAPPING_DEF</mapping-column>

mapping-defaults-impl

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

default-mapping-defaultsをjdoに設定した場合のデフォルトのマッピング設定を構成します。指定可能な各値の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピングのデフォルトに関する項を参照してください。

例

<mapping-defaults-impl>
<use-class-criteria>false</use-class-criteria>
<base-class-strategy>ColumnPerLockGroupVersionStrategy</base-class-strategy>
<version-strategy>version-number</version-strategy>
<discriminator-column-name>test</discriminator-column-name>
<subclass-strategy>vertical</subclass-strategy>
<index-version>false</index-version>
<index-logical-foreign-keys>true</index-logical-foreign-keys>
<null-indicator-column-name>null</null-indicator-column-name>
<foreign-key-delete-action></foreign-key-delete-action>
<join-foreign-key-delete-action>1</join-foreign-key-delete-action>
<discriminator-strategy>final</discriminator-strategy>
<defer-constraints>false</defer-constraints>
<field-strategies>none</field-strategies>
<version-column-name>version</version-column-name>
<data-store-id-column-name>ID</data-store-id-column-name>
<index-discriminator>true</index-discriminator>
<store-enum-ordinal>false</store-enum-ordinal>
<order-lists>true</order-lists>
<order-column-name>false</order-column-name>
<add-null-indicator>false</add-null-indicator>
<store-unmapped-object-id-string>false</store-unmapped-object-id-string>
</mapping-defaults-impl>

mapping-file-deprecated-jdo-mapping-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

永続クラスのオブジェクト・リレーショナル・マッピング情報の格納および取得に使用するkodo.meta.MetaDataFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。この設定はJDO 1.0で有効です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<mapping-file-deprecated-jdo-mapping-factory>
<use-schema-validation>true</use-schema-validation>
<urls>t3://localhost:7001/metadata.jar</urls>
<files>com/file1;com/file2</files>
<classpath-scan>build</classpath-scan>
<single-file>false</single-file>
<types>classname1;classname2</types>
<store-mode>1</store-mode>
<strict></strict>
<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>
<scan-top-down>false</scan-top-down>
</mapping-file-deprecated-jdo-mapping-factory>

max-active

値の範囲: 整数

デフォルト値: 2

親要素 :

persistence-configuration
persistence-configuration-unit
tcp-remote-commit-provider

機能

クラスタ内の各ピア間で同時に開くTCPソケット(チャネル)の最大許容数を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTCPに関する項を参照してください。

例

<max-active>2</max-active>

max-idle

値の範囲: 整数

デフォルト値: 2

親要素 :

persistence-configuration
persistence-configuration-unit
tcp-remote-commit-provider

機能

クラスタ内の各ピア間で同時に開くTCPソケット(チャネル)の最大許容数を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTCPに関する項を参照してください。

例

<max-idle>2</max-idle>

max-size

値の範囲: 整数

デフォルト値: 2147483647

親要素 :

persistence-configuration
persistence-configuration-unit

機能

問合せ文字列とその解析形式の関連付けに使用する同時ハッシュ・マップの最大サイズを定義します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの問合せコンパイルのキャッシュに関する項を参照してください。

例

<max-size>2147483647</max-size>

maximize-batch-size

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
constraint-update-manager

persistence-configuration
persistence-configuration-unit
batching-operation-order-update-manager

persistence-configuration
persistence-configuration-unit
table-lock-update-manager

機能

文のバッチ処理が有効な場合に、バッチ・サイズを最適化するために文をソートするかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.UpdateManagerに関する項を参照してください。

例

<maximize-batch-size>true</maximize-batch-size>

MBeanServerStrategy

値の範囲: any-create | create | agentID:<agentID>

デフォルト値: any-create

親要素 :

jmx
local-jmx

機能

Kodoは、JMXベースの管理が有効な場合、以下のいずれかのオプションに基づいて、既存のMBeanServerを特定するか、新たに作成する必要があります。

- any-create - 既存のMBeanServerを特定します。複数検出された場合は、最初のサーバーを使用します。何も検出されなかった場合は、新しいサーバーを作成します。これがデフォルトです。

- create - 新しいサーバーを作成します。既存のMBeanServerの検出は試行しません。

- agentId:<agentID> - 指定したエージェントIDを持つ既存のMBeanServerを特定します。何も検出されなかった場合は、新しいサーバーを作成します。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理グループのオプションのパラメータに関する項を参照してください。

例

<MBeanServerStrategy>any-create</MBeanServerStrategy>

multithreaded

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

永続インスタンスおよびKodoコンポーネントが一度に複数のスレッドによってアクセスされるかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.Multithreadedに関する項を参照してください。

例

<multithreaded>false</multithreaded>

mx4j1-jmx

値の範囲: なし

デフォルト値: なし

親要素 :

jmx

機能

MX4J v.1.x実装を介したリモート管理を有効にします(1.2より前のバージョンのJMX仕様をサポート)。Management GroupおよびRemote Groupのオプション・パラメータをサポートします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理グループのオプションのパラメータに関する項とリモート・グループのオプションのパラメータに関する項をそれぞれ参照してください。

例

<mx4j1-jmx>
<MBeanServerStrategy>any-create</MBeanServerStrategy>
<EnableLogMBean>true</EnableLogMBean>
<EnableRuntimeMBean>true</EnableRuntimeMBean>
<Host>localhost</Host>
<Port>1099</Port>
<JNDIName>jrmp</JNDIName>
</mx4j1-jmx>

mysql-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

MySQLディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのMySQLディクショナリの構成に関する項を参照してください。

例

mysql-dictionary要素の下位要素は、access-dictionaryと同じです。さらに以下の下位要素(デフォルト値を表示)も持ちます。

<mysql-dictionary>
...
<table-type>innodb</table-type>
<use-clobs>true</use-clobs>
<driver-deserializes-blobs>true</driver-deserializes-blobs>
</mysql-dictionary>

name

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
data-cache

persistence-configuration
persistence-configuration-unit
db-dictionary

persistence-configuration
persistence-configuration-unit
jms-remote-commit-provider

persistence-configuration
persistence-configuration-unit
property-type

persistence-configuration
persistence-configuration-unit
query-cache

persistence-configuration
persistence-configuration-unit
single-jvm-remote-commit-provider

persistence-configuration
persistence-configuration-unit
tcp-remote-commit-provider

persistence-configuration
persistence-configuration-unit
cluster-remote-commit-provider

機能

対応する要素の名前を指定します。

name-column

値の範囲: 文字列

デフォルト値: Name

親要素 :

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

persistence-configuration
peristence-configuration-unit
table-jdor-mapping-factory

機能

マッピング名を保持する列の名前。クラスのマッピングの場合、マッピング名はクラス名です。名前が付けられた問合せおよびシーケンスの場合は、そのシーケンスまたは問合せの名前です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<name-column>NAME</name-column>

NamingImpl

値の範囲: 有効なクラス名

デフォルト値: なし

親要素 :

jmx
jmx2-jmx

機能

RMIコネクタをJNDI名に登録するために開始するネーミング・サービス実装のクラス名。デフォルトのmx4j.tools.naming.NamingServiceは、MX4J v. 2.xに適しています。空の文字列を指定すると、ネーミング・サービスが開始されません。この設定は、ネーミング・サービスが実行されているか、非RMIコネクタが使用されている場合に適しています。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJSR 160グループのオプションのパラメータに関する項を参照してください。

例

<NamingImpl>mx4j.tools.naming.NamingService</NamingImpl>

native-jdbc-seq

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

独自のカスタム・ジェネレータの作成に使用するkodo.kernel.Seqインタフェースを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここではkodo.jdbc.kernel.NativeJDBCSeq)。

ほとんどのデータベースには、増分数を取得するための「ネイティブ・シーケンス」という概念のメカニズムが組み込まれています。Oracleの場合、CREATE SEQUENCE MYSEQUENCEなどの文でデータベース・シーケンスを作成することができます。シーケンス値は、SELECT MYSEQUENCE.NEXTVAL FROM DUAL文で自動的に取得およびインクリメントすることができます。Kodoでは、この一般的なシーケンス生成メカニズムをNativeJDBCSeqでサポートしています。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<native-jdbc-seq>
<type>0</type>
<allocate>50</allocate>
<table-name>DUAL</table-name>
<initial-value>1</intial-value>
<sequence>OPENJPA_SEQUENCE</sequence>
<sequence-name>OPENJPA_SEQUENCE</sequence-name>
<format>format</format>
<increment>1</increment>
</native-jdbc-seq>

none-jmx

値の範囲: なし

デフォルト値: なし

親要素 :

jmx

機能

管理は有効になりません。これがデフォルトです。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの構成に関する項を参照してください。

例

<none-jmx/>

none-lock-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ロックを行わないkodo.kernel.NoneLockManagerを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのロック・マネージャに関する項を参照してください。

例

<none-lock-manager/>

none-log-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ロギングを無効にします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのロギングの無効化に関する項を参照してください。

例

<none-log-factory/>

none-orphaned-key-action

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

孤立データストア・キーの検出時に呼び出すkodo.event.OrphanedKeyActionを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、kodo.event.NoneOrphanedKeyAction)この場合、孤立キーは無視されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの孤立キーに関する項を参照してください。

例

<none-orphaned-key-action/>

none-profiling

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

profiling

機能

コードのプロファイリングを無効にします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのプロファイリングに関する項を参照してください。

例

<profiling>
<none-profiling/>
</profiling>

nontransactional-read

値の範囲: true | false

デフォルト値 :

persistence-configuration: false

kodo-broker: true

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

Kodoランタイムでトランザクション外のデータの読取りを可能にするかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.NontransacationalReadに関する項を参照してください。

例

<nontransactional-read>true</nontransactional-read>

nontransactional-write

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

トランザクション外の永続性に関する処理および永続オブジェクトの変更を可能にするかどうかを指定するフラグ。変更は、次のトランザクションに反映されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.NontransacationalWriteに関する項を参照してください。

例

<nontransactional-write>false</nontransactional-write>

num-broadcast-threads

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
tcp-remote-commit-provider

機能

ピアにイベントを送信するために作成するスレッドの数を指定します。これは、同時トランザクション数の増加に伴い、大きな値にする必要があります。最大同時トランザクション数は、接続プールのサイズに依存します。Kodo 4.2.0 JPA/JDO開発者ガイドのKodoデータ・ソースの使用に示すkodo.ConnectionFactoryPropertiesのMaxActiveプロパティの説明を参照してください。0に設定すると、commitを呼び出すスレッドが直接ブロードキャストします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTCPに関する項を参照してください。

例

<num-broadcast-threads>2<num-broadcast-threads>

operation-order-update-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

オブジェクトレベルの処理順序でSQLを記述する更新マネージャを定義します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.jdbc.UpdateManagerに関する項を参照してください。

例

<operation-order-update-manager/>

optimistic

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

データストアのトランザクション・モードをオプティミスティックにするかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.Optimisticに関する項を参照してください。

例

<optimistic>true</optimistic>

oracle-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

Oracleディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのOracleディクショナリの構成に関する項を参照してください。

例

oracle-dictionary要素の下位要素は、access-dictionaryと同じです。さらに以下の下位要素(デフォルト値を表示)も持ちます。

<oracle-dictionary>
...
<use-triggers-for-auto-assign>false</use-triggers-for-auto-assign>
<auto-assign-sequence-name>false</auto-assign-sequence-name>
<use-set-form-of-use-for-unicode>true</use-set-form-of-use-for-unicode>
</oracle-dictionary>

oracle-savepoint-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

トランザクションのセーブポイントの管理に使用するkodo.kernel.SavepointManagerを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します。(ここでは、デフォルトのkodo.jdbc.sql.OracleSavepointManager)このプラグインの動作は、jdbc3-savepoint-managerと似ていますが、このプラグインではOracle固有の呼出しを使用します。このプラグインを使用するには、バージョン9.2以上のOracle JDBCドライバおよびデータベースを使用する必要があります。このプラグインは、データベースへのフラッシュの発行によりセーブポイントを実装します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのセーブポイントに関する項を参照してください。

例

<oracle-savepoint-manager/>

orm-file-jdor-mapping-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

.ormファイルにマッピング・メタデータを格納するkodo.jdo.jdbc.ORMFileJDORMappingFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。この設定はJDO 1.0で有効です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<orm-file-jdor-mapping-factory>
<use-schema-validation>true</use-schema-validation>
<mapping>mapping</mapping>
<urls>t3://localhost:7001/metadata.jar</urls>
<files>com/file1;com/file2</files>
<classpath-scan>build</classpath-scan>
<types>classname1;classname2</types>
<store-mode>1</store-mode>
<strict>false</strict>
<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>
<scan-top-down>false</scan-top-down>
</orm-file-jdor-mapping-factory>

order-dirty-objects

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

ダーティ・オブジェクトに対して行われた変更をデータベースに書き戻す際に、その変更の順序を維持するかどうかを指定するフラグ。

例

<order-dirty-objects>false</order-dirty-objects>

Password

値の範囲: なし

デフォルト値: なし

親要素 :

jmx
wls81-jmx

機能

WebLogic MBeanServerへのアクセスに使用されるパスワード。この要素は設定する必要があります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのWebLogic 8.1グループのオプションのパラメータに関する項を参照してください。

例

<Password>admin</Password>

persistence-configuration

値の範囲: なし

デフォルト値: なし

親要素: なし

機能

永続デプロイメント記述子のルート要素。

persistence-configuration-unit

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration

機能

WebLogic Serverで利用可能な永続性ユニットのデプロイメント情報を格納します。

pessimistic-lock-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

ロックされているオブジェクトに対応するデータベース行をロックするSELECT FOR UPDATE文(または同等のデータベース文)を使用するkodo.jdbc.kernel.PessimisticLockManagerを指定します。このロック・マネージャでは、読取りロックと書込みロックが区別されず、すべて書込みロックとなります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのロック・マネージャに関する項を参照してください。

例

<pessimistic-lock-manager>
<version-check-on-read-lock>false</version-check-on-read-lock>
<version-update-on-write-lock>false</version-update-on-write-lock>
</pessimistic-lock-manager>

persistence-mapping-defaults

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

default-mapping-defaultsをjpaに設定した場合のデフォルトのマッピング設定を構成します。指定可能な各値の詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピングのデフォルトに関する項を参照してください。

例

persistence-mapping-defaults要素の下位要素は、mapping-defaults-implと同じです。

populate-data-cache

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

データ・キャッシュへ格納するかどうかを指定するフラグ。月に一度のみの包括的なレポートの実行など、他のトランザクションがアクセスすることがほとんどないと分かっているオブジェクトに現在のトランザクションがアクセスする場合、すぐにまたアクセスすることがないオブジェクトでデータ・キャッシュ全体が埋まらないよう、データ・キャッシュへの格納を無効にすることができます。

例

<populate-data-cache>true</populate-data-cache>

Port

値の範囲: なし

デフォルト値: なし

親要素 :

jmx
mx4j1-jmx

機能

RMIレジストリ・ネーミング・サービスがリスニングするポート。1099がデフォルトです。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのリモート・グループのオプションのパラメータに関する項を参照してください。

例

<Port>1099</Port>

port

値の範囲: 有効なポート

デフォルト値: 以下参照(親要素によって異なります)

親要素 :

persistence-configuration
persistence-configuration-unit
tcp-transport

persistence-configuration
persistence-configuration-unit
tcp-remote-commit-provider

機能

サーバーがリスニングするポートを指定します。この設定は、サーバーではなく、クライアントが使用します。

親要素がtcp-transportの場合、5637がデフォルトです。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスタンドアロンの永続性サーバーに関する項を参照してください。

親要素がtcp-remote-commit-providerの場合、5636がデフォルトです。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTCPに関する項を参照してください。

例

<port>5637</port>

postgres-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

Postgresディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのPostgresディクショナリの構成に関する項を参照してください。

例

postgres-dictionary要素の下位要素は、access-dictionaryと同じです。さらに以下の下位要素(デフォルト値を表示)も持ちます。

<postgres-dictionary>
...
<all-sequences-sql>SELECT NULL AS SEQUENCE_SCHEMA, relname AS SEQUENCE_NAME FROM pg_class WHERE relkind='S'</all-sequence-sql>
<named-sequences-from-all-schemas-sql>SELECT NULL AS SEQUENCE_SCHEMA, relname AS SEQUENCE_NAME FROM pg_class WHERE relkind='S' AND relname = ?"</named-sequences-from-all-schemas-sql>
<all-sequences-from-one-schema-sql>SELECT NULL AS SEQUENCE_SCHEMA, relname AS SEQUENCE_NAME FROM pg_class, pg_namespace WHERE relkind='S' AND pg_class.relnamespace = pg_namespace.oid AND nspname = ?</all-sequences-from-one-schema-sql>
<named-sequences-from-one-schema-sql>SELECT NULL AS SEQUENCE_SCHEMA, relname AS SEQUENCE_NAME FROM pg_class, pg_namespace WHERE relkind='S' AND pg_class.relnamespace = ?</named-sequences-from-one-schema-sql>
<supports-set-fetch-size>true</supports-set-fetch-size>
</postgres-dictionary>

primary-key-column

値の範囲: 文字列

デフォルト: ID

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-schema-factory

persistence-configuration
persistence-configuration-unit
value-table-jdbc-seq

機能

表の数字の主キー列の名前を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項またはスキーマ・ファクトリに関する項を参照してください。

例

<primary-key-column>ID</primary-key-column>

primary-key-value

値の範囲: 文字列

デフォルト値: DEFAULT

親要素 :

persistence-configuration
persistence-configuration-unit
value-table-jdbc-seq

機能

該当インスタンスで使用される主キーを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<primary-key-value>DEFAULT</primary-key-value>

primary-keys

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
lazy-schema-factory

機能

スキーマの検証時に、主キー情報を自動的に読み取るかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<primary-keys>false</primary-keys>

profiling

値の範囲: なし

デフォルト値: なし

親要素: なし

機能

アプリケーション・コードのプロファイリングを構成できます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのプロファイリングに関する項を参照してください。

例

<profiling>
<export-profiling>
<interval-millis>-1</interval-millis>
<base-name>name</base-name>
</export-profiling>
</profiling>
<profiling>
<gui-profiling/>
</profiling>
<profiling>
<local-profiling/>
</profiling>
<profiling>
<none-profiling/>
</profiling>

profiling-proxy-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

プロファイリング・プロキシ・マネージャを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・プロキシに関する項を参照してください。

例

<profiling-proxy-manager>
<assert-allowed-type>false</assert-allowed-type>
<track-changes>true</track-changes>
</profiling-proxy-manager>

properties

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
aggregate-listener
custom-aggregate-listener

persistence-configuration
persistence-configuration-unit
custom-broker-factory

persistence-configuration
persistence-configuration-unit
custom-broker-impl

persistence-configuration
persistence-configuration-unit
custom-class-resolver

persistence-configuration
persistence-configuration-unit
custom-compatibility

persistence-configuration
persistence-configuration-unit
custom-connection-decorator

persistence-configuration
persistence-configuration-unit
custom-data-cache

persistence-configuration
persistence-configuration-unit
custom-dictionary

persistence-configuration
persistence-configuration-unit
custom-driver-data-source

persistence-configuration
persistence-configuration-unit
custom-filter-listener

persistence-configuration
persistence-configuration-unit
custom-jdbc-listener

persistence-configuration
persistence-configuration-unit
custom-lock-manager

persistence-configuration
persistence-configuration-unit
custom-logType

persistence-configuration
persistence-configuration-unit
custom-mapping-defaults

persistence-configuration
persistence-configuration-unit
custom-meta-data-respository

persistence-configuration
persistence-configuration-unit
custom-orphaned-key-action

persistence-configuration
persistence-configuration-unit
custom-persistence-server

persistence-configuration
persistence-configuration-unit
custom-proxy-manager

persistence-configuration
persistence-configuration-unit
custom-query-cache

persistence-configuration
persistence-configuration-unit
custom-query-compilation

persistence-configuration
persistence-configuration-unit
custom-remote-commit-provider

persistence-configuration
persistence-configuration-unit
custom-savepoint-manager

persistence-configuration
persistence-configuration-unit
custom-seq

persistence-configuration
persistence-configuration-unit
custom-sql-factory

persistence-configuration
persistence-configuration-unit
custom-update-manager

機能

1つまたは複数のproperty要素を指定します。

property

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
properties

機能

プロパティの名前と値を指定できます。

例

<property>
<name>timeout</name>
<value>1000</value>
</property>

proxy-manger-impl

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

デフォルトのプロキシ・マネージャを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・プロキシに関する項を参照してください。

例

<proxy-manager-impl>
<assert-allowed-type>false</assert-allowed-type>
<track-changes>true</track-changes>
</proxy-manager-impl>

query-caches

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データストアからロードされた問合せのキャッシュに使用するkodo.datacache.QueryCache実装を表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの問合せキャッシュに関する項を参照してください。

例

<query-caches>
<default-query-cache>...</default-query-cache>
</query-caches>
<query-caches>
<kodo-concurrent-query-cache>...</kodo-concurrent-query-cache>
</query-caches>
<query-caches>
<gem-fire-query-cache>...</gem-fire-query-cache>
</query-caches>
<query-caches>
<lru-query-cache>...</lru-query-cache>
</query-caches>
<query-caches>
<tangosol-query-cache>...</tangosol-query-cache>
</query-caches>
<query-caches>
<disabled-query-cache>...</disabled-query-cache>
</query-caches>
<query-caches>
<custom-query-cache>...</custom-query-cache>
</query-caches>

quoted-numbers-in-queries

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
compatibility

機能

問合せ文字列内の引用符で囲まれた数値を、文字列ではなく数値として解釈するかどうかを指定するフラグ。trueに設定すると、3.1以前のKodoと同様、引用符で囲まれた数値が数値として処理されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<quoted-numbers-in-queries>false</quoted-numbers-in-queries>

read-lock-level

値の範囲: none | read | write |ロック・マネージャ固有のロック・レベル(数値)

デフォルト値: read

親要素 :

persistence-configuration
persistence-configuration-unit

機能

非オプティミスティック・トランザクション中に所得されたオブジェクトをロックする際の、デフォルトの読取りレベルを設定します。有効な値は次のとおりです:

- none - ロック・レベルなし。

- read - 読取りロック・レベル。

- write - 書込みロック・レベル。

- ロック・マネージャ固有のロック・レベルの数値。

注意:

デフォルトのJDBCロック・マネージャでは、readおよびwriteの両ロック・レベルは同じです。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのオブジェクトのロックに関する項を参照してください。

例

<read-lock-level>read</read-lock-level>

recover-action

値の範囲: none | clear

デフォルト値: none

親要素 :

persistence-configuration
persistence-configuration-unit
cluster-remote-commit-provider

機能

リカバリ中に実行する処理を指定します。有効な値は次のとおりです:

- none - 処理を実行しません。

- clear - 通知をクリアします。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのリモート・コミット・プロバイダの構成に関する項を参照してください。

例

<recover-action>none</recover-action>

recovery-time-millis

値の範囲: 整数

デフォルト値: 15000

親要素 :

persistence-configuration
persistence-configuration-unit
tcp-remote-commit-provider

機能

クラスタのピアへの接続が失われた場合に、そのピアへの再接続を試行するまでの待機時間をミリ秒単位で指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTCPに関する項を参照してください。

例

<recovery-time-millis>15000</recovery-time-millis>

resources

値の範囲: 有効なリソース名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
tangosol-data-cache

機能

メタデータ・ファイルまたはjarアーカイブのリソースのパスを、セミコロン区切りのリストで指定します。各jarアーカイブでは、使用しているメタデータ・ファクトリに基づいて、アノテーションが付いたJPAエンティティまたはJDOメタデータ・ファイルがスキャンされます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>

restore-state

値の範囲: true

persistence-configuration-unit: all | immutable | none | true | false

kodo-broker: 1 | 2 | 3 | 4 | 5

デフォルト値: none

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

ロールバック時に、管理対象フィールドをトランザクション前の値にリストアするかどうかを指定するフラグ。

有効な値は次のとおりです:

- all (1) - すべての管理対象値をリストアします。

- none (2) - 状態をロールバックしません。オブジェクトは空になり、次にアクセスされたときに元の状態を再ロードします。

- immutable (3) - 不変の値(プリミティブ、プリミティブ・ラッパー、文字列)をリストアし、次のアクセス時に再ロードされるよう可変値をクリアします。

- true (4) - allと同じです。

- false (5) - noneと同じです。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの状態のリストアに関する項を参照してください。

例

<restore-state>none</restore-state>

result-set-type

値の範囲: forward--only | scroll-sensitive | scroll-insensitive

デフォルト値: forward-only

親要素 :

persistence-configuration
persistence-configuration-unit

機能

結果リストをフェッチする際に使用するJDBC結果セット・タイプを指定します。この設定は、実行時にも変更することができます。

有効な値は次のとおりです:

- forward-only - カーソルが前方にのみ移動可能な結果セット。結果セットは更新されません。

- scroll-sensitive - 他のユーザーによる変更の影響を受けるスクロール可能な結果セット。結果セットは更新されます。

- scroll-insenstive - 他のユーザーによる変更の影響を受けないスクロール可能な結果セット。結果セットは更新されます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの大きな結果セットに関する項を参照してください。

例

<result-set-type>forward-only</result-set-type>

retain-state

値の範囲: true | false

デフォルト値: 以下参照(親によって異なります)

親要素 :

persistence-configuration
persistence-configuration-unit

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

トランザクションのコミット時に、永続フィールドが値を保持するかどうかを指定するフラグ。親要素がpersistence-configuration-unitの場合はtrue、親要素がkodo-brokerの場合はfalseがデフォルトです。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.RetainStateに関する項を参照してください。

例

<retain-state>true</retain-state>

retry-class-registration

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit

機能

永続クラスを完全に処理できない場合に、例外をスローせずに警告をログに記録し、登録を遅延させるかどうかを指定するフラグ。この要素は、セキュリティ上、登録されたクラスを読み取れないような複雑なクラスローダーの状況でのみ使用してください。無用にtrueに設定すると、より重大な問題を把握しにくくなる可能性があります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.RetryClassRegistrationに関する項を参照してください。

例

<retry-class-registration>false</retry-class-registration>

scan-top-down

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
deprecated-jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
extension-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
mapping-file-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
orm-file-jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

機能

パッケージ・ツリーの上位レベルから下位レベルへメタデータ・ファイルを検索するかどうかを指定するフラグ。デフォルトでは、下位レベルから上位レベルへスキャンされます。たとえば、クラスCのメタデータのスキャンでは、最初にC.jdo、package.jdoの順にCのパッケージ内で検索され、次に親パッケージ内のpackage.jdoが検索されます。このように、最終的にパッケージのルートまで検索されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<scan-top-down>false</scan-top-down>

schema

値の範囲: 文字列

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

未修飾表名の先頭に付加されるデフォルトのスキーマ名を指定します。また、新しい表が作成されるスキーマを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデフォルトのスキーマに関する項を参照してください。

例

<schema>SCHEMA</schema>

schema-column

値の範囲: 文字列

デフォルト値: SCHEMA_DEF

親要素 :

persistence-configuration
persistence-configuration-unit
table-schema-factory

機能

スキーマ定義をXML文字列として格納する、表の文字列型の列の名前を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<schema-column>SCHEMA_DEF</schema-column>

schemas

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

永続データに使用するスキーマまたは表、あるいはその両方を、カンマ区切りのリストで指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・リストに関する項を参照してください。

例

<schemas>BUSOBJS,GENERAL.ADDRESS,.SYSTEM_INFO </schemas>

sequence

値の範囲: なし

デフォルト値: OPENJPA_SEQUENCE

親要素 :

persistence-configuration
persistence-configuration-unit
native-jdbc-seq

機能

データベース・シーケンスの名前を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<sequence>OPENJPA_SEQUENCE</sequence>

sequence-column

値の範囲: 文字列

デフォルト値: SEQUENCE_VALUE

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-jdbc-seq

persistence-configuration
persistence-configuration-unit
value-table-jdbc-seq

機能

現在のシーケンス値を保持する列名を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<sequence-column>SEQUENCE_VALUE</sequence-column>

sequence-name

値の範囲: 文字列

デフォルト値: OPENJPA_SEQUENCE

親要素 :

persistence-configuration
persistence-configuration-unit
native-jdbc-seq

機能

データベース・シーケンスの名前を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<sequence-name>OPENJPA_SEQUENCE</sequence-name>

ServiceURL

値の範囲: 有効なサービスURL

デフォルト値: service:jmx:rmi://localhost/jndi/jmxservice

親要素 :

jmx
jmx2-jmx

機能

JMXコネクタ・サーバーが登録される際のJMXサービスURL名。デフォルトのservice:jmx:rmi://localhost/jndi/jmxserviceは、RMIコネクタがJNDI名jmxseviceで使用および登録されることを示しています。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJSR 160グループのオプションのパラメータに関する項を参照してください。

例

<ServiceURL>service:jmx:rmi://localhost/jndi/jmxservice</ServiceURL>

simple-driver-data-source

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

Kodoデータ・ソース実装を構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのKodoデータ・ソースの使用に関する項を参照してください。

例

<simple-driver-data-source>
<connection-user-name>user</connection-user-name>
<login-timeout>10</login-timeout>
<connection-password>password</connection-password>
<connection-url>jdbc:hsqldb:db-hypersonic</connection-url>
<connection-driver-name>org.hsqldb.jdbcDrier</connection-driver-name>
</simple-driver-data-source>

single-file

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
mapping-file-deprecated-jdo-mapping-factory

機能

単一のファイルを使用するかどうかを指定するフラグ。

例

<single-file>false</single-file>

single-jvm-exclusive-lock-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

kodo.kernel.SingleJVMExclusiveLockManagerを指定します。このロック・マネージャは、インメモリー・ミューテックスを使用して、オブジェクトIDの排他ロックを取得します。データベース・レベルのロックは行われません。また、読取りロックと書込みロックが区別されず、すべて書込みロックとなります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのロック・マネージャに関する項を参照してください。

例

<single-jvm-exclusive-lock-manager>
<version-check-on-read-lock>false</version-check-on-read-lock>
<version-check-on-write-lock>false</version-check-on-write-lock>
</single-jvm-exclusive-lock-manager>

single-jvm-remote-commit-provider

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

同じJVM内のpersistenceManagerFactories間でコミット通知を共有するようにKodoを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのリモート・コミット・プロバイダの構成に関する項を参照してください。

例

<single-jvm-remote-commit-provider>
<name>kodo.RemoteCommitProvider</name>
</single-jvm-remote-commit-provider>

soft-reference-size

値の範囲: 整数

デフォルト値: -1

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-concurrent-data-cache

persistence-configuration
persistence-configuration-unit
kodo-concurrent-query-cache

persistence-configuration
persistence-configuration-unit
lru-data-cache

persistence-configuration
persistence-configuration-unit
lru-query-cache

persistence-configuration
persistence-configuration-unit
query-compilation-cache

機能

維持されるソフト参照の数を設定します。キャッシュまたは問合せの最大サイズに達すると、ランダム・エントリはソフト参照マップに移され、もうしばらく維持されます。デフォルト値の-1では、無限数のソフト参照が維持されます。ソフト参照を無効にするには、このプロパティを0に設定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュ・サイズの構成に関する項と問合せキャッシュに関する項を参照してください。

例

<soft-reference-size>-1</soft-reference-size>

so-timeout

値の範囲: 整数

デフォルト値: 0

親要素 :

persistence-configuration
persistence-configuration-unit
http-transport

機能

ソケット読込みのタイムアウト時間をミリ秒単位で指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスタンドアロンの永続性サーバーに関する項を参照してください。

例

<so-timeout>0</so-timeout>

sql-server-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

SQLServerディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSQLServerディクショナリの構成に関する項を参照してください。

例

sql-server-dictionary要素の下位要素は、access-dictionaryと同じです。さらに以下の下位要素(デフォルト値を表示)も持ちます。

<sql-server-dictionary>
...
<unique-identifier-as-varbinary>true</unique-identifier-as-varbinary>
</sql-server-dictionary>

stack-execution-context-name-provider

値の範囲: なし

デフォルト値: なし

親要素 :

execution-context-name-provider

機能

プロバイダが現在のスレッドのスタックを検査し、その情報に基づき実行コンテキスト名を作成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの実行コンテキスト名プロバイダの構成に関する項を参照してください。

例

<stack-execution-context-name-provider>
<style>full</style>
</stack-execution-context-name-provider>

store-mode

値の範囲: 整数

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
deprecated-jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
extension-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-meta-data-factory

persistence-configuration
persistence-configuration-unit
mapping-file-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
orm-file-jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
table-jdor-mapping-factory

機能

データ・ストアのモードを指定します。

例

<store-mode>1</store-mode>

strict

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
deprecated-jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
extension-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-meta-data-factory

persistence-configuration
persistence-configuration-unit
mapping-file-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
orm-file-jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
table-jdor-mapping-factory

機能

厳密なモードを有効にするかどうかを指定するフラグ。

例

<strict>true</strict>

strict-identity-values

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
compatibility

機能

アプリケーションIDインスタンスの検索に使用するID値が、完全に正しい型でなければならないかどうかを指定するフラグ。デフォルトでは、文字列化されたID値が許容され、数値型間で変換が行われます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<strict-identity-values>false</strict-identity-values>

style

値の範囲: line | partial | full

デフォルト値: なし

親要素 :

execution-context-name-provider
stack-execution-context-name-provider

機能

プロバイダが現在のスレッドのスタックを検査し、その情報と以下の設定に基づき、実行コンテキスト名を作成します。

- line - 名前は、クラス名、メソッド名、行番号などを含む(存在する場合)、最初の非Kodoスタック行になります。

- partial - フル・スタック・トレースからKodoの行が引かれたものが使用されます。

- full - スタック・トレース全体が使用されます。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの実行コンテキスト名プロバイダの構成に関する項を参照してください。

例

<style>full</style>

subclass-fetch-mode

値の範囲: join | multiple | none | parallel | single

デフォルト値: join

親要素 :

execution-context-name-provider
stack-execution-context-name-provider

機能

他の表にあるサブクラス・データの選択に使用する方法を指定します。有効な値については、「eager-fetch-mode」を参照してください。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドののイーガー・フェッチに関する項を参照してください。

例

<subclass-fetch-mode>join</subclass-fetch-mode>

sybase-dictionary

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

Sybaseディクショナリの永続性プラグインの構成値。指定可能な各値の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSybaseディクショナリの構成に関する項を参照してください。

例

sybase-dictionary要素の下位要素は、access-dictionaryと同じです。さらに以下の下位要素(デフォルト値を表示)も持ちます。

<sybase-dictionary>
...
<create-identity-column>true</create-identity-column>
<identity-column-name>UNQ_INDEX</identity-column-name>
</sybase-dictionary>

sync-with-managed-transactions

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
kodo-broker

機能

管理対象トランザクションと同期するかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのkodo.BrokerImplに関する項を参照してください。

例

<sync-with-managed-transactions>false</sync-with-managed-transactions>

synchronize-mappings

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration

機能

すべての永続クラスに対してマッピング・ツールを実行し、永続クラスのマッピングとスキーマを実行時に同期させるかどうかを制御します。この要素により、マッピング・ツールを手動で実行する手間が省かれ、テストやデバッグを短時間で完了することができます。詳細については、Kodo開発者ガイドのランタイム転送マッピングに関する項を参照してください。

例

<synchronize-mappings>false</synchronize-mappings>

table

値の範囲: 文字列

デフォルト値: 以下参照

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
table-schema-factory

persistence-configuration
persistence-configuration-unit
value-table-jdbc-seq

機能

表の名前を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。デフォルト値は、次に示すように親要素によって異なります。

- class-table-jdbc-seq: OPENJPA_SEQUENCE_TABLE

- table-jdbc-seq: OPENJPA_SEQUENCE_TABLE

- table-jdor-mapping-factory: KODO_JDO_MAPPINGS

- table-schema-factory: OPENJPA_SCHEMA

- value-table-jdbc-seq: OPENJPA_SEQUENCES_TABLE

例

<table>KODO_JDO_MAPPING</table>

table-deprecated-jdo-mapping-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベース表にマッピング・メタデータをXML文字列として格納するkodo.jdo.jdbc.TableJDORMappingFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。この設定はJDO 1.0で有効です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<table-deprecated-jdo-mapping-factory>
<table-name>JDO_MAPPING</table-name>
<urls>t3://localhost:7001/metadata.jar</urls>
<classpath-scan>build</classpath-scan>
<types>classname1;classname2</types>
<mapping-column>MAPPING_DEF</mapping-column>
<store-mode></store-mode>
<strict>false</strict>
<name-column>NAME</name-column>
<use-schema-validation>false</use-schema-validation>
<single-row>false</single-row>
<files>com/file1;com/file2</files>
<scan-top-down>false</scan-top-down>
<resources>com/aaa/package.jdo;com/bbb/package.jdo</resources>
</table-deprecated-jdo-mapping-factory>

table-jdbc-seq

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

独自のカスタム・ジェネレータの作成に使用するkodo.kernel.Seqインタフェースを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、kodo.jdbc.kernel.TableJDBCSeq)。

TableJDBCSeqは、特殊な単一行の表にグローバル・シーケンス番号を格納します。この表は、この表を必要とするクラスに対してマッピング・ツールを最初に実行したときに存在しない場合は作成されます。表の操作には、そのクラスのmainメソッドやsequencetableシェル/バッチ・スクリプトを使用することもできます(使用方法の詳細は、JavadocのTableJDBCSeq.mainメソッドを参照)。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<table-jdbc-seq>
<type>0</type>
<allocate>50</allocate>
<table-name>OPENJPA_SEQUENCE_TABLE</table-name>
<table>OPENJPA_SEQUENCE_TABLE</table>
<primary-key-column>ID</primary-key-column>
<sequence-column>SEQUENCE_VALUE</sequence-column>
<increment>1</increment>
</table-jdbc-seq>

table-jdor-mapping-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベース表にマッピング・メタデータをXML文字列として格納するkodo.jdo.jdbc.TableJDORMappingFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)。この設定はJDO 2.0で有効です。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<table-jdor-mapping-factory>
<use-schema-validation>false</use-schema-validation>
<type-column>0</type-column>
<constraint-names>false</constraint-names>
<table>KODO_JDO_MAPPINGS</table>
<types>classname1;classname2</types>
<store-mode></store-mode>
<mapping-column>false</mapping-column>
<strict>false</strict>
<name-column>NAME</name-column>
</table-jdor-mapping-factory>

table-lock-update-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

外部キーおよび自動インクリメントを無視し、表レベルのロックを最適化する、文のバッチ処理が可能な更新マネージャを定義します。これは、表レベルのロックを使用し、デッドロックの回避を試みる場合に役立ちます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのデータ・キャッシュ・サイズの構成に関する項と問合せキャッシュに関する項を参照してください。

例

<table-lock-update-manager>
<maximize-batch-size>true</maximize-batch-size>
</table-lock-update-manager>

table-name

値の範囲: 文字列

デフォルト値: 以下参照

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

persistence-configuration
persistence-configuration-unit
native-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
table-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-schema-factory

persistence-configuration
persistence-configuration-unit
value-table-jdbc-seq

機能

表の名前を指定します。

デフォルト値は、以下に示すように親要素によって異なります。

- class-table-jdbc-seq: OPENJPA_SEQUENCES_TABLE。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

- native-jdbc-seq: DUAL。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

- table-deprecated-jdo-mapping-factory: JDO_MAPPING。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

- table-jdbc-seq: OPENJPA_SEQUENCE_TABLE。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

- table-schema-factory: OPENJPA_SCHEMA。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

- value-table-jdbc-seq: OPENJPA_SEQUENCE_TABLE。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<table-name>JDO_MAPPING</table-name>

table-schema-factory

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

データベース・スキーマに関する情報の格納および取得に使用するkodo.jdbc.schema.SchemaFactoryを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、kodo.jdbc.schema.TableSchemaFactory)。

このスキーマ・ファクトリは、スキーマ情報をXMLドキュメントとしてデータベース表(スキーマ・ファクトリがこのために作成)に格納します。このファクトリは、現在のJDBCドライバでjava.sql.DatabaseMetaData標準インタフェースがサポートされていないが、実行時に一定のスキーマ検証を実行したい場合などに使用することができます。ただし、このファクトリを使用すると、格納されているXMLスキーマ定義と実際のデータベースとの同期が困難になるため、無用に使用しないでください。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスキーマ・ファクトリに関する項を参照してください。

例

<table-schema-factory>
<schema-column>SCHEMA_DEF</schema-column
<table-name>OPENJPA_SCHEMA</table-name>
<table>OPENJPA_SCHEMA</table>
<primary-key-column>ID</primary-key-column>
</table-schema-factory>

tangosol-cache-name

値の範囲: 文字列

デフォルト値: kodo

親要素 :

persistence-configuration
persistence-configuration-unit
tangosol-data-cache

機能

使用するTangosol Coherenceキャッシュの名前。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTangosol統合に関する項を参照してください。

例

<tangosol-cache-name>kodo</tangosol-cache-name>

tangosol-cache-type

値の範囲: named | distributed | replicated

デフォルト値: named

親要素 :

persistence-configuration
persistence-configuration-unit
tangosol-data-cache

persistence-configuration
persistence-configuration-unit
tangosol-query-cache

機能

使用するTangosol Coherenceキャッシュのタイプ。有効な値は次のとおりです:

- named - com.tangosol.net.CacheFactory.getCache(String)メソッドでキャッシュをルックアップします。このメソッドは、Coherence構成で定義した名前に基づいてキャッシュをルックアップします。

- distributed

- replicated

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTangosol統合に関する項を参照してください。

例

<tangosol-cache-type>name</tangosol-cache-type>

tangosol-data-cache

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
data-caches

機能

TangosolのCoherenceキャッシュ・システムと統合します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTangosol統合に関する項を参照してください。

例

<data-caches>
<tangosol-data-cache>
<name>kodo.dataCache</name>
<clear-on-close>false</clear-on-close>
<tangosol-cache-type>name</tangosol-cache-type>
<tangosol-cache-name>kodo</tangosol-cache-name>
<eviction-schedule>15,45 15 * * 1</eviction-schedule>
</tangosol-data-cache>
</data-caches>

tcp-remote-commit-provider

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

TCPリモート・コミット・プロバイダを構成します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのTCPに関する項を参照してください。

例

<tcp-remote-commit-provider>
<name>kodo.RemoteCommitProvider</name>
<max-idle>2</max-idle>
<num-broadcast-threads>2<num-broadcast-threads>
<recovery-time-millis>15000</recovery-time-millis>
<max-active>2</max-active>
<port>5636</port>
<addresses>[]</addresses>
</tcp-remote-commit-provider>

tcp-transport

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

リモート通信用のトランスポート層を指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのスタンドアロンの永続性サーバーに関する項を参照してください。

例

<tcp-transport>
<so-timeout>0</so-timeout>
<host>localhost</host>
<port>5637</port>
</tcp-transport>

time-seeded-seq

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

独自のカスタム・ジェネレータの作成に使用するkodo.kernel.Seqインタフェースを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、kodo.jdbc.kernel.TimeSeededSeq)。

このタイプでは、現在時刻にミリ秒単位で初期化され、値がリクエストされるたびに一定の割合でインクリメントされる静的なインメモリー・カウンタが使用されます。これは単一のJVM環境にのみ適しています。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<time-seeded-seq>
<type>0</type>
<increment>1</increment>
</time-seeded-seq>

topic

値の範囲: 有効なトピック

デフォルト値: topic/KodoCommitProviderTopic

親要素 :

persistence-configuration
persistence-configuration-unit
jms-remote-commit-provider

機能

リモート・コミット・プロバイダが通知をパブリッシュしたり、他のJVMから送信された通知をサブスクライブしたりするトピックを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJMSに関する項を参照してください。

例

<topic>topic/KodoCommitProviderTopic</topic>

topic-connection-factory

値の範囲: 有効な接続ファクトリ

デフォルト値: java:/ConnectionFactory

親要素 :

persistence-configuration
persistence-configuration-unit
jms-remote-commit-provider

機能

トピックの検索に使用するjavax.jms.TopicConnectionFactoryファクトリのJNDI名を指定します。この設定は、使用しているアプリケーション・サーバーによって異なる場合があります。トピック・インスタンスのデフォルトのJNDI名の詳細は、使用しているアプリケーション・サーバーのマニュアルを参照してください。WebLogicの場合、TopicConnectionFactoryのJNDI名はjavax.jms.TopicConnectionFactoryです。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのJMSに関する項を参照してください。

例

<topic-connection-factory>java:/ConnectionFactory</topic-connection-factory>

track-changes

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit

機能

スマート・プロキシを使用するかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのカスタム・プロキシに関する項を参照してください。

例

<track-changes>true</track-changes>

transaction-isolation

値の範囲: default | none | read-committed | read-uncommitted | repeatable-read | serializable

デフォルト値: default

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するJDBCトランザクションの分離レベルを指定します。

- default - JDBCドライバのデフォルトのレベル。これがデフォルトです。

- none - トランザクションのアイソレーションが設定されません。

- read-committed - ダーティ・リードは阻止され、反復不可能読取りおよびファントム読取りが可能です。

- read-uncommitted - ダーティ・リード、反復不可能読み取り、ファントム読取りが可能です。

- repeatable-read - ダーティ・リードおよび反復不可能読取りは阻止され、ファントム読取りが可能です。

- serializable - ダーティ・リード、反復不可能読み取り、ファントム読取りが阻止されます。

詳細については、Kodo開発者ガイドのトランザクション・アイソレーションの設定に関する項を参照してください。

例

<transaction-isolation>default</transaction-isolation>

transaction-mode

値の範囲: local | managed

デフォルト値: local

親要素 :

persistence-configuration
persistence-configuration-unit

機能

使用するトランザクション・モードを指定します。この設定は、セッションごとにオーバーライドできます。

- local - トランザクション処理をローカルに実行します。これがデフォルトです。

- managed - アプリケーション・サーバーの管理対象グローバル・トランザクションと統合します。

詳細については、Kodo開発者ガイドのトランザクション・マネージャとの統合に関する項を参照してください。

例

<transaction-mode>local</transaction-mode>

transaction-name-execution-context-name-provider

値の範囲: なし

デフォルト値: なし

親要素 :

execution-context-name-provider

機能

WebLogicトランザクション・ネーミング・セマンティクスの定義に基づき、プロバイダが現在のトランザクション名を返します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの実行コンテキスト名プロバイダの構成に関する項を参照してください。

例

<transacation-name-execution-context-name-provider/>

type

値の範囲: なし

デフォルト値: 0

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

persistence-configuration
persistence-configuration-unit
native-jdbc-seq

persistence-configuration
persistence-configuration-unit
table-jdbc-seq

persistence-configuration
persistence-configuration-unit
time-seeded-seq

persistence-configuration
persistence-configuration-unit
value-table-jdbc-seq

機能

ジェネレータのタイプを指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<type>0</type>

type-column

値の範囲: 0 | 1 | 2 | 3

デフォルト値: 0

親要素 :

persistence-configuration
persistence-configuration-unit
table-jdor-mapping-factory

機能

マッピングのタイプを格納する列の名前を指定します。有効なタイプ定数は次のとおりです。

- 0 - クラス・マッピング

- 1 - 命名済シーケンス

- 2 - システム・レベルの命名済問合せ

- 3 - クラス・レベルの命名済み問合せ

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのマッピング・ファクトリに関する項を参照してください。

例

<type-column>0</type-column>

types

値の範囲:有効な永続性クラス名

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
tangosol-data-cache

機能

永続クラスの完全修飾名を、セミコロン区切りのリストで指定します。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<types>classname1; classname2</types>

URL

値の範囲: 有効なURL

デフォルト値: t3://localhost:7001

親要素 :

jmx
wls81-jmx

機能

WebLogic MBeanServerにアクセスするために接続する必要があるURL。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのWebLogic 8.1グループのオプションのパラメータに関する項を参照してください。

例

<URL>t3://localhost:7001</URL>

url

値の範囲: 有効なURL

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
http-transport

機能

リモート・サーバーへアクセスするために接続する必要のあるURL。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのクライアント・マネージャに関する項を参照してください。

例

<url>t3://localhost:7001/remote-server</url>

urls

値の範囲: 有効なURL

デフォルト値: t3://localhost:7001

親要素 :

persistence-configuration
persistence-configuration-unit
deprecated-jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
extension-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-mapping-factory

persistence-configuration
persistence-configuration-unit
kodo-persistence-meta-data-factory

persistence-configuration
persistence-configuration-unit
mapping-file-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
orm-file-jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

機能

メタデータ・ファイルまたはjarアーカイブのURLのリストを、セミコロン区切りのリストで指定します。各jarアーカイブでは、使用しているメタデータ・ファクトリに基づいて、アノテーションが付いたJPAエンティティまたはJDOメタデータ・ファイルがスキャンされます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのメタデータ・ファクトリに関する項を参照してください。

例

<urls>t3://localhost:7001/metadata.jar</urls>

use-aliases

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
class-table-jdbc-seq

機能

完全クラス名ではなく、各行の主キー値として各クラスのエンティティ名を使用するかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<use-aliases>false</use-aliases>

use-schema-validation

値の範囲: true | false

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit
deprecated-jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
extension-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
jdo-meta-data-factory

persistence-configuration
persistence-configuration-unit
jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
mapping-file-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
orm-file-jdor-mapping-factory

persistence-configuration
persistence-configuration-unit
table-deprecated-jdo-mapping-factory

persistence-configuration
persistence-configuration-unit
table-jdor-mapping-factory

機能

スキーマ検証を使用するかどうかを指定するフラグ。

例

<use-schema-validation>true</use-schema-validation>

user-object-execution-context-name-provider

値の範囲: なし

デフォルト値: なし

親要素 :

execution-context-name-provider

機能

com.solarmetric.profile.ExecutionContextNameProviderがキーの、現在のEntityManager/PersistenceManagerに指定されたユーザー・オブジェクトをプロバイダが返します。ユーザー・オブジェクトは、OpenJPAEntityManager.putUserObject(Object,Object)またはPersistenceManager.putUserObject(Object,Object)を使用して設定できます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの実行コンテキスト名プロバイダの構成に関する項を参照してください。

例

<user-object-execution-context-name-provider/>

UserName

値の範囲: なし

デフォルト値: なし

親要素 :

jmx
wsl81-jmx

機能

WebLogic MBeanServerへのアクセスに使用するユーザー名を指定します。この要素は設定する必要があります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのWebLogic 8.1グループのオプションのパラメータに関する項を参照してください。

例

<wls81-jmx>
<MBeanServerStrategy>any-create</MBeanServerStrategy>
<EnableLogMBean>true</EnableLogMBean>
<EnableRuntimeMBean>true</EnableRuntimeMBean>
<URL>t3://localhost:7001</URL>
<UserName>admin</UserName>
<Password>admin</Password>
</wls81-jmx>

validate-false-returns-hollow

値の範囲: true | false

デフォルト値: true

親要素 :

persistence-configuration
persistence-configuration-unit
compatibility

機能

PersistenceManager.getObjectById(oid, false)の呼出しから、空のオブジェクト(状態がロードされていないオブジェクト)を返すかどうかを指定するフラグ。これは、4.0以上のKodoのデフォルト動作です。前のバージョンのKodoでは、オブジェクトはデータ・ストアから常にロードされていました。このプロパティをfalseに設定すると、前のバージョンの動作になります。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<validate-false-returns-hollow>true</validate-false-returns-hollow>

validate-true-checks-store

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
compatibility

機能

データ・ストアに特定のoidが存在することを確認するかどうかを指定するフラグ。4.0より前のKodoでは、PersistenceManager.getObjectById(oid, true)を呼び出すと、対応するオブジェクトがキャッシュ済みであっても、データ・ストアに特定のoidが存在することを常に確認していました。4.0以上のKodoでは、インスタンスがすでにキャッシュおよびロードされている場合は、データ・ストアがチェックされません。このプロパティをtrueに設定すると、前のバージョンの動作になります。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの互換性の構成に関する項を参照してください。

例

<validate-true-checks-store>false</validate-true-checks-store>

value-table-jdbc-seq

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

独自のカスタム・ジェネレータの作成に使用するkodo.kernel.Seqインタフェースを表すプラグイン文字列(Kodo 4.2.0 JPA/JDO開発者ガイドのプラグインの構成に関する項を参照)を指定します(ここでは、kodo.jdbc.kernel.ValueTableJDBCSeq)。

このシーケンスはtable-jdbc-seqと似ていますが、クラスごとに1行の固定パターンではなく、シーケンス値に任意の行数があります。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのジェネレータに関する項を参照してください。

例

<value-table-jdbc-seq>
<type>0</type>
<allocate>50</allocate>
<table-name>OPENJPA_SEQUENCE_TABLE</table-name>
<primary-key-value>DEFAULT</primary-key-value>
<table>OPENJPA_SEQUENCE_TABLE</table>
<primary-key-column>ID</primary-key-column>
<sequence-column>SEQUENCE_VALUE</sequence-column>
<increment>1</increment>
</value-table-jdbc-seq>

version-check-on-read-lock

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
pessimistic-lock-manager

機能

読取り操作に対するペシミスティックなロック・マネージャのインクリメント動作とバージョン・チェックを有効にするかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのロック・マネージャに関する項を参照してください。

例

<version-check-on-read-lock>false</version-check-on-read-lock>

version-check-on-write-lock

値の範囲: true | false

デフォルト値: false

親要素 :

persistence-configuration
persistence-configuration-unit
pessimistic-lock-manager

機能

書込み操作に対するペシミスティックなロック・マネージャのインクリメント動作とバージョン・チェックを有効にするかどうかを指定するフラグ。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのロック・マネージャに関する項を参照してください。

例

<version-check-on-write-lock>false</version-check-on-write-lock>

version-lock-manager

値の範囲: なし

デフォルト値: なし

親要素 :

persistence-configuration
persistence-configuration-unit

機能

kodo.kernel.VersionLockManagerを指定します。このロック・マネージャは排他ロックを行わないかわりに、読取りロックされているすべてのインスタンスのバージョンがトランザクション終了時に変更されていないことを確認することによって、読取りの一貫性を確保します。さらに、オブジェクトが変更されなくても、書込みロックにより、トランザクション終了時にバージョンが強制的にインクリメントされます。これにより、非ブロック動作と読取りの一貫性が確保されます。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのロック・マネージャに関する項を参照してください。

例

<version-lock-manager>
<version-check-on-read-lock>false</version-check-on-read-lock>
<version-check-on-write-lock>false</version-check-on-write-lock>
</version-lock-manager>

wls81-jmx

値の範囲: なし

デフォルト値: なし

親要素 :

jmx

機能

管理を有効にし、ローカルJVMでJMX管理コンソールを呼び出します。Management GroupおよびWebLogic 8.1 Groupのオプション・パラメータをサポートします。詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドの管理グループのオプションのパラメータに関する項とWebLogic 8.1グループのオプションのパラメータに関する項を参照してください。

例

<wls81-jmx>
<MBeanServerStrategy>any-create</MBeanServerStrategy>
<EnableLogMBean>true</EnableLogMBean>
<EnableRuntimeMBean>true</EnableRuntimeMBean>
<URL>t3://localhost:7001</URL>
<UserName>admin</UserName>
<Password>admin</Password>
</wls81-jmx>

write-lock-level

値の範囲: none | read | write |ロック・マネージャ固有のロック・レベル(数値)

デフォルト値: read

親要素 :

persistence-configuration
persistence-configuration-unit

機能

非オプティミスティック・トランザクション中に所得されたオブジェクトをロックする際の、デフォルトの書込みレベルを設定します。有効な値は次のとおりです:

- none - ロック・レベルなし。

- read - 読取りロック・レベル。

- write - 書込みロック・レベル。

- ロック・マネージャ固有のロック・レベルの数値。

注意:

デフォルトのJDBCロック・マネージャでは、readおよびwriteの両ロック・レベルは同じです。

詳細は、Kodo 4.2.0 JPA/JDO開発者ガイドのオブジェクトのロックに関する項を参照してください。

例

<write-lock-level>read</write-lock-level>

Copyright © 2007, 2011, Oracle and/or its affiliates. All rights reserved.