Cosminexus V9 アプリケーションサーバ リファレンス API編

文法書

3020-3-Y21-60

目　　次

前書き

変更内容

はじめに

1.　APIの概要

1.1　APIとタグライブラリの種類

1.2　アノテーションの記述形式

1.3　APIの記述形式

2.　アプリケーションサーバが対応しているアノテーションおよびDependency Injection

2.1　対応するアノテーションのサポート範囲

2.1.1　javax.annotationパッケージに含まれるアノテーションのサポート範囲

2.1.2　javax.annotation.securityパッケージに含まれるアノテーションのサポート範囲

2.1.3　javax.ejbパッケージに含まれるアノテーションのサポート範囲

2.1.4　javax.interceptorパッケージに含まれるアノテーションのサポート一覧

2.1.5　javax.jwsパッケージに含まれるアノテーションのサポート範囲

2.1.6　javax.persistenceパッケージに含まれるアノテーションのサポート範囲

2.1.7　javax.servlet.annotationパッケージに含まれるアノテーションのサポート範囲

2.1.8　javax.xml.wsパッケージに含まれるアノテーションのサポート範囲

2.1.9　javax.xml.ws.soapパッケージに含まれるアノテーションのサポート範囲

2.1.10　javax.xml.ws.spiパッケージに含まれるアノテーションのサポート範囲

2.1.11　CDIのアノテーションのサポート一覧

2.1.12　JSFのアノテーションのサポート一覧

2.1.13　Bean Validationのアノテーションのサポート一覧

2.2　javax.annotationパッケージ

2.2.1　@PostConstruct

2.2.2　@PreDestroy

2.2.3　@Resource

2.2.4　@Resources

2.3　javax.annotation.securityパッケージ

2.3.1　@DeclareRoles

2.3.2　@DenyAll

2.3.3　@PermitAll

2.3.4　@RolesAllowed

2.3.5　@RunAs

2.4　javax.ejbパッケージ

2.4.1　@AccessTimeout

2.4.2　@AfterBegin

2.4.3　@AfterCompletion

2.4.4　@ApplicationException

2.4.5　@Asynchronous

2.4.6　@BeforeCompletion

2.4.7　@ConcurrencyManagement

2.4.8　@DependsOn

2.4.9　@EJB

2.4.10　@EJBs

2.4.11　@Init

2.4.12　@Local

2.4.13　@LocalBean

2.4.14　@LocalHome

2.4.15　@Lock

2.4.16　@PostActivate

2.4.17　@PrePassivate

2.4.18　@Remote

2.4.19　@RemoteHome

2.4.20　@Remove

2.4.21　@Schedule

2.4.22　@Schedules

2.4.23　@Singleton

2.4.24　@Startup

2.4.25　@Stateful

2.4.26　@Stateless

2.4.27　@Timeout

2.4.28　@TransactionAttribute

2.4.29　@TransactionManagement

2.5　javax.faces.beanパッケージ

2.5.1　@ManagedBean

2.6　javax.interceptorパッケージ

2.6.1　@AroundInvoke

2.6.2　@ExcludeClassInterceptors

2.6.3　@ExcludeDefaultInterceptors

2.6.4　@Interceptors

2.7　javax.persistenceパッケージ

2.7.1　@AssociationOverride

2.7.2　@AssociationOverrides

2.7.3　@AttributeOverride

2.7.4　@AttributeOverrides

2.7.5　@Basic

2.7.6　@Column

2.7.7　@ColumnResult

2.7.8　@DiscriminatorColumn

2.7.9　@DiscriminatorValue

2.7.10　@Embeddable

2.7.11　@Embedded

2.7.12　@EmbeddedId

2.7.13　@Entity

2.7.14　@EntityListeners

2.7.15　@EntityResult

2.7.16　@Enumerated

2.7.17　@ExcludeDefaultListeners

2.7.18　@ExcludeSuperclassListeners

2.7.19　@FieldResult

2.7.20　@GeneratedValue

2.7.21　@Id

2.7.22　@IdClass

2.7.23　@Inheritance

2.7.24　@JoinColumn

2.7.25　@JoinColumns

2.7.26　@JoinTable

2.7.27　@Lob

2.7.28　@ManyToMany

2.7.29　@ManyToOne

2.7.30　@MapKey

2.7.31　@MappedSuperclass

2.7.32　@NamedNativeQueries

2.7.33　@NamedNativeQuery

2.7.34　@NamedQueries

2.7.35　@NamedQuery

2.7.36　@OneToMany

2.7.37　@OneToOne

2.7.38　@OrderBy

2.7.39　@PersistenceContext

2.7.40　@PersistenceContexts

2.7.41　@PersistenceProperty

2.7.42　@PersistenceUnit

2.7.43　@PersistenceUnits

2.7.44　@PostLoad

2.7.45　@PostPersist

2.7.46　@PostRemove

2.7.47　@PostUpdate

2.7.48　@PrePersist

2.7.49　@PreRemove

2.7.50　@PreUpdate

2.7.51　@PrimaryKeyJoinColumn

2.7.52　@PrimaryKeyJoinColumns

2.7.53　@QueryHint

2.7.54　@SecondaryTable

2.7.55　@SecondaryTables

2.7.56　@SequenceGenerator

2.7.57　@SqlResultSetMapping

2.7.58　@SqlResultSetMappings

2.7.59　@Table

2.7.60　@TableGenerator

2.7.61　@Temporal

2.7.62　@Transient

2.7.63　@Version

2.7.64　アノテーションとO/Rマッピングとの対応

2.8　javax.servlet.annotationパッケージ

2.8.1　@HandlesTypes

2.8.2　@HttpConstraint

2.8.3　@HttpMethodConstraint

2.8.4　@MultipartConfig

2.8.5　@ServletSecurity

2.8.6　@WebInitParam

2.8.7　@WebFilter

2.8.8　@WebListener

2.8.9　@WebServlet

2.9　アプリケーションサーバが対応するDependency Injection

3.　Webコンテナで使用するAPI

3.1　例外クラス

4.　EJBクライアントアプリケーションで使用するAPI

4.1　EJBクライアントアプリケーションで使用するAPIの一覧

4.2　EJBClientInitializerクラス

initializeメソッド

4.3　RequestTimeoutConfigFactoryクラス

getRequestTimeoutConfigメソッド

4.4　RequestTimeoutConfigクラス

setRequestTimeoutメソッド（形式1）

setRequestTimeoutメソッド（形式2）

unsetRequestTimeoutメソッド

4.5　UserTransactionFactoryクラス

getUserTransactionメソッド

4.6　例外クラス

5.　TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPI

5.1　TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPIの一覧

5.2　TP1InMessageインタフェース

getInputDataメソッド

createOutMessageメソッド

5.3　TP1MessageListenerインタフェース

onMessageメソッド

5.4　TP1OutMessageインタフェース

getOutputDataメソッド

getMaxOutputLengthメソッド

6.　スレッドの非同期並行処理で使用するAPI

6.1　Timer and Work Manager for Application Servers仕様と動作が異なるアプリケーションサーバのAPIの一覧

7.　ユーザログ機能で使用するAPI

7.1　ユーザログ機能で使用するAPIの一覧

7.2　CJLogRecordクラス

createメソッド（形式1）

createメソッド（形式2）

createメソッド（形式3）

createメソッド（形式4）

createメソッド（形式5）

createメソッド（形式6）

createメソッド（形式7）

createメソッド（形式8）

createメソッド（形式9）

createメソッド（形式10）

createpメソッド（形式1）

createpメソッド（形式2）

createpメソッド（形式3）

createpメソッド（形式4）

createpメソッド（形式5）

createpメソッド（形式6）

createpメソッド（形式7）

createpメソッド（形式8）

createpメソッド（形式9）

createpメソッド（形式10）

createrbメソッド（形式1）

createrbメソッド（形式2）

createrbメソッド（形式3）

createrbメソッド（形式4）

createrbメソッド（形式5）

createrbメソッド（形式6）

createrbメソッド（形式7）

createrbメソッド（形式8）

createrbメソッド（形式9）

createrbメソッド（形式10）

8.　監査ログ出力で使用するAPI

8.1　監査ログ出力で使用するAPIの一覧

8.2　AuditLogRecordクラス

getAfterInfoメソッド

getAuthorityメソッド

getBeforeInfoメソッド

getCategoryメソッド

getDetectionPointメソッド

getHaidメソッド

getLocationメソッド

getMessageメソッド

getMessageIdメソッド

getObjectInfoメソッド

getObjectLocationメソッド

getOperationメソッド

getOutputPointメソッド

getReceiverHostメソッド

getReceiverPortメソッド

getResultメソッド

getSenderHostメソッド

getSenderPortメソッド

getServiceInstanceメソッド

getSubjectIdメソッド

getSubjectPointメソッド

setAfterInfoメソッド

setAuthorityメソッド

setBeforeInfoメソッド

setCategoryメソッド

setDetectionPointメソッド

setHaidメソッド

setLocationメソッド

setMessageメソッド

setMessageIdメソッド

setObjectInfoメソッド

setObjectLocationメソッド

setOperationメソッド

setOutputPointメソッド

setReceiverHostメソッド

setReceiverPortメソッド

setResultメソッド

setSenderHostメソッド

setSenderPortメソッド

setServiceInstanceメソッド

setSubjectIdメソッド

setSubjectPointメソッド

8.3　UserAuditLoggerクラス

getLoggerメソッド

isEnabledメソッド

isLoggableメソッド

logメソッド

8.4　例外クラス

9.　性能解析トレースで使用するAPI

9.1　性能解析トレースで使用するAPIの一覧

9.2　CprfTraceクラス

getRootApInfoメソッド

10.　JavaVMで使用するAPI

10.1　JavaVMで使用するAPIの一覧

10.2　BasicExplicitMemoryクラス

BasicExplicitMemoryコンストラクタ（形式1）

BasicExplicitMemoryコンストラクタ（形式2）

getNameメソッド

10.3　ExplicitMemoryクラス

countExplicitMemoriesメソッド

freeMemoryメソッド

getMemoryUsageメソッド

isActiveメソッド

isReclaimedメソッド

newArrayメソッド（形式1）

newArrayメソッド（形式2）

newInstanceメソッド（形式1）

newInstanceメソッド（形式2）

newInstanceメソッド（形式3）

reclaimメソッド（形式1）

reclaimメソッド（形式2）

reclaimメソッド（形式3）

reclaimメソッド（形式4）

setNameメソッド

toStringメソッド

totalMemoryメソッド

usedMemoryメソッド

10.4　MemoryAreaクラス

10.5　MemoryInfoクラス

getEdenFreeMemoryメソッド

getEdenMaxMemoryメソッド

getEdenTotalMemoryメソッド

getMetaspaceFreeMemoryメソッド

getMetaspaceMaxMemoryメソッド

getMetaspaceTotalMemoryメソッド

getSurvivorFreeMemoryメソッド

getSurvivorMaxMemoryメソッド

getSurvivorTotalMemoryメソッド

getTenuredFreeMemoryメソッド

getTenuredMaxMemoryメソッド

getTenuredTotalMemoryメソッド

10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）

10.7　例外クラス

11.　アプリケーション開発時に使用できるプロパティ

11.1　バッチアプリケーションで使用できるプロパティ

ejbserver.batch.currentdirプロパティ

付録

付録A　Javaヒープメモリのリークを起こしやすいJavaAPIクラス

付録B　JavaVM内部で暗黙にスレッドを生成するJavaAPIクラス

付録B.1　スレッド生成処理一覧

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.

前書き

■ 対象製品

マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」の前書きの対象製品の説明を参照してください。

■ 輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。
なお、不明な場合は、弊社担当営業にお問い合わせください。

■ 商標類

CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
IIOPは，OMG仕様によるORB(Object Request Broker)間通信のネットワークプロトコルの名称です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
OMG，CORBA，IIOP，UML，Unified Modeling Language，MDA，Model　Driven　Architectureは，Object Management Group, Inc.の米国及びその他の国における登録商標または商標です。
OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。
SOAP（Simple Object Access Protocol）は，分散ネットワーク環境においてXMLベースの情報を交換するための通信プロトコルの名称です。
UNIXは，The Open Groupの米国ならびに他の国における登録商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

■ 発行

2015年 4月 3020-3-Y21-60

■ 著作権

All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.

変更内容

変更内容(3020-3-Y21-60) uCosminexus Application Server 09-70，uCosminexus Application Server(64) 09-70，uCosminexus Client 09-70，uCosminexus Developer 09-70，uCosminexus Service Architect 09-70，uCosminexus Service Platform 09-70，uCosminexus Service Platform(64) 09-70

追加・変更内容 | 変更個所
記載内容は変更なし（リンク情報だけを変更した）。 | －

uCosminexus Application Server 09-60，uCosminexus Application Server(64) 09-60，uCosminexus Client 09-60，uCosminexus Developer 09-60，uCosminexus Service Architect 09-60，uCosminexus Service Platform 09-60，uCosminexus Service Platform(64) 09-60

追加・変更内容 | 変更個所
記載内容は変更なし（リンク情報だけを変更した）。 | －

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルをお読みになる際の前提情報については，マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」のはじめにの説明を参照してください。

1.　APIの概要

この章では，アプリケーションサーバで使用するAPIとタグライブラリの種類，およびこのマニュアルでの記述形式について説明します。

＜この章の構成＞

1.1　APIとタグライブラリの種類

1.2　アノテーションの記述形式

1.3　APIの記述形式

1.1　APIとタグライブラリの種類

アプリケーションサーバで使用するAPIとタグライブラリの種類について説明します。

このマニュアルでは，アプリケーションごとに使用できるAPIとタグライブラリを三つに分類して説明します。

J2EEアプリケーションで使用できるAPIとタグライブラリ

バッチアプリケーションまたはEJBクライアントアプリケーションで使用できるAPI

Webサービスを実行するシステムで使用できるAPI

J2EEアプリケーションで使用できるAPIとタグライブラリを次の表に示します。

表1-1　J2EEアプリケーションで使用できるAPI

APIとタグライブラリの種類 | APIとタグライブラリの説明 | 参照先マニュアル | 参照先
Webコンテナで使用するAPI | Webコンテナで使用するAPIです。 | このマニュアル | 3章
EJBクライアントアプリケーションで使用するAPI | EJBクライアントのセキュリティや通信タイムアウトなどを設定するためのAPIです。 | 4章
TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPI | TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPIです。 | 5章
スレッドの非同期並行処理で使用するAPI | スレッドの非同期並行処理で使用するAPIです。 | 6章
統合ユーザ管理フレームワークで使用するAPI | 統合ユーザ管理機能を使用する場合に，ユーザ認証を実装するために使用する，統合ユーザ管理フレームワークのライブラリです。 | アプリケーションサーバ 機能解説 セキュリティ管理機能編 | 15章
統合ユーザ管理フレームワークで使用するタグライブラリ | 統合ユーザ管理機能を使用する場合に，ユーザ認証を実装するために使用する，統合ユーザ管理フレームワークのJSPタグライブラリです。 | アプリケーションサーバ 機能解説 セキュリティ管理機能編 | 16章
ユーザログ機能で使用するAPI | J2EEアプリケーションが出力するログ（ユーザログ）をトレース共通ライブラリ形式で出力する場合に，ユーザログ出力を実装するためのAPIです。 | このマニュアル | 7章
監査ログ出力で使用するAPI | J2EEアプリケーションで監査ログを出力するためのAPIです。 | 8章
性能解析トレースで使用するAPI | 性能解析トレースでアプリケーションサーバの処理性能を解析する場合に，ルートアプリケーション情報を文字列表現で取得するためのAPIです。 | 9章
JavaVMで使用するAPI | Javaプログラムから直接GCのメモリ情報を取得するためのAPIです。 | 10章
DABroker Libraryで使用するAPI | DABroker Libraryを使用してデータベースに接続する場合に，データベースの情報などを設定するためのAPIです。 | アプリケーションサーバ 機能解説 互換編 | 4章

なお，APIとタグライブラリのほかに，アノテーションとDependency Injectionも使用できます。アノテーションとDependency Injectionについては，「2.　アプリケーションサーバが対応しているアノテーションおよびDependency Injection」を参照してください。

バッチアプリケーションまたはEJBクライアントアプリケーションで使用できるAPIを次の表に示します。

表1-2　バッチアプリケーションまたはEJBクライアントアプリケーションで使用できるAPI

APIとタグライブラリの種類 | APIとタグライブラリの説明 | 参照先マニュアル | 参照先
EJBクライアントアプリケーションで使用するAPI | EJBクライアントアプリケーションのセキュリティや通信タイムアウトなどを設定するためのAPIです。 | このマニュアル | 4章
ユーザログ機能で使用するAPI | バッチアプリケーションまたはEJBクライアントアプリケーションが出力するログ（ユーザログ）をトレース共通ライブラリ形式で出力する場合に，ユーザログ出力を実装するためのAPIです。 | 7章
監査ログ出力で使用するAPI | バッチアプリケーションまたはEJBクライアントアプリケーションで監査ログを出力するためのAPIです。 | 8章
性能解析トレースで使用するAPI | 性能解析トレースでアプリケーションサーバの処理性能を解析する場合に，ルートアプリケーション情報を文字列表現で取得するためのAPIです。 | 9章
JavaVMで使用するAPI | Javaプログラムから直接GCのメモリ情報を取得するためのAPIです。 | 10章
DABroker Libraryで使用するAPI | DABroker Libraryを使用してデータベースに接続する場合に，データベースの情報などを設定するためのAPIです。 | アプリケーションサーバ 機能解説 互換編 | 4章

Webサービスを実行するシステムで使用できるAPIを次の表に示します。

表1-3　Webサービスを実行するシステムで使用できるAPI

APIの種類 | APIの説明 | 参照先マニュアル | 参照先
JAX-WS 2.2仕様に対応したSOAP Webサービスの開発で使用するAPI | SOAP WebサービスやWebサービスクライアントを開発するときに使用します。 | アプリケーションサーバ Webサービス開発ガイド | 19章
JAX-RS 1.1仕様に対応したRESTful Webサービスの開発で使用するAPI | RESTful Webサービス（Webリソース）を開発するときに使用します。なお，HTTPクライアントは，RESTful Webサービス用クライアントAPIか，または標準的なJava APIを使用して開発します。 | 24章
Webリソースクライアントの実装で使用するRESTful Webサービス用クライアントAPI | RESTful Webサービス（Webリソース）のクライアントをRESTful Webサービス用クライアントAPIで実装するときに使用します。 | 25章

1.2　アノテーションの記述形式

2章では，アノテーションについて次の形式で説明します。なお，各アノテーションはアルファベットの順に説明します。

＜この節の構成＞

(1)　説明

(2)　属性

(1)　説明

アノテーションの機能について説明します。

(2)　属性

アノテーションに含まれる属性について説明します。各属性については，次の形式で説明します。

(a)　属性名

型

属性の型を示します。

説明

属性の機能について説明します。

デフォルト値

属性のデフォルト値を示します。

1.3　APIの記述形式

3章から10章では，APIについて次の形式で説明します。なお，各APIは，アルファベットの順に説明します。

説明

APIの機能について説明します。

形式

APIの記述形式を示します。

パラメタ

APIのパラメタについて説明します。

例外

APIを利用する際に発生する例外について説明します。

戻り値

APIの戻り値について説明しています。

注意事項

APIを利用する上での注意事項について説明します。

2.　アプリケーションサーバが対応しているアノテーションおよびDependency Injection

この章では，アプリケーションサーバが対応しているアノテーションおよびDependency Injectionについて説明します。

なお，アノテーション参照抑止機能を使用している場合，アノテーションの指定は参照されません。アノテーション参照抑止機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「12.5　アノテーションの参照抑止」を参照してください。

＜この章の構成＞

2.1　対応するアノテーションのサポート範囲

2.2　javax.annotationパッケージ

2.3　javax.annotation.securityパッケージ

2.4　javax.ejbパッケージ

2.5　javax.faces.beanパッケージ

2.6　javax.interceptorパッケージ

2.7　javax.persistenceパッケージ

2.8　javax.servlet.annotationパッケージ

2.9　アプリケーションサーバが対応するDependency Injection

2.1　対応するアノテーションのサポート範囲

アノテーションは，ソースコードに注釈を付けることができる言語仕様です。

アプリケーションサーバが対応しているアノテーションの一覧を次に示します。

＜この節の構成＞

2.1.1　javax.annotationパッケージに含まれるアノテーションのサポート範囲

2.1.2　javax.annotation.securityパッケージに含まれるアノテーションのサポート範囲

2.1.3　javax.ejbパッケージに含まれるアノテーションのサポート範囲

2.1.4　javax.interceptorパッケージに含まれるアノテーションのサポート一覧

2.1.5　javax.jwsパッケージに含まれるアノテーションのサポート範囲

2.1.6　javax.persistenceパッケージに含まれるアノテーションのサポート範囲

2.1.7　javax.servlet.annotationパッケージに含まれるアノテーションのサポート範囲

2.1.8　javax.xml.wsパッケージに含まれるアノテーションのサポート範囲

2.1.9　javax.xml.ws.soapパッケージに含まれるアノテーションのサポート範囲

2.1.10　javax.xml.ws.spiパッケージに含まれるアノテーションのサポート範囲

2.1.11　CDIのアノテーションのサポート一覧

2.1.12　JSFのアノテーションのサポート一覧

2.1.13　Bean Validationのアノテーションのサポート一覧

2.1.1　javax.annotationパッケージに含まれるアノテーションのサポート範囲

javax.annotationパッケージのアノテーションの適用範囲を説明します。ここでは，コンポーネントごとに記述できるアノテーションを説明します。

＜この項の構成＞

(1)　WARファイル（Servlet 3.0対応）

(2)　WARファイル（Servlet 2.5対応）

(3)　EJB-JARファイル（EJB3.1/3.0対応）

(4)　ライブラリJARファイル（サーブレット/JSP）

(5)　ライブラリJARファイル（Enterprise Bean/例外クラス/その他のクラス）

(1)　WARファイル（Servlet 3.0対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-1　WARファイル（Servlet 3.0対応）に記述できるアノテーション（javax.annotationパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | 例外クラス | ManagedBean（JSF） | その他のクラス
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@PostConstruct | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○※ | －
@PreDestroy | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○※ | －
@Resource | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －
@Resources | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

注※

JSFに依存するアノテーションです。サポート範囲については，JSF仕様のドキュメントを参照してください。

(2)　WARファイル（Servlet 2.5対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-2　WARファイル（Servlet 2.5対応）に記述できるアノテーション（javax.annotationパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | その他のクラス
サーブレット | サーブレットフィルタ | イベントリスナ | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@PostConstruct | ○ | ○ | ○ | － | ○ | ○ | × | －
@PreDestroy | ○ | ○ | ○ | － | ○ | ○ | × | －
@Resource | ○ | ○ | ○ | － | ○ | ○ | × | －
@Resources | ○ | ○ | ○ | － | ○ | ○ | × | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(3)　EJB-JARファイル（EJB3.1/3.0対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表2-3　EJB-JARファイル（EJB3.1/3.0対応）に記述できるアノテーション（javax.annotationパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
デフォルトインターセプタ以外 | デフォルトインターセプタ
@PostConstruct | － | ○ | － | × | ○ | ○ | － | －
@PreDestroy | － | ○ | － | × | ○ | ○ | － | －
@Resource | － | ○ | － | × | ○ | ○ | － | －
@Resources | － | ○ | － | × | ○ | ○ | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(4)　ライブラリJARファイル（サーブレット/JSP）

ライブラリJARのサーブレットまたはJSPに記述できるアノテーションの一覧を示します。

表2-4　ライブラリJAR（サーブレット/JSP）に記述できるアノテーション（javax.annotationパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@PostConstruct | － | － | ○ | － | ○ | － | － | ○ | ○ | ×
@PreDestroy | － | － | ○ | － | ○ | － | － | ○ | ○ | ×
@Resource | － | － | ○ | － | ○ | － | － | ○ | ○ | ×
@Resources | － | － | ○ | － | ○ | － | － | ○ | ○ | ×

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(5)　ライブラリJARファイル（Enterprise Bean/例外クラス/その他のクラス）

ライブラリJARのEnterprise Bean，例外クラス，またはその他のクラスに記述できるアノテーションの一覧を示します。

表2-5　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）に記述できるアノテーション（javax.annotationパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
@PostConstruct | － | － | － | × | ○ | － | －
@PreDestroy | － | － | － | × | ○ | － | －
@Resource | － | － | － | × | ○ | － | －
@Resources | － | － | － | × | ○ | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

2.1.2　javax.annotation.securityパッケージに含まれるアノテーションのサポート範囲

javax.annotation.securityパッケージのアノテーションの適用範囲を説明します。ここでは，コンポーネントごとに記述できるアノテーションを説明します。

＜この項の構成＞

(1)　WARファイル（Servlet 3.0対応）

(2)　WARファイル（Servlet 2.5対応）

(3)　EJB-JARファイル（EJB3.1/EJB3.0対応）

(4)　ライブラリJAR（サーブレット/JSP）

(5)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

(1)　WARファイル（Servlet 3.0対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-6　WARファイル（Servlet 3.0対応）に記述できるアノテーション（javax.annotation.securityパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | 例外クラス | ManagedBean（JSF） | その他のクラス
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@DeclareRoles | ○ | ○ | ○ | － | ○ | － | － | － | － | － | － | － | －
@RunAs | ○ | × | － | － | － | － | － | － | － | － | － | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(2)　WARファイル（Servlet 2.5対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-7　WARファイル（Servlet 2.5対応）に記述できるアノテーション（javax.annotation.securityパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | その他のクラス
サーブレット | サーブレットフィルタ | イベントリスナ | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@DeclareRoles | ○ | ○ | ○ | － | － | － | － | －
@RunAs | ○ | － | － | － | － | － | － | －

（凡例）

○：対応する。

－：標準仕様で対応していない。

(3)　EJB-JARファイル（EJB3.1/EJB3.0対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表2-8　EJB-JARファイル（EJB3.1/EJB3.0対応）に記述できるアノテーション（javax.annotation.securityパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
デフォルトインターセプタ以外 | デフォルトインターセプタ
@DeclareRoles | － | ○ | － | × | － | － | － | －
@DenyAll | － | ○ | － | × | － | － | － | －
@PermitAll | － | ○ | － | × | － | － | － | －
@RolesAllowed | － | ○ | － | × | － | － | － | －
@RunAs | － | ○ | － | × | － | － | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(4)　ライブラリJAR（サーブレット/JSP）

ライブラリJARのサーブレットまたはJSPに記述できるアノテーションの一覧を示します。

表2-9　ライブラリJAR（サーブレット/JSP）に記述できるアノテーション（javax.annotation.securityパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@DeclareRoles | － | － | ○ | － | ○ | － | － | － | － | －

（凡例）

○：対応する。

－：標準仕様で対応していない。

(5)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

ライブラリJARのEnterprise Bean，例外クラス，またはその他のクラスに記述できるアノテーションはありません。

2.1.3　javax.ejbパッケージに含まれるアノテーションのサポート範囲

javax.ejbパッケージのアノテーションの適用範囲を説明します。ここでは，コンポーネントごとに記述できるアノテーションを説明します。

＜この項の構成＞

(1)　WARファイル（Servlet 3.0対応）

(2)　WARファイル（Servlet 2.5対応）

(3)　EJB-JARファイル（EJB3.1対応）

(4)　EJB-JARファイル（EJB3.0対応）

(5)　ライブラリJAR（サーブレット/JSP）

(6)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

(1)　WARファイル（Servlet 3.0対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-10　WARファイル（Servlet 3.0対応）に記述できるアノテーション（javax.ejbパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | 例外クラス | ManagedBean（JSF） | その他のクラス
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@ApplicationException | － | － | － | － | － | － | － | － | － | － | ○ | － | －
@EJB | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －
@EJBs | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(2)　WARファイル（Servlet 2.5対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-11　WARファイル（Servlet 2.5対応）に記述できるアノテーション（javax.ejbパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | その他のクラス
サーブレット | サーブレットフィルタ | イベントリスナ | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@EJB | ○ | ○ | ○ | － | ○ | ○ | × | －
@EJBs | ○ | ○ | ○ | － | ○ | ○ | × | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(3)　EJB-JARファイル（EJB3.1対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表2-12　EJB-JARファイル（EJB3.1対応）に記述できるアノテーション（javax.ejbパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
デフォルトインターセプタ以外 | デフォルトインターセプタ
@AccessTimeout※1 | － | ○ | － | － | － | － | － | －
@AfterBegin※2 | － | ○ | － | － | － | － | － | －
@AfterCompletion※2 | － | ○ | － | － | － | － | － | －
@ApplicationException | － | － | － | － | － | － | ○ | －
@Asynchronous※3 | － | ○ | － | － | － | － | － | －
@BeforeCompletion※2 | － | ○ | － | － | － | － | － | －
@ConcurrencyManagement※1 | － | ○ | － | － | － | － | － | －
@DependsOn※1 | － | ○ | － | － | － | － | － | －
@EJB | － | ○ | － | × | ○ | ○ | － | －
@EJBs | － | ○ | － | × | ○ | ○ | － | －
@Init※2 | － | ○ | － | － | － | － | － | －
@Local | ○ | ○ | － | － | － | － | － | －
@LocalBean | － | ○ | － | － | － | － | － | －
@LocalHome | － | ○ | － | － | － | － | － | －
@Lock※1 | － | ○ | － | － | － | － | － | －
@Remote | ○ | ○ | － | － | － | － | － | －
@RemoteHome | － | ○ | － | － | － | － | － | －
@Remove※2 | － | ○ | － | － | － | － | － | －
@Schedule※3 | － | ○ | － | × | － | － | － | －
@Schedules※3 | － | ○ | － | × | － | － | － | －
@Singleton※1 | － | ○ | － | － | － | － | － | －
@Startup※1 | － | ○ | － | － | － | － | － | －
@Stateful※2 | － | ○ | － | － | － | － | － | －
@Stateless※4 | － | ○ | － | － | － | － | － | －
@Timeout※3 | － | ○ | － | × | － | － | － | －
@TransactionAttribute | － | ○ | － | × | － | － | － | －
@TransactionManagement | － | ○ | － | × | － | － | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

注※1

Singleton Session Beanの場合にだけ使用できます。

注※2

Stateful Session Beanの場合にだけ使用できます。

注※3

Stateless Session BeanとSingleton Session Beanの場合にだけ使用できます。

注※4

Stateless Session Beanの場合にだけ使用できます。

(4)　EJB-JARファイル（EJB3.0対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表2-13　EJB-JARファイル（EJB3.0対応）に記述できるアノテーション（javax.ejbパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
デフォルトインターセプタ以外 | デフォルトインターセプタ
@ApplicationException | － | － | － | － | － | － | ○ | －
@EJB | － | ○ | － | × | ○ | ○ | － | －
@EJBs | － | ○ | － | × | ○ | ○ | － | －
@Init※1 | － | ○ | － | － | － | － | － | －
@Local | ○ | ○ | － | － | － | － | － | －
@LocalHome | － | ○ | － | － | － | － | － | －
@Remote | ○ | ○ | － | － | － | － | － | －
@RemoteHome | － | ○ | － | － | － | － | － | －
@Remove※1 | － | ○ | － | － | － | － | － | －
@Stateful※1 | － | ○ | － | － | － | － | － | －
@Stateless※2 | － | ○ | － | － | － | － | － | －
@Timeout※2 | － | ○ | － | × | － | － | － | －
@TransactionAttribute | － | ○ | － | × | － | － | － | －
@TransactionManagement | － | ○ | － | × | － | － | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

注※1

Stateful Session Beanの場合にだけ使用できます。

注※2

Stateless Session Beanの場合にだけ使用できます。

(5)　ライブラリJAR（サーブレット/JSP）

ライブラリJARのサーブレットまたはJSPに記述できるアノテーションの一覧を示します。

表2-14　ライブラリJAR（サーブレット/JSP）に記述できるアノテーション（javax.ejbパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@EJB | － | － | ○ | － | ○ | － | － | ○ | ○ | ×
@EJBs | － | － | ○ | － | ○ | － | － | ○ | ○ | ×

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(6)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

ライブラリJARのEnterprise Bean，例外クラス，またはその他のクラスに記述できるアノテーションの一覧を示します。

表2-15　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）に記述できるアノテーション（javax.ejbパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
@ApplicationException | － | － | － | － | － | ○ | －
@EJB | － | － | － | － | ○ | － | －
@EJBs | － | － | － | － | ○ | － | －
@Local | ○ | － | － | － | － | － | －
@Remote | ○ | － | － | － | － | － | －

（凡例）

○：対応する。

－：標準仕様で対応していない。

2.1.4　javax.interceptorパッケージに含まれるアノテーションのサポート一覧

javax.interceptorパッケージのアノテーションの適用範囲を説明します。ここでは，コンポーネントごとに記述できるアノテーションを説明します。

javax.interceptorパッケージのアノテーションは，CDIアプリケーションでも利用できます。ただし，EJBと組み合わせて利用する場合は注意が必要です。注意事項の詳細は，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「9.　アプリケーションサーバでのCDIの利用」を参照してください。

＜この項の構成＞

(1)　WARファイル（Servlet 3.0/Servlet 2.5対応）

(2)　EJB-JARファイル（EJB3.1/EJB3.0対応）

(3)　ライブラリJAR（サーブレット/JSP）

(4)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

(1)　WARファイル（Servlet 3.0/Servlet 2.5対応）

WARファイルに記述できるアノテーションはありません。

(2)　EJB-JARファイル（EJB3.1/EJB3.0対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表2-16　EJB-JARファイル（EJB3.1/EJB3.0対応）に記述できるアノテーション（javax.interceptorパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
デフォルトインターセプタ以外 | デフォルトインターセプタ
@AroundInvoke | － | ○ | － | × | ○ | ○ | － | －
@ExcludeClassInterceptors | － | ○ | － | × | － | － | － | －
@ExcludeDefaultInterceptors | － | ○ | － | × | － | － | － | －
@Interceptors | － | ○ | － | × | － | － | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(3)　ライブラリJAR（サーブレット/JSP）

ライブラリJARのサーブレットまたはJSPに記述できるアノテーションはありません。

(4)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

ライブラリJARのEnterprise Bean，例外クラス，およびその他のクラスに記述できるアノテーションの一覧を示します。

表2-17　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）に記述できるアノテーション（javax.interceptorパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
@AroundInvoke | － | － | － | × | ○ | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

2.1.5　javax.jwsパッケージに含まれるアノテーションのサポート範囲

javax.jwsパッケージに含まれるアノテーションのサポート範囲，および各アノテーションの詳細について，マニュアル「アプリケーションサーバ Webサービス開発ガイド」の「16.2　JavaからWSDLへのマッピングのカスタマイズ」を参照してください。

2.1.6　javax.persistenceパッケージに含まれるアノテーションのサポート範囲

javax.persistenceパッケージのアノテーションは，JPAプロバイダに依存する場合としない場合で記述できるコンポーネントが異なります。ここでは，JPAプロバイダに依存するアノテーションとJPAプロバイダに依存しないアノテーションに分けて説明します。

＜この項の構成＞

(1)　JPAプロバイダに依存するアノテーションの場合

(2)　JPAプロバイダに依存しないアノテーションの場合

(1)　JPAプロバイダに依存するアノテーションの場合

JPAプロバイダに依存するアノテーションの適用範囲を説明します。ここでは，コンポーネントごとに記述できるアノテーションを説明します。

(a)　WARファイル（Servlet 3.0対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-18　WARファイル（Servlet 3.0対応）に記述できるアノテーション（javax.persistenceパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | 例外クラス | ManagedBean(JSF) | その他のクラス
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@PersistenceContext | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －
@PersistenceContexts | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －
@PersistenceProperty | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －
@PersistenceUnit | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －
@PersistenceUnits | ○ | － | ○ | － | ○ | － | － | ○ | ○ | × | － | ○ | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(b)　WARファイル（Servlet 2.5対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-19　WARファイル（Servlet 2.5対応）に記述できるアノテーション（javax.persistenceパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | その他のクラス
サーブレット | サーブレットフィルタ | イベントリスナ | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@PersistenceContext | ○ | ○ | ○ | － | ○ | ○ | × | －
@PersistenceContexts | ○ | ○ | ○ | － | ○ | ○ | × | －
@PersistenceProperty | ○ | ○ | ○ | － | ○ | ○ | × | －
@PersistenceUnit | ○ | ○ | ○ | － | ○ | ○ | × | －
@PersistenceUnits | ○ | ○ | ○ | － | ○ | ○ | × | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(c)　EJB-JARファイル（EJB3.1/EJB3.0対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表2-20　EJB-JARファイル（EJB3.1/EJB3.0対応）に記述できるアノテーション（javax.persistenceパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
デフォルトインターセプタ以外 | デフォルトインターセプタ
@PersistenceContext | － | ○ | － | × | ○ | ○ | － | －
@PersistenceContexts | － | ○ | － | × | ○ | ○ | － | －
@PersistenceProperty | － | ○ | － | × | ○ | ○ | － | －
@PersistenceUnit | － | ○ | － | × | ○ | ○ | － | －
@PersistenceUnits | － | ○ | － | × | ○ | ○ | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(d)　ライブラリJAR（サーブレット/JSP）

ライブラリJARのサーブレットまたはJSPに記述できるアノテーションの一覧を示します。

表2-21　ライブラリJAR（サーブレット/JSP）に記述できるアノテーション（javax.persistenceパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@PersistenceContext | － | － | ○ | － | ○ | － | － | ○ | ○ | ×
@PersistenceContexts | － | － | ○ | － | ○ | － | － | ○ | ○ | ×
@PersistenceProperty | － | － | ○ | － | ○ | － | － | ○ | ○ | ×
@PersistenceUnit | － | － | ○ | － | ○ | － | － | ○ | ○ | ×
@PersistenceUnits | － | － | ○ | － | ○ | － | － | ○ | ○ | ×

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(e)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

ライブラリJARのEnterprise Bean，例外クラス，またはその他のクラスに記述できるアノテーションの一覧を示します。

表2-22　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）に記述できるアノテーション（javax.persistenceパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
@PersistenceContext | － | － | － | × | ○ | －
@PersistenceContexts | － | － | － | × | ○ | －
@PersistenceProperty | － | － | － | × | ○ | －
@PersistenceUnit | － | － | － | × | ○ | －
@PersistenceUnits | － | － | － | × | ○ | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

(2)　JPAプロバイダに依存しないアノテーションの場合

JPAプロバイダに依存しないアノテーションは，ファイルの種類に関係なく，エンティティクラス内に記述できます。

javax.persistenceパッケージに含まれるアノテーションの一覧については，　「2.7　javax.persistenceパッケージ」のアノテーション一覧を参照してください。

2.1.7　javax.servlet.annotationパッケージに含まれるアノテーションのサポート範囲

javax.servlet.annotationパッケージのアノテーションの適用範囲を説明します。ここでは，コンポーネントごとに記述できるアノテーションを説明します。

＜この項の構成＞

(1)　WARファイル（Servlet 3.0対応）

(2)　EJB-JARファイル

(3)　ライブラリJAR（サーブレット/JSP）

(4)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

(1)　WARファイル（Servlet 3.0対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-23　WARファイル（Servlet 3.0対応）に記述できるアノテーション（javax.servlet.annotationパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | 例外クラス | ManagedBean(JSF) | その他のクラス
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@HandlesTypes | － | － | － | － | － | － | － | － | － | － | － | － | ○
@HttpConstraint | ○ | ○ | － | － | － | － | － | － | － | － | － | － | －
@HttpMethodConstraint | ○ | ○ | － | － | － | － | － | － | － | － | － | － | －
@MultipartConfig | ○ | ○ | － | － | － | － | － | － | － | － | － | － | －
@ServletSecurity | ○ | ○ | － | － | － | － | － | － | － | － | － | － | －
@WebFilter | － | － | ○ | － | － | － | － | － | － | － | － | － | －
@WebInitParam | ○ | － | ○ | － | － | － | － | － | － | － | － | － | －
@WebListener | － | － | － | － | ○ | － | － | － | － | － | － | － | －
@WebServlet | ○ | － | － | － | － | － | － | － | － | － | － | － | －

（凡例）

○：対応する。

－：標準仕様で対応していない。

(2)　EJB-JARファイル

EJB-JARファイルに記述できるアノテーションはありません。

(3)　ライブラリJAR（サーブレット/JSP）

ライブラリJARのサーブレットまたはJSPに記述できるアノテーションはありません。

(4)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

ライブラリJARのEnterprise Bean，例外クラス，およびその他のクラスに記述できるアノテーションはありません。

2.1.8　javax.xml.wsパッケージに含まれるアノテーションのサポート範囲

javax.xml.wsパッケージに含まれるアノテーションのサポート範囲，および各アノテーションの詳細については，マニュアル「アプリケーションサーバ Webサービス開発ガイド」の「16.2　JavaからWSDLへのマッピングのカスタマイズ」を参照してください。

2.1.9　javax.xml.ws.soapパッケージに含まれるアノテーションのサポート範囲

javax.xml.ws.soapパッケージに含まれるアノテーションのサポート範囲，および各アノテーションの詳細については，マニュアル「アプリケーションサーバ Webサービス開発ガイド」の「16.2　JavaからWSDLへのマッピングのカスタマイズ」を参照してください。

2.1.10　javax.xml.ws.spiパッケージに含まれるアノテーションのサポート範囲

javax.xml.ws.spiパッケージに含まれるアノテーションのサポート範囲，および各アノテーションの詳細については，マニュアル「アプリケーションサーバ Webサービス開発ガイド」の「16.2　JavaからWSDLへのマッピングのカスタマイズ」を参照してください。

2.1.11　CDIのアノテーションのサポート一覧

CDIのアノテーションのサポート一覧を次の表に示します。

パッケージ | 含まれるアノテーション
javax.decorator | @Decorator
@Delegate
javax.enterprise.context | @ApplicationScoped
@ConversationScoped
@Dependent
@NormalScope
@RequestScoped
@SessionScoped
javax.enterprise.event | @Observes
javax.enterprise.inject | @Alternative
@Any
@Default
@Disposes
@Model
@New
@Produces
@Specializes
@Stereotype
@Typed
javax.inject | @inject
@Named
@Qualifier
@Scope
@Singleton

ここでは，コンポーネントごとに記述できるアノテーション（@injectアノテーション）を説明します。なお，@injectアノテーション以外のアノテーションについては，CDIに依存します。CDIに依存するアノテーションについては，CDI仕様のドキュメントを参照してください。

＜この項の構成＞

(1)　WARファイル（Servlet 3.0対応）

(2)　EJB-JARファイル（EJB3.1対応）

(3)　ライブラリJAR（サーブレット/JSP）

(4)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

(1)　WARファイル（Servlet 3.0対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-24　WARファイル（Servlet 3.0対応）に記述できるアノテーション（javax.injectパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | 例外クラス | ManagedBean（JSF） | その他のクラス
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@Inject | ○ | － | ○ | － | ○ | － | × | × | × | × | × | ○ | ○※

（凡例）

○：対応する。

－：標準仕様で対応していない。

×：アプリケーションサーバでは対応しない。

注※

該当するコンポーネントがCDIの機能を含むコンポーネントの場合だけ使用できます。

(2)　EJB-JARファイル（EJB3.1対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表2-25　EJB-JARファイル（EJB3.0対応）に記述できるアノテーション（javax.injectパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
デフォルトインターセプタ以外 | デフォルトインターセプタ
@Inject | × | ○ | × | × | × | × | × | ○※

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

注※

該当するコンポーネントがCDIの機能を含むコンポーネントの場合だけ使用できます。

(3)　ライブラリJAR（サーブレット/JSP）

ライブラリJARのサーブレットまたはJSPに記述できるアノテーションはありません。

(4)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

ライブラリJARのEnterprise Bean，例外クラス，またはその他のクラスに記述できるアノテーションの一覧を示します。

表2-26　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）に記述できるアノテーション（javax.injectパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean | インターセプタ
@Inject | × | × | × | × | × | × | ○※

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

注※

該当するコンポーネントがCDIの機能を含むコンポーネントの場合だけ使用できます。

2.1.12　JSFのアノテーションのサポート一覧

JSFのアノテーションのサポート一覧を次の表に示します。

パッケージ | 含まれるアノテーション
javax.faces.application | @ResourceDependencies
@ResourceDependency
javax.faces.bean | @ApplicationScoped
@CustomScoped
@ManagedProperty
@NoneScoped
@ReferencedBean
@RequestScoped
@SessionScoped
@ViewScoped
javax.faces.component | @FacesComponent
javax.faces.component.behavior | @FacesBehavior
javax.faces.convert | @FacesConverter
javax.faces.event | @ListenerFor
@ListenersFor
@NamedEvent
javax.faces.render | @FacesBehaviorRenderer
@FacesRenderer
javax.faces.validator | @FacesValidator

ここでは，コンポーネントごとに記述できるアノテーション（@ManagedBeanアノテーション）を説明します。なお，@ManagedBeanアノテーション以外のアノテーションについては，JSFに依存します。JSFに依存するアノテーションについては，JSF仕様のドキュメントを参照してください。

＜この項の構成＞

(1)　WARファイル（Servlet 3.0対応）

(2)　EJB-JARファイル（EJB3.1対応）

(3)　ライブラリJAR（サーブレット/JSP）

(4)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

(1)　WARファイル（Servlet 3.0対応）

WARファイルに記述できるアノテーションの一覧を示します。

表2-27　WARファイル（Servlet 3.0対応）に記述できるアノテーション（javax.faces.beanパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | 例外クラス | ManagedBean（JSF） | その他のクラス
サーブレット | サーブレット（API） | サーブレットフィルタ | サーブレットフィルタ（API） | イベントリスナ | イベントリスナ（API） | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@ManagedBean | － | － | － | － | － | － | － | － | － | － | － | ○ | －

（凡例）

○：対応する。

－：標準仕様で対応していない。

(2)　EJB-JARファイル（EJB3.1対応）

EJB-JARファイルに記述できるアノテーションはありません。

(3)　ライブラリJAR（サーブレット/JSP）

ライブラリJARのサーブレットまたはJSPに記述できるアノテーションはありません。

(4)　ライブラリJAR（Enterprise Bean/例外クラス/その他のクラス）

ライブラリJARのEnterprise Bean，例外クラス，およびその他のクラスに記述できるアノテーションはありません。

2.1.13　Bean Validationのアノテーションのサポート一覧

Bean Validationのアノテーションのサポート一覧を次の表に示します。なお，アプリケーションサーバでは，Bean ValidationはJSFとCDIから使用できます。

パッケージ | アノテーション
javax.validation | @Constraint
@GroupSequence
@OverridesAttribute
@OverridesAttribute.List
@ReportAsSingleViolation
@Valid
javax.validation.constraints | @AssertFalse
@AssertFalse.List
@AssertTrue
@AssertTrue.List
@DecimalMax
@DecimalMax.List
@DecimalMin
@DecimalMin.List
@Digits
@Digits.List
@Past
@Pattern.List
@Future
@Future.List
@Max
@Max.List
@Min
@Min.List
@Size
@Size.List
@NotNull
@NotNull.List
@Null
@Null.List
@Pattern
@Pattern.List

Bean Validationのアノテーションについては，Bean Validation仕様のドキュメントを参照してください。

Bean Validationのアノテーションの定義可能範囲を次の表に示します。

項番
連携対象
javax.validationパッケージ
javax.validation.constraintsパッケージ
サポートバージョン

1
JSF連携
クラスパス上のクラス
@ManagedBeanを指定したクラス
09-00

2
CDI連携
ユーザアプリケーション
クラスパス上のクラス
JavaBeansクラス※
09-50

注※

JavaBeansクラスのインスタンスをユーザプログラムが管理する場合，そのクラスではBean Validationのアノテーションを使用できます。

JavaBeansクラスのインスタンスをコンテナが管理する場合（Servlet/EJBなど），そのクラスではBean Validationのアノテーションを使用できません。

2.2　javax.annotationパッケージ

javax.annotationパッケージに含まれるアノテーションの一覧を次の表に示します。

アノテーション一覧

アノテーション名 | 機能
@PostConstruct | サーブレット，Enterprise Beanインスタンスなどが生成された直後にコールバックするメソッドを設定します。
@PreDestroy | サーブレット，Enterprise Beanインスタンスなどが削除される直前にコールバックするメソッドを設定します。
@Resource | リソースへの参照を宣言します。
@Resources | @Resourceを複数設定します。

それぞれのアノテーションの詳細について，次に説明します。

＜この節の構成＞

2.2.1　@PostConstruct

2.2.2　@PreDestroy

2.2.3　@Resource

2.2.4　@Resources

2.2.1　@PostConstruct

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

サーブレット，Enterprise Beanインスタンスなどが生成された直後にコールバックするメソッドを設定します。

(2)　属性

@PostConstructの属性はありません。

2.2.2　@PreDestroy

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

サーブレット，Enterprise Beanインスタンスなどが削除される直前にコールバックするメソッドを設定します。

(2)　属性

@PreDestroyの属性はありません。

2.2.3　@Resource

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

リソースへの参照を宣言します。クラス，メソッド，およびフィールドに設定できます。メソッドやフィールドに設定した場合，Dependency Injectionの対象となります。ただし，メソッドはsetメソッドである必要があります。

(2)　属性

@Resourceの属性の一覧を次の表に示します。

属性名 | 機能
name | リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合，省略できます。
type | リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合，省略できます。
authenticationType | リソースに使用する認証タイプを設定します。
shareable | リソースを共用するかどうかを設定します。
mappedName | 参照先リソースを特定するためにリソース表示名やキュー名を設定します。
lookup | 参照する別のリソース参照のPortable Global JNDI名，またはリソースの別名を設定します。
description | リソースの説明を設定します。

各属性の詳細を次に示します。

(a)　name属性

型

String

説明

リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合，省略できます。

なお，リソースの別名を指定することもできます。J2EEリソースの別名の設定については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.6.6　J2EEリソースの別名の設定」を参照してください。

デフォルト値

メソッドに設定した場合
アノテーションを設定したクラス名/setメソッドのプロパティ

フィールドに設定した場合
アノテーションを設定したクラス名/フィールド名

(b)　type属性

型

Class

説明

リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合，省略できます。

デフォルト値

メソッド設定した場合
メソッドの引数の型

フィールドに設定した場合
フィールドの型

type属性とDDの対応

type属性はJ2EE仕様と異なり，設定値（Java Type）によって対応するDDが変わります。Java Typeによって異なるDDの対応を次の表に示します。

表2-28　type属性によるDDの対応表

type属性 | J2EE仕様で対応するDDのタグ | アプリケーションサーバ仕様で対応するDDのタグ※1
java.lang.String※2 | env-entry | env-entry
java.lang.Character※2 | env-entry | env-entry
java.lang.Integer※2 | env-entry | env-entry
java.lang.Boolean※2 | env-entry | env-entry
java.lang.Double※2 | env-entry | env-entry
java.lang.Byte※2 | env-entry | env-entry
java.lang.Short※2 | env-entry | env-entry
java.lang.Long※2 | env-entry | env-entry
java.lang.Float※2 | env-entry | env-entry
javax.xml.rpc.Service | service-ref | 例外※3
javax.xml.ws.Service | service-ref | 例外※3
javax.jws.WebService | service-ref | 例外※3
javax.sql.DataSource | resource-ref | resource-ref
javax.jms.ConnectionFactory | resource-ref | resource-ref
javax.jms.QueueConnectionFactory | resource-ref | resource-ref
javax.jms.TopicConnectionFactory | resource-ref | resource-ref
javax.mail.Session | resource-ref | resource-ref
java.net.URL | resource-ref | 例外※3
javax.resource.cci.ConnectionFactory | resource-ref | resource-ref
org.omg.CORBA_2_3.ORB | resource-ref | resource-ref
リソースアダプタによって定義されるほかのコネクションファクトリ | resource-ref | resource-env-ref
javax.jms.Queue | message-destination-ref | resource-env-ref
javax.jms.Topic | message-destination-ref | resource-env-ref
javax.resource.cci.InteractionSpec | resource-env-ref | 例外※3
javax.transaction.UserTransaction | resource-env-ref | resource-env-ref
javax.xml.ws.WebServiceContext | 未定義 | resource-env-ref※4
上記以外のすべてのタイプ※5 | resource-env-ref | resource-env-ref

注※1

mappedName要素に「!#」が含まれていた場合は，Java Typeとは関係なく，<resource-env-ref>タグに対応づけます。

注※2

標準DDから値を取得できないため，属性ファイルには表示しますが，DIは行いません。

注※3

インポート時に例外となります。

注※4

08-70より前のアプリケーションサーバでは，上記以外のすべてのタイプとして扱われます。

注※5

09-00以降のアプリケーションサーバでは，java.lang.Classとjava.lang.Enumのサブクラスは<env-entry>で扱われません。

(c)　authenticationType属性

型

AuthenticationType

説明

リソースに使用する認証タイプを設定します。

デフォルト値

CONTAINER

(d)　shareable属性

型

boolean

説明

リソースを共用するかどうかを設定します。

デフォルト値

true

(e)　mappedName属性

型

String

説明

参照先リソースを特定するためにリソース表示名やキュー名を設定します。

リソース表示名に半角英数字およびアンダースコア(_)以外の文字を含む場合，半角英数字およびアンダースコア(_)以外の文字をアンダースコア(_)に置き換えて設定してください。

デフォルト値

""

mappedName属性の設定条件

mappedName属性はtype属性によって設定条件が変わります。@ResourceでのmappedName属性の設定条件を次の表に示します。

表2-29　@ResourceのmappedName()の設定条件

設定条件（Java Type，リソースなど） | 使用可否※1
java.lang.String | ×
java.lang.Character | ×
java.lang.Integer | ×
java.lang.Boolean | ×
java.lang.Double | ×
java.lang.Byte | ×
java.lang.Short | ×
java.lang.Long | ×
java.lang.Float | ×
javax.xml.rpc.Service | ×
javax.sql.DataSource | ○
javax.jms.ConnectionFactory | ○
javax.jms.QueueConnectionFactory | ○
javax.jms.TopicConnectionFactory | ○
javax.mail.Session | ○
java.net.URL | ×
javax.resource.cci.ConnectionFactory | ○
org.omg.CORBA_2_3.ORB | ×
javax.jms.Queue※2 | ○
javax.jms.Topic | ○
javax.resource.cci.InteractionSpec | ×
javax.transaction.UserTransaction | ×
javax.ejb.EjbContext | ×
javax.ejb.SessionContext | ×
javax.ejb.TimerService | ×
JavaBeansリソース | ○

（凡例）

○：使用できます。

×：使用できません。

注※1

管理対象オブジェクトへの対応づけは，Java Typeに関係なく，mappedName要素で対応づけます。リソースアダプタの表示名と管理対象オブジェクト名の区切り文字には，「!#」を使用してください。

注※2

TP1/Message Queue - AccessまたはReliable Messagingを使用時にjavax.jms.Queueを使用する場合，リソースアダプタの表示名とキューの表示名の区切り文字には，「#」を使用してください。

(f)　lookup属性

型

String

説明

参照する別のリソース参照のPortable Global JNDI名，またはリソースの別名を設定します。

デフォルト値

""

(g)　description属性

型

String

説明

リソースの説明を設定します。

デフォルト値

""

2.2.4　@Resources

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@Resourceを複数設定します。なお，クラスにだけ設定できます。

(2)　属性

@Resourcesの属性の一覧を次の表に示します。

属性名 | 機能
value | 複数のリソース（@Resource）を定義します。

各属性の詳細を次に示します。

(a)　value属性

型

Resource[]

説明

複数のリソース（@Resource）を定義します。

デフォルト値

なし

2.3　javax.annotation.securityパッケージ

javax.annotation.securityパッケージに含まれるアノテーションの一覧を次の表に示します。

アノテーション一覧

アノテーション名 | 機能
@DeclareRoles | セキュリティロールの参照を設定します。
@DenyAll | すべてのセキュリティロールに対して，アクセスを拒否するメソッドに設定します。
@PermitAll | すべてのセキュリティロールに対して，アクセスを許可するクラスまたはメソッドに設定します。
@RolesAllowed | クラスまたはメソッドに対してアクセスを許可するセキュリティロールを設定します。
@RunAs | サーブレット，またはEnterprise Beanを実行する際に適用するセキュリティロールを設定します。

＜この節の構成＞

2.3.1　@DeclareRoles

2.3.2　@DenyAll

2.3.3　@PermitAll

2.3.4　@RolesAllowed

2.3.5　@RunAs

2.3.1　@DeclareRoles

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

セキュリティロールの参照を設定します。なお，クラスにだけ設定できます。

(2)　属性

@DeclareRolesの属性の一覧を次の表に示します。

属性名 | 機能
value | 参照するセキュリティロール名を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

String[]

説明

参照するセキュリティロール名を設定します。

デフォルト値

なし

2.3.2　@DenyAll

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

すべてのセキュリティロールに対して，アクセスを拒否するメソッドまたはクラスに設定します。

(2)　属性

@DenyAllの属性はありません。

2.3.3　@PermitAll

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

すべてのセキュリティロールに対して，アクセスを許可するクラスまたはメソッドに設定します。

(2)　属性

@PermitAllの属性はありません。

2.3.4　@RolesAllowed

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

クラスまたはメソッドに対してアクセスを許可するセキュリティロールを設定します。

(2)　属性

@RolesAllowedの属性の一覧を次の表に示します。

属性名 | 機能
value | アプリケーションでのメソッドにアクセスするのが許可されたロールリストを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

String[]

説明

アプリケーションでのメソッドにアクセスするのが許可されたロールリストを設定します。

デフォルト値

なし

2.3.5　@RunAs

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

サーブレット，またはEnterprise Beanを実行する際に適用するセキュリティロールを設定します。なお，クラスにだけ設定できます。

(2)　属性

@RunAsの属性の一覧を次の表に示します。

属性名 | 機能
value | Enterprise Beanを実行する際に適用するセキュリティロール名を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

String

説明

サーブレット，またはEnterprise Beanを実行する際に適用するセキュリティロール名を設定します。

デフォルト値

なし

2.4　javax.ejbパッケージ

javax.ejbパッケージに含まれるアノテーションの一覧を次の表に示します。

アノテーション一覧

アノテーション名
機能

@AccessTimeout
Container Managed Concurrencyが設定されたSingleton Session Beanの，同時アクセスのタイムアウト値を設定します。

@AfterBegin
Stateful Session Beanの，トランザクション開始直後にコールバックされるメソッドに設定します。

@AfterCompletion
Stateful Session Beanの，トランザクション決着後にコールバックされるメソッドに設定します。

@ApplicationException
アプリケーション例外とする例外クラスに設定します。

@Asynchronous
非同期で実行するビジネスメソッドに設定します。
Stateless Session BeanまたはSingleton Session Beanのクラス，メソッドに設定します。

@BeforeCompletion
Stateful Session Beanの，トランザクション決着直前にコールバックされるメソッドに設定します。

@ConcurrencyManagement
Singleton Session BeanのConcurrencyManagementの種類を設定します。Singleton Session Beanのクラスにだけ設定します。

@DependsOn
Singleton Session Bean同士の依存関係を指定するために設定します。Singleton Session Beanのクラスにだけ設定します。

@EJB
EJBのビジネスインタフェースまたはホームインタフェースへの参照を設定します。

@EJBs
@EJBを複数設定します。

@Init
Stateful Session Beanのホームインタフェースで定義したcreate<METHOD>()を実行した際，コールバックするメソッドに設定します。

@Local
Enterprise Beanのローカルビジネスインタフェースを設定します。

@LocalBean
Session BeanをNo-Interface viewとして指定する場合に設定します。Session Beanのクラスにだけ設定します。

@LocalHome
ローカルホームインタフェース，およびローカルコンポーネントインタフェースを使用した呼び出しをサポートするEnterprise Beanのクラスに設定します。

@Lock
Container Managed Concurrencyが設定されたSingleton Session Beanの，ビジネスメソッドへのアクセス時の排他制御の方法を設定します。

@PostActivate
Stateful Session Beanが活性化された直後にコールバックするメソッドに設定します。

@PrePassivate
Stateful Session Beanが非活性化される直前にコールバックするメソッドに設定します。

@Remote
Enterprise Beanのリモートビジネスインタフェースを設定します。アノテーションをインタフェースに設定した場合，そのインタフェースがリモートビジネスインタフェースとなります。

@RemoteHome
リモートホームインタフェース，およびリモートコンポーネントインタフェースを使用した呼び出しをサポートするEnterprise Beanのクラスに設定します。

@Remove
Stateful Session Beanを削除する働きを持つビジネスメソッドに設定します。

@Schedule
EJBタイマーサービスの，カレンダーベースの自動生成タイマーがコールバックされるタイムアウトメソッドに設定します。

@Schedules
@Scheduleを複数設定します。コールバックされるタイムアウトメソッドに設定します。

@Singleton
Singleton Session Beanのクラスに設定します。

@Startup
アプリケーション開始時にSingleton Session Beanを同時に開始する場合に設定します。Singleton Session Beanのクラスに設定します。

@Stateful
Stateful Session Beanのクラスに設定します。

@Stateless
Stateless Session Beanのクラスに設定します。

@Timeout
TimerService使用時にコールバックするタイムアウトメソッドに設定します。

@TransactionAttribute
Enterprise BeanがCMTで動作する場合のトランザクション属性を設定します。

@TransactionManagement
Enterprise Beanのトランザクション管理種別を設定します。

＜この節の構成＞

2.4.1　@AccessTimeout

2.4.2　@AfterBegin

2.4.3　@AfterCompletion

2.4.4　@ApplicationException

2.4.5　@Asynchronous

2.4.6　@BeforeCompletion

2.4.7　@ConcurrencyManagement

2.4.8　@DependsOn

2.4.9　@EJB

2.4.10　@EJBs

2.4.11　@Init

2.4.12　@Local

2.4.13　@LocalBean

2.4.14　@LocalHome

2.4.15　@Lock

2.4.16　@PostActivate

2.4.17　@PrePassivate

2.4.18　@Remote

2.4.19　@RemoteHome

2.4.20　@Remove

2.4.21　@Schedule

2.4.22　@Schedules

2.4.23　@Singleton

2.4.24　@Startup

2.4.25　@Stateful

2.4.26　@Stateless

2.4.27　@Timeout

2.4.28　@TransactionAttribute

2.4.29　@TransactionManagement

2.4.1　@AccessTimeout

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Container Managed Concurrencyが設定されたSingleton Session Beanの，同時アクセスのタイムアウト値を設定します。

(2)　属性

@AccessTimeoutの属性の一覧を次の表に示します。

属性名 | 機能
value | タイムアウト値を設定します。
unit | タイムアウト値の単位を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

long

説明

タイムアウト値を設定します。

デフォルト値

なし

(b)　unit属性

型

TimeUnit

説明

タイムアウト値の単位を設定します。

デフォルト値

MILLISECONDS

2.4.2　@AfterBegin

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateful Session Beanの，トランザクション開始直後にコールバックされるメソッドに設定します。

(2)　属性

@AfterBeginの属性はありません。

2.4.3　@AfterCompletion

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateful Session Beanの，トランザクション決着後にコールバックされるメソッドに設定します。

(2)　属性

@AfterCompletionの属性はありません。

2.4.4　@ApplicationException

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

アプリケーション例外とする例外クラスに設定します。

(2)　属性

@ApplicationExceptionの属性の一覧を次の表に示します。

属性名 | 機能
rollback | 例外発生時にコンテナがトランザクションをロールバックするかどうかを設定します。
inherited | アプリケーション例外とするかどうかについて，クラスで設定されている定義をサブクラスにも適用するかどうかを設定します。

各属性の詳細を次に示します。

(a)　rollback属性

型

boolean

説明

例外発生時にコンテナがトランザクションをロールバックするかどうかを設定します。

デフォルト値

false

(b)　inherited属性

型

boolean

説明

アプリケーション例外とするかどうかについて，クラスで設定されている定義をサブクラスにも適用するかどうかを設定します。

デフォルト値

true

2.4.5　@Asynchronous

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

非同期で実行するビジネスメソッドに設定します。Stateless Session Bean，またはSingleton Session Beanのクラスおよびメソッドに設定します。

(2)　属性

@Asynchronousの属性はありません。

2.4.6　@BeforeCompletion

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateful Session Beanの，トランザクション決着直前にコールバックされるメソッドに設定します。

(2)　属性

@BeforeCompletionの属性はありません。

2.4.7　@ConcurrencyManagement

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Singleton Session BeanのConcurrencyManagementの種類を設定します。Singleton Session Beanのクラスにだけ設定します。

(2)　属性

@ConcurrencyManagementの属性の一覧を次の表に示します。

属性名 | 機能
value | Singleton Session BeanのConcurrencyManagementの種類を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

ConcurrencyManagementType

説明

Singleton Session BeanのConcurrencyManagementの種類を設定します。

デフォルト値

CONTAINER

2.4.8　@DependsOn

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Singleton Session Bean同士の依存関係を指定するために設定します。Singleton Session Beanのクラスにだけ設定します。

(2)　属性

@DependsOnの属性の一覧を次の表に示します。

属性名 | 機能
value | 依存するSingleton Session BeanのEJB名を列挙します。

各属性の詳細を次に示します。

(a)　value属性

型

String[]

説明

依存するSingleton Session BeanのEJB名を列挙します。

デフォルト値

なし

2.4.9　@EJB

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

EJBのビジネスインタフェースまたはホームインタフェースへの参照を設定します。クラス，メソッド，およびフィールドに設定できます。メソッドやフィールドに設定した場合，Dependency Injectionの対象となります。ただし，メソッドはsetメソッドである必要があります。

(2)　属性

@EJBの属性の一覧を次の表に示します。

属性名 | 機能
name | リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合，省略できます。
beanInterface | ビジネスインタフェースまたはホームインタフェースのクラスを設定します。アノテーションをメソッドまたはフィールドに設定する場合，省略できます。
beanName | 参照するEJBのパッケージなしクラス名を設定します。ただし，参照するEJBクラスを定義するアノテーション（@Stateless，@Stateful，@Singleton）にname属性が設定されている場合，name属性の値を設定します。また，DDによる定義をサポートするEJBの場合，DDの<ejb-name>タグの値を設定します。
mappedName | 参照するEJBのPortable Global JNDI名，またはEJBの別名を設定します。ただし，beanName属性が設定されている場合，beanName属性の設定が優先されます。
lookup | 参照するEJBのPortable Global JNDI名，またはEJBの別名を設定します。ただし，beanName属性やmappedName属性が設定されている場合，beanName属性やmappedName属性の設定が優先されます。
description | 参照するEJBの説明を設定します。

各属性の詳細を次に示します。

(a)　name属性

型

String

説明

リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合，省略できます。

デフォルト値

メソッドに設定した場合
アノテーションを設定したクラス名/setメソッドのプロパティ

フィールドに設定した場合
アノテーションを設定したクラス名/フィールド名

(b)　beanInterface属性

型

Class

説明

ビジネスインタフェースまたはホームインタフェースのクラスを設定します。アノテーションをメソッドまたはフィールドに設定する場合，省略できます。

デフォルト値

メソッド設定した場合
メソッドの引数の型

フィールドに設定した場合
フィールドの型

(c)　beanName属性

型

String

説明

参照するEJBのパッケージなしクラス名を設定します。ただし，参照するEJBクラスを定義するアノテーション（@Stateless，@Stateful，@Singleton）にname属性が設定されている場合，name属性の値を設定します。また，DDによる定義をサポートするEJBの場合，DDの<ejb-name>タグの値を設定します。

デフォルト値

""

(d)　mappedName属性

型

String

説明

参照するEJBのPortable Global JNDI名，またはEJBの別名を設定します。ただし，beanName属性が設定されている場合，beanName属性の設定が優先されます。

デフォルト値

""

(e)　lookup属性

型

String

説明

参照するEJBのPortable Global JNDI名，またはEJBの別名を設定します。ただし，beanName属性やmappedName属性が設定されている場合，beanName属性やmappedName属性の設定が優先されます。

デフォルト値

""

(f)　description属性

型

String

説明

参照するEJBの説明を設定します。

デフォルト値

""

2.4.10　@EJBs

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@EJBを複数設定します。なお，クラスにだけ設定できます。

(2)　属性

@EJBsの属性の一覧を次の表に示します。

属性名 | 機能
value | @EJBを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

EJB[]

説明

@EJBを設定します。

デフォルト値

なし

2.4.11　@Init

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateful Session Beanのホームインタフェースで定義したcreate<METHOD>()を実行した際，コールバックするメソッドに設定します。

(2)　属性

@Initの属性の一覧を次の表に示します。

属性名 | 機能
value | 対応するcreate<METHOD>()名を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

String

説明

対応するcreate<METHOD>()名を設定します。

デフォルト値

""

2.4.12　@Local

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Enterprise Beanのローカルビジネスインタフェースを設定します。アノテーションをインタフェースに設定した場合，そのインタフェースがローカルビジネスインタフェースとなります。Beanクラスに設定した場合，value属性にローカルビジネスインタフェースを設定する必要があります。

(2)　属性

@Localの属性の一覧を次の表に示します。

属性名 | 機能
value | アノテーションをBeanクラスに設定した場合，ローカルビジネスインタフェースのクラスを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

Class[]

説明

アノテーションをBeanクラスに設定した場合，ローカルビジネスインタフェースのクラスを設定します。

デフォルト値

{}

2.4.13　@LocalBean

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Session BeanをNo-Interface viewとして指定する場合に設定します。Session Beanのクラスにだけ設定します。

(2)　属性

@LocalBeanの属性はありません。

2.4.14　@LocalHome

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

ローカルホームインタフェース，およびローカルコンポーネントインタフェースを使用した呼び出しをサポートするEnterprise Beanのクラスに設定します。

(2)　属性

@LocalHomeの属性の一覧を次の表に示します。

属性名 | 機能
value | ローカルホームインタフェースを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

Class

説明

ローカルホームインタフェースを設定します。

デフォルト値

なし

2.4.15　@Lock

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Container Managed Concurrencyが設定されたSingleton Session Beanの，ビジネスメソッドへのアクセス時の排他制御の方法を設定します。

(2)　属性

@Lockの属性の一覧を次の表に示します。

属性名 | 機能
value | ビジネスメソッドへのアクセス時に，同時アクセスを許可する（READ）か，許可しない（WRITE）かを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

LockType

説明

ビジネスメソッドへのアクセス時に，同時アクセスを許可する（READ）か，許可しない（WRITE）かを設定します。

デフォルト値

WRITE

2.4.16　@PostActivate

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateful Session Beanが活性化された直後にコールバックするメソッドに設定します。アノテーションを設定できますが，活性化，非活性化の状態変化をサポートしないため，動作しません。

(2)　属性

@PostActivateの属性はありません。

2.4.17　@PrePassivate

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateful Session Beanが非活性化される直前にコールバックするメソッドに設定します。アノテーションを設定できますが，活性化，非活性化の状態変化をサポートしないため，動作しません。

(2)　属性

@PrePassivateの属性はありません。

2.4.18　@Remote

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Enterprise Beanのリモートビジネスインタフェースを設定します。アノテーションをインタフェースに設定した場合，そのインタフェースがリモートビジネスインタフェースとなります。Beanクラスに設定した場合，value属性にリモートビジネスインタフェースを設定する必要があります。

(2)　属性

@Remoteの属性の一覧を次の表に示します。

属性名 | 機能
value | アノテーションをBeanクラスに設定した場合，リモートビジネスインタフェースのクラスを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

Class[]

説明

アノテーションをBeanクラスに設定した場合，リモートビジネスインタフェースのクラスを設定します。

デフォルト値

{}

2.4.19　@RemoteHome

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

リモートホームインタフェース，およびリモートコンポーネントインタフェースを使用した呼び出しをサポートするEnterprise Beanのクラスに設定します。

(2)　属性

@RemoteHomeの属性の一覧を次の表に示します。

属性名 | 機能
value | リモートホームインタフェースを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

Class

説明

リモートホームインタフェースを設定します。

デフォルト値

なし

2.4.20　@Remove

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateful Session Beanを削除する働きを持つビジネスメソッドに設定します。

(2)　属性

@Removeの属性の一覧を次の表に示します。

属性名 | 機能
retainIfException | メソッドがアプリケーション例外で異常終了した場合に削除するかどうかを設定します。

各属性の詳細を次に示します。

(a)　retainIfException属性

型

boolean

説明

メソッドがアプリケーション例外で異常終了した場合に削除するかどうかを設定します。

デフォルト値

false

2.4.21　@Schedule

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

EJBタイマーサービスの，カレンダーベースの自動生成タイマーがコールバックされるタイムアウトメソッドに設定します。

(2)　属性

@Scheduleの属性の一覧を次の表に示します。

属性名 | 機能
dayOfMonth | タイムアウトする日を設定します。
dayOfWeek | タイムアウトする曜日を設定します。
hour | タイムアウトする時を設定します。
info | タイマーと結び付く任意の文字情報を設定します。
minute | タイムアウトする分を設定します。
month | タイムアウトする月を設定します。
persistent | タイマーの永続化を設定します。タイマーの永続化機能はサポートしないため，trueを設定してもタイマーは永続されないで，非永続（false）として動作します。
second | タイムアウトする秒を設定します。
timezone | タイムアウトするタイムゾーンを設定します。
year | タイムアウトする年を設定します。

各属性の詳細を次に示します。

(a)　dayOfMonth属性

型

String

説明

タイムアウトする日を設定します。

デフォルト値

"*"

(b)　dayOfWeek属性

型

String

説明

タイムアウトする曜日を設定します。

デフォルト値

"*"

(c)　hour属性

型

String

説明

タイムアウトする時を設定します。

デフォルト値

"0"

(d)　info属性

型

String

説明

タイマーと結び付く任意の文字情報を設定します。

デフォルト値

""

(e)　minute属性

型

String

説明

タイムアウトする分を設定します。

デフォルト値

"0"

(f)　month属性

型

String

説明

タイムアウトする月を設定します。

デフォルト値

"*"

(g)　persistent属性

型

boolean

説明

タイマーの永続化を設定します。タイマーの永続化機能はサポートしないため，trueを設定してもタイマーは永続されないで，非永続（false）として動作します。

デフォルト値

true

(h)　second属性

型

String

説明

タイムアウトする秒を設定します。

デフォルト値

"0"

(i)　timezone属性

型

String

説明

タイムアウトするタイムゾーンを設定します。

デフォルト値

""

(j)　year属性

型

String

説明

タイムアウトする年を設定します。

デフォルト値

"*"

2.4.22　@Schedules

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@Scheduleを複数設定します。コールバックされるタイムアウトメソッドに設定します。

(2)　属性

@Schedulesの属性の一覧を次の表に示します。

属性名 | 機能
value | @Scheduleを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

Schedule[]

説明

@Scheduleを設定します。

デフォルト値

なし

2.4.23　@Singleton

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Singleton Session Beanのクラスに設定します。

(2)　属性

@Singletonの属性の一覧を次の表に示します。

属性名 | 機能
name | Singleton Session Beanの名称を設定します。
mappedName | Singleton Session Beanの別名を設定します。
description | Singleton Session Beanの説明を設定します。

各属性の詳細を次に示します。

(a)　name属性

型

String

説明

Singleton Session Beanの名称を設定します。

デフォルト値

Singleton Session Beanのパッケージ名を除いたクラス名

(b)　mappedName属性

型

String

説明

Singleton Session Beanの別名を設定します。

デフォルト値

""

(c)　description属性

型

String

説明

Singleton Session Beanの説明を設定します。

デフォルト値

""

2.4.24　@Startup

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

アプリケーション開始時にSingleton Session Beanを同時に開始する場合に設定します。Singleton Session Beanのクラスに設定します。

(2)　属性

@Startupの属性はありません。

2.4.25　@Stateful

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateful Session Beanのクラスに設定します。

(2)　属性

@Statefulの属性の一覧を次の表に示します。

属性名 | 機能
name | Stateful Session Beanの名称を設定します。
mappedName | Stateful Session Beanの別名を設定します。
description | Stateful Session Beanの説明を設定します。

各属性の詳細を次に示します。

(a)　name属性

型

String

説明

Stateful Session Beanの名称を設定します。

デフォルト値

Stateful Session Beanのパッケージを除いたクラス名

(b)　mappedName属性

型

String

説明

Stateful Session Beanの別名を設定します。

デフォルト値

""

(c)　description属性

型

String

説明

Stateful Session Beanの説明を設定します。

デフォルト値

""

2.4.26　@Stateless

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Stateless Session Beanのクラスに設定します。

(2)　属性

@Statelessの属性の一覧を次の表に示します。

属性名 | 機能
name | Stateless Session Beanの名称を設定します。
mappedName | Stateless Session Beanの別名を設定します。
description | Stateless Session Beanの説明を設定します。

各属性の詳細を次に示します。

(a)　name属性

型

String

説明

Stateless Session Beanの名称を設定します。

デフォルト値

Stateless Session Beanのパッケージを除いたクラス名

(b)　mappedName属性

型

String

説明

Stateless Session Beanの別名を設定します。

デフォルト値

""

(c)　description属性

型

String

説明

Stateless Session Beanの説明を設定します。

デフォルト値

""

2.4.27　@Timeout

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

TimerService使用時にコールバックするタイムアウトメソッドに設定します。

(2)　属性

@Timeoutの属性はありません。

2.4.28　@TransactionAttribute

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Enterprise BeanがCMTで動作する場合のトランザクション属性を設定します。クラス，およびメソッドに設定できます。

(2)　属性

@TransactionAttributeの属性の一覧を次の表に示します。

属性名 | 機能
value | トランザクション属性を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

TransactionAttributeType

説明

トランザクション属性を設定します。

デフォルト値

REQUIRED

2.4.29　@TransactionManagement

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

Enterprise Beanのトランザクション管理種別を設定します。なお，クラスにだけ設定できます。

(2)　属性

@TransactionManagementの属性の一覧を次の表に示します。

属性名 | 機能
value | トランザクション管理種別を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

TransactionManagementType

説明

トランザクション管理種別を設定します。

デフォルト値

CONTAINER

2.5　javax.faces.beanパッケージ

javax.faces.beanパッケージに含まれるアノテーションの一覧を次の表に示します。

アノテーション一覧

アノテーション名 | 機能
@ManagedBean | JSFが使用するManaged Beanを設定します。

これ以外のアノテーションについては，JSF仕様のドキュメントを参照してください。

＜この節の構成＞

2.5.1　@ManagedBean

2.5.1　@ManagedBean

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

JSFが使用するManaged Beanを設定します。

(2)　属性

@ManagedBeanの属性の一覧を次の表に示します。

属性名 | 機能
eager | Managed BeanをWebアプリケーション開始時に生成するかどうかを設定します。
name | ManagedBeanの名前を設定します。

各属性の詳細を次に示します。

(a)　eager属性

型

boolean

説明

Managed BeanをWebアプリケーション開始時に生成するかどうかを設定します。trueを設定した場合，Beanのスコープをアプリケーションスコープにする必要があります。

デフォルト値

false

(b)　name属性

型

String

説明

ManagedBeanの名前を設定します。

未設定または空文字を設定した場合，アノテーションを指定したクラスのクラス名の先頭を小文字にした名前が使用されます。

例：java.examlpes.Beanの場合，名前はbeanになります。

デフォルト値

""

2.6　javax.interceptorパッケージ

javax.interceptorパッケージに含まれるアノテーションの一覧を次の表に示します。

アノテーション一覧

アノテーション名 | 機能
@AroundInvoke | ビジネスメソッドの呼び出しをインターセプトするメソッドに設定します。
@ExcludeClassInterceptors | クラスインターセプタを適用しないメソッドに設定します。
@ExcludeDefaultInterceptors | デフォルトインターセプタを適用しないクラス，およびメソッドに設定します。
@Interceptors | 適用するインターセプタクラスを設定します。クラス，およびメソッドに設定できます。

＜この節の構成＞

2.6.1　@AroundInvoke

2.6.2　@ExcludeClassInterceptors

2.6.3　@ExcludeDefaultInterceptors

2.6.4　@Interceptors

2.6.1　@AroundInvoke

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

ビジネスメソッドの呼び出しをインターセプトするメソッドに設定します。

(2)　属性

@AroundInvokeの属性はありません。

2.6.2　@ExcludeClassInterceptors

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

クラスインターセプタを適用しないメソッドに設定します。

(2)　属性

@ExcludeClassInterceptorsの属性はありません。

2.6.3　@ExcludeDefaultInterceptors

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

デフォルトインターセプタを適用しないクラス，およびメソッドに設定します。

(2)　属性

@ExcludeDefaultInterceptorsの属性はありません。

2.6.4　@Interceptors

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

適用するインターセプタクラスを設定します。クラス，およびメソッドに設定できます。

(2)　属性

@Interceptorsの属性の一覧を次の表に示します。

属性名 | 機能
value | 適用するインターセプタクラスを設定します。

各属性の詳細を次に示します。

(a)　value属性

型

Class[]

説明

適用するインターセプタクラスを設定します。

デフォルト値

なし

2.7　javax.persistenceパッケージ

javax.persistenceパッケージに含まれるアノテーションの一覧およびアノテーションを指定する際の注意事項について説明します。

なお，マッピング情報はアノテーションの代わりにO/Rマッピングファイルで指定することもできます。アノテーションとO/Rマッピングファイルとの対応については，「2.7.64　アノテーションとO/Rマッピングとの対応」を参照してください。

アノテーションを指定する際の注意事項

アプリケーションサーバのJPA機能では，DDL出力機能に関連する属性に対応していません。

アノテーションで同じカラム名を複数指定する場合は，大文字および小文字をそろえて指定してください。

フィールド名またはメソッド名をカラム名に割り当てた場合，アプリケーションサーバのJPA機能では文字列を大文字として扱います。対応するアノテーションでカラム名を指定する場合は，大文字にしてください。

アクセスタイプは，アノテーションを付与する場所によって決まります。ただし，アクセスタイプがフィールドとプロパティで混在した場合は，フィールドの設定が有効になります。

プロパティ名は，アクセサメソッドのgetまたはset（is）を除いた文字列によって次のように決まります。
・最初の二文字が大文字の場合，そのままの文字列になります。
・最初の二文字が大文字ではない場合，最初の文字を小文字に変換した文字列になります。
・一文字の場合，最初の文字を小文字に変換した文字列になります。

アノテーション一覧

アノテーションの区分
アノテーション名
概要

エンティティのアノテーション
@Entity
クラスがエンティティであることを示します。

テーブル・カラム関連のアノテーション
@Column
永続化フィールドまたは永続化プロパティと，データベース上のカラムとのマッピングを指定します。

@JoinColumn
エンティティクラス間の関連づけで，結合表のための外部キーカラムまたは外部キーカラムから参照された，結合先テーブルのカラムを指定します。

@JoinColumns
@JoinColumnを複数同時に記述する場合に使用します。

@JoinTable
次のクラスに設定する結合表を指定するアノテーションです。

ManyToManyリレーションシップを指定する場合の所有者側のクラス

片方向のOneToManyリレーションシップを持つクラス

@PrimaryKeyJoinColumn
ほかのテーブルと結合する場合に，外部キーとして使われるカラムを指定します。

@PrimaryKeyJoinColumns
@PrimaryKeyJoinColumnを複数同時に記述する場合に使用します。

@SecondaryTable
エンティティクラスにセカンダリテーブルを指定します。

@SecondaryTables
@SecondaryTableを複数同時に記述する場合に使用します。

@Table
エンティティクラスにプライマリテーブルを指定します。

@UniqueConstraint
プライマリテーブルまたはセカンダリテーブルに対して，CREATE文を生成する場合にユニーク制約を含めることを指定します。
なお，このアノテーションは，CJPAプロバイダには対応していません。

ID関連のアノテーション
@EmbeddedId
埋め込み可能クラスの複合プライマリキーであることを指定します。

@GeneratedValue
プライマリキーカラムにユニークな値を自動で生成，付与する方法を指定します。

@Id
エンティティクラスのプライマリキーのプロパティ，またはフィールドであることを指定します。

@IdClass
エンティティクラスの複数のフィールドまたはプロパティへマップされた複合プライマリキークラスを指定します。

@SequenceGenerator
プライマリキーを作成するシーケンスジェネレータの設定を指定します。

@TableGenerator
プライマリキーを作成するジェネレータの設定を指定します。

ロックのアノテーション
@Version
楽観的ロック機能を使用するために用いるversionフィールドまたはversionプロパティを指定します。

マッピング関連のアノテーション
@Basic
最も単純なデータベースのカラムへのマッピングの型を示します。

@Embeddable
埋め込みクラスであることを指定します。

@Embedded
埋め込み先のエンティティクラス内で，埋め込みクラスのインスタンス値を示す永続化プロパティまたは永続化フィールドであることを指定します。

@Enumerated
永続化フィールドまたは永続化プロパティを列挙型として指定します。

@Lob
データベースがサポートしているlargeオブジェクト型の永続化フィールドまたは永続化プロパティであることを指定します。

@MapKey
OneToManyリレーションシップ，またはManyToManyリレーションシップで，被所有者側のエンティティクラスがjava.util.Map型で示される場合にマップ内のオブジェクト識別に用いられるマップキーを指定します。

@OrderBy
エンティティの情報を取得するとき，コレクションが評価した順番を指定します。

@Temporal
時刻を表す型（java.util.Dateおよびjava.util.Calendar）を持つ永続化プロパティまたは永続化フィールドに指定します。

@Transient
永続化しないエンティティクラス，マップドスーパークラス，または埋め込みクラスのフィールドまたはプロパティであることを指定します。

リレーション関連のアノテーション
@ManyToMany
指定したクラスがManyToManyリレーションシップであることを示し，所有者側のエンティティクラスから被所有者側のエンティティクラスへの複数の関連を指定します。

@ManyToOne
指定したクラスがManyToOneリレーションシップであることを示し，被所有者側のエンティティクラスへの関連を指定します。

@OneToMany
指定したクラスがOneToManyリレーションシップであることを示し，所有者側のエンティティクラスから被所有者側のエンティティクラスへの複数の関連を指定します。

@OneToOne
指定したクラスがOneToOneリレーションシップであることを示し，エンティティクラス間の一つの関連を指定します。

継承・オーバーライド関連のアノテーション
@AssociationOverride
マップドスーパークラスや埋め込みクラスで指定された，ManyToOneリレーションシップまたはOneToOneリレーションシップで使用する設定をオーバーライドします。

@AssociationOverrides
@AssociationOverrideを複数同時に記述する場合に使用します。

@AttributeOverride
次に示すマッピング情報をオーバーライドします。

@Basicが指定された（またはデフォルトで適用された）プロパティ，フィールド

@Idで指定されたプロパティ，フィールド

@AttributeOverrides
@AttributeOverrideを複数同時に記述する場合に使用します。

@DiscriminatorColumn
SINGLE_TABLE戦略またはJOINED戦略で使用する識別用カラムを指定します。
エンティティクラスの継承で，スーパークラスとなるエンティティクラスに付与します。

@DiscriminatorValue
SINGLE_TABLE戦略またはJOINED戦略で使用する識別用カラムの値を指定します。

@Inheritance
エンティティクラス階層で使われる継承マッピング戦略を指定します。

@MappedSuperclass
マップドスーパークラスであることを指定します。

クエリ関連のアノテーション
@ColumnResult
SQLのクエリ結果をエンティティクラスとマッピングするためのカラムを指定します。

@EntityResult
SQLのクエリ結果をマッピングするエンティティクラスを指定します。

@FieldResult
SQLのクエリ結果をマッピングするフィールドを指定します。

@NamedNativeQueries
@NamedNativeQueryを複数同時に記述する場合に使用します。

@NamedNativeQuery
SQLで名前付きクエリを指定します。

@NamedQueries
@NamedQueryを複数同時に記述する場合に使用します。

@NamedQuery
JPQLの名前付きクエリを指定します。

@QueryHint
データベース固有のクエリのヒントを指定します。

@SqlResultSetMapping
SQLのクエリの結果セットマッピングを指定します。

@SqlResultSetMappings
@SqlResultSetMappingを複数同時に記述する場合に使用します。

イベント・コールバック関連のアノテーション※
@EntityListeners
エンティティクラスまたはマップドスーパークラスで使用されるコールバックリスナクラスを指定します。

@ExcludeDefaultListeners
次に示すクラスに対して，デフォルトリスナを抑止するアノテーションです。

エンティティクラス

マップドスーパークラス

エンティティクラスまたはマップドスーパークラスのサブクラス

@ExcludeSuperclassListeners
次に示すクラスに対して，スーパークラスリスナを抑止するアノテーションです。

エンティティクラス

マップドスーパークラス

エンティティクラスまたはマップドスーパークラスのサブクラス

@PostLoad
データベースにSELECT文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。

@PostPersist
データベースにINSERT文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。

@PostRemove
データベースにDELETE文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。

@PostUpdate
データベースにUPDATE文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。

@PrePersist
データベースにINSERT文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。

@PreRemove
データベースにDELETE文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。

@PreUpdate
データベースにUPDATE文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。

EntityManagerとEntityManagerFactoryのリファレンス関連のアノテーション
@PersistenceContext
コンテナ管理のEntityManagerを定義します。

@PersistenceContexts
@PersistenceContextを複数同時に記述する場合に使用します。

@PersistenceProperty
コンテナ管理のEntityManagerにプロパティを設定します。

@PersistenceUnit
EntityManagerFactoryへの永続化ユニットを定義します。

@PersistenceUnits
@PersistenceUnitを複数同時に記述する場合に使用します。

注※　コールバックメソッドの詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.15　コールバックメソッドの指定方法」を参照してください。

＜この節の構成＞

2.7.1　@AssociationOverride

2.7.2　@AssociationOverrides

2.7.3　@AttributeOverride

2.7.4　@AttributeOverrides

2.7.5　@Basic

2.7.6　@Column

2.7.7　@ColumnResult

2.7.8　@DiscriminatorColumn

2.7.9　@DiscriminatorValue

2.7.10　@Embeddable

2.7.11　@Embedded

2.7.12　@EmbeddedId

2.7.13　@Entity

2.7.14　@EntityListeners

2.7.15　@EntityResult

2.7.16　@Enumerated

2.7.17　@ExcludeDefaultListeners

2.7.18　@ExcludeSuperclassListeners

2.7.19　@FieldResult

2.7.20　@GeneratedValue

2.7.21　@Id

2.7.22　@IdClass

2.7.23　@Inheritance

2.7.24　@JoinColumn

2.7.25　@JoinColumns

2.7.26　@JoinTable

2.7.27　@Lob

2.7.28　@ManyToMany

2.7.29　@ManyToOne

2.7.30　@MapKey

2.7.31　@MappedSuperclass

2.7.32　@NamedNativeQueries

2.7.33　@NamedNativeQuery

2.7.34　@NamedQueries

2.7.35　@NamedQuery

2.7.36　@OneToMany

2.7.37　@OneToOne

2.7.38　@OrderBy

2.7.39　@PersistenceContext

2.7.40　@PersistenceContexts

2.7.41　@PersistenceProperty

2.7.42　@PersistenceUnit

2.7.43　@PersistenceUnits

2.7.44　@PostLoad

2.7.45　@PostPersist

2.7.46　@PostRemove

2.7.47　@PostUpdate

2.7.48　@PrePersist

2.7.49　@PreRemove

2.7.50　@PreUpdate

2.7.51　@PrimaryKeyJoinColumn

2.7.52　@PrimaryKeyJoinColumns

2.7.53　@QueryHint

2.7.54　@SecondaryTable

2.7.55　@SecondaryTables

2.7.56　@SequenceGenerator

2.7.57　@SqlResultSetMapping

2.7.58　@SqlResultSetMappings

2.7.59　@Table

2.7.60　@TableGenerator

2.7.61　@Temporal

2.7.62　@Transient

2.7.63　@Version

2.7.64　アノテーションとO/Rマッピングとの対応

2.7.1　@AssociationOverride

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

マップドスーパークラスや埋め込みクラスで指定されたManyToOneリレーションシップまたはOneToOneリレーションシップで使用する設定をオーバーライドするアノテーションです。

@AssociationOverrideが指定されていない場合，外部キーカラムはオリジナルマッピングと同様にマッピングされます。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@AssociationOverrideの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | オーバーライドする関連マッピングを持つフィールドまたはプロパティの名前を指定する属性です。
joinColumns | 必須 | ＠JoinColumnの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

オーバーライドする関連マッピングを持つフィールドまたはプロパティの名前を指定する属性です。

デフォルト値

なし

(b)　joinColumns属性

型

JoinColumn[]

説明

＠JoinColumnの配列を指定する属性です。

マッピングの型はマップドスーパークラスまたは埋め込みクラスの定義が適用されます。

指定できる値は，@JoinColumnの配列で指定できる範囲です。詳細は，「2.7.24　@JoinColumn」を参照してください。

デフォルト値

なし

2.7.2　@AssociationOverrides

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@AssociationOverrideを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@AssociationOverridesの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @AssociationOverrideの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

AssociationOverride[]

説明

@AssociationOverrideの配列を指定する属性です。

指定できる値は，@AssociationOverrideの配列で指定できる範囲です。詳細は，「2.7.1　@AssociationOverride」を参照してください。

デフォルト値

なし

2.7.3　@AttributeOverride

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

次に示すマッピング情報をオーバーライドするアノテーションです。

@Basicで指定した（デフォルトが適用された）プロパティまたはフィールド

デフォルトが適用されたプロパティまたはフィールド

@Idで指定されたプロパティまたはフィールド

マップドスーパークラスや埋め込みクラスに定義された@Columnの設定をオーバーライドするために，マップドスーパークラスを継承したエンティティクラスや埋め込みクラスのフィールドまたはプロパティに適用します。

@AttributeOverrideが指定されていない場合，カラムはオーバーライド前のオリジナルマッピングでマップされます。

継承関係を持たない単体のエンティティクラスに@AttributeOverrideを定義した場合，動作はしますが動作の保証はできません。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@AttributeOverrideの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | マッピングがオーバーライドされるフィールドまたはプロパティの名前を指定する属性です。
column | 必須 | オーバーライドする＠Columnを指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

マッピングがオーバーライドされるフィールドまたはプロパティの名前を指定する属性です。

デフォルト値

なし

(b)　column属性

型

Column

説明

オーバーライドする＠Columnを指定する属性です。

マッピングの型は埋め込み可能クラス，またはマップドスーパークラスの定義が適用されます。

指定できる値は，@Columnで指定できる範囲です。詳細は，「2.7.6　@Column」を参照してください。

デフォルト値

なし

2.7.4　@AttributeOverrides

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@AttributeOverrideを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@AttributeOverridesの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @AttributeOverrideの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

AttributeOverride[]

説明

@AttributeOverrideの配列を指定する属性です。

指定できる値は，@AttributeOverrideの配列で指定できる範囲です。詳細は，「2.7.3　@AttributeOverride」を参照してください。

デフォルト値

なし

2.7.5　@Basic

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

最も単純なデータベースのカラムへのマッピングの型を示すアノテーションです。

次に示す永続化する型のプロパティまたはインスタンス変数に適用できます。

Javaのプリミティブ型

プリミティブ型のラッパークラス

java.lang.String

java.math.BigInteger

java.math.BigDecimal

java.util.Date

java.util.Calendar

java.sql.Date

java.sql.Time

java.sql.Timestamp

byte[]

Byte[]

char[]

Character[]

enums

ユーザが定義するシリアライズ型

適用可能要素は，メソッドとフィールドです。

(2)　属性

@Basicの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

fetch
任意
フェッチ戦略の指定値を指定する属性です。

optional
任意
フィールドまたはプロパティにnull値を使用できるかどうかを指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　fetch属性

型

FetchType

説明

フェッチ戦略の指定値を指定する属性です。

指定できる値は，FetchType.EAGERまたはFetchType.LAZYです。

なお，CJPAプロバイダでは，fetch属性は無視され，デフォルトのFetchType.EAGERが常に適用されます。fetch属性の詳細は，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.4.5　データベースとの同期」を参照してください。

デフォルト値

FetchType.EAGER

2.7.6　@Column

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

永続化フィールドまたは永続化プロパティと，データベース上のカラムとのマッピングを指定するアノテーションです。

永続化プロパティまたは永続化フィールドに明示的に@Columnを指定しない場合でも，@Columnが指定されたように永続化フィールドまたは永続化プロパティは扱われます。この場合@Columnの各属性値にはデフォルト値が適用されます。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@Columnの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
任意
カラム名を指定する属性です。

unique
任意
プロパティがユニークキーであるかどうかを指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

nullable
任意
データベースのカラムにnull値を指定できるかどうかを指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

insertable
任意
@Columnで指定したカラムをSQLのINSERT文に含むかどうかを指定する属性です。

updatable
任意
@Columnで指定したカラムをSQLのUPDATE文に含むかどうかを指定する属性です。

columnDefinition
任意
CREATE文を出力するとき，カラムに付加する制約をDDLで記載する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

table
任意
カラムを含むテーブル名を指定する属性です。

length
任意
カラムの長さを指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

precision
任意
カラムの精度を指定する属性です。カラムが数値型の場合に指定します。
なお，この属性は，CJPAプロバイダには対応していません。

scale
任意
カラムのスケールを指定する属性です。カラムが数値型の場合に指定します。
なお，この属性は，CJPAプロバイダには対応していません。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

カラム名を指定する属性です。

指定できるカラム名は，データベースの仕様に依存します。

デフォルト値

このアノテーションを指定したプロパティ名またはフィールド名

(b)　insertable属性

型

boolean

説明

@Columnで指定したカラムをSQLのINSERT文に含むかどうかを指定する属性です。指定できる値は，trueまたはfalseです。

それぞれの値の意味は次のとおりです。

true：@Columnで指定したカラムをSQLのINSERT文に含みます。

false：@Columnで指定したカラムをSQLのINSERT文に含みません。

デフォルト値

true

(c)　updatable属性

型

boolean

説明

@Columnで指定したカラムをSQLのUPDATE文に含むかどうかを指定する属性です。指定できる値は，trueまたはfalseです。

それぞれの値の意味は次のとおりです。

true：@Columnで指定したカラムをSQLのUPDATE文に含みます。

false：@Columnで指定したカラムをSQLのUPDATE文に含みません。

デフォルト値

true

(d)　table属性

型

String

説明

カラムを含むテーブル名を指定します。

指定できるテーブル名は，データベースの仕様に依存します。

デフォルト値

プライマリテーブル名

2.7.7　@ColumnResult

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

SQLのクエリ結果をエンティティクラスとマッピングするためのカラムを指定するアノテーションです。

適用可能要素は，@SqlResultSetMappingのcolumnsです。

(2)　属性

@ColumnResultの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | SELECT節のカラムの名またはカラムの別名を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

SELECT節のカラム名またはカラムの別名を指定する属性です。

指定できるカラム名は，データベースの仕様に依存します。

デフォルト値

なし

2.7.8　@DiscriminatorColumn

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

SINGLE_TABLE戦略またはJOINED戦略で使用する識別用カラムを指定するアノテーションです。エンティティクラスの継承で，スーパークラスとなるエンティティクラスに付与します。

適用可能要素は，クラスです。

(2)　属性

@DiscriminatorColumnの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
任意
識別用カラム名を指定する属性です。

discriminatorType
任意
識別用カラムの型を指定する属性です。

columnDefinition
任意
CREATE文を出力するとき，識別用カラムに付加する制約をDDLで記載する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

length
任意
識別用カラムが文字列の場合，その長さを指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

識別用カラム名を指定する属性です。

指定できるカラム名は，データベースの仕様に依存します。

name属性の値は，@Columnのname属性と同じ値（大文字および小文字を合わせた値）を指定してください。

デフォルト値

"DTYPE"

(b)　discriminatorType属性

型

DiscriminatorType

説明

識別用カラムの型を指定する属性です。

指定できる値は，次のとおりです。

DiscriminatorType.STRING

DiscriminatorType.CHAR

DiscriminatorType.INTEGER

デフォルト値

DiscriminatorType.STRING

2.7.9　@DiscriminatorValue

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

SINGLE_TABLE戦略またはJOINED戦略で使用する識別用カラムの値を指定するアノテーションです。スーパークラスまたはサブクラスに指定できます。

適用可能要素は，クラスです。

なお，次の点に注意して指定してください。

@DiscriminatorValueの設定は継承されません。@DiscriminatorValueをエンティティクラスごとに設定する必要があります。

@DiscriminatorValueの設定は，@DiscriminatorColumnのdiscriminatorTypeの型とlengthの長さに一致させる必要があります。

@DiscriminatorColumnのdiscriminatorTypeがINTEGERの場合は，次の点に注意してください。

@DiscriminatorValueには，先頭に0や空白を含まない整数だけを指定してください。

@DiscriminatorValueは省略できません。省略した場合の動作は保証しません。

@DiscriminatorColumnのdiscriminatorTypeがINTEGER以外の場合は，@DiscriminatorValueを省略できます。このとき，valueの値がエンティティのクラス名であるものとして動作します。

(2)　属性

@DiscriminatorValueの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | 識別用のカラムに設定する値を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

String

説明

識別用カラムに設定する値を指定する属性です。

指定できる値は，識別用カラムの型に依存します。

デフォルト値

エンティティ名

2.7.10　@Embeddable

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

埋め込みクラスであることを示すアノテーションです。

埋め込みクラスとは，エンティティクラス内にフィールドとして埋め込むことができるクラスのことです。

適用可能要素は，クラスです。

(2)　属性

@Embeddableの属性はありません。

2.7.11　@Embedded

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティクラス内で，埋め込みクラスのインスタンス値を示す永続化プロパティまたは永続化フィールドであることを示すアノテーションです。

埋め込みクラス内で宣言されたカラムマッピングをオーバーライドしたい場合は，@AttributeOverrideまたは@AttributeOverridesを使用します。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@Embeddedの属性はありません。

2.7.12　@EmbeddedId

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

埋め込みクラスの複合プライマリキーであることを示すアノテーションです。

エンティティが所有する埋め込み可能クラスの永続化プロパティまたは永続化フィールドに付与します。

@EmbeddedIdを利用する場合，@EmbeddedIdを複数指定したり，@EmbeddedId以外に@Idを指定したりしてはいけません。

@Transientを埋め込みクラスのフィールドに付与した場合，そのフィールドは複合プライマリキーの対象になりません。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@EmbeddedIdの属性はありません。

2.7.13　@Entity

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

クラスがエンティティであることを示すアノテーションです。

エンティティクラスのクラス名は，パッケージ名を含まないクラス名になります。指定するときは，次の内容に注意してください。

エンティティ名は永続化ユニット内でユニークな名称にしてください。

JPQLの予約文字を設定してはいけません。設定した場合の動作は保証しません。

適用可能要素は，クラスです。

(2)　属性

@Entityの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 任意 | エンティティクラスに対する論理的な名前を指定する属性です。なお，JPQLでは，抽象スキーマ名となります。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

エンティティクラスに対する論理的な名前を指定する属性です。なお，JPQLでは，抽象スキーマ名となります。

指定できる値は，JPQLの仕様に依存します。

デフォルト値

@Entityを指定したクラスのクラス名

2.7.14　@EntityListeners

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティクラスまたはマップドスーパークラスで使用されるコールバックリスナクラスを指定するアノテーションです。

適用可能要素は，クラスです。

(2)　属性

@EntityListenersの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | コールバックリスナクラスを指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

Class[]

説明

コールバックリスナクラスを指定する属性です。

指定できる値は，クラスです。

デフォルト値

なし

2.7.15　@EntityResult

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

SQLのクエリ結果をマッピングするエンティティクラスを指定するアノテーションです。

適用可能要素は，@SqlResultSetMappingのentities属性です。

(2)　属性

@EntityResultの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
entityClass | 必須 | 結果のクラスを指定する属性です。
fields | 任意 | @FieldResultの配列を指定する属性です。
discriminatorColumn | 任意 | エンティティインスタンスの型を決定するSELECT節の中で，識別用カラムの名前または別名を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　entityClass属性

型

Class

説明

結果のクラスを指定する属性です。

指定できる値は，クラス名です。

デフォルト値

なし

(b)　fields属性

型

FieldResult[]

説明

@FieldResultの配列を指定する属性です。

指定できる値は，@FieldResultの配列で指定できる範囲です。詳細は，「2.7.19　@FieldResult」を参照してください。

デフォルト値

空の配列

(c)　discriminatorColumn属性

型

String

説明

エンティティインスタンスの型を決定するためのSELECT節の中で，識別用カラムの名前または別名を指定する属性です。

指定できる値は，テーブルに指定されたカラムの名前または別名です。

デフォルト値

空の文字列

2.7.16　@Enumerated

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

永続化フィールドまたは永続化プロパティを列挙型として指定するアノテーションです。

@Basicとともに使用できます。列挙型にはORDINAL（数値型）とSTRING（文字列型）が指定できます。

次の場合，列挙型はORDINAL（数値型）が指定されます。

value属性に列挙される型が指定されていない場合

@Enumeratedが指定されていない場合

適用可能要素は，メソッドとフィールドです。

(2)　属性

@Enumeratedの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 任意 | 列挙型をマッピングするのに使われる型を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

EnumType

説明

列挙型をマッピングするのに使われる型を指定する属性です。

指定できる値は，次のどちらかの値です。

EnumType.ORDINAL：数値型

EnumType.STRING：文字列型

デフォルト値

EnumType.ORDINAL

2.7.17　@ExcludeDefaultListeners

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

次に示すクラスに対して，デフォルトリスナを抑止するアノテーションです。

エンティティクラス

マップドスーパークラス

エンティティクラスまたはマップドスーパークラスのサブクラス

なお，デフォルトリスナを指定できるのは，XMLディスクリプタだけです。

適用可能要素は，クラスです。

(2)　属性

@ExcludeDefaultListenersの属性はありません。

2.7.18　@ExcludeSuperclassListeners

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

次に示すクラスに対して，スーパークラスリスナを抑止するアノテーションです。

エンティティクラス

マップドスーパークラス

エンティティクラスまたはマップドスーパークラスのサブクラス

適用可能要素は，クラスです。

(2)　属性

@ExcludeSuperclassListenersの属性はありません。

2.7.19　@FieldResult

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

SQLのクエリ結果をマッピングするフィールドを指定するアノテーションです。

適用可能要素は，@EntityResultのfield属性です。

(2)　属性

@FieldResultの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | クラスの永続化フィールドまたは永続化プロパティの名前を指定する属性です。
column | 必須 | SELECT節のカラム名またはカラムの別名を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

クラスの永続化フィールドまたは永続化プロパティの名前を指定する属性です。

デフォルト値

なし

(b)　column属性

型

String

説明

SELECT節のカラム名またはカラムの別名を指定する属性です。

指定できるカラム名または別名は，データベースの仕様に依存します。

デフォルト値

なし

2.7.20　@GeneratedValue

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

プライマリキーカラムにユニークな値を自動で生成，付与する方法を指定するアノテーションです。@Idを持つエンティティクラスまたはマップドスーパークラスのプライマリキーのフィールドまたはプロパティに適用します。

プライマリキー値の生成方法には，次の4種類の方法があります。なお，選択する生成方法に基づいて，あらかじめ基礎テーブルやデータベースシーケンスオブジェクトを用意しておく必要があります。それぞれの生成方法の詳細は，strategy属性の説明を参照してください。

GenerationType.AUTO

GenerationType.IDENTITY

GenerationType.SEQUENCE

GenerationType.TABLE

適用可能要素は，メソッドとフィールドです。

(2)　属性

@GeneratedValueの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
strategy | 任意 | エンティティクラスのプライマリキー値を生成する方法を指定する属性です。
generator | 任意 | 使用する@SequenceGeneratorまたは@TableGeneratorで設定されるname属性を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　strategy属性

型

GenerationType

説明

エンティティクラスのプライマリキー値を生成する方法を指定する属性です。

指定できる値は，次の4種類です。

GenerationType.AUTO
データベースごとに最も適切な手順を選択して，プライマリキー値を生成します。
データベースがOracleまたはHiRDBの場合は，GenerationType.TABLEと同じ処理をします。

GenerationType.IDENTITY
データベースのidentity列を利用して，プライマリキー値を生成します。
データベースがOracleの場合は，GenerationType.SEQUENCEと同じ処理をします。
データベースがHiRDBの場合は，GenerationType.TABLEと同じ処理をします。

GenerationType.SEQUENCE
データベースのシーケンスオブジェクトを使用して，プライマリキー値を生成します。
データベースがHiRDBの場合は，GenerationType.TABLEと同じ処理をします。

GenerationType.TABLE
プライマリキー値を保持しておくためのテーブルを使用して，プライマリキー値を生成します。

デフォルト値

GenerationType.AUTO

(b)　generator属性

型

String

説明

使用する@SequenceGeneratorまたは@TableGeneratorで設定されるname属性を指定する属性です。

デフォルト値

strategy属性の値によって，次の名前が仮定されます。

GenerationType.AUTOの場合
"SEQ_GEN"

GenerationType.SEQUENCEの場合
"SEQ_GEN_SEQUENCE"

GenerationType.TABLEの場合
"SEQ_GEN_TABLE"

2.7.21　@Id

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティクラスのプライマリキーのプロパティまたはフィールドであることを示すアノテーションです。

@Idは，エンティティクラスまたはマップドスーパークラスで適用されます。

@Idを指定したフィールドまたはプロパティに対してマップされたデータベース上のカラムは，プライマリテーブルのプライマリキーカラムであると仮定されます。プライマリキーカラムのカラム名を@Columnを用いて指定していない場合，プライマリキーカラムのカラム名は@Idを指定したフィールドまたはプロパティの名前になります。

なお，@Idを指定したフィールドに@Versionを指定した場合は，@Idが無効になります。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@Idの属性はありません。

2.7.22　@IdClass

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティクラスの複数のフィールドまたはプロパティへマップされた複合プライマリキークラスを指定するアノテーションです。

このアノテーションは，マップドスーパークラスまたはエンティティクラスに適用されます。

エンティティクラスのプライマリキーのフィールドまたはプロパティと，複合プライマリキークラスのフィールドまたはプロパティの名前と型は一致させる必要があります。このアノテーションで指定した名前および型は，@Idが付いたエンティティのプライマリキーのプロパティまたはフィールドの型および名前に対応させてください。

適用可能要素は，クラスです。

(2)　属性

@IdClassの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | 複合プライマリキークラスを指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

Class

説明

複合プライマリキークラスを指定する属性です。

指定できる値は，クラス名です。

デフォルト値

なし

2.7.23　@Inheritance

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティの継承階層で使われる継承マッピング戦略を指定するアノテーションです。

@Inheritanceは継承階層の親であるエンティティクラスに指定されます。

CJPAプロバイダで使用できる継承マッピング戦略には，次の2種類があります。

SINGLE_TABLE（クラス階層ごとの単体テーブル）

JOINED（結合サブクラス戦略）

継承マッピング戦略については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.13.2　継承マッピング戦略」を参照してください。

適用可能要素は，クラスです。

(2)　属性

@Inheritanceの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
strategy | 任意 | 継承マッピング戦略の種類を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　strategy属性

型

InheritanceType

説明

エンティティで使用する継承マッピング戦略の種類を指定する属性です。

指定できる値は，次の2種類です。

InheritanceType.SINGLE_TABLE：継承階層にあるすべてのクラスを一つのテーブルにマッピングする戦略です。

InheritanceType.JOINED：継承階層の最上位（親クラス）は単一の表にマッピングされ，各サブクラスはサブクラス特有のマッピングをする戦略です。

デフォルト値

InheritanceType.SINGLE_TABLE

2.7.24　@JoinColumn

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティクラス間の関連づけをする場合に，結合表のための外部キーカラムまたは外部キーカラムによって参照された，結合先テーブルのカラム名を指定するアノテーションです。必ず結合先テーブルのプライマリキーとなっているカラムを指定してください。

複数の外部キーカラムがある場合は@JoinColumnsを使用し，それぞれの関連に対して@JoinColumnを指定してください。なお，複数の@JoinColumnを指定した場合は，name属性およびreferencedColumnName属性をそれぞれのアノテーションで指定してください。

@JoinColumnを明示的に指定しない場合，関連を示す永続化プロパティまたは永続化フィールドに単体の外部キーカラムを指定しているように扱われます。また，@JoinColumnの各属性値にデフォルト値が適用されます。

また，一つのカラムがフィールドに対して行った変更と，カスケード操作の関連づけによる変更が同時に実施されたことによって，整合性が取れなくなる場合があります。このため，name属性およびreferencedColumnName属性に指定したカラムをエンティティのフィールドに定義する場合は，insertable属性およびupdatable属性をfalseに指定する必要があります。この指定によって，フィールドに対して行った変更だけがデータベースに反映されますが，カスケード操作の関連づけによる変更はデータベースに反映されません。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@JoinColumnの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
任意
対象テーブルを結合するために使用する外部キーカラム名を指定する属性です。

referencedColumnName
任意
name属性で指定した外部キーカラムによって参照された結合先テーブルのカラム名を指定する属性です。

unique
任意
プロパティがユニークキーであるかどうかを指定する属性です。
なお，この属性は，CJPAプロバイダでは対応していません。

nullable
任意
データベースのカラムにnull値を指定できるかどうかを指定する属性です。
なお，この属性は，CJPAプロバイダでは対応していません。

insertable
任意
@JoinColumnで指定したカラムをSQLのINSERT文に含むかどうか指定する属性です。

updatable
任意
@JoinColumnで指定したカラムをSQLのUPDATE文に含むかどうか指定する属性です。

columnDefinition
任意
CREATE文を出力する場合，外部カラムに追加する規約をDDLで記載する属性です。
なお，この属性は，CJPAプロバイダでは対応していません。

table
任意
外部キーカラムを含むテーブル名を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

対象テーブルを結合するために使用する外部キーカラム名を指定する属性です。

外部キーカラムは，エンティティのリレーションシップの種別ごとに存在する個所が異なります。エンティティのリレーションシップの種別ごとに外部キーカラムの存在個所を示します。

OneToOneリレーションシップまたはManyToOneリレーションシップの場合
自エンティティのテーブル内

ManyToManyリレーションシップの場合
@JoinTableの結合表内

なお，指定できる値は，データベースのカラム名の仕様に依存します。

デフォルト値

自エンティティ内に単体の外部キーカラムが指定され，name要素の値に何も指定しない場合
<自エンティティ内の関連プロパティまたはフィールドの名前>_<参照されるプライマリキー列の名前>

参照している関連プロパティやフィールドがない場合（例：@JoinTableを使用している場合）
<参照しているエンティティの名前>_<参照されるプライマリキー列の名前>

(b)　referencedColumnName属性

型

String

説明

name属性で指定した外部キーカラムによって参照された結合先テーブルのカラム名を指定する属性です。

結合先テーブルのカラム名は次の個所に存在します。

リレーションシップのアノテーションを使った場合
参照されるテーブル内

@JoinTableで使った場合
所有者側エンティティのエンティティテーブル内

注

結合が逆結合の一部で定義される場合は，被所有者側のエンティティクラスのテーブル内になります。

なお，指定できるカラム名は，データベースの仕様に依存します。

デフォルト値

外部キーによって参照されるテーブルのプライマリキーのカラム名

注

単体の外部キーカラムが指定される場合は，デフォルトを適用します。

(c)　insertable属性

型

boolean

説明

@JoinColumnで指定したカラムをSQLのINSERT文に含むかどうかを指定する属性です。指定できる値は，trueまたはfalseです。

それぞれの値の意味は次のとおりです。

true：@JoinColumnで指定したカラムをSQLのINSERT文に含みます。

false：@JoinColumnで指定したカラムをSQLのINSERT文に含みません。

デフォルト値

true

(d)　updatable属性

型

boolean

説明

@JoinColumnで指定したカラムをSQLのUPDATE文に含むかどうかを指定する属性です。指定できる値は，trueまたはfalseです。

それぞれの値の意味は次のとおりです。

true：@JoinColumnで指定したカラムをSQLのUPDATE文に含みます。

false：@JoinColumnで指定したカラムをSQLのUPDATE文に含みません。

デフォルト値

true

(e)　table属性

型

String

説明

外部キーカラムを含むテーブル名を指定する属性です。

指定できるテーブル名は，データベースの仕様に依存します。

デフォルト値

プライマリテーブル名

2.7.25　@JoinColumns

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

同じ関連を示す@JoinColumnを複数同時に記述する場合に指定するアノテーションです。また，@JoinColumnsは複合外部キーのマッピングを定義します。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@JoinColumnsの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @JoinColumnの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

JoinColumn[]

説明

@JoinColumnの配列を指定する属性です。

指定できる値は，@JoinColumnの配列で指定できる範囲です。

デフォルト値

なし

2.7.26　@JoinTable

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

次のクラスに設定する結合表を指定するアノテーションです。

ManyToManyリレーションシップを指定する場合の所有者側のクラス

片方向のOneToManyリレーションシップを持つクラス

name属性が指定されない場合，結合表の名前は次の名称になります。

<所有者側テーブル名>_<被所有者側テーブル名>

適用可能要素は，メソッドとフィールドです。

(2)　属性

@JoinTableの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
任意
結合表のテーブル名を指定する属性です。

catalog
任意
結合表のテーブルのカタログ名を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

schema
任意
結合表のテーブルのスキーマ名を指定する属性です。

joinColumns
任意
所有者側エンティティのプライマリテーブルを参照する，結合表の外部キーカラムを指定する属性です。

inverseJoinColumns
任意
被所有者側エンティティのプライマリテーブルを参照する，結合表の外部キーカラムを指定する属性です。

uniqueConstraints
任意
テーブルのユニーク規制を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

結合表のテーブル名を指定する属性です。

指定できるテーブル名は，データベースの仕様に依存します。

デフォルト値

<所有者側テーブル名>_<被所有者側テーブル名>

(b)　schema属性

型

String

説明

テーブルのスキーマ名を指定する属性です。

指定できる値は，データベースのスキーマ名の仕様に依存します。

デフォルト値

使用するデータベースのデフォルトのスキーマ

(c)　joinColumns属性

型

JoinColumn[]

説明

所有者側エンティティのプライマリテーブルを参照する，結合表の外部キーカラムを指定する属性です。@JoinColumnの配列を指定します。@JoinColumnのname属性には結合表の外部キーカラム名，referencedColumnName属性には所有者側の参照カラム名をそれぞれ指定します。

指定できるカラム名は，データベースの仕様に依存します。

デフォルト値

@JoinColumnの外部キー

(d)　inverseJoinColumns属性

型

JoinColumn[]

説明

被所有者側エンティティのプライマリテーブルを参照する，結合表の外部キーカラムを指定する属性です。@JoinColumnの配列を指定します。@JoinColumnのname属性には結合表の外部キーカラム名，referencedColumnName属性には外部キーカラムで参照された結合先テーブルのカラムをそれぞれ指定します。

指定できる値は，データベースのカラム名の仕様に依存します。

デフォルト値

@JoinColumnの外部キーカラム

2.7.27　@Lob

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

データベースがサポートしているlargeオブジェクト型の永続化フィールドまたは永続化プロパティであることを指定するアノテーションです。@Basicとともに使用できます。

@Lobにはバイナリ型（Blob）とキャラクタ型（Clob）があります。@Lobの型は，永続化フィールドまたは永続化プロパティの型によって決まります。文字列およびキャラクタ型の場合はClobになり，そのほかの場合はBlobになります。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@Lobの属性はありません。

2.7.28　@ManyToMany

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

ManyToManyリレーションシップの関係を持つ所有者側のエンティティクラスから被所有者側のエンティティクラスへの複数の関連を指定するアノテーションです。

ManyToManyリレーションシップは，双方向，単方向に関係なく，所有者側と被所有者側を持ちます。関係が双方向の場合，結合表の指定はどちらの側でも指定できます。

なお，Genericsを使用してCollection要素型が指定されている場合，被所有者側のエンティティクラスを指定する必要はありません。そのほかの場合は，必ず指定してください。

また，@ManyToManyを指定した場合は，次に示すアノテーションの設定に注意してください。

@OneToManyのための同じアノテーションの属性は，@ManyToManyと同じ属性を持ちます。

所有者側と被所有者側のクラスで@ManyToManyを定義したプロパティまたはフィールドが同じ名前の場合は，@JoinTableのデフォルト設定（joinColumns属性，inverseJoinColumns属性の指定がない状態）を使用しないでください。

双方向関係の場合には，所有者側の情報を基に結合表の値が更新されます。mappedBy属性を指定したエンティティクラスでマッピング情報を変更しても，その情報は結合表には反映されません。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@ManyToManyの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
targetEntity | 任意 | 被所有者側のエンティティクラスを指定する属性です。
cascade | 任意 | カスケード対象となるオペレーションを指定する属性です。
fetch | 任意 | フェッチ戦略の指定値を指定する属性です。
mappedBy | 任意 | 被所有者側のエンティティクラスの要素に付与して，所有者側のエンティティクラスで関係を保持しているフィールドまたはプロパティの名前を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　targetEntity属性

型

Class

説明

被所有者側のエンティティクラスを指定する属性です。

Genericsを使って定義されているコレクションプロパティの場合は，任意で指定します。それ以外の場合は必ず指定してください。

デフォルト値

コレクションのパラメタ化された型

注　Genericsを使って定義されているときにだけ設定されます。

(b)　cascade属性

型

CascadeType[]

説明

カスケード対象となるオペレーションを指定する属性です。

指定できる値を次に示します。

CascadeType.ALL：所有者側のエンティティクラスのpersist，remove，merge，refreshの操作が関連先にカスケードされます。

CascadeType.MERGE：所有者側のエンティティクラスのmerge操作が関連先にカスケードされます。

CascadeType.PERSIST：所有者側のエンティティクラスのpersist操作が関連先にカスケードされます。

CascadeType.REFRESH：所有者側のエンティティクラスのrefresh操作が関連先にカスケードされます。

CascadeType.REMOVE：所有者側のエンティティクラスのremove操作が関連先にカスケードされます。

デフォルト値

カスケード対象なし

(c)　fetch属性

型

FetchType

説明

データベースからのデータのフェッチ戦略を定義する属性です。フェッチ戦略については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.4.5　データベースとの同期」を参照してください。

指定できる値は，次の2種類です。

EAGER戦略：データがEAGERにフェッチされなければならない要求

LAZY戦略：データが最初にアクセスされるときに，LAZYにフェッチされる要求

デフォルト値

FetchType.LAZY

(d)　mappedBy属性

型

String

説明

被所有者側のエンティティクラスの要素に付与し，所有者側のエンティティクラスで関係を保持しているフィールドまたはプロパティの名前を指定する属性です。

この属性を指定した場合，関係は双方向になります。双方向関係の場合には所有者側の情報を基に結合表の値は更新されます。被所有者側のエンティティクラス（mappedBy属性を指定したエンティティクラス）でマッピング情報を変更しても，その情報は結合表には反映されません。

デフォルト値

なし

2.7.29　@ManyToOne

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@ManayToOneが指定されたクラスがManyToOneリレーションシップであることを示し，所有者側のエンティティクラスから被所有者側のエンティティクラスへの関連を指定するアノテーションです。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@ManyToOneの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
targetEntity | 任意 | 被所有者側のエンティティクラスを指定する属性です。
cascade | 任意 | カスケード対象となるオペレーションを指定する属性です。
fetch | 任意 | フェッチ戦略の指定値を指定する属性です。
optional | 任意 | すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を設定できるかどうかを指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　targetEntity属性

型

Class

説明

被所有者側のエンティティクラスを指定する属性です。

デフォルト値

アノテーションが付与されているフィールドやプロパティの型

(b)　cascade属性

型

CascadeType[]

説明

カスケード対象となるオペレーションを指定する属性です。

指定できる値を次に示します。

CascadeType.ALL：所有者側のエンティティクラスのpersist，remove，merge，およびrefreshの操作が関連先にカスケードされます。

CascadeType.MERGE：所有者側のエンティティクラスのmerge操作が関連先にカスケードされます。

CascadeType.PERSIST：所有者側のエンティティクラスのpersist操作が関連先にカスケードされます。

CascadeType.REFRESH：所有者側のエンティティクラスのrefresh操作が関連先にカスケードされます。

CascadeType.REMOVE：所有者側のエンティティクラスのremove操作が関連先にカスケードされます。

デフォルト値

カスケード対象なし

(c)　fetch属性

型

FetchType

説明

データベースからのデータのフェッチ戦略を定義する属性です。フェッチ戦略については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.4.5　データベースとの同期」を参照してください。

指定できる値は，次の2種類です。

EAGER戦略：データがEAGERにフェッチされなければならない要求

LAZY戦略：データが最初にアクセスされるときに，LAZYにフェッチされる要求

デフォルト値

FetchType.EAGER

(d)　optional属性

型

boolean

説明

すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を指定できるかどうかを指定する属性です。指定できる値は，次のとおりです。

true：すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を設定できます。

false：すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を指定できません。

デフォルト値

true

2.7.30　@MapKey

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

OneToManyリレーションシップまたはManyToManyリレーションシップで被所有者側のエンティティクラスがjava.util.Map型で示される場合に，マップ内のオブジェクト識別に用いられるマップキーを指定するアノテーションです。

name属性が指定されない場合，関連づけられたエンティティのプライマリキーはマップキーとして使われます。

プライマリキーが複合プライマリキーである場合に@IdClassとしてマップされるときは，マップキーに複合プライマリキーを使います。

プライマリキー以外の永続化フィールドまたは永続化プロパティがマップキーとして使われる場合は，そのマップキーと関連したユニークキー制約を持つことができます。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@MapKeyの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 任意 | マップキーとして使われる被所有者側のエンティティクラスの永続化フィールドまたは永続化プロパティの名前を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

マップキーとして使われる被所有者側のエンティティクラスの永続化フィールドまたは永続化プロパティの名前を指定する属性です。

デフォルト値

被所有者側のエンティティクラスのプライマリキーフィールドまたはプロパティの名前

2.7.31　@MappedSuperclass

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

マップドスーパークラスであることを指定するアノテーションです。

マップドスーパークラスは，継承するためのクラスであるため，このクラスに対応するテーブルを持ちません。マップドスーパークラスは，サブクラスへのマッピングと関連マッピング情報が継承されることを除いて，エンティティと同じ方法でテーブルにマップされます。

@AttributeOverrideを使うことでマッピング情報をサブクラスでオーバーライドできます。

適用可能要素は，クラスです。

(2)　属性

@MappedSuperclassの属性はありません。

2.7.32　@NamedNativeQueries

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@NamedNativeQueryを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラスです。

(2)　属性

@NamedNativeQueriesの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @NamedNativeQueryの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

NamedNativeQuery[]

説明

@NamedNativeQueryの配列を指定する属性です。

指定できる値は，@NamedNativeQuery配列で指定できる範囲です。詳細は，「2.7.33　@NamedNativeQuery」を参照してください。

デフォルト値

なし

2.7.33　@NamedNativeQuery

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

SQLで名前付きクエリを指定するアノテーションです。エンティティクラスとマップドスーパークラスに適用できます。

適用可能要素は，クラスです。

(2)　属性

@NamedNativeQueryの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | 名前付きクエリの名前を指定する属性です。
query | 必須 | SQLの文字列を指定する属性です。
hints | 任意 | @QueryHintの配列を指定する属性です。
resultClass | 任意 | SQLの結果を反映するクラスを指定する属性です。
resultSetMapping | 任意 | @SqlResultSetMappingのname属性で指定した名前を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

名前付きクエリの名前を指定する属性です。

指定できる値は，文字列です。

デフォルト値

なし

(b)　query属性

型

String

説明

SQLの文字列を指定する属性です。

指定できるSQLは，使用するデータベースの仕様に依存します。

デフォルト値

なし

(c)　hints属性

型

QueryHint[]

説明

@QueryHintの配列を指定する属性です。

指定できる値は，@QueryHintの配列で指定できる範囲です。詳細は，「2.7.53　@QueryHint」を参照してください。

デフォルト値

空の配列

(d)　resultClass属性

型

Class

説明

SQLの結果を反映するクラスを指定する属性です。

resultClass属性は，クエリの実行結果をマッピングしたいクラスがあるときに指定します。resultClass属性とresultSetMapping属性は同時に指定しないでください。

指定できる値は，クラス名です。

デフォルト値

void.class

(e)　resultSetMapping属性

型

String

説明

結果セットを定義した@SqlResultSetMappingのname属性で指定した名前を指定する属性です。

任意の結果セットにSQLの結果をマッピングしたいときに指定します。

resultClass属性とresultSetMapping属性は同時に指定しないでください。

指定できる範囲は，@SqlResultSetMappingのname属性で指定できる範囲です。詳細は，「2.7.57(2)(a)　name属性」を参照してください。

デフォルト値

空の文字列

2.7.34　@NamedQueries

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@NamedQueryを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラスです。

(2)　属性

@NamedQueriesの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @NamedQueryの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

NamedQuery[]

説明

@NamedQueryの配列を指定する属性です。

指定できる値は，@NamedQueryの配列で指定できる範囲です。詳細は，「2.7.35　@NamedQuery」を参照してください。

デフォルト値

なし

2.7.35　@NamedQuery

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

JPQLの名前付きクエリを指定するアノテーションです。エンティティクラスとマップドスーパークラスに適用できます。

適用可能要素は，クラスです。

(2)　属性

@NamedQueryの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | 名前付きクエリ名を指定する属性です。
query | 必須 | JPQLのクエリ文字列を指定する属性です。
hints | 任意 | @QueryHintの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

名前付きクエリ名を指定する属性です。

指定できる値は，文字列です。

デフォルト値

なし

(b)　query属性

型

String

説明

JPQLのクエリ文字列を指定する属性です。

指定できる値は，JPQLの仕様に依存します。

デフォルト値

なし

(c)　hints属性

型

QueryHint[]

説明

@QueryHintの配列を指定する属性です。

指定できる値は，@QueryHintの配列で指定できる範囲です。詳細は，「2.7.53　@QueryHint」を参照してください。

デフォルト値

空の配列

2.7.36　@OneToMany

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

OneToManyリレーションシップの関係を持つ所有者側のエンティティクラスから被所有者側のエンティティクラスへの複数の関連を指定するアノテーションです。

@OneToManyのための同じアノテーションの属性は，@ManyToManyと同じ属性を持ちます。

なお，Genericsを使用してCollection要素型が指定されている場合，被所有者側のエンティティクラスを指定する必要はありません。そのほかの場合は，必ず指定してください。

また，双方向の関係にする場合は，非所有者側に必ずmappedBy属性を指定してください。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@OneToManyの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
targetEntity | 任意 | 被所有者側のエンティティクラスを指定する属性です。
cascade | 任意 | カスケード対象となるオペレーションを指定する属性です。
fetch | 任意 | フェッチ戦略の指定値を指定する属性です。
mappedBy | 任意 | 被所有者側のエンティティクラスの要素に付与し，所有者側のエンティティクラスで関係を保持しているフィールドまたはプロパティの名前を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　targetEntity属性

型

Class

説明

被所有者側のエンティティクラスを指定する属性です。

Genericsを使って定義されているコレクションプロパティの場合は，任意で指定します。それ以外の場合は必ず指定してください。

デフォルト値

コレクションのパラメタ化された型

注　Genericsを使って定義されているときにだけ設定されます。

(b)　cascade属性

型

CascadeType[]

説明

カスケード対象となるオペレーションを指定する属性です。

指定できる値を次に示します。

CascadeType.ALL：所有者側のエンティティクラスのpersist，remove，merge，およびrefreshの操作が関連先にカスケードされます。

CascadeType.MERGE：所有者側のエンティティクラスのmerge操作が関連先にカスケードされます。

CascadeType.PERSIST：所有者側のエンティティクラスのpersist操作が関連先にカスケードされます。

CascadeType.REFRESH：所有者側のエンティティクラスのrefresh操作が関連先にカスケードされます。

CascadeType.REMOVE：所有者側のエンティティクラスのremove操作が関連先にカスケードされます。

デフォルト値

カスケード対象なし

(c)　fetch属性

型

FetchType

説明

データベースからのデータのフェッチ戦略を定義する属性です。フェッチ戦略については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.4.5　データベースとの同期」を参照してください。

指定できる値は，次の2種類です。

EAGER戦略：データがEAGERにフェッチされなければならない要求

LAZY戦略：データが最初にアクセスされるときに，LAZYにフェッチされる要求

デフォルト値

FetchType.LAZY

(d)　mappedBy属性

型

String

説明

被所有者側のエンティティクラスの要素に付与し，所有者側のエンティティクラスで関係を保持しているフィールドまたはプロパティの名前を指定する属性です。

この属性を指定した場合，関係は双方向になります。

デフォルト値

なし

2.7.37　@OneToOne

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

指定されたクラスがOneToOneリレーションシップであることを示し，エンティティクラス間の一つの関連を指定するアノテーションです。

双方向の関係にする場合は，非所有者側に必ずmappedBy属性を指定してください。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@OneToOneの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
targetEntity | 任意 | 被所有者側のエンティティクラスを指定する属性です。
cascade | 任意 | カスケード対象となるオペレーションを指定する属性です。
fetch | 任意 | フェッチ戦略の指定値を指定する属性です。
optional | 任意 | すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を設定できるかどうかを指定する属性です。
mappedBy | 任意 | 被所有者側のエンティティクラスの要素に付与し，所有者側のエンティティクラスで関係を保持しているフィールド名を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　targetEntity属性

型

Class

説明

被所有者側のエンティティクラスを指定する属性です。

デフォルト値

アノテーションが付与されているフィールドやプロパティの型

(b)　cascade属性

型

CascadeType[]

説明

カスケード対象となるオペレーションを指定する属性です。

指定できる値を次に示します。

CascadeType.ALL：所有者側のエンティティクラスのpersist，remove，merge，refreshの操作が関連先にカスケードされます。

CascadeType.MERGE：所有者側のエンティティクラスのmerge操作が関連先にカスケードされます。

CascadeType.PERSIST：所有者側のエンティティクラスのpersist操作が関連先にカスケードされます。

CascadeType.REFRESH：所有者側のエンティティクラスのrefresh操作が関連先にカスケードされます。

CascadeType.REMOVE：所有者側のエンティティクラスのremove操作が関連先にカスケードされます。

デフォルト値

カスケード対象なし

(c)　fetch属性

型

FetchType

説明

データベースからのデータのフェッチ戦略を定義する属性です。フェッチ戦略については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.4.5　データベースとの同期」を参照してください。

指定できる値は，次の2種類です。

EAGER戦略：データがEAGERにフェッチされなければならない要求

LAZY戦略：データが最初にアクセスされるときに，LAZYにフェッチされる要求

デフォルト値

FetchType.EAGER

(d)　optional属性

型

boolean

説明

すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を指定できるかどうかを指定する属性です。指定できる値は，次のとおりです。

true：すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を設定できます。

false：すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を指定できません。

デフォルト値

true

(e)　mappedBy属性

型

String

説明

被所有者側のエンティティクラスの要素に付与し，所有者側のエンティティクラスで関係を保持しているフィールド名を指定します。指定した場合，関係は双方向になります。

デフォルト値

なし

2.7.38　@OrderBy

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティの情報を取得するとき，コレクションに保持される順番を指定するアノテーションです。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@OrderByの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 任意 | プライマリキー以外のフィールドまたはプロパティを基にした順番でエンティティを取得したい場合に指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

String

説明

プライマリキー以外のフィールドまたはプロパティを基にした順番でエンティティクラスを取得するときに指定する属性です。コンマ区切りで，順番を指定したいフィールドまたはプロパティを指定します。

取得する順番は，フィールドまたはプロパティのあとに指定します。指定できる値は次のとおりです。指定しなかった場合は，昇順になります。

ASC：昇順

DESC：降順

value属性内で指定されるフィールドまたはプロパティには，比較演算できる値が格納されているカラムを指定します。

デフォルト値

エンティティクラスのプライマリキーによる昇順

2.7.39　@PersistenceContext

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

コンテナ管理のEntityManagerのリファレンスを定義するアノテーションです。ルックアップをするクラスに付加します。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@PersistenceContextの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 任意 | EntityManagerのルックアップ名を指定する属性です。
unitName | 任意 | persistence.xmlファイルで定義されている永続化ユニットの名前を指定する属性です。
type | 任意 | 永続化コンテキストのライフサイクルの種類を指定する属性です。
properties | 任意 | @PersistencePropertyで指定するベンダ依存のプロパティを指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

EntityManagerのルックアップ名を指定する属性です。

DIを使用する場合は指定不要です。

デフォルト値

空の文字列

(b)　unitName属性

型

String

説明

persistence.xmlファイルで定義された永続化ユニットの名前を指定する属性です。

unitName属性を指定した場合，JNDI名前空間でアクセスできるEntityManagerFactoryが使用する永続化ユニットを同じ名前にしてください。

デフォルト値

空の文字列

(c)　type属性

型

PersistenceContextType

説明

永続化コンテキストのライフサイクルの種類を指定する属性です。

指定できる値は，次の2種類です。

TRANSACTION：トランザクションスコープの永続化コンテキスト

EXTENDED：拡張永続化コンテキスト

デフォルト値

TRANSACTION

(d)　properties属性

型

PersistenceProperty[]

説明

@PersistencePropertyで指定するJPAプロバイダのベンダに依存するプロパティを指定する属性です。

指定できる値は，@PersistencePropertyの配列で指定できる範囲です。詳細は，「2.7.41　@PersistenceProperty」を参照してください。

properties属性を指定した場合，認識できないプロパティは無視します。

デフォルト値

空の配列

2.7.40　@PersistenceContexts

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@PersistenceContextを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラスです。

(2)　属性

@PersistenceContextsの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @PersistenceContextの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

PersistenceContext[]

説明

@PersistenceContextの配列を指定する属性です。

指定できる値は，@PersistenceContextの配列で指定できる範囲です。詳細は，「2.7.39　@PersistenceContext」を参照してください。

デフォルト値

なし

2.7.41　@PersistenceProperty

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

コンテナ管理のEntityManagerにプロパティを設定するアノテーションです。

現状，使用できるプロパティはありません。

適用可能要素は，@PersistenceContextのproperties属性です。

(2)　属性

@PersistencePropertyの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | プロパティの名前を指定する属性です。
value | 必須 | プロパティの値を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

プロパティの名前を指定する属性です。

デフォルト値

なし

(b)　value属性

型

String

説明

プロパティの値を指定する属性です。

指定できる値は，name属性に指定したプロパティの仕様に依存します。

デフォルト値

なし

2.7.42　@PersistenceUnit

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

EntityManagerFactoryのリファレンスを定義するアノテーションです。ルックアップするクラスに付加します。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@PersistenceUnitの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 任意 | EntityManagerFactoryのルックアップ名を指定する属性です。
unitName | 任意 | persistence.xmlファイルで定義されている永続化ユニットの名前を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

EntityManagerFactoryのルックアップ名を指定する属性です。JNDI名前空間に登録するEntityManagerFactoryの名前を指定します。

指定できる値は，文字列です。

DIを使用する場合は指定不要です。

デフォルト値

空の文字列

(b)　unitName属性

型

String

説明

persistence.xmlファイルで定義された永続化ユニットの名前を指定する属性です。

unitName属性を指定した場合，JNDI名前空間でアクセスできるEntityManagerFactoryが使用する永続化ユニットを同じ名前にしてください。

デフォルト値

空の文字列

2.7.43　@PersistenceUnits

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@PersistenceUnitを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラスです。

(2)　属性

@PersistenceUnitsの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @PersistenceUnitの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

PersistenceUnit[]

説明

@PersistenceUnitの配列を指定する属性です。

指定できる値は，@PersistenceUnitの配列で指定できる範囲です。詳細は，「2.7.42　@PersistenceUnit」を参照してください。

デフォルト値

なし

2.7.44　@PostLoad

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

キャッシュからエンティティを読み込んだあと，またはデータベースにSELECT文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。エンティティクラス，マップドスーパークラス，またはエンティティリスナクラスのメソッドに適用されます。

適用可能要素は，メソッドです。

(2)　属性

@PostLoadの属性はありません。

2.7.45　@PostPersist

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

データベースにINSERT文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。エンティティクラス，マップドスーパークラス，またはエンティティリスナクラスのメソッドに適用されます。

適用可能要素は，メソッドです。

(2)　属性

@PostPersistの属性はありません。

2.7.46　@PostRemove

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

データベースにDELETE文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。エンティティクラス，マップドスーパークラス，またはエンティティリスナクラスのメソッドに適用されます。

適用可能要素は，メソッドです。

(2)　属性

@PostRemoveの属性はありません。

2.7.47　@PostUpdate

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

データベースにUPDATE文を発行したあとに呼び出されるコールバックメソッドであることを示すアノテーションです。エンティティクラス，マップドスーパークラス，またはエンティティリスナクラスのメソッドに適用されます。

適用可能要素は，メソッドです。

(2)　属性

@PostUpdateの属性はありません。

2.7.48　@PrePersist

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

データベースにINSERT文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。エンティティクラス，マップドスーパークラス，またはエンティティリスナクラスのメソッドに適用されます。

適用可能要素は，メソッドです。

(2)　属性

@PrePersistの属性はありません。

2.7.49　@PreRemove

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

データベースにDELETE文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。エンティティクラス，マップドスーパークラス，またはエンティティリスナクラスのメソッドに適用されます。

適用可能要素は，メソッドです。

(2)　属性

@PreRemoveの属性はありません。

2.7.50　@PreUpdate

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

データベースにUPDATE文を発行する前に呼び出されるコールバックメソッドであることを示すアノテーションです。エンティティクラス，マップドスーパークラス，またはエンティティリスナクラスのメソッドに適用されます。

適用可能要素は，メソッドです。

(2)　属性

@PreUpdateの属性はありません。

2.7.51　@PrimaryKeyJoinColumn

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

ほかのテーブルと結合する場合に外部キーとして使われるカラムを指定するアノテーションです。次の場合に使用します。

継承マッピング戦略のJOINED戦略で，エンティティのスーパークラスのプライマリキーとサブクラスのプライマリキーが異なる名前の場合

@SecondaryTableで，プライマリテーブルとセカンダリテーブルを結合する場合※

OneToOneリレーションシップで，被所有者側のエンティティクラスのプライマリキーが外部キーとして使用されている場合

注※

この場合は，@SecondaryTable内で使用します。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@PrimaryKeyJoinColumnの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
任意
対象テーブルを結合するためのカラム名を指定する属性です。

referencedColumnName
任意
name属性で指定したカラムによって参照される結合先テーブルのプライマリキーのカラム名を指定する属性です。

columnDefinition
任意
CREATE文を出力するときにカラムに付加する制約をDDLで記載する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

対象テーブルを結合するためのカラム名を指定する属性です。

指定できるカラム名は，データベースの仕様に依存します。

デフォルト値

JOINED戦略を使用した場合
スーパークラスのプライマリテーブルのプライマリキーのカラム名

@SecondaryTableを使用した場合
プライマリテーブルのプライマリキーのカラム名

OneToOneリレーションシップを使用した場合
対象となるエンティティのテーブルのプライマリキーのカラム名

(b)　referencedColumnName属性

型

String

説明

name属性で指定したカラムによって参照される結合先テーブルのプライマリキーのカラム名を指定する属性です。@Columnのname属性の文字列と同じ値を指定してください。なお，指定する文字列は大文字，小文字もそろえてください。

指定できるカラム名は，データベースの仕様に依存します。

OneToOneリレーションシップでカラムの指定をプライマリキーにしなくてもユニークキー制約があれば動作してしまいますが，動作の保証はしません。

デフォルト値

JOINED戦略を使用した場合
スーパークラスのプライマリテーブルのプライマリキーのカラム名

@SecondaryTableを使用した場合
プライマリテーブルのプライマリキーのカラム名

OneToOneリレーションシップを使用した場合
対象となるエンティティのテーブルのプライマリキーのカラム名

2.7.52　@PrimaryKeyJoinColumns

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@PrimaryKeyJoinColumnを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@PrimaryKeyJoinColumnsの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @PrimaryKeyJoinColumnの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

PrimaryKeyJoinColumn[]

説明

@PrimaryKeyJoinColumnの配列を指定する属性です。

指定できる値は，@PrimaryKeyJoinColumnで指定できる範囲です。詳細は，「2.7.51　@PrimaryKeyJoinColumn」を参照してください。

デフォルト値

なし

2.7.53　@QueryHint

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

データベース固有のクエリのヒントを指定するアノテーションです。

悲観的ロックやエンティティのキャッシュ機能の設定ができます。

適用可能要素は，@NamedQuery，または@NamedNativeQueryのhints要素です。

(2)　属性

@QueryHintの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | ヒントの名前を指定する属性です。
value | 必須 | ヒントの値を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

使用するヒントの名前を指定する属性です。指定できる値は次のとおりです。

cosminexus.jpa.pessimistic-lock

悲観的ロックを使用するかどうかを指定するヒントの名前です。

デフォルト値

なし

(b)　value属性

型

String

説明

ヒントの値を指定する属性です。name属性で指定したヒントの名前に合わせて，次の値を指定します。

name属性でcosminexus.jpa.pessimistic-lockを指定した場合の指定値

NoLock：悲観的ロックを使用しない場合に指定します。

Lock：悲観的ロックを使用する場合に指定します。対象となるテーブルがすでにロックされている場合は，解放されるまで待ちます。このとき発行されるSQLを使用するデータベースごとに示します。
Oracleの場合：SELECT.... FOR UPDATE
HiRDBの場合：SELECT....WITH EXCLUSIVE LOCK

LockNoWait：悲観的ロックを使用する場合に指定します。対象となるテーブルがすでにロックされている場合は，例外が発生します。このとき発行されるSQLを使用するデータベースごとに示します。
Oracleの場合：SELECT.... FOR UPDATE NO WAIT
HiRDBの場合：SELECT....WITH EXCLUSIVE LOCK NO WAIT

デフォルト値

name属性でcosminexus.jpa.pessimistic-lockを指定した場合

NoLock

2.7.54　@SecondaryTable

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティクラスにセカンダリテーブルを指定するアノテーションです。

エンティティクラスがデータベース上の複数のテーブルにわたってマッピングされる場合に指定します。

@SecondaryTableをエンティティクラス内で指定しない場合，エンティティクラスのすべての永続化プロパティまたは永続化フィールドは，プライマリテーブルで指定されたテーブルとマッピングします。

適用可能要素は，クラスです。

(2)　属性

@SecondaryTableの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
必須
セカンダリテーブル名を指定する属性です。

catalog
任意
セカンダリテーブルのカタログ名を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

schema
任意
セカンダリテーブルのスキーマ名を指定する属性です。

pkJoinColumns
任意
セカンダリテーブルがプライマリテーブルと結合するために使用する外部キーカラムを指定する属性です。

uniqueConstraints
任意
テーブルでのユニークキー制約を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

セカンダリテーブル名を指定する属性です。

指定できるテーブル名は，データベースの仕様に依存します。

デフォルト値

なし

(b)　schema属性

型

String

説明

セカンダリテーブルのスキーマ名を指定する属性です。

指定できるスキーマ名は，データベースの仕様に依存します。

デフォルト値

使用するデータベースのデフォルトのスキーマ名

(c)　pkJoinColumns属性

型

PrimaryKeyJoinColumn[]

説明

セカンダリテーブルの外部キーカラムを指定する属性です。@PrimaryKeyJoinColumnの配列で指定します。

この要素が指定されない場合，セカンダリテーブルの外部キーカラムはプライマリテーブルのプライマリキーカラムと同じ名前と型を持ちます。このため，セカンダリテーブルはプライマリテーブルのプライマリキーカラムを参照します。

デフォルト値

指定できる値は，@PrimaryKeyJoinColumnの配列で指定できる範囲です。詳細は，「2.7.51　@PrimaryKeyJoinColumn」を参照してください。

2.7.55　@SecondaryTables

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@SecondaryTableを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラスです。

(2)　属性

@SecondaryTablesの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @SecondaryTableの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

SecondaryTable[]

説明

@SecondaryTableの配列を指定する属性です。

指定できる値は，@SecondaryTableの配列で指定できる範囲です。詳細は，「2.7.54　@SecondaryTable」を参照してください。

デフォルト値

なし

2.7.56　@SequenceGenerator

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

プライマリキーを作成するシーケンスジェネレータの設定を指定するアノテーションです。@SequenceGeneratorを使用する場合，次の設定が必要です。

@GeneratedValueのstrategy属性にGenerationType.SEQUENCEを指定します。

@GeneratedValueのgenerator属性で指定された名前を@SequenceGeneratorのname属性に設定します。

シーケンスジェネレータは，エンティティクラス，またはプライマリキーのフィールドもしくはプロパティで指定されます。シーケンスジェネレータ名のスコープは永続化ユニットで有効です。

シーケンスオブジェクトを作成する場合，順序の番号間の増分間隔（INCREMENT BY）と生成する順序番号の初期値（START WITH）には，正の整数を指定します。初期値（START WITH）に1を指定した場合，プライマリキーは1から生成されます。負の値を指定した場合の動作は保証しません。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@SequenceGeneratorの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
必須
@GeneratedValueアノテーションのgenerator属性で指定された名前を指定する属性です。

sequenceName
任意
既存のプライマリキー値または事前に定義したプライマリキー値を取得するためのデータベースシーケンスオブジェクトの名前を指定する属性です。

initialValue
任意
シーケンスオブジェクトが，プライマリキー値生成を開始する初期値を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。値を指定した場合は無視されます。

allocationSize
任意
シーケンスからプライマリキー値を割り当てるサイズを指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

@GeneratedValueアノテーションのgenerator属性で指定された名前を指定する属性です。

指定できる値は，文字列です。

デフォルト値

なし

(b)　sequenceName属性

型

String

説明

既存のプライマリキー値または事前に定義したプライマリキー値を取得するためのデータベースシーケンスオブジェクトの名前を指定する属性です。

指定できるシーケンスオブジェクト名は，データベースの仕様に依存します。

デフォルト値

@GeneratedValueのgenerator属性の指定値

(c)　allocationSize属性

型

int

説明

シーケンスからプライマリキー値を割り当てるサイズを指定する属性です。指定できるシーケンスオブジェクト名は，データベースの仕様に依存します。

指定できるサイズは，int型の1以上の数値です。シーケンスオブジェクトの増分間隔と同じ値を指定します。異なる値を指定した場合の動作は保証しません。

なお，この属性は，実行時に利用する最大値を指定できます。シーケンス番号の管理領域として取得するため，大きな値を指定した場合は，実行時にjava.lang.OutOfMemoryError例外が発生します。

デフォルト値

50

2.7.57　@SqlResultSetMapping

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

SQLのクエリの結果セットマッピングを指定するアノテーションです。

適用可能要素は，クラスです。

(2)　属性

@SqlResultSetMappingの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
name | 必須 | 結果セットマッピングの名前を指定する属性です。
entities | 任意 | @EntityResultの配列を指定する属性です。
columns | 任意 | @ColumnResultの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

結果セットマッピングの名前を指定する属性です。

指定できる値は，文字列です。

デフォルト値

なし

(b)　entities属性

型

EntityResult[]

説明

@EntityResultの配列を指定する属性です。

指定できる値は，@EntityResultの配列で指定できる範囲です。詳細は，「2.7.15　@EntityResult」を参照してください。

デフォルト値

空の配列

(c)　columns属性

型

ColumnResult[]

説明

@ColumnResultの配列を指定する属性です。

指定できる値は，@ColumnResultの配列で指定できる範囲です。詳細は，「2.7.7　@ColumnResult」を参照してください。

デフォルト値

空の配列

2.7.58　@SqlResultSetMappings

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

@SqlResultSetMappingを複数同時に記述する場合に指定するアノテーションです。

適用可能要素は，クラスです。

(2)　属性

@SqlResultSetMappingsの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | @SqlResultSetMappingの配列を指定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

SqlResultSetMapping[]

説明

@SqlResultSetMappingの配列を指定する属性です。

指定できる値は，@SqlResultSetMappingの配列で指定できる範囲です。詳細は，「2.7.57　@SqlResultSetMapping」を参照してください。

デフォルト値

なし

2.7.59　@Table

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

エンティティクラスに，プライマリテーブルを指定するアノテーションです。

明示的にエンティティクラスに@Tableを指定しない場合でも，@Tableが指定されたようにエンティティクラスは扱われます。その場合，@Tableの各属性値にはデフォルト値が適用されます。

エンティティがマッピングするテーブルを複数指定する場合は，@SecondaryTableまたは@SecondaryTablesを使用してください。

適用可能要素は，クラスです。

(2)　属性

@Tableの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
任意
テーブル名を指定する属性です。

catalog
任意
テーブルのカタログ名を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

schema
任意
テーブルのスキーマ名を指定する属性です。

uniqueConstraints
任意
テーブルでのユニークキー制約を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

テーブル名を指定する属性です。

指定できるテーブル名は，データベースの仕様に依存します。

デフォルト値

エンティティ名

(b)　schema属性

型

String

説明

テーブルのスキーマ名を指定する属性です。

指定できるスキーマ名は，データベースの仕様に依存します。

デフォルト値

使用するデータベースのデフォルトのスキーマ名

2.7.60　@TableGenerator

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

プライマリキーを作成するジェネレータの設定を指定するアノテーションです。

@TableGeneratorを使用する場合，次の設定が必要です。

@GeneratedValueのstrategy属性にGenerationType.TABLEを指定します。

@GeneratedValueのgenerator属性で指定された名前を@TableGeneratorのname属性に設定します。

テーブルジェネレータは，エンティティクラス，またはプライマリキーのフィールドまたはプロパティに指定されます。ジェネレータ名のスコープは永続化ユニットで有効です。

エンティティはプライマリキー値の生成をするために，ジェネレータテーブルの行を使用します。

シーケンスを管理するテーブルを作成する場合，初期値には正の整数を指定します。初期値に0を指定した場合，プライマリキーは1から生成されます。

適用可能要素は，クラス，メソッド，およびフィールドです。

(2)　属性

@TableGeneratorの属性の一覧を次の表に示します。

属性名
任意/必須
属性の説明

name
必須
プライマリキー値のためのジェネレータ名を指定する属性です。

table
任意
生成されるプライマリキー値を確保するテーブルの名前を指定する属性です。

catalog
任意
生成されるプライマリキー値を確保するテーブルのカタログ名を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。

schema
任意
生成されるプライマリキー値を確保するテーブルのスキーマ名を指定する属性です。

pkColumnName
任意
生成されるプライマリキー値を確保するテーブルのプライマリキーカラム名を指定する属性です。

valueColumnName
任意
生成された最終値を確保するカラム名を指定する属性です。

pkColumnValue
任意
生成されるプライマリキー値を確保するテーブルのプライマリキー値を指定する属性です。

initialValue
任意
生成された最新の値を確保するカラムを初期化するために使う値を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。値を指定した場合は無視されます。

allocationSize
任意
ジェネレータからプライマリキー値を割り当てるサイズを指定する属性です。

uniqueConstraints
任意
生成されるプライマリキー値を確保するテーブル上でのユニークキー制約を指定する属性です。
なお，この属性は，CJPAプロバイダには対応していません。値を指定した場合は無視されます。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　name属性

型

String

説明

プライマリキー値のためのジェネレータ名を指定する属性です。

指定できる値は，文字列です。

デフォルト値

なし

(b)　table属性

型

String

説明

生成されるプライマリキー値を確保するテーブルの名前を指定する属性です。

指定できるテーブル名は，データベースの仕様に依存します。

デフォルト値

"SEQUENCE"

(c)　schema属性

型

String

説明

生成されるプライマリキー値を確保するテーブルのスキーマ名を指定する属性です。

指定できるスキーマ名は，データベースの仕様に依存します。

デフォルト値

使用するデータベースのデフォルトのスキーマ名

(d)　pkColumnName属性

型

String

説明

生成されるプライマリキー値を確保するテーブルのプライマリキーカラム名を指定する属性です。

指定できるカラム名は，データベースの仕様に依存します。

デフォルト値

"SEQ_NAME"

(e)　valueColumnName属性

型

String

説明

生成された最終値を確保するカラム名を指定する属性です。

指定できるカラム名は，データベースの仕様に依存します。

デフォルト値

"SEQ_COUNT"

(f)　pkColumnValue属性

型

String

説明

生成されるプライマリキー値を確保するテーブルのプライマリキー値を指定する属性です。

指定できる値は，生成されたプライマリキーのカラムの型に依存します。

デフォルト値

name属性で指定された文字列

(g)　allocationSize属性

型

int

説明

ジェネレータからプライマリキー値を割り当てるサイズを指定する属性です。

指定できる値は，int型の1以上の数値です。

なお，この属性は，実行時に利用する最大値を指定できます。シーケンス番号の管理領域として取得するため，大きな値を指定した場合は，実行時にjava.lang.OutOfMemoryError例外が発生します。

デフォルト値

50

2.7.61　@Temporal

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

時刻を表す型（java.util.Dateおよびjava.util.Calendar）を持つ永続化プロパティまたは永続化フィールドに指定するアノテーションです。@Basicとともに使用できます。

ただし，@Versionと@Temporalは同時に指定できません。どちらかのアノテーションだけを指定してください。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@Temporalの属性の一覧を次の表に示します。

属性名 | 任意/必須 | 属性の説明
value | 必須 | データベース型に対応するTemporalType列挙型に設定する属性です。

CJPAプロバイダで対応する属性の詳細を次に示します。

(a)　value属性

型

TemporalType

説明

データベース型に対応するTemporalType列挙型に設定する属性です。

指定できる値は，次の3種類です。

TemporalType.DATE：java.sql.Dataと同じです。

TemporalType.TIME：java.sql.Timeと同じです。

TemporalType.TIMESTAMP：java.sql.Timestampと同じです。

デフォルト値

なし

2.7.62　@Transient

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

次に示す永続化しないクラスのフィールドまたはプロパティであることを示すアノテーションです。

エンティティクラス

マップドスーパークラス

埋め込みクラス

適用可能要素は，メソッドとフィールドです。

@Transientを定義したフィールドの値は永続化されませんが，永続化コンテキストに保持されるため，設定した値を取得できます。ただし，別のEntityManagerからは値を取得できません。

(2)　属性

@Transientの属性はありません。

2.7.63　@Version

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

楽観的ロック機能を使用するために用いるversionフィールドまたはversionプロパティを指定するアノテーションです。

versionフィールドまたはversionプロパティでサポートする型を次に示します。

int

java.lang.Integer

short

java.lang Short

long

java.lang Long

java.sql.Timestamp

このアノテーションを使用する場合は，次のことに注意してください。

@Versionと@Temporalは同時に指定できません。どちらかのアノテーションだけを指定してください。

versionプロパティをプライマリテーブル以外のテーブルには指定しないでください。

@Versionで指定されたフィールドまたはプロパティは，アプリケーションによって更新してはいけません。

SQLを使用して複数のレコードを一度に更新するバルク更新の場合は，versionフィールドまたはversionプロパティの自動更新をしません。このため，バルク更新をする場合に楽観的ロックを使用するときは，手動で参照および更新をする必要があります。

エンティティクラスに対しては，versionフィールドまたはversionプロパティは一つだけ設定できます。複数のversionフィールドまたはversionプロパティを設定した場合，一つだけ有効となります。設定が有効になる順番は不定です。

適用可能要素は，メソッドとフィールドです。

(2)　属性

@Versionの属性はありません。

2.7.64　アノテーションとO/Rマッピングとの対応

アノテーションとO/Rマッピングファイルとの対応を次の表に示します。

表2-30　アノテーションとO/Rマッピングファイルの対応

アノテーション | O/Rマッピングの要素
@AssociationOverride | <association-override>
@AssociationOverrides | －
@AttributeOverride | <attribute-override>
@AttributeOverrides | －
@Basic | <basic>
@Column | <column>
@ColumnResult | <column-result>
@DiscriminatorColumn | <discriminator-column>
@DiscriminatorValue | <discriminator-value>
@Embeddable | <embeddable>
@Embedded | <embedded>
@EmbeddedId | <embedded-id>
@Entity | <entity>
@EntityListeners | <entity-listeners>
@EntityResult | <entity-result>
@Enumerated | <enumerated>
@ExcludeDefaultListeners | <exclude-default-listeners>
@ExcludeSuperclassListeners | <exclude-superclass-listeners>
@FieldResult | <field-result>
@GeneratedValue | <generated-value>
@Id | <id>
@IdClass | <id-class>
@Inheritance | <inheritance>
@JoinColumn | <join-column>
@JoinColumns | －
@JoinTable | <join-table>
@Lob | <lob>
@ManyToMany | <many-to-many>
@ManyToOne | <many-to-one>
@MapKey | <map-key>
@MappedSuperclass | <mapped-superclass>
@NamedNativeQueries | －
@NamedNativeQuery | <named-native-query>
@NamedQueries | －
@NamedQuery | <named-query>
@OneToMany | <one-to-many>
@OneToOne | <one-to-one>
@OrderBy | <order-by>
@PersistenceContext | －※
@PersistenceContexts | －※
@PersistenceProperty | －※
@PostLoad | <post-load>
@PostPersist | <post-persist>
@PostRemove | <post-remove>
@PostUpdate | <post-update>
@PrePersist | <pre-persist>
@PreRemove | <pre-remove>
@PreUpdate | <pre-update>
@PrimaryKeyJoinColumn | <primary-key-join-column>
@PrimaryKeyJoinColumns | －
@QueryHint | <hint>
@SecondaryTable | <secondary-table>
@SecondaryTables | －
@SequenceGenerator | <sequence-generator>
@SqlResultSetMapping | <sql-result-set-mapping>
@SqlResultSetMappings | －
@Table | <table>
@TableGenerator | <table-generator>
@Temporal | <temporal>
@Transient | <transient>
@UniqueConstraint | <unique-constraint>
@Version | <version>

（凡例）

－：該当しません。

注※

O/Rマッピングのためのアノテーションではありません。

2.8　javax.servlet.annotationパッケージ

javax.servlet.annotationパッケージに含まれるアノテーションの一覧を次の表に示します。

アノテーション一覧

アノテーション名 | 機能
@HandlesTypes | ServletContainerInitializerインタフェースの実装クラスが扱うクラスの型を設定します。
@HttpConstraint | デフォルトのセキュリティ制約を設定します。
@HttpMethodConstraint | HTTPメソッド単位のセキュリティ制約を設定します。
@MultipartConfig | サーブレットがmultipart/form-dataリクエストを扱うための設定をします。
@ServletSecurity | サーブレットのセキュリティ制約を設定します。
@WebInitParam | サーブレットまたはフィルタの初期パラメタを設定します。
@WebFilter | フィルタを設定します。
@WebListener | リスナを設定します。
@WebServlet | サーブレットを設定します。

＜この節の構成＞

2.8.1　@HandlesTypes

2.8.2　@HttpConstraint

2.8.3　@HttpMethodConstraint

2.8.4　@MultipartConfig

2.8.5　@ServletSecurity

2.8.6　@WebInitParam

2.8.7　@WebFilter

2.8.8　@WebListener

2.8.9　@WebServlet

2.8.1　@HandlesTypes

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

ServletContainerInitializerインタフェースの実装クラスが扱うクラスの型を設定します。

(2)　属性

@HandlesTypesの属性の一覧を次の表に示します。

属性名 | 機能
value | ServletContainerInitializerインタフェースの実装クラスが扱うクラスやアノテーションの型を設定します。設定されたクラスを継承(extends)または実装(implements)しているクラス，もしくは設定されたアノテーションを付けているクラスのリストが，ServletContainerInitializerインタフェースの実装クラスに渡されます。

各属性の詳細を次に示します。

(a)　value属性

型

Class[]

説明

ServletContainerInitializerインタフェースの実装クラスが扱うクラスやアノテーションの型を設定します。設定されたクラスを継承(extends)または実装(implements)しているクラス，もしくは設定されたアノテーションを付けているクラスのリストが，ServletContainerInitializerインタフェースの実装クラスに渡されます。

デフォルト値

{}

2.8.2　@HttpConstraint

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

デフォルトのセキュリティ制約を設定します。

(2)　属性

@HttpConstraintの属性の一覧を次の表に示します。

属性名 | 機能
value | ロールを設定しない場合の振る舞いを設定します。
rolesAllowed | 認証に用いるユーザ名のリストを設定します。
transportGuarantee | クライアントとサーバ間の通信方法を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

ServletSecurity.EmptyRoleSemantic

説明

ロールを設定しない場合の振る舞いを設定します。

デフォルト値

javax.servlet.annotation.ServletSecurity.EmptyRoleSemantic.

PERMIT

(b)　rolesAllowed属性

型

String[]

説明

認証に用いるユーザ名のリストを設定します。

デフォルト値

{}

(c)　transportGuarantee属性

型

ServletSecurity.TransportGuarantee

説明

クライアントとサーバ間の通信方法を設定します。

デフォルト値

javax.servlet.annotation.ServletSecurity.

TransportGuarantee.

NONE

2.8.3　@HttpMethodConstraint

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

HTTPメソッドのセキュリティ制約を設定します。

(2)　属性

@HttpMethodConstraintの属性の一覧を次の表に示します。

属性名 | 機能
value | セキュリティ制約を適用するHTTPメソッドを設定します。
emptyRoleSemantic | ロールを設定しない場合の振る舞いを設定します。
rolesAllowed | 認証に用いるユーザ名のリストを設定します。
transportGuarantee | クライアントとサーバ間の通信方法を設定します。

各属性の詳細を次に示します。

(a)　value属性

型

String

説明

セキュリティ制約を適用するHTTPメソッドを設定します。

デフォルト値

なし

(b)　emptyRoleSemantic属性

型

ServletSecurity.EmptyRoleSemantic

説明

ロールを設定しない場合の振る舞いを設定します。

デフォルト値

javax.servlet.annotation.ServletSecurity.

EmptyRoleSemantic.

PERMIT

(c)　rolesAllowed属性

型

String[]

説明

認証に用いるユーザ名のリストを設定します。

デフォルト値

{}

(d)　transportGuarantee属性

型

ServletSecurity.TransportGuarantee

説明

クライアントとサーバ間の通信方法を設定します。

デフォルト値

javax.servlet.annotation.ServletSecurity.

TransportGuarantee.

NONE

2.8.4　@MultipartConfig

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

サーブレットがmultipart/form-dataリクエストを扱うための設定をします。

@MultipartConfigの属性の一覧を次の表に示します。

属性名 | 機能
fileSizeThreshold | アップロードされたファイルがディスクに書き込まれるサイズのしきい値を設定します。
location | アップロードされるファイルを保存するディレクトリを設定します。
maxFileSize | アップロードされるファイルの最大サイズを設定します。
maxRequestSize | multipart/form-dataリクエストの最大サイズを設定します。

各属性の詳細を次に示します。

(2)　属性

(a)　fileSizeThreshold属性

型

int

説明

アップロードされたファイルがディスクに書き込まれるサイズのしきい値を設定します。

デフォルト値

0

(b)　location属性

型

String

説明

アップロードされるファイルを保存するディレクトリを設定します。

デフォルト値

""

(c)　maxFileSize属性

型

long

説明

アップロードされるファイルの最大サイズを設定します。

デフォルト値

-1L（無制限）

(d)　maxRequestSize属性

型

long

説明

multipart/form-dataリクエストの最大サイズを設定します。

デフォルト値

-1L（無制限）

2.8.5　@ServletSecurity

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

サーブレットのセキュリティ制約を設定します。

(2)　属性

@ServletSecurityの属性の一覧を次の表に示します。

属性名 | 機能
httpMethodConstraints | サーブレットのHTTPメソッドごとのセキュリティ制約を設定します。
value | サーブレットのデフォルトのセキュリティ制約を設定します。

各属性の詳細を次に示します。

(a)　httpMethodConstraints属性

型

HttpMethodConstraint[]

説明

サーブレットのHTTPメソッドごとのセキュリティ制約を設定します。

デフォルト値

{}

(b)　value属性

型

HttpConstraint

説明

サーブレットのデフォルトのセキュリティ制約を設定します。

デフォルト値

@javax.servlet.annotation.HttpConstraint

2.8.6　@WebInitParam

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

サーブレットまたはフィルタの初期パラメタを設定します。

(2)　属性

@WebInitParamの属性の一覧を次の表に示します。

属性名 | 機能
description | パラメタの説明を設定します。
name | パラメタ名を設定します。
value | パラメタの値を設定します。

各属性の詳細を次に示します。

(a)　description属性

型

String

説明

パラメタの説明を設定します。

デフォルト値

""

(b)　name属性

型

String

説明

パラメタ名を設定します。

デフォルト値

(c)　value属性

型

String

説明

パラメタの値を設定します。

デフォルト値

なし

2.8.7　@WebFilter

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

フィルタを設定します。

(2)　属性

@WebFilterの属性の一覧を次の表に示します。

属性名 | 機能
description | フィルタの説明を設定します。
dispatcherTypes | フィルタの適応条件を設定します。
displayName | 表示名を設定します。
filterName | フィルタ名を設定します。
initParams | フィルタの初期パラメタを設定します。
largeIcon | GUIツールで使用する大アイコンを設定します。
servletNames | マッピングを行うサーブレットのサーブレット名を設定します。
smallIcon | GUIツールで使用する小アイコンを設定します。
urlPatterns | マッピングするURLパターンを設定します。
value | マッピングするURLパターンを設定します。urlPatternsと同時に設定した場合は無視されます。

各属性の詳細を次に示します。

(a)　description属性

型

String

説明

フィルタの説明を設定します。

デフォルト値

""

(b)　dispatcherTypes属性

型

DispatcherType[]

説明

フィルタの適応条件を設定します。

デフォルト値

javax.servlet.DispatcherType.REQUEST

(c)　displayName属性

型

String

説明

表示名を設定します。

デフォルト値

""

(d)　filterName属性

型

String

説明

フィルタ名を設定します。

デフォルト値

""

(e)　initParams属性

型

WebInitParam[]

説明

フィルタの初期パラメタを設定します。

デフォルト値

{}

(f)　largeIcon属性

型

String

説明

GUIツールで使用する大アイコンを設定します。

デフォルト値

""

(g)　servletNames属性

型

String[]

説明

マッピングを行うサーブレットのサーブレット名を設定します。

デフォルト値

{}

(h)　smallIcon属性

型

String

説明

GUIツールで使用する小アイコンを設定します。

デフォルト値

""

(i)　urlPatterns属性

型

String[]

説明

マッピングするURLパターンを設定します。

デフォルト値

{}

(j)　value属性

型

String[]

説明

マッピングするURLパターンを設定します。urlPatternsと同時に設定した場合は無視されます。

デフォルト値

{}

2.8.8　@WebListener

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

リスナを設定します。

(2)　属性

@WebListenerの属性の一覧を次の表に示します。

属性名 | 機能
value | リスナの説明を設定します。

(a)　value属性

型

String

説明

リスナの説明を設定します。

デフォルト値

""

2.8.9　@WebServlet

＜この項の構成＞

(1)　説明

(2)　属性

(1)　説明

サーブレットを設定します。

(2)　属性

@WebServletの属性の一覧を次の表に示します。

属性名 | 機能
description | サーブレットの説明を設定します。
displayName | 表示名を設定します。
initParams | サーブレットの初期パラメタを設定します。
largeIcon | GUIツールで使用する大アイコンを設定します。
loadOnStartup | サーブレットの開始順序を設定します。
name | サーブレット名を設定します。
smallIcon | GUIツールで使用する小アイコンを設定します。
urlPatterns | マッピングするURLパターンを設定します。
value | マッピングするURLパターンを設定します。urlPatternsと同時に設定した場合は無視されます。

各属性の詳細を次に示します。

(a)　description属性

型

String

説明

サーブレットの説明を設定します。

デフォルト値

""

(b)　displayName属性

型

String

説明

表示名を設定します。

デフォルト値

""

(c)　initParams属性

型

WebInitParam[]

説明

サーブレットの初期パラメタを設定します。

デフォルト値

{}

(d)　largeIcon属性

型

String

説明

GUIツールで使用する大アイコンを設定します。

デフォルト値

""

(e)　loadOnStartup属性

型

int

説明

サーブレットの開始順序を設定します。

デフォルト値

-1

(f)　name属性

型

String

説明

サーブレット名を設定します。

デフォルト値

""

(g)　smallIcon属性

型

String

説明

GUIツールで使用する小アイコンを設定します。

デフォルト値

""

(h)　urlPatterns属性

型

String[]

説明

マッピングするURLパターンを設定します。

デフォルト値

{}

(i)　value属性

型

String[]

説明

マッピングするURLパターンを設定します。urlPatternsと同時に設定した場合は無視されます。

デフォルト値

{}

2.9　アプリケーションサーバが対応するDependency Injection

Dependency Injection（DI）とは，ターゲットクラスのフィールドやsetメソッドにアノテーション（@EJB，@Resource，@Inject）を設定することで，オブジェクトの参照をJ2EEサーバが自動的にセットする機能です。

EJBコンテナ上で動作するクラスの中で，ターゲットクラスとなるクラスを次に示します。

Enterprise Bean

インターセプタ

また，Webコンテナ上で動作するクラスの中で，ターゲットクラスとなるクラスを次に示します。

サーブレット

フィルタ

リスナ

タグハンドラ

Enterprise Beanのホームインタフェース，またはビジネスインタフェースへの参照をDIする場合は，@EJBを設定します。

@Resourceを設定した場合は，次の表に示すリソースのタイプをDIできます。

表2-31　@ResourceでDIできるリソースのタイプ

リソースのタイプ | DIの可否※1
java.lang.String※2 | ×
java.lang.Character※2 | ×
java.lang.Integer※2 | ×
java.lang.Boolean※2 | ×
java.lang.Double※2 | ×
java.lang.Byte※2 | ×
java.lang.Short※2 | ×
java.lang.Long※2 | ×
java.lang.Float※2 | ×
javax.xml.rpc.Service | ×
javax.xml.ws.Service | ×
javax.jws.WebService | ×
javax.sql.DataSource※3 | ○
javax.jms.ConnectionFactory | ○
javax.jms.QueueConnectionFactory※4 | ○
javax.jms.TopicConnectionFactory | ○
javax.mail.Session | ○
java.net.URL | ×
javax.resource.cci.ConnectionFactory※5 | ○
org.omg.CORBA_2_3.ORB | 　 ○※6
javax.jms.Queue※3，※7 | ○
javax.jms.Topic※7 | ○
javax.resource.cci.InteractionSpec | ×
javax.transaction.UserTransaction | 　 ○※8
javax.ejb.EJBContext | 　 ○※9
javax.ejb.SessionContext | 　 ○※9
javax.ejb.TimerService | 　 　 ○※9，※10
JavaBeansリソース | ○
管理対象オブジェクトの独自のインタフェース | ○

（凡例）

○：使用できます。

×：使用できません。

注※1

管理対象オブジェクトへの対応づけは，Java Typeに関係なく，mappedName要素で対応づけます。リソースアダプタの表示名と管理対象オブジェクト名の区切り文字には，「!#」を使用してください。

注※2

<env-entry-value>に値を設定できないので，DI，lookupで得られる値を設定できません。

注※3

DB Connectorが該当します。

注※4

TP1/Message Queue - Access，Reliable Messagingが該当します。

注※5

TP1 Connectorが該当します。

注※6

ORBのshareable属性はtrueが設定されているものとして動作します。なお，注入されるORBオブジェクトは，ほかのコンポーネントでも使用される共有のインスタンスです。

注※7

Connector 1.5に準拠したリソースアダプタを使用する場合は，JMSで定義する管理対象オブジェクト（javax.jms.Destinationインタフェースまたはサブインタフェース）をリソースアダプタの標準DD（ra.xml）の<connector>-<resourceadapter>-<adminobject>-<adminobject-interface>タグに指定してください。

注※8

CMTで動作するEnterprise Beanまたはインターセプタでは使用できません。

注※9

Webコンテナ上で動作するクラスでは使用できません。

注※10

Stateful SessionBeanや，Stateful SessionBeanに適用されたインターセプタでは使用できません。

3.　Webコンテナで使用するAPI

この章では，Webコンテナで使用するAPIについて説明します。ここでは，アプリケーションサーバのWebコンテナ独自の例外クラスについて説明します。

＜この章の構成＞

3.1　例外クラス

3.1　例外クラス

WebコンテナのAPIのうち，アプリケーションサーバが提供している例外クラスについて説明します。

Webコンテナの例外クラスを次の表に示します。

表3-1　Webコンテナの例外クラス

例外名
内容

com.hitachi.software.web.dbsfo.DatabaseAccessException
データベースセッションフェイルオーバ機能でデータベースへのアクセスに失敗したことを通知する例外です。
この例外が出力された場合，データベースが正常に稼働しているか，データベースとJ2EEサーバの通信路に問題が発生していないか，およびデータベースセッションフェイルオーバ機能が無効となっていないか確認し，次の対策をしてください。

データベースに障害が発生している場合

データベースの回復手順に従い原因を対策してください。

データベースとJ2EEサーバの通信路に問題が発生している場合

通信路の問題を解決してください。通信路に問題が発生した場合，データベース上の排他が未解放となっていることがあります。業務を再開する前に無効な接続を確認して未解放となっている排他を解放してください。

データベースセッションフェイルオーバ機能が無効の場合

拡張子またはURIによるデータベースセッションフェイルオーバ機能の抑止によってデータベースセッションフェイルオーバ機能が無効となったリクエスト処理内では，HttpSessionオブジェクトの操作はしないでください。

また，J2EEサーバのwebserver.dbsfo.exception_type_backcompatプロパティにtrueを指定している場合，データベースセッションフェイルオーバ機能の抑止の対象となるURLでHTTPセッションの操作をすると，この例外がスローされます。データベースや通信路に問題がない場合にこの例外が発生したときは，データベースセッションフェイルオーバ機能の抑止の対象となるURLでHTTPセッションの操作をしていないかを確認してください。
DatabaseAccessExceptionクラスはjava.lang.IllegalStateExceptionクラスを継承しています。

HttpSessionLimitExceededExceptionクラス
HttpSessionオブジェクトが上限値を超えたことを通知する例外です。
この例外は，HttpSessionオブジェクト数の上限が設定できる，J2EEサーバモードの場合に適用されます。SFOサーバ（互換用機能）でグローバルセッション数が上限を超えた場合の例外には，適用されません。
J2EEアプリケーションを構成するプログラム（サーブレットなど）でcom.hitachi.software.web.session.HttpSessionLimitExceededExceptionクラスを使用する場合は，<Application Serverのインストールディレクトリ>¥CC¥lib¥ejbserver.jarをクラスパスに追加して，Javaプログラムをコンパイルしてください。
HttpSessionLimitExceededExceptionクラスはjava.lang.IllegalStateExceptionクラスを継承しています。

com.hitachi.software.web.dbsfo.SessionOperationException
HttpSessionの操作ができない状態であることを通知する例外です。
この例外がスローされる場合を次に示します。

データベースセッションフェイルオーバ抑止機能を使用した場合，データベースセッションフェイルオーバ機能が無効となったリクエスト処理内ではHttpSessionオブジェクトの操作はできません。HttpSessionオブジェクトを取得するためにjavax.servlet.http.HttpServletRequest#getSession()またはgetSession(boolean create)を呼び出した場合，この例外がスローされます。

参照専用リクエストでは，HTTPセッションの無効化はできません。参照専用リクエストでjavax.servlet.http.HttpSession#invalidate()を呼び出した場合，この例外がスローされます。

Webアプリケーション単位の同時実行スレッド数制御の実行待ちキューを使用して503エラーを返す設定をしている場合は，DD（web.xml）で指定するエラーページではHTTPセッションの作成および無効化はできません。DD（web.xml）で指定したエラーページでHTTPセッションを作成したり，javax.servlet.http.HttpSession#invalidate()を呼び出したりすると，この例外がスローされます。

この例外がスローされた場合は，次の点を確認してください。

データベースセッションフェイルオーバ抑止機能を使用している場合は，抑止する拡張子，またはURIの設定に問題がないかを確認してください。設定に問題がない場合は，Webアプリケーションを確認して，データベースセッションフェイルオーバ抑止機能の対象となるURLでHTTPセッションの操作をしていないかどうか確認してください。

参照専用リクエスト定義機能を使用している場合は，参照専用リクエストの拡張子，またはURIの設定に問題がないかを確認してください。設定に問題がない場合は，Webアプリケーションを確認して，参照専用リクエストでHTTPセッションを無効化していないか確認してください。

実行待ちキューを使用して503エラーを返す設定をしている場合は，DD（web.xml）で指定したエラーページでHTTPセッションの作成または無効化していないか確認してください。

SessionOperationExceptionクラスはjava.lang.IllegalStateExceptionクラスを継承しています。

com.hitachi.software.web.eadssfo.SessionOperationException
HttpSessionの操作ができない状態であることを通知する例外です。
この例外がスローされる場合を次に示します。

EADsセッションフェイルオーバ抑止機能を使用した場合，セッションフェイルオーバ機能が無効となったリクエスト処理内ではHttpSessionオブジェクトの操作はできません。HttpSessionオブジェクトを取得するためにjavax.servlet.http.HttpServletRequest#getSession()またはgetSession(boolean create)を呼び出した場合，この例外がスローされます。

参照専用リクエストでは，HTTPセッションの無効化はできません。参照専用リクエストでjavax.servlet.http.HttpSession#invalidate()を呼び出した場合，この例外がスローされます。

この例外がスローされた場合は，次の点を確認してください。

EADsセッションフェイルオーバ抑止機能を使用している場合は，抑止するURLパターンの設定に問題がないかを確認してください。設定に問題がないときは，Webアプリケーションを確認して，EADsセッションフェイルオーバ抑止機能の対象となるURLでHTTPセッションの操作をしていないかどうか確認してください。

参照専用リクエスト定義機能を使用している場合は，参照専用リクエストのURLパターンの設定に問題がないかを確認してください。設定に問題がない場合は，Webアプリケーションを確認して，参照専用リクエストでHTTPセッションを無効化していないか確認してください。

SessionOperationExceptionクラスはjava.lang.IllegalStateExceptionクラスを継承しています。

4.　EJBクライアントアプリケーションで使用するAPI

この章では，EJBクライアントアプリケーションで使用するAPIおよび例外クラスについて説明します。

＜この章の構成＞

4.1　EJBクライアントアプリケーションで使用するAPIの一覧

4.2　EJBClientInitializerクラス

4.3　RequestTimeoutConfigFactoryクラス

4.4　RequestTimeoutConfigクラス

4.5　UserTransactionFactoryクラス

4.6　例外クラス

4.1　EJBクライアントアプリケーションで使用するAPIの一覧

EJBクライアントアプリケーションで使用するAPIには，セキュリティ機能および通信タイムアウトを設定するAPIがあります。APIの一覧を次の表に示します。

表4-1　EJBクライアントアプリケーションで使用するAPIの一覧

クラス名 | 機能
EJBClientInitializerクラス | EJBクライアント用のJ2EEサービスを初期化します。
LoginInfoManagerクラス | セキュリティ機能を設定します。このAPIについては，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」の「17.1　LoginInfoManagerクラス」を参照してください。
RequestTimeoutConfigFactoryクラス | RMI-IIOPタイムアウトを設定するために必要なRequestTimeoutConfigオブジェクトを取得します。
RequestTimeoutConfigクラス | RMI-IIOPタイムアウトを設定します。
UserTransactionFactoryクラス | EJBクライアントでトランザクションを使用するためのUserTransactionオブジェクトを取得します。

4.2　EJBClientInitializerクラス

説明

EJBクライアント用のJ2EEサービスを初期化します。

EJBClientInitializerクラスのパッケージ名は，com.hitachi.software.ejb.ejbclient.EJBClientInitializerです。

メソッド一覧

メソッド名 | 機能
initializeメソッド | EJBクライアント用のJ2EEサービスを初期化します。

＜この節の構成＞

initializeメソッド

initializeメソッド

説明

EJBクライアントアプリケーション用のJ2EEサービスを初期化します。また，トランザクション処理中にEJBクライアントが停止した場合，EJBクライアントを再起動したあとに，グローバルトランザクションのリカバリ処理を開始します。

EJBクライアントプロセスの開始直後に，EJBクライアントのユーザコードから，initializeメソッドを呼び出してください。

なお，initializeメソッドを呼び出す前に，javax.naming.InitialContextを生成した場合，またはUserTransactionFactoryクラスのgetUserTransactionメソッドを呼び出した場合，その時点で初期化処理が行われます。

形式

public static void initialize()
 throws InitializeFailedException;

パラメタ

なし

例外

com.hitachi.software.ejb.ejbclient.InitializeFailedException：

サービスの初期化に失敗しました。

戻り値

なし

注意事項

サービスの初期化処理で例外が発生した場合は，EJBクライアント実行時のシステムプロパティが正しく設定されていないおそれがあります。例外のメッセージに従って対処してください。

4.3　RequestTimeoutConfigFactoryクラス

説明

RMI-IIOP通信タイムアウトを設定するオブジェクトであるRequestTimeoutConfigを取得するためのファクトリです。getRequestTimeoutConfigメソッドでRequestTimeoutConfigを取得したあと，RequestTimeoutConfigのメソッドでタイムアウトを設定します。

RequestTimeoutConfigFactoryクラスのパッケージ名は，com.hitachi.software.ejb.ejbclientです。

メソッド一覧

メソッド名 | 機能
getRequestTimeoutConfigメソッド | RequestTimeoutConfigオブジェクトを取得します。

＜この節の構成＞

getRequestTimeoutConfigメソッド

getRequestTimeoutConfigメソッド

説明

RequestTimeoutConfigオブジェクトを取得します。

形式

public static RequestTimeoutConfig getRequestTimeoutConfig();

パラメタ

なし

例外

なし

戻り値

RequestTimeoutConfig：

RequestTimeoutConfigオブジェクトを返却します。

4.4　RequestTimeoutConfigクラス

説明

RMI-IIOP通信タイムアウトを設定するオブジェクトです。

RequestTimeoutConfigクラスのパッケージ名は，com.hitachi.software.ejb.ejbclientです。

メソッド一覧

メソッド名
機能

setRequestTimeoutメソッド（形式1）
RMI-IIOP通信タイムアウトを設定します。
オブジェクトにタイムアウトを設定します。

setRequestTimeoutメソッド（形式2）
RMI-IIOP通信タイムアウトを設定します。
スレッドにタイムアウトを設定します。

unsetRequestTimeoutメソッド
setRequestTimeoutメソッド（形式2）で設定したRMI-IIOP通信タイムアウトの設定をデフォルト設定に戻します。

＜この節の構成＞

setRequestTimeoutメソッド（形式1）

setRequestTimeoutメソッド（形式2）

unsetRequestTimeoutメソッド

setRequestTimeoutメソッド（形式1）

説明

RMI-IIOP通信タイムアウトを設定します。objパラメタのコピーを生成し，secパラメタをタイムアウト値として設定したオブジェクトを返却します。このメソッドで設定したタイムアウトは，返却されたオブジェクトに対して有効です。

形式

public java.rmi.Remote setRequestTimeout(java.rmi.Remote obj,
                                        int sec)
 throws IllegalArgumentException,
        IllegalStateException;

パラメタ

obj：

タイムアウトを設定するオブジェクト（EJBHomeまたはEJBObject）を指定します。

sec：

0～86400の整数でタイムアウト時間（単位：秒）を指定します。0を指定した場合，タイムアウトを設定しません。

例外

java.lang.IllegalArgumentException：

タイムアウト設定対象として不正なオブジェクト，またはタイムアウト時間として不正な値を指定しました。

java.lang.IllegalStateException：

タイムアウトの設定に失敗しました。

戻り値

タイムアウト設定済みのオブジェクトを返却します。

注意事項

このメソッドでタイムアウトを設定する場合，setRequestTimeoutメソッド（形式2）を使用してタイムアウトを設定する場合に比べて，処理に時間が掛かります。

setRequestTimeoutメソッド（形式2）

説明

RMI-IIOP通信タイムアウトを設定します。実行中のスレッドに対し，パラメタsecをタイムアウト値として設定します。このメソッドで設定したタイムアウトは，現在実行中のスレッドに対して有効です。なお，処理の終了時には，unsetメソッドを使用して必ずタイムアウトの設定を解除してください。同一スレッド内でこのメソッドを複数回呼び出した場合，タイムアウトの設定値が上書きされます。

形式

public void setRequestTimeout(int sec)
 throws IllegalArgumentException,
        IllegalStateException;

パラメタ

sec：

0～86400の整数でタイムアウト時間（単位：秒）を指定します。0を指定した場合，タイムアウトを設定しません。

例外

java.lang.IllegalArgumentException：

タイムアウト設定対象として不正なオブジェクト，またはタイムアウト時間として不正な値を指定しました。

java.lang.IllegalStateException：

タイムアウトの設定に失敗しました。

戻り値

なし

注意事項

このメソッドでタイムアウトを設定する場合は，処理が終わった時点で必ずunsetRequestTimeoutメソッドを呼び出してタイムアウトの設定を解除してください。解除しないと，ほかのクライアントからの呼び出しに対して該当スレッドが使用された場合に，そのクライアントにとって意図しない通信タイムアウトが発生するおそれがあります。

unsetRequestTimeoutメソッド

説明

RMI-IIOP通信タイムアウトの設定を解除します。実行中のスレッドに対し，setRequestTimeout（形式2）で設定したタイムアウトを解除します。なお，setRequestTimeout（形式2）でスレッドにタイムアウトを設定した場合は，処理の終了時に必ずこのメソッドを使用してタイムアウトの設定を解除してください。setRequestTimeout（形式2）を呼び出さないでこのメソッドを呼び出した場合や，同一スレッド内でこのメソッドを複数回呼び出した場合でも，例外は発生しません。

形式

public void unsetRequestTimeout()
 throws IllegalStateException;

パラメタ

なし

例外

java.lang.IllegalStateException：

タイムアウトの解除に失敗しました。

戻り値

なし

4.5　UserTransactionFactoryクラス

説明

EJBクライアントでトランザクションを使用するためのオブジェクトであるUserTransactionオブジェクトを取得するためのファクトリです。

UserTransactionFactoryクラスのパッケージ名は，com.hitachi.software.ejb.ejbclient.UserTransactionFactoryです。

メソッド一覧

メソッド名 | 機能
getUserTransactionメソッド | UserTransactionオブジェクトを取得します。

＜この節の構成＞

getUserTransactionメソッド

getUserTransactionメソッド

説明

UserTransactionオブジェクトを取得します。

形式

public static UserTransaction getUserTransaction();

例外

java.lang.IllegalStateException：

EJBクライアント以外からAPIを発行しました。または，UserTransactionオブジェクトの取得に失敗しました。

戻り値

javax.transaction.UserTransactionオブジェクト

4.6　例外クラス

EJBクライアントアプリケーションのAPIで使用する例外クラスのうち，アプリケーションサーバが提供しているクラスについて説明します。

EJBクライアントアプリケーションのAPIで使用する例外クラスを次の表に示します。

表4-2　EJBクライアントアプリケーションのAPIで使用する例外クラス

例外名
内容

com.hitachi.software.ejb.security.base.authentication.NotFoundServerException
LoginInfoManagerクラスのloginメソッドでログインしようとした場合に，ログイン先のJ2EEサーバに接続できなかったときに送出されます。
ejbserver.serverNameプロパティに指定するJ2EEサーバ名が，ログイン先のJ2EEサーバ名と同じになっていることを確認してください。また，ログイン先のJ2EEサーバが起動していることを確認してください。

com.hitachi.software.ejb.security.base.authentication.InvalidUserNameException
LoginInfoManagerクラスのloginメソッドでログインしようとした場合に，ユーザ名が不正だったときに送出されます。
ユーザ名が正しいかを確認してください。

com.hitachi.software.ejb.security.base.authentication.InvalidPasswordException
LoginInfoManagerクラスのloginメソッドでログインしようとした場合に，パスワードが不正だったときに送出されます。
パスワードが正しいかを確認してください。

5.　TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPI

この章では，TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPIについて説明します。

＜この章の構成＞

5.1　TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPIの一覧

5.2　TP1InMessageインタフェース

5.3　TP1MessageListenerインタフェース

5.4　TP1OutMessageインタフェース

5.1　TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPIの一覧

TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPIの一覧を次の表に示します。

表5-1　TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPIの一覧

インタフェース名 | 機能
TP1InMessageインタフェース | OpenTP1のRPCに指定された入力メッセージを取得したり，応答用の出力メッセージを生成したりするためのインタフェースです。
TP1MessageListenerインタフェース | TP1インバウンドアダプタがOpenTP1からRPCを受信した場合に呼び出すonMessageメソッドを提供するインタフェースです。
TP1OutMessageインタフェース | OpenTP1からのRPCの応答時に返す出力メッセージを保持するためのインタフェースです。

5.2　TP1InMessageインタフェース

説明

OpenTP1のRPCに指定された入力メッセージオブジェクトを取得したり，応答用の出力メッセージオブジェクトを生成したりするためのインタフェースです。

TP1InMessageインタフェースのパッケージ名は，com.hitachi.software.ejb.adapter.tp1です。

形式

public interface TP1InMessage
{
 public byte[] getInputData();
 public TP1OutMessage createOutMessage();
}

メソッド一覧

メソッド名 | 機能
getInputDataメソッド | OpenTP1のRPCに指定された入力メッセージオブジェクトを取得するメソッドです。
createOutMessageメソッド | OpenTP1のRPCの応答用の出力メッセージオブジェクトを生成するメソッドです。

＜この節の構成＞

getInputDataメソッド

createOutMessageメソッド

getInputDataメソッド

説明

OpenTP1のRPCに指定された入力メッセージオブジェクトを取得するメソッドです。

形式

public byte[] getInputData();

パラメタ

なし

例外

なし

戻り値

OpenTP1のRPCに指定された入力メッセージオブジェクトです。サイズは，RPCのin_lenで指定された値です。

createOutMessageメソッド

説明

OpenTP1のRPCの応答用の出力メッセージオブジェクトを生成するメソッドです。

形式

public TP1OutMessage createOutMessage();

パラメタ

なし

例外

なし

戻り値

サービスの出力メッセージオブジェクトです。OpenTP1のRPCの応答時に返す出力メッセージを保持します。

5.3　TP1MessageListenerインタフェース

説明

TP1インバウンドアダプタがOpenTP1からRPCを受信した場合に呼び出すonMessageメソッドを提供するインタフェースです。TP1インバウンドアダプタから呼び出すサービスでビジネスロジックを実装する必要があります。

TP1MessageListenerインタフェースのパッケージ名は，com.hitachi.software.ejb.adapter.tp1です。

形式

public interface TP1MessageListener
{
 public TP1OutMessage onMessage(TP1InMessage in);
}

メソッド一覧

メソッド名 | 機能
onMessageメソッド | TP1インバウンドアダプタがOpenTP1からRPCを受信した場合に呼び出されるメソッドです。

＜この節の構成＞

onMessageメソッド

onMessageメソッド

説明

TP1インバウンドアダプタがOpenTP1からRPCを受信した場合に呼び出すメソッドです。

形式

public TP1OutMessage onMessage(TP1InMessage in);

パラメタ

in：

サービスの入力メッセージオブジェクトを指定します。

例外

なし

戻り値

サービスの出力メッセージオブジェクトです。OpenTP1のRPCの応答時に返す出力パラメタを保持します。

5.4　TP1OutMessageインタフェース

説明

OpenTP1からのRPCの応答時に返す出力メッセージを保持するためのインタフェースです。

TP1OutMessageインタフェースのパッケージ名は，com.hitachi.software.ejb.adapter.tp1です。

形式

public interface TP1OutMessage
{
public byte[] getOutputData(int outLen) throws IllegalArgumentException;
public int getMaxOutputLength();
}

メソッド一覧

メソッド名 | 機能
getOutputDataメソッド | OpenTP1のRPCの応答を格納するbyte配列を取得するメソッドです。
getMaxOutputLengthメソッド | OpenTP1のRPCの応答の長さを返すメソッドです。

＜この節の構成＞

getOutputDataメソッド

getMaxOutputLengthメソッド

getOutputDataメソッド

説明

OpenTP1のRPCの応答を格納するbyte配列を取得するメソッドです。取得したbyte配列に出力データを格納することで，RPCの応答データを設定できます。

getOutputDataメソッドが複数回呼び出された場合，最後に呼び出されたgetOutputDataメソッドが取得したbyte配列が，OpenTP1への応答として使用されます。それ以前に呼び出されたgetOutputDataメソッドが取得したbyte配列は使用されません。

形式

public byte[] getOutputData(int outLen) throws IllegalArgumentException;

パラメタ

outLen：

応答の長さ（バイト数）を，0～<getMaxOutputLengthメソッドで得られる長さ>で指定します。

例外

IllegalArgumentException：

パラメタのoutLenに0～<getMaxOutputLengthメソッドで得られる長さ>以外の値を指定しました。

戻り値

OpenTP1のRPCの応答を格納するbyte配列です。サイズは，パラメタのout_Lenで指定された値です。

getMaxOutputLengthメソッド

説明

OpenTP1のRPCの要求で指定された応答の長さを返します。getMaxOutputLengthメソッドが返す値が，getOutputDataメソッドのパラメタのoutLenに指定できる最大の長さとなります。getMaxOutputLengthメソッドが返す値には，getOutputDataメソッドのパラメタのoutLenに指定した値は反映されません。

形式

public int getMaxOutputLength();

パラメタ

なし

例外

なし

戻り値

OpenTP1のRPCの要求で指定された応答の長さです。

6.　スレッドの非同期並行処理で使用するAPI

この章では，スレッドの非同期並行処理で使用するAPIについて説明します。ここでは，Timer and Work Manager for Application Servers仕様が定義するAPIと動作が異なるアプリケーションサーバのAPIについて説明します。

＜この章の構成＞

6.1　Timer and Work Manager for Application Servers仕様と動作が異なるアプリケーションサーバのAPIの一覧

6.1　Timer and Work Manager for Application Servers仕様と動作が異なるアプリケーションサーバのAPIの一覧

Timer and Work Manager for Application Servers仕様が定義するAPIと動作が異なるアプリケーションサーバのAPIの名称および動作を次の表に示します。

表6-1　 Timer and Work Manager for Application Servers仕様と動作が異なるアプリケーションサーバのAPIの一覧

クラス名
メソッド名
アプリケーションサーバでの動作

commonj.timers.TimerManagerクラス
schedule(TimerListener listener,Date time)メソッド
listenerがjavax.ejb.EnterpriseBeanを継承している場合，IllegalArgumentExceptionを返します。

schedule(TimerListener listener,long delay)メソッド

schedule(TimerListener listener,Date firstTime,long period)メソッド

schedule(TimerListener listener,long delay,long period)メソッド

scheduleAtFixedRate(TimerListener listener,Date firstTime,long period)メソッド

scheduleAtFixedRate (TimerListener listener,long delay,long period)メソッド

commonj.work.WorkManagerクラス
schedule(Work work)メソッド
workがnullの場合，WorkExceptionをスローします。

schedule(Work work,WorkListener wl)メソッド
workがnullの場合，WorkExceptionを返します。
WorkListenerがjavax.ejb.EnterpriseBeanを継承している場合，IllegalArgumentExceptionを返します。

7.　ユーザログ機能で使用するAPI

この章では，ユーザログ機能で使用するAPIについて説明します。

＜この章の構成＞

7.1　ユーザログ機能で使用するAPIの一覧

7.2　CJLogRecordクラス

7.1　ユーザログ機能で使用するAPIの一覧

J2EEアプリケーション，バッチアプリケーション，またはEJBクライアントアプリケーションが出力するログ（ユーザログ）をトレース共通ライブラリ形式で出力する場合に使用するAPIの一覧を次に示します。

表7-1　ユーザログ機能で使用するAPIの一覧

クラス名 | 機能
CJLogRecordクラス | LogRecordクラスに，MsgIDやAppNameパラメタを追加したクラスです。このクラスのメソッドを利用して作成したLogRecordオブジェクト（CJLogRecordオブジェクト）をLogger.logメソッドに渡すことで，MsgIDやAppNameのフィールド値も実行時に指定した値で出力できます。

7.2　CJLogRecordクラス

説明

java.util.logging.LogRecordクラスにMsgIDやAppNameパラメタを追加したクラスです。MsgIDやAppNameが指定された場合のLogRecordオブジェクト（以降，CJLogRecordオブジェクトと呼びます）を作成するためのスタティックメソッドを提供しています。

CJLogRecordクラスのパッケージ名は，com.hitachi.software.ejb.application.userlogです。

メソッド一覧

メソッド名 | 機能
createメソッド（形式1） | Level，MessageおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式2） | Level，Message，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式3） | Level，Message，ObjectおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式4） | Level，Message，Object，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式5） | Level，Message，ThrownおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式6） | Level，Message，Thrown，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式7） | Level，Message，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式8） | Level，Message，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式9） | Level，Message，Thrown，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createメソッド（形式10） | Level，Message，Thrown，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式1） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），MessageおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式2） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式3） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，ObjectおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式4） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Object，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式5） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，ThrownおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式6） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Thrown，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式7） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式8） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式9） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Thrown ，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createpメソッド（形式10） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Thrown，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式1） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），MessageおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式2） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式3） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，ObjectおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式4） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Object，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式5） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，ThrownおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式6） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Thrown，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式7） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式8） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式9） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Thrown，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。
createrbメソッド（形式10） | Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Thrown，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

なお，CJLogRecordクラスの継承元であるLogRecordクラスおよび各メソッドのパラメタに指定するLevelは，java.util.loggingパッケージに属するクラスです。

＜この節の構成＞

createメソッド（形式1）

createメソッド（形式2）

createメソッド（形式3）

createメソッド（形式4）

createメソッド（形式5）

createメソッド（形式6）

createメソッド（形式7）

createメソッド（形式8）

createメソッド（形式9）

createメソッド（形式10）

createpメソッド（形式1）

createpメソッド（形式2）

createpメソッド（形式3）

createpメソッド（形式4）

createpメソッド（形式5）

createpメソッド（形式6）

createpメソッド（形式7）

createpメソッド（形式8）

createpメソッド（形式9）

createpメソッド（形式10）

createrbメソッド（形式1）

createrbメソッド（形式2）

createrbメソッド（形式3）

createrbメソッド（形式4）

createrbメソッド（形式5）

createrbメソッド（形式6）

createrbメソッド（形式7）

createrbメソッド（形式8）

createrbメソッド（形式9）

createrbメソッド（形式10）

createメソッド（形式1）

説明

Level，MessageおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式2）

説明

Level，Message，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                String appName,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式3）

説明

Level，Message，ObjectおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                Object param1,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

param1：

LogRecordにセットするオブジェクトを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式4）

説明

Level，Message，Object，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                Object param1,
                                String appName,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

param1：

LogRecordにセットするオブジェクトを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式5）

説明

Level，Message，ThrownおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                Throwable thrown,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式6）

説明

Level，Message，Thrown，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                Throwable thrown,
                                String appName,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式7）

説明

Level，Message，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                Object[] params,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式8）

説明

Level，Message，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                Object[] params,
                                String appName,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式9）

説明

Level，Message，Thrown，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                Throwable thrown,
                                Object[] params,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createメソッド（形式10）

説明

Level，Message，Thrown，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord create(Level level,
                                String msg,
                                Throwable thrown,
                                Object[] params,
                                String appName,
                                String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式1）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），MessageおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式2）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 String appName,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式3）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，ObjectおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 Object param1,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

param1：

LogRecordにセットするオブジェクトを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式4）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Object，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 Object param1,
                                 String appName,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

param1：

LogRecordにセットするオブジェクトを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式5）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，ThrownおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 Throwable thrown,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式6）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Thrown，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 Throwable thrown,
                                 String appName,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式7）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 Object[] params,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式8）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 Object[] params,
                                 String appName,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式9）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Thrown，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 Throwable thrown,
                                 Object[] params,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createpメソッド（形式10）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），Message，Thrown，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createp(Level level,
                                 String sourceClass,
                                 String sourceMethod,
                                 String msg,
                                 Throwable thrown,
                                 Object[] params,
                                 String appName,
                                 String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式1）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），MessageおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式2）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  String appName,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式3）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，ObjectおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  Object param1,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

param1：

LogRecordにセットするオブジェクトを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式4）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Object，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  Object param1,
                                  String appName,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

param1：

LogRecordにセットするオブジェクトを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式5）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，ThrownおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  Throwable thrown,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式6）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Thrown，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  Throwable thrown,
                                  String appName,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式7）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  Object[] params,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式8）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  Object[] params,
                                  String appName,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式9）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Thrown，Object配列およびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  Throwable thrown,
                                  Object[] params,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

createrbメソッド（形式10）

説明

Level，発生元クラス名（sourceClass），発生元メソッド名（sourceMethod），リソースバンドル名（bundleName），Message，Thrown，Object配列，AppNameおよびMsgIDを渡して，CJLogRecordオブジェクトを作成します。

形式

public static CJLogRecord createrb(Level level,
                                  String sourceClass,
                                  String sourceMethod,
                                  String bundleName,
                                  String msg,
                                  Throwable thrown,
                                  Object[] params,
                                  String appName,
                                  String msgID);

パラメタ

level：

メッセージレベル識別子（例えば，SEVEREなど）を指定します。

sourceClass：

ロギングの要求を発行したクラス名を指定します。

sourceMethod：

ロギングの要求を発行したメソッド名を指定します。

bundleName：

msgを地域化するためのリソースバンドル名を指定します。

msg：

文字列メッセージ，またはメッセージカタログのキーを指定します。

thrown：

LogRecordにセットする例外オブジェクトを指定します。

params：

ユーザが利用する（Logger.logメソッドのObject配列に直接渡す予定だった）ユーザ固有のObject配列を指定します。

appName：

AppNameフィールドに出力する値（アプリケーション識別名）を指定します。

msgID：

MsgIDフィールドに出力する値（メッセージ文字列）を指定します。

戻り値

CJLogRecordオブジェクトを返却します。

8.　監査ログ出力で使用するAPI

この章では，J2EEアプリケーションまたはバッチアプリケーションで監査ログを出力する場合に使用するAPIについて説明します。

＜この章の構成＞

8.1　監査ログ出力で使用するAPIの一覧

8.2　AuditLogRecordクラス

8.3　UserAuditLoggerクラス

8.4　例外クラス

8.1　監査ログ出力で使用するAPIの一覧

監査ログ出力で使用するAPIの一覧を次の表に示します。

表8-1　監査ログ出力で使用するAPIの一覧

クラス名 | 機能
AuditLogRecordクラス | 監査ログのレコードを表すクラスです。
UserAuditLoggerクラス | J2EEアプリケーションまたはバッチアプリケーションから監査ログを出力するためのロガークラスです。
例外クラス | 監査ログのAPIで発生する例外を表す例外クラスです。

監査ログ出力で使用するAPIを使用する場合，次のJARファイルをクラスパスに指定してコンパイルする必要があります。

Windowsの場合

%COSMINEXUS_HOME%¥common¥lib¥auditlog.jar

UNIXの場合

/opt/Cosminexus/common/lib/auditlog.jar

8.2　AuditLogRecordクラス

説明

監査ログのレコードを表すクラスです。

J2EEアプリケーションまたはバッチアプリケーションから監査ログとして出力する情報は，このクラスのsetで始まるメソッドを使用して設定します。

監査ログに出力する情報のうち，監査事象の種別，監査事象の結果，および動作情報については，指定できる値が決まっています。このクラスでは，これらの情報を指定するための定数をフィールドとして定義しています。

なお，設定する値の前後に空白を指定した場合，空白は削除されます。また，空文字（""）や空白だけを設定した場合，値は設定されていないものとみなされます。

AuditLogRecordクラスのパッケージ名は，com.hitachi.software.auditlogです。

形式

public class AuditLogRecord
 extends Object
 implements Serializable

メソッド一覧

メソッド名 | 機能
getAfterInfoメソッド | 変更後情報を取得します。
getAuthorityメソッド | 権限情報を取得します。
getBeforeInfoメソッド | 変更前情報を取得します。
getCategoryメソッド | 監査事象の種別を取得します。
getDetectionPointメソッド | 検出場所を取得します。
getHaidメソッド | 冗長化識別情報を取得します。
getLocationメソッド | ロケーション情報を取得します。
getMessageメソッド | 自由記述を取得します。
getMessageIdメソッド | メッセージIDを取得します。
getObjectInfoメソッド | オブジェクト情報を取得します。
getObjectLocationメソッド | オブジェクトロケーション情報を取得します。
getOperationメソッド | 動作情報を取得します。
getOutputPointメソッド | 出力元の場所を取得します。
getReceiverHostメソッド | リクエスト送信先ホストを取得します。
getReceiverPortメソッド | リクエスト送信先ポート番号を取得します。
getResultメソッド | 監査事象の結果を取得します。
getSenderHostメソッド | リクエスト送信元ホストを取得します。
getSenderPortメソッド | リクエスト送信元ポート番号を取得します。
getServiceInstanceメソッド | サービスインスタンス名を取得します。
getSubjectIdメソッド | サブジェクト識別情報を取得します。
getSubjectPointメソッド | 指示元の場所を取得します。
setAfterInfoメソッド | 変更後情報を設定します。
setAuthorityメソッド | 権限情報を設定します。
setBeforeInfoメソッド | 変更前情報を設定します。
setCategoryメソッド | 監査事象の種別を設定します。
setDetectionPointメソッド | 検出場所を設定します。
setHaidメソッド | 冗長化識別情報を設定します。
setLocationメソッド | ロケーション情報を設定します。
setMessageメソッド | 自由記述を設定します。
setMessageIdメソッド | メッセージIDを設定します。
setObjectInfoメソッド | オブジェクト情報を設定します。
setObjectLocationメソッド | オブジェクトロケーション情報を設定します。
setOperationメソッド | 動作情報を設定します。
setOutputPointメソッド | 出力元の場所を設定します。
setReceiverHostメソッド | リクエスト送信先ホストを設定します。
setReceiverPortメソッド | リクエスト送信先ポート番号を設定します。
setResultメソッド | 監査事象の結果を設定します。
setSenderHostメソッド | リクエスト送信元ホストを設定します。
setSenderPortメソッド | リクエスト送信元ポート番号を設定します。
setServiceInstanceメソッド | サービスインスタンス名を設定します。
setSubjectIdメソッド | サブジェクト識別情報を設定します。
setSubjectPointメソッド | 指示元の場所を設定します。

監査ログのレコードに設定する値の推奨値

監査ログのレコードに設定する値には，項目ごとに推奨されている長さおよび文字種があります。監査ログの各項目の推奨値を次の表に示します。

表8-2　監査ログのレコードに設定する値の推奨値

項目
推奨値

長さ（バイト）
文字種

変更後情報
規定はありません。
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

権限情報
0～128
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

変更前情報
規定はありません。
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

監査事象の種別
種別によって異なります。
「A～Z」（%x41-5A）および「a～z」（/%x61-7A）のアルファベット。
なお，アプリケーションサーバでは，監査事象の種別の推奨値をフィールドとして定義しています。「表8-3　監査事象の種別の推奨値を表すフィールドの一覧」を参照してください。

検出場所
0～255
次の文字。

「0～9」の数値（%x30-39）

「A～Z」（%x41-5A）および「a～z」（%x61-7A）のアルファベット

「-」（%x2D）

「.」(%x2E)

冗長化識別情報
1～2
「0～9」の数値（%x30-39）。

ロケーション情報
0～32
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

自由記述
規定はありません。
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

メッセージID
9～32
次の文字。

「0～9」の数値（%x30-39）

「A～Z」のアルファベット（%x41-5A）

「-」（%x2D）

オブジェクト情報
0～256
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

オブジェクトロケーション情報
規定はありません。
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

動作情報
0～32
任意。
なお，アプリケーションサーバでは，動作情報の推奨値をフィールドとして定義しています。「表8-4　動作情報の推奨値を表すフィールドの一覧」を参照してください。

出力元の場所
0～255
次の文字。

「0～9」の数値（%x30-39）

「A～Z」（%x41-5A）および「a～z」（%x61-7A）のアルファベット

「-」（%x2D）

「.」(%x2E)

リクエスト送信先ホスト
0～255
次の文字。

「0～9」の数値（%x30-39）

「A～Z」（%x41-5A）および「a～z」（%x61-7A）のアルファベット

「-」（%x2D）

「.」(%x2E)

リクエスト送信先ポート番号
1～5
「0～9」の数値（%x30-39）。

監査事象の結果
結果によって異なります。
「A～Z」（%x41-5A）および「a～z」（%x61-7A）のアルファベット。
なお，アプリケーションサーバでは，監査事象の結果の推奨値をフィールドとして定義しています。「表8-6　監査事象の結果の推奨値を表すフィールドの一覧」を参照してください。

リクエスト送信元ホスト
0～255
次の文字。

「0～9」の数値（%x30-39）

「A～Z」（%x41-5A）および「a～z」（%x61-7A）のアルファベット

「-」（%x2D）

「.」(%x2E)

リクエスト送信元ポート番号
1～5
「0～9」の数値（%x30-39）。

サービスインスタンス名
0～128
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

サブジェクト識別情報
0～256
次の文字以外のUS-ASCII。

CR（%x0D）

LF（%x0A）

指示元の場所
0～255
次の文字。

「0～9」の数値（%x30-39）

「A～Z」（%x41-5A）および「a～z」（%x61-7A）のアルファベット

「-」（%x2D）

「.」(%x2E)

監査事象の種別の推奨値を表すフィールド

監査事象の種別の推奨値を表すフィールドの一覧を，次の表に示します。監査事象の種別は，setCategoryメソッドで設定します。

表8-3　監査事象の種別の推奨値を表すフィールドの一覧

フィールド名
実際の値
意味

public static final String CATEGORY_ACCESS_CONTROL
"AccessControl"
管理者または一般利用者が，管理リソースまたはセキュリティリソースへのアクセスを試みて，成功または失敗したことを示す事象です。

public static final String CATEGORY_ANOMALY_EVENT
"AnomalyEvent"
しきい値オーバーなどの異常が発生したことを示す事象です。

public static final String CATEGORY_AUTHENTICATION
"Authentication"
管理者または一般利用者が，認証を試みて，成功または失敗したことを示す事象です。

public static final String CATEGORY_CONFIGURATION_ACCESS
"ConfigurationAccess"
管理者が許可された運用操作を実行して，操作が正常終了または失敗したことを示す事象です。

public static final String CATEGORY_CONTENT_ACCESS
"ContentAccess"
重要なデータへのアクセスを試みて，成功または失敗したことを示す事象です。

public static final String CATEGORY_EXTERNAL_SERVICE
"ExternalService"
外部サービスとの通信結果を示す事象です。

public static final String CATEGORY_FAILURE
"Failure"
ソフトウェアの異常を示す事象です。

public static final String CATEGORY_LINK_STATUS
"LinkStatus"
機器間のリンク状態を示す事象です。

public static final String CATEGORY_MAINTENANCE
"Maintenance"
保守作業を実行して，操作が正常終了または失敗したことを示す事象です。

public static final String CATEGORY_MANAGEMENT_ACTION
"ManagementAction"
プログラムの重要なアクションが実行されたことを示す事象です。
ほかの監査事象を契機として実行するアクションを示します。

public static final String CATEGORY_START_STOP
"StartStop"
ソフトウェアの起動と終了を示す事象です。

動作情報の推奨値を表すフィールド

動作情報の推奨値を表すフィールドの一覧を，次の表に示します。動作情報は，setOperationメソッドで設定します。

表8-4　動作情報の推奨値を表すフィールドの一覧

フィールド名 | 実際の値 | 意味
public static final String OPERATION_ADD | "Add" | 動作情報の意味は監査事象の種別との組み合わせで決まります。監査事象の種別と組み合わせた動作情報の意味については，「表8-5　監査事象の種別と動作情報の組み合わせ」を参照してください。
public static final String OPERATION_BACKUP | "Backup"
public static final String OPERATION_DELETE | "Delete"
public static final String OPERATION_DOWN | "Down"
public static final String OPERATION_ENFORCE | "Enforce"
public static final String OPERATION_INSTALL | "Install"
public static final String OPERATION_INVOKE | "Invoke"
public static final String OPERATION_LOGIN | "Login"
public static final String OPERATION_LOGOFF | "Logoff"
public static final String OPERATION_LOGON | "Logon"
public static final String OPERATION_LOGOUT | "Logout"
public static final String OPERATION_MAINTAIN | "Maintain"
public static final String OPERATION_NOTIFY | "Notify"
public static final String OPERATION_OCCUR | "Occur"
public static final String OPERATION_RECEIVE | "Receive"
public static final String OPERATION_REFER | "Refer"
public static final String OPERATION_REQUEST | "Request"
public static final String OPERATION_RESPONSE | "Response"
public static final String OPERATION_SEND | "Send"
public static final String OPERATION_START | "Start"
public static final String OPERATION_STOP | "Stop"
public static final String OPERATION_UNINSTALL | "Uninstall"
public static final String OPERATION_UP | "Up"
public static final String OPERATION_UPDATE | "Update"

動作情報の意味は監査事象の種別との組み合わせで決まります。監査事象の種別と，動作情報の組み合わせについて，次の表に示します。

表8-5　監査事象の種別と動作情報の組み合わせ

監査事象の種別 | 動作情報 | 意味
StartStop | Start | 開始または起動を表します。
Stop | 終了または停止を表します。
Authentication | Login | ログインを表します。
Logout | ログアウトを表します。
Logon | ログオンを表します。
Logoff | ログオフを表します。
AccessControl | Enforce | 実施を表します。
ConfigurationAccess | Refer | 設定情報の参照を表します。
Add | 設定情報の追加を表します。
Update | 設定情報の更新を表します。
Delete | 設定情報の削除を表します。
Failure | Occur | 発生を表します。
LinkStatus | Up | リンク活性を表します。
Down | リンク非活性を表します。
ExternalService | Request | 要求を表します。
Response | 応答を表します。
Send | 発信を表します。
Receive | 受信を表します。
ContentAccess | Refer | 参照を表します。
Add | 追加を表します。
Update | 更新またはアップデートを表します。
Delete | 削除を表します。
Maintenance | Install | インストールを表します。
Uninstall | アンインストールを表します。
Update | 更新またはアップデートを表します。
Backup | バックアップを表します。
Maintain | 保守作業を表します。
AnomalyEvent | Occur | 発生を表します。
ManagementAction | Invoke | 管理者などの呼び出しを表します。
Notify | 管理者などへの通知を表します。

監査事象の結果の推奨値を表すフィールド

監査事象の結果の推奨値を表すフィールドの一覧を，次の表に示します。監査事象の結果は，setResultメソッドで設定します。

表8-6　監査事象の結果の推奨値を表すフィールドの一覧

フィールド名 | 実際の値 | 意味
public static final String RESULT_FAILURE | "Failure" | 事象の失敗を表します。
public static final String RESULT_OCCURRENCE | "Occurrence" | 成功，失敗の分類がない事象の発生を表します。
public static final String RESULT_SUCCESS | "Success" | 事象の成功を表します。

＜この節の構成＞

getAfterInfoメソッド

getAuthorityメソッド

getBeforeInfoメソッド

getCategoryメソッド

getDetectionPointメソッド

getHaidメソッド

getLocationメソッド

getMessageメソッド

getMessageIdメソッド

getObjectInfoメソッド

getObjectLocationメソッド

getOperationメソッド

getOutputPointメソッド

getReceiverHostメソッド

getReceiverPortメソッド

getResultメソッド

getSenderHostメソッド

getSenderPortメソッド

getServiceInstanceメソッド

getSubjectIdメソッド

getSubjectPointメソッド

setAfterInfoメソッド

setAuthorityメソッド

setBeforeInfoメソッド

setCategoryメソッド

setDetectionPointメソッド

setHaidメソッド

setLocationメソッド

setMessageメソッド

setMessageIdメソッド

setObjectInfoメソッド

setObjectLocationメソッド

setOperationメソッド

setOutputPointメソッド

setReceiverHostメソッド

setReceiverPortメソッド

setResultメソッド

setSenderHostメソッド

setSenderPortメソッド

setServiceInstanceメソッド

setSubjectIdメソッド

setSubjectPointメソッド

getAfterInfoメソッド

説明

変更後情報を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getAfterInfo();

パラメタ

なし

例外

なし

戻り値

変更後情報が返されます。

getAuthorityメソッド

説明

権限情報を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getAuthority();

パラメタ

なし

例外

なし

戻り値

権限情報が返されます。

getBeforeInfoメソッド

説明

変更前情報を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getBeforeInfo();

パラメタ

なし

例外

なし

戻り値

変更前情報が返されます。

getCategoryメソッド

説明

監査事象の種別を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にAuditLogExceptionがスローされます。

形式

public String getCategory();

パラメタ

なし

例外

なし

戻り値

監査事象の種別が返されます。

getDetectionPointメソッド

説明

検出場所を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getDetectionPoint();

パラメタ

なし

例外

なし

戻り値

検出場所が返されます。

getHaidメソッド

説明

冗長化識別情報を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getHaid();

パラメタ

なし

例外

なし

戻り値

冗長化識別情報が返されます。

getLocationメソッド

説明

ロケーション情報を取得します。

この項目に値を設定していない場合，アプリケーションサーバによって自動的に付加された値（性能解析トレースのルートアプリケーション情報）が出力されます。

形式

public String getLocation();

パラメタ

なし

例外

なし

戻り値

ロケーション情報が返されます。

getMessageメソッド

説明

自由記述を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getMessage();

パラメタ

なし

例外

なし

戻り値

自由記述が返されます。

getMessageIdメソッド

説明

メッセージIDを取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にAuditLogExceptionがスローされます。

形式

public String getMessageId();

パラメタ

なし

例外

なし

戻り値

メッセージIDが返されます。

getObjectInfoメソッド

説明

オブジェクト情報を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getObjectInfo();

パラメタ

なし

例外

なし

戻り値

オブジェクト情報が返されます。

getObjectLocationメソッド

説明

オブジェクトロケーション情報を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getObjectLocation();

パラメタ

なし

例外

なし

戻り値

オブジェクトロケーション情報が返されます。

getOperationメソッド

説明

動作情報を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getOperation();

パラメタ

なし

例外

なし

戻り値

動作情報が返されます。

getOutputPointメソッド

説明

出力元の場所を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getOutputPoint();

パラメタ

なし

例外

なし

戻り値

出力元の場所が返されます。

getReceiverHostメソッド

説明

リクエスト送信先ホストを取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getReceiverHost();

パラメタ

なし

例外

なし

戻り値

リクエスト送信先ホストが返されます。

getReceiverPortメソッド

説明

リクエスト送信先ポート番号を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public int getReceiverPort();

パラメタ

なし

例外

なし

戻り値

リクエスト送信先ポート番号が返されます。

getResultメソッド

説明

監査事象の結果を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にAuditLogExceptionがスローされます。

形式

public String getResult();

パラメタ

なし

例外

なし

戻り値

監査事象の結果が返されます。

getSenderHostメソッド

説明

リクエスト送信元ホストを取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getSenderHost();

パラメタ

なし

例外

なし

戻り値

リクエスト送信元ホストが返されます。

getSenderPortメソッド

説明

リクエスト送信元ポート番号を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public int getSenderPort();

パラメタ

なし

例外

なし

戻り値

リクエスト送信元ポート番号が返されます。

getServiceInstanceメソッド

説明

サービスインスタンス名を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getServiceInstance();

パラメタ

なし

例外

なし

戻り値

サービスインスタンス名が返されます。

getSubjectIdメソッド

説明

サブジェクト識別情報を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にアプリケーションサーバによって自動的に付加された値（OSのアカウント）が出力されます。なお，OSのアカウントとして出力される情報は，OSごとに異なります。

Windowsの場合

ユーザ名が出力されます。

UNIXの場合

実効ユーザIDが出力されます。

形式

public String getSubjectId();

パラメタ

なし

例外

なし

戻り値

サブジェクト識別情報が返されます。

getSubjectPointメソッド

説明

指示元の場所を取得します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public String getSubjectPoint();

パラメタ

なし

例外

なし

戻り値

指示元の場所が返されます。

setAfterInfoメソッド

説明

変更後情報を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setAfterInfo(String info);

パラメタ

info：

変更後情報を指定します。

例外

なし

戻り値

なし

setAuthorityメソッド

説明

権限情報を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setAuthority(String authority);

パラメタ

authority：

権限情報を指定します。

例外

なし

戻り値

なし

setBeforeInfoメソッド

説明

変更前情報を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setBeforeInfo(String info);

パラメタ

info：

変更前情報を指定します。

例外

なし

戻り値

なし

setCategoryメソッド

説明

監査事象の種別を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にAuditLogExceptionがスローされます。

形式

public void setCategory(String category);

パラメタ

category：

監査事象の種別を指定します。

例外

なし

戻り値

なし

setDetectionPointメソッド

説明

検出場所を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setDetectionPoint(String detectionPoint);

パラメタ

detectionPoint：

検出場所を指定します。

例外

なし

戻り値

なし

setHaidメソッド

説明

冗長化識別情報を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setHaid(String haid);

パラメタ

haid：

冗長化識別情報を指定します。

例外

なし

戻り値

なし

setLocationメソッド

説明

ロケーション情報を設定します。

この項目に値を設定していない場合，アプリケーションサーバによって，性能解析トレースのルートアプリケーション情報が設定されます。

形式

public void setLocation(String location);

パラメタ

location：

ロケーション情報を指定します。

例外

なし

戻り値

なし

setMessageメソッド

説明

自由記述を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setMessage(String message);

パラメタ

message：

自由記述を指定します。

例外

なし

戻り値

なし

setMessageIdメソッド

説明

メッセージIDを設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にAuditLogExceptionがスローされます。

形式

public void setMessageId(String messageId);

パラメタ

messageId：

メッセージIDをで指定します。

例外

なし

戻り値

なし

setObjectInfoメソッド

説明

オブジェクト情報を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setObjectInfo(String objectInfo);

パラメタ

objectInfo：

オブジェクト情報を指定します。

例外

なし

戻り値

なし

setObjectLocationメソッド

説明

オブジェクトロケーション情報を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setObjectLocation(String objectLocation);

パラメタ

objectLocation：

オブジェクトロケーション情報を指定します。

例外

なし

戻り値

なし

setOperationメソッド

説明

動作情報を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setOperation(String operation);

パラメタ

operation：

動作情報を指定します。

例外

なし

戻り値

なし

setOutputPointメソッド

説明

出力元の場所を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setOutputPoint(String outputPoint);

パラメタ

outputPoint：

出力元の場所を指定します。

例外

なし

戻り値

なし

setReceiverHostメソッド

説明

リクエスト送信先ホストを設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setReceiverHost(String receiverHost);

パラメタ

receiverHost：

リクエスト送信先ホストを指定します。

例外

なし

戻り値

なし

setReceiverPortメソッド

説明

リクエスト送信先ポート番号を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setReceiverPort(int receiverPort);

パラメタ

receiverPort：

リクエスト送信先ポート番号を指定します。

例外

なし

戻り値

なし

setResultメソッド

説明

監査事象の結果を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にAuditLogExceptionがスローされます。

形式

public void setResult(String result);

パラメタ

result：

監査事象の結果を指定します。

例外

なし

戻り値

なし

setSenderHostメソッド

説明

リクエスト送信元ホストを設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setSenderHost(String senderHost);

パラメタ

senderHost：

リクエスト送信元ホストを指定します。

例外

なし

戻り値

なし

setSenderPortメソッド

説明

リクエスト送信元ポート番号を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setSenderPort(int senderPort);

パラメタ

senderPort：

リクエスト送信元ポート番号を指定します。

例外

なし

戻り値

なし

setServiceInstanceメソッド

説明

サービスインスタンス名を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setServiceInstance(String serviceInstance);

パラメタ

serviceInstance：

サービスインスタンス名を指定します。

例外

なし

戻り値

なし

setSubjectIdメソッド

説明

サブジェクト識別情報を設定します。指定できるのは，アカウント識別子（ユーザID）だけです。

この項目に値を設定していない場合，またはnullを設定した場合は，OSのアカウントが設定されます。

OSのアカウントとして設定される情報は，OSごとに異なります。

Windowsの場合

ユーザ名が設定されます。

UNIXの場合

実効ユーザIDが設定されます。

なお，パラメタに，OSのアカウントを指定してはいけません。

形式

public void setSubjectId(String subjectId);

パラメタ

subjectId：

サブジェクト識別情報（ユーザID）を指定します。

例外

なし

戻り値

なし

setSubjectPointメソッド

説明

指示元の場所を設定します。

この項目に値を設定していない場合，UserAuditLogger.logメソッド実行時にこの項目は出力されません。この場合，タグも出力されません。

形式

public void setSubjectPoint(String subjectPoint);

パラメタ

subjectPoint：

指示元の場所を指定します。

例外

なし

戻り値

なし

8.3　UserAuditLoggerクラス

説明

J2EEアプリケーションまたはバッチアプリケーションから監査ログを出力するためのロガークラスです。

UserAuditLoggerクラスのパッケージ名は，com.hitachi.software.auditlogです。

形式

public class UserAuditLogger

メソッド一覧

メソッド名 | 機能
getLoggerメソッド | パラメタに指定した発生コンポーネント名ごとに，UserAuditLoggerオブジェクトを取得します。
isEnabledメソッド | 監査ログが有効か無効かを判定します。
isLoggableメソッド | パラメタに指定したメッセージIDから，監査ログの出力要否を判定します。
logメソッド | パラメタに指定したAuditLogRecordオブジェクトを基に，監査ログを出力します。

＜この節の構成＞

getLoggerメソッド

isEnabledメソッド

isLoggableメソッド

logメソッド

getLoggerメソッド

説明

パラメタに指定した発生コンポーネント名ごとに，UserAuditLoggerオブジェクトを取得します。例えば，getLogger(new String("Component"))メソッドを2回実行した場合は，2回とも同じUserAuditLoggerオブジェクトを取得できます。

発生コンポーネント名とUserAuditLoggerオブジェクトの対応は，UserAuditLoggerクラスの内部で管理されています。内部で管理されている発生コンポーネント名と，パラメタに指定した発生コンポーネント名の判定は，String.equals(component)メソッドで実行されます。内部で管理されている発生コンポーネント名とパラメタに指定した発生コンポーネント名が一致した場合に，対応するUserAuditLoggerオブジェクトが返されます。

形式

public static UserAuditLogger getLogger(String component);

パラメタ

component：

発生コンポーネント名を指定します。

例外

com.hitachi.software.auditlog.AuditLogException：

初期化に失敗しました。

戻り値

UserAuditLogger：

監査ログが有効な場合に，UserAuditLoggerオブジェクトが返されます。

パラメタに指定した発生コンポーネント名ごとに，異なるオブジェクトが返されます。

null：

監査ログが無効な場合に返されます。

isEnabledメソッド

説明

監査ログが有効か無効かを判定します。

なお，監査ログ定義ファイルのauditlog.enabledキーにfalseが指定されている場合，監査ログは無効になります。

形式

public static boolean isEnabled();

パラメタ

なし

例外

なし

戻り値

true：

監査ログが有効な場合に返されます。

false：

監査ログが無効な場合に返されます。

isLoggableメソッド

説明

パラメタに指定したメッセージIDから，監査ログの出力要否を判定します。

出力要否は，監査ログ定義ファイルのauditlog.filtered.message.listキーに，指定したメッセージIDが含まれているかどうかで判定されます。

auditlog.filtered.message.listキーに，指定したメッセージIDが含まれている場合は，戻り値としてfalseが返され，監査ログを出力できません。auditlog.filtered.message.listキーに，指定したメッセージIDが含まれていない場合は，戻り値としてtrueが返され，監査ログを出力できます。

なお，このメソッドでは，監査ログが有効か無効かについては判定しません。

形式

public boolean isLoggable(String messageId);

パラメタ

messageId：

メッセージIDを指定します。必ず一つのメッセージIDを指定してください。

例えば，「String messageId = "message-1,message-2";」のように複数のメッセージIDを指定した場合，一つながりの文字列として認識されます。「String messageId = "message-1";」のように，メッセージIDを一つだけ指定してください。

例外

なし

戻り値

true：

監査ログを出力できる場合に返されます。パラメタに「null」または空文字を指定した場合もtrueが返されます。

false：

監査ログを出力できない場合に返されます。

logメソッド

説明

パラメタに指定したAuditLogRecordオブジェクトを基に，監査ログを出力します。出力される監査ログは，AuditLogRecordクラスのsetで始まるメソッドで設定した値です。

監査ログのレコードは，出力項目ごとに推奨値が決められています。出力項目ごとの推奨値については，「8.2　AuditLogRecordクラス」を参照してください。ただし，推奨されている文字種以外の文字を設定したり，推奨されている文字数を超過して設定したりした場合も，設定した値がそのまま出力されます。

監査ログの出力先は，監査ログ定義ファイルで指定します。監査ログ定義ファイルについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「13.2　監査ログ定義ファイル」を参照してください。また，監査ログの出力形式については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「6.4.3　監査ログの出力形式」を参照してください。

すでに監査ログを出力したファイルが存在する場合，出力した監査ログには，そのファイルのアクセス権限が引き継がれます。監査ログを出力したファイルが存在しない場合は，監査ログを出力したファイルに対して，次のアクセス権限が設定されます。

表8-7　監査ログを出力したファイルのアクセス権限

OS | 所有者 | 設定されるアクセス権限
Windowsの場合 | 出力先のフォルダの設定が引き継がれます。
UNIXの場合 | 監査ログを出力したプロセスのユーザおよびプライマリグループ | 666※

注※

umaskによるマスクが行われます。umask=0022が設定されている場合，実際には644となります。

形式

public void log(AuditLogRecord)
 throws AuditLogException;

パラメタ

AuditLogRecord：

AuditLogRecordオブジェクトを指定します。

例外

AuditLogException：

監査ログの出力が失敗しました。次の要因が考えられます。

監査ログを出力するプロセスの実行ユーザに，監査ログの書き込み権限がない。

監査ログを出力する際にディスクフルになった。

指定が必要な出力項目が指定されていない。

戻り値

なし

8.4　例外クラス

監査ログ出力で使用するAPIで発生する例外を表す，例外クラスについて説明します。

例外名

com.hitachi.software.auditlog.AuditLogException

内容

監査ログに関する例外を表すクラスです。

コンストラクタの型はExceptionクラスと同じです。また，メソッドについてもExceptionクラスのすべてのメソッドを継承しています。

コンストラクタ

AuditLogException()

AuditLogException(String message)

AuditLogException(String message, Throwable cause)

AuditLogException(Throwable cause)

これらのコンストラクタでは，Exceptionクラスのコンストラクタが呼び出されます。

メソッド

AuditLogExceptionクラスおよびExceptionクラスで定義されたメソッドはありません。

ExceptionクラスがThrowableクラスから継承したメソッドだけが使用できます。

9.　性能解析トレースで使用するAPI

この章では，性能解析トレースのルートアプリケーション情報取得機能で使用するAPIについて説明します。

＜この章の構成＞

9.1　性能解析トレースで使用するAPIの一覧

9.2　CprfTraceクラス

9.1　性能解析トレースで使用するAPIの一覧

性能解析トレースで使用するAPIの一覧を次の表に示します。

表9-1　性能解析トレースで使用するAPIの一覧

クラス名 | 機能
CprfTraceクラス | 性能解析トレース関連の機能を提供します。

9.2　CprfTraceクラス

説明

性能解析トレース関連の機能を提供します。

CprfTraceクラスのパッケージ名は，com.hitachi.software.ejb.application.prfです。

メソッド一覧

メソッド名 | 機能
getRootApInfoメソッド | 現在のスレッドが保持している性能解析トレースのルートアプリケーション情報を文字列表現で返します。

注意事項

このクラスを使用する場合は，次のJARファイルをクラスパスに指定してコンパイルします。

Windowsの場合
<アプリケーションサーバのインストールディレクトリ>¥CC¥lib¥ejbserver.jar

UNIXの場合
/opt/Cosminexus/CC/lib/ejbserver.jar

＜この節の構成＞

getRootApInfoメソッド

getRootApInfoメソッド

説明

現在のスレッドが保持している性能解析トレースのルートアプリケーション情報を文字列表現で返します。

ルートアプリケーション情報の文字列表現とは，ルートアプリケーション情報を構成するIPアドレス，プロセスID，および通信番号をスラッシュ(/)で区切ったものです（最大長45）。

例: "10.209.15.130/1234/0x0000000000000001"

ルートアプリケーション情報の文字列表現をログファイルなどに記録することによって，任意のタイミングで性能解析トレースファイルとの突き合わせが可能となるため，トラブルシュートに役立てることができます。

性能解析トレースのルートアプリケーション情報取得については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「7.4　性能解析トレースのルートアプリケーション情報取得のための実装」を参照してください。ルートアプリケーション情報を利用したログ調査については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「7.7.7　ルートアプリケーション情報を利用したログ調査」を参照してください。

形式

public static final String getRootApInfo();

パラメタ

なし

例外

なし

戻り値

ルートアプリケーション情報の文字列表現。

次の場合には，nullを返します。

Performance Tracerがインストールされていないなど，現在のスレッドが保持しているルートアプリケーション情報が存在しない場合

EJBコンテナ外およびWebコンテナ外から呼び出された場合

EJBクライアントから呼び出された場合

10.　JavaVMで使用するAPI

この章では，製品のJavaVM（以降，JavaVMと呼びます）で使用するAPIについて説明します。

なお，JavaVMは，Java SE 6に準拠しています。詳細については，マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」を参照してください。また，JDK 6で使用できるAPIについては，Oracle社が提供しているJDK 6のドキュメントを参照してください。

＜この章の構成＞

10.1　JavaVMで使用するAPIの一覧

10.2　BasicExplicitMemoryクラス

10.3　ExplicitMemoryクラス

10.4　MemoryAreaクラス

10.5　MemoryInfoクラス

10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）

10.7　例外クラス

10.1　JavaVMで使用するAPIの一覧

JavaVMで使用するAPIの一覧を，次の表に示します。

表10-1　JavaVMで使用するAPIの一覧

クラス名
機能

BasicExplicitMemoryクラス
Explicitメモリブロックを表すクラスです。なお，このクラスは，ほかのJDK製品では利用できません。

ExplicitMemoryクラス
Explicitメモリブロックを表す抽象クラスです。
派生クラスであるBasicExplicitMemoryクラスで処理する内容を定義します。なお，このクラスは，ほかのJDK製品では利用できません。

MemoryAreaクラス
ExplicitメモリブロックまたはJavaヒープを表す抽象クラスです。なお，このクラスは，ほかのJDK製品では利用できません。

MemoryInfoクラス
GCのメモリ情報を取得します。なお，このクラスは，ほかのJDK製品では利用できません。

例外クラス
JavaVMで使用するAPIで発生する例外を表す例外クラスです。なお，このクラスは，ほかのJDK製品では利用できません。

パッケージ名の省略

なお，この章ではjava.langおよびMemoryAreaパッケージに所属するクラスのクラス名は，完全名ではなくクラス名だけを記載します。

例

java.lang.Objectの場合：Object

10.2　BasicExplicitMemoryクラス

説明

アプリケーションサーバが生成したExplicitメモリブロックを表すクラスです。ExplicitMemoryクラスを継承しています。

BasicExplicitMemoryクラスのパッケージは，JP.co.Hitachi.soft.jvm.MemoryAreaです。

コンストラクタ・メソッド一覧

コンストラクタ・メソッド名 | 機能
BasicExplicitMemoryコンストラクタ（形式1） | Explicitメモリブロックを初期化します。
BasicExplicitMemoryコンストラクタ（形式2） | Explicitメモリブロックを初期化して名称を設定します。
getNameメソッド | Explicitメモリブロック名称を返却します。

＜この節の構成＞

BasicExplicitMemoryコンストラクタ（形式1）

BasicExplicitMemoryコンストラクタ（形式2）

getNameメソッド

BasicExplicitMemoryコンストラクタ（形式1）

説明

Explicitメモリブロックを初期化します。初期化することで，オブジェクトをExplicitヒープに配置できます。

Explicitメモリブロックを初期化して，インスタンスの名称を「BasicExplicitMemory-<ExplicitメモリブロックのID>」にします。ただし，Explicitメモリブロックのメモリ領域は確保しません。

次の条件に当てはまる場合は，無効なExplicitメモリブロックにします。

オプションHitachiUseExplicitMemoryがOFFの場合（-XX:+HitachiUseExplicitMemoryを指定していない場合）

Explicitメモリブロックの最大数を超えた場合

形式

public BasicExplicitMemory();

パラメタ

なし

例外

なし

戻り値

なし

BasicExplicitMemoryコンストラクタ（形式2）

説明

Explicitメモリブロックを初期化します。また，初期化と同時にこのExplicitメモリブロックの名称を設定します。

インスタンスの名称はパラメタnameになります。ただし，パラメタnameがnullの場合は，インスタンスの名称は「BasicExplicitMemory-<ExplicitメモリブロックのID>」になります。

次の条件に当てはまる場合は無効なExplicitメモリブロックにします。

オプションHitachiUseExplicitMemoryがOFFの場合（-XX:+HitachiUseExplicitMemoryを指定していない場合）

Explicitメモリブロックの最大数を超えた場合

形式

public BasicExplicitMemory(String name)

パラメタ

name：

名称を表す文字列（String）を指定します。

例外

なし

戻り値

なし

getNameメソッド

説明

このオブジェクトが表すExplicitメモリブロックの名称を返却します。

形式

public String getName();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが表すExplicitメモリブロックの名称をこのオブジェクトの名称を表すインスタンスフィールドから取得し，その参照を返却します。

注意事項

デフォルトで設定されている名前に付いているExplicitメモリブロックのIDの一意性は保証されています。ただし，そのIDを持つインスタンスが破棄されたとき，同じExplicitメモリブロックのIDが再利用される場合があります。この場合，同時に存在することがない異なるインスタンスが同じデフォルト名を持つことがあります。

10.3　ExplicitMemoryクラス

説明

Explicitメモリブロックを表す抽象クラスです。BasicExplicitMemoryでの処理を定義します。

ExplicitMemoryクラスのパッケージは，JP.co.Hitachi.soft.jvm.MemoryAreaです。

メソッド一覧

メソッド名 | 機能
countExplicitMemoriesメソッド | Explicitメモリブロック数を返却します。
freeMemoryメソッド | Explicitメモリブロックの利用できるサイズを返却します。
getMemoryUsageメソッド | Explicitヒープの利用状況を返却します。
isActiveメソッド | Explicitメモリブロックが処理できるかどうかを返却します。
isReclaimedメソッド | Explicitメモリブロックが解放予約状態または解放済み状態かどうかを返却します。
newArrayメソッド（形式1） | Explicitメモリブロックに配列オブジェクトを生成します。
newArrayメソッド（形式2）
newInstanceメソッド（形式1） | Explicitメモリブロックにオブジェクトを生成します。
newInstanceメソッド（形式2）
newInstanceメソッド（形式3）
reclaimメソッド（形式1） | Explicitメモリブロックを解放予約します。
reclaimメソッド（形式2）
reclaimメソッド（形式3）
reclaimメソッド（形式4）
setNameメソッド | Explicitメモリブロック名称をnameに設定します。
toStringメソッド | Explicitメモリブロック名称を返却します。
totalMemoryメソッド | Explicitメモリブロックの確保済みサイズを返却します。
usedMemoryメソッド | Explicitメモリブロックの使用されているメモリのサイズを返却します。

＜この節の構成＞

countExplicitMemoriesメソッド

freeMemoryメソッド

getMemoryUsageメソッド

isActiveメソッド

isReclaimedメソッド

newArrayメソッド（形式1）

newArrayメソッド（形式2）

newInstanceメソッド（形式1）

newInstanceメソッド（形式2）

newInstanceメソッド（形式3）

reclaimメソッド（形式1）

reclaimメソッド（形式2）

reclaimメソッド（形式3）

reclaimメソッド（形式4）

setNameメソッド

toStringメソッド

totalMemoryメソッド

usedMemoryメソッド

countExplicitMemoriesメソッド

説明

ExplicitヒープにあるExplicitメモリブロックの個数を返却します。Explicitメモリブロックの状態が解放済み，または無効の場合はカウントしません。

形式

public static int countExplicitMemories();

パラメタ

なし

例外

なし

戻り値

ExplicitヒープにあるExplicitメモリブロックの個数をカウントして，int型で返却します。

注意事項

解放予約済み状態のExplicitメモリブロックをカウントするため，Explicitメモリブロックを明示的に操作しなくても，時間経過によって個数が変化する場合があります。

ExplicitMemoryインスタンスの個数を数えるのではなく，Explicitメモリブロックの実体数を数えるメソッドです。

freeMemoryメソッド

説明

Explicitメモリブロックが利用できるメモリサイズを返却します。

形式

public long freeMemory();

パラメタ

なし

例外

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

共通エラーチェックをして，次のどちらかの値を返却します。共通エラーチェックについては，「10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）」を参照してください。

0：

APIの処理ができない場合に返却します。

このオブジェクトが表すExplicitメモリブロックが利用できるメモリサイズ（バイト数）：

APIの処理ができる場合は，このオブジェクトが表すExplicitメモリブロックが利用できるメモリサイズをlong型で返却します。

getMemoryUsageメソッド

説明

Explicitヒープの利用状況を返却します。

形式

public static java.lang.management.MemoryUsage getMemoryUsage();

パラメタ

なし

例外

なし

戻り値

Explicitヒープの利用状況をフィールドとして保持しているjava.lang.management.MemoryUsageインスタンスへの参照を，次に示す値で返却します。

init：

Explicitヒープの初期値です。常に0となります。

used：

Explicitヒープの使用されているメモリサイズ（バイト数）です。

committed：

Explicitヒープの確保済みサイズ（バイト数）です。

max：

-XX:HitachiExplicitHeapMaxSizeで指定した最大Explicitヒープサイズの値（バイト数）です。ただし，オプションHitachiUseExplicitMemoryがOFFの場合（-XX:+HitachiUseExplicitMemoryを指定した場合）は0を返却します。

注意事項

MemoryUsageインスタンスが持つ値はgetMemoryUsage()を呼び出した時点での値です。MemoryUsageインスタンスから各フィールドを読み出した時点では，実際の値と異なる場合があります。

isActiveメソッド

説明

このオブジェクトが表すExplicitメモリブロックが処理できる状態であるかどうかを返却します。

形式

public boolean isActive();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが表すExplicitメモリブロックの状態を次に示すboolean型で返却します。

true：

処理できる状態です。有効なExplicitメモリブロックで，サブ状態がEnableの場合に返却します。

false：

処理できない状態です。次のどちらかの状態の場合にこの値を返却します。

無効になっているExplicitメモリブロックの場合

有効なExplicitメモリブロックで，サブ状態がDisableの場合

注意事項

ExplicitMemoryは，一度無効状態になった場合，再度有効状態になることはありません。

isReclaimedメソッド

説明

このオブジェクトが表すExplicitメモリブロックが解放予約状態または解放済み状態であるかどうかを返却します。

形式

public boolean isReclaimed();

パラメタ

なし

例外

なし

戻り値

このオブジェクトが表すExplicitメモリブロックの状態を次に示すboolean型で返却します。

true：

このオブジェクトが表すExplicitメモリブロックが解放予約状態または解放済み状態の場合に返却します。

false：

このオブジェクトが表すExplicitメモリブロックが有効な状態の場合に返却します。

newArrayメソッド（形式1）

説明

パラメタtypeの表すクラスのパラメタlength長の配列インスタンスをこのオブジェクトが表すExplicitメモリブロックに直接生成します。

形式

public Object newArray(Class type, int length);

パラメタ

type：

直接生成する配列インスタンスのクラスを指定します。

length：

直接生成する配列インスタンスの長さを指定します。

例外

NullPointerException：

パラメタtypeがnullです。

NegativeArraySizeException：

パラメタlengthが0未満です。

IllegalArgumentException：

パラメタlengthが0以上で，パラメタtypeが255次元以上の配列クラスまたはVoid.TYPEです。

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

type型の配列であるこのオブジェクトが示すExplicitメモリブロックに直接生成し，その参照を返却します。配列の長さはlength長です。

共通エラーチェックによって，処理できないと判定された場合は，java.lang.reflect.Array.newInstance(Class<?> componentType,int length)をパラメタtype，パラメタlengthで呼び出し，その結果を返却します。共通エラーチェックについては，「10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）」を参照してください。

newArrayメソッド（形式2）

説明

dimensions.length次元の配列インスタンスをこのオブジェクトが表すExplicitメモリブロックに直接生成します。なお，パラメタtypeの表すクラスのn次元目の要素数はdimensions[n-1]です。

形式

public Object newArray(Class type, int[] dimensions);

パラメタ

type：

直接生成する配列インスタンスのクラスを指定します。

dimensions：

直接生成する配列インスタンスの次元数および要素数を指定します。

例外

NullPointerException：

パラメタdimensionsまたはパラメタtypeのうち，どちらかのパラメタの値または両方のパラメタの値がnullです。

NegativeArraySizeException：

パラメタdimensionsが負の値を要素に持っています。

IllegalArgumentException：

次のどれかに当てはまる場合にスローされます。

パラメタdimensionsのdimensions.lengthが0以下または255より大きい値の場合

パラメタtypeの次元数とパラメタdimensionsのdimensions.lengthとの合計が255より大きい値の場合

パラメタtypeがVoid.TYPEである場合

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

n次元目の要素数がdimensions[n-1]である，dimensions.length次元のtype型の配列オブジェクトをこのオブジェクトが表すExplicitメモリブロックに直接生成し，参照を返却します。

共通エラーチェックによって，処理できないと判定された場合は，java.lang.reflect.Array.newInstance (Class<?> componentType,int[] dimensions)をパラメタtype，パラメタdimensionsで呼び出し，その結果を返却します。共通エラーチェックについては，「10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）」を参照してください。

newInstanceメソッド（形式1）

説明

パラメタtypeの表すクラスのインスタンスをこのオブジェクトが表すExplicitメモリブロックに直接生成します。パラメタで指定したクラスのインスタンスだけをExplicitメモリブロックに生成します。パラメタで指定したクラスのインスタンスのコンストラクタなどによる初期化で生成されるオブジェクトについては，Javaヒープに生成します。typeをこのオブジェクトとした場合のClass.newInstance()と類似していますが，一部異なります。

形式

public Object newInstance(Class type);

パラメタ

type：

直接生成する配列インスタンスのクラスです。

例外

NullPointerException：

パラメタtype，またはパラメタtypeが表すクラスがnullです。

SecurityException：

SecurityManagerがあり，かつ次のうちどれかに当てはまる場合にスローされます。

s.checkMemberAccess(type, Member.PUBLIC)の呼び出しがこのコンストラクタへのアクセスを許可しない。

呼び出し側のクラスローダが異なる。

現在のクラスローダの上位クラスローダとs.checkPackageAccess()の呼び出しがこのクラスのパッケージへのアクセスを許可しない。

NoSuchMethodException：

パラメタtypeまたはパラメタtypeが表すクラスに，publicのパラメタなしコンストラクタがありません。

ExceptionInInitializerError：

パラメタtypeまたはパラメタtypeが表すクラスの初期化に失敗しました。

InstantiationException：

パラメタtypeまたはパラメタtypeが表すクラスが抽象クラスまたはインタフェースです。

InvocationTargetException：

パラメタtypeまたはパラメタtypeが表すクラスのコンストラクタの実行で例外が発生しました。

IllegalAccessException：

クラスまたはそのnullaryコンストラクタにアクセスできません。

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

このオブジェクトが表すExplicitメモリブロックに生成されたインスタンスへの参照を返却します。

共通エラーチェックで処理できないと判定された場合は，パラメタtypeをレシーバとしてClass.newInstance()のメソッドを呼び出し，その結果を返却します。共通エラーチェックについては，「10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）」を参照してください。

注意事項

パラメタtypeには，publicクラスを与えることを推奨します。

newInstanceメソッド（形式2）

説明

パラメタtypeの表すクラスのインスタンスをExplicitメモリブロックに直接生成します。パラメタargsに指定した値がインスタンスを生成するコンストラクタの引数として渡されます。パラメタで指定したクラスのインスタンスのコンストラクタなどによる初期化で生成されるオブジェクトについては，Javaヒープに生成します。

形式

public Object newInstance(Class type, Object... args);

パラメタ

type：

直接生成する配列インスタンスのクラスです。

args：

コンストラクタに渡すパラメタです。

例外

NullPointerException：

パラメタtypeまたはパラメタargsの値のどちらかまたは両方がnullです。

SecurityException：

SecurityManagerがあり，かつ次のうちどれかに当てはまる場合にスローされます。

s.checkMemberAccess(type,Member.PUBLIC)の呼び出しがこのコンストラクタへのアクセスを許可しない場合

呼び出し側のクラスローダが異なる場合

現在のクラスローダの上位クラスローダとs.checkPackageAccess()の呼び出しがこのクラスのパッケージへのアクセスを許可しない場合

NoSuchMethodException：

パラメタargsの要素と同じ型のパラメタを持つpublicコンストラクタがパラメタtypeの表すクラスにありません。

ExceptionInInitializerError：

パラメタtypeまたはパラメタtypeが表すクラスの初期化に失敗しました。

InstantiationException：

パラメタtypeまたはパラメタtypeが表すクラスが抽象クラスまたはインタフェースです。

InvocationTargetException：

パラメタtypeまたはパラメタtypeが表すクラスのコンストラクタの実行で例外が発生しました。

InaccessibleMemoryAreaException：

サポートされていない機能です。

IllegalAccessException：

ConstructorオブジェクトがJava言語アクセス制御を実施するため，基本となるコンストラクタにアクセスできません。

IllegalArgumentException：

次のどれかに当てはまる場合にスローされます。

実パラメタ数と仮パラメタ数が異なる場合

プリミティブ引数のラップ解除変換が失敗した場合

プリミティブ引数のラップ解除後，パラメタ値を対応する仮パラメタ型に変換できない場合

コンストラクタが列挙型に関連している場合

戻り値

このオブジェクトが表すExplicitメモリブロックに生成されたインスタンスへの参照を返却します。

共通エラーチェックをして，処理できないと判定した場合，type.getConstructor(arg_types※)として，java.lang.reflect.Constructorインスタンスを取得します。この場合，java.lang.reflect.Constructorをレシーバ，パラメタargsをパラメタとして，java.lang.reflect.Constructor.newInstance(Object... initargs)のメソッドを呼び出し，その結果を返却します。共通エラーチェックについては，「10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）」を参照してください。

注※

arg_typesは，パラメタargsの各要素をこのオブジェクトとしてObject.getClass()を呼び出した結果を要素とするClass配列です。

注意事項

パラメタtypeには，publicクラスを与えることを推奨します。

プリミティブ型を引数とするコンストラクタを呼び出すことはでききません。プリミティブ型を引数とするコンストラクタを呼び出す場合は，newInstanceメソッド（形式3）を使用します。次にnewInstanceメソッド（形式3）を使用したコード例を示します。

import JP.co.Hitachi.soft.jvm.MemoryArea.*;
import java.lang.reflect.*;
public class test1 {
 public static void main(String[] args) throws Exception {
   ExplicitMemory em = new BasicExplicitMemory();
   TheClass obj = null;

   Constructor cons = TheClass.class.getConstructor(new Class[]{int.class});
   obj = (TheClass)em.newInstance(cons,1);            // 実行成功

   obj = (TheClass)em.newInstance(TheClass.class,1);  // NoSuchMethodExceptionをスロー
 }
}

public class TheClass {
 public TheClass(int i){}
}

newInstanceメソッド（形式3）

説明

パラメタconsが表すコンストラクタをパラメタargsで実行し，このオブジェクトが表すExplicitメモリブロックに直接生成します。パラメタで指定したクラスのインスタンスだけをExplicitメモリブロックに生成します。パラメタで指定したクラスのインスタンスのコンストラクタなどによる初期化で生成されるオブジェクトについては，Javaヒープに生成します。

形式

public Object newInstance(java.lang.reflect.Constructor cons, Object... args);

パラメタ

cons：

直接生成する配列インスタンスのコンストラクタを指定します。

args：

コンストラクタに渡すパラメタを指定します。

例外

NullPointerException：

パラメタconsまたはパラメタargsの値のどちらかまたは両方がnullです。

ExceptionInInitializerError：

パラメタconsが表すコンストラクタでクラスの初期化に失敗しました。

InstantiationException：

パラメタconsが表すコンストラクタが抽象クラスです。

IllegalArgumentException：

パラメタconsが示すコンストラクタのパラメタとパラメタargsが一致しません。

InvocationTargetException：

パラメタconsまたはパラメタargsが表すコンストラクタの実行で例外が発生しました。

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

このオブジェクトが表すExplicitメモリブロックに生成されたインスタンスへの参照を返却します。

共通エラーチェックで処理できないと判定された場合，java.lang.reflect.Constructor.newInstance(Object... initargs)のパラメタconsをこのオブジェクト，パラメタargsをパラメタとして呼び出し，その結果を返却します。共通エラーチェックについては，「10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）」を参照してください。

注意事項

パラメタconsには，publicクラスのコンストラクタを与えることを推奨します。

reclaimメソッド（形式1）

説明

パラメタareasのすべての要素に対して解放予約をします。

パラメタareasがnull以外の場合に，パラメタareasのすべての要素に対して，要素をパラメタとしてExplicitMemory.reclaim(ExplicitMemory area)を呼び出した場合と同じ処理をします。処理する要素の順序は未定義とします。ある要素に対する処理で例外が発生した場合は，その例外をスローします。例外のスローまでに未処理だった要素に対する処理は実行しません。

形式

public static void reclaim(ExplicitMemory... areas);

パラメタ

areas：

要素に解放予約をするExplicitメモリブロックを持つ配列を指定します。

例外

NullPointerException：

パラメタareasがnullです。

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

なし

注意事項

解放予約をするだけで，解放処理はしません。

オプションHitachiExplicitMemoryAutoReclaimがONの場合（-XX:+HitachiExplicitMemoryAutoReclaimを指定している場合），自動解放されたあとのExplicitメモリブロックは，明示管理ヒープ自動配置設定ファイルで生成されたExplicitメモリブロックと同じ動作をします。この動作をさせたくない場合は，オプションHitachiExplicitMemoryAutoReclaimをOFF（-XX:+HitachiExplicitMemoryAutoReclaimを指定しない）にしてください。

reclaimメソッド（形式2）

説明

パラメタareaがnull以外の値の場合に共通エラーチェックで処理できると判定されたとき，パラメタareaに排他処理を実施してから，パラメタareaの表すExplicitメモリブロックを解放予約します。

次の条件に当てはまる場合は，処理しません。

パラメタareaがnullの場合

共通エラーチェックで処理できないと判定された場合

形式

public static void reclaim(ExplicitMemory area);

パラメタ

area：

解放予約をするExplicitメモリブロックを指定します。

例外

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

なし

注意事項

解放予約をするだけで，解放処理はしません。

オプションHitachiExplicitMemoryAutoReclaimがONの場合（-XX:+HitachiExplicitMemoryAutoReclaimを指定している場合），自動解放されたあとのExplicitメモリブロックは，明示管理ヒープ自動配置設定ファイルで生成されたExplicitメモリブロックと同じ動作をします。この動作をさせたくない場合は，オプションHitachiExplicitMemoryAutoReclaimをOFF（-XX:+HitachiExplicitMemoryAutoReclaimを指定しない）にしてください。

reclaimメソッド（形式3）

説明

パラメタarea0，area1の表すExplicitメモリブロックを解放予約します。

パラメタarea0，パラメタarea1それぞれをパラメタとしてExplicitMemory.reclaim(ExplicitMemory area)を呼び出した場合と同じ処理をします。パラメタarea0，パラメタarea1の処理順序は未定義とします。一方のパラメタに対する処理で，例外が発生した場合は，その例外をスローします。もう一方のパラメタが未処理である場合，処理はしません。

形式

public static void reclaim(ExplicitMemory area0, ExplicitMemory area1);

パラメタ

area0：

解放予約をするExplicitメモリブロックその1を指定します。

area1：

解放予約をするExplicitメモリブロックその2を指定します。

例外

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

なし

注意事項

解放予約をするだけで，解放処理はしません。

オプションHitachiExplicitMemoryAutoReclaimがONの場合（-XX:+HitachiExplicitMemoryAutoReclaimを指定している場合），自動解放されたあとのExplicitメモリブロックは，明示管理ヒープ自動配置設定ファイルで生成されたExplicitメモリブロックと同じ動作をします。この動作をさせたくない場合は，オプションHitachiExplicitMemoryAutoReclaimをOFF（-XX:+HitachiExplicitMemoryAutoReclaimを指定しない）にしてください。

reclaimメソッド（形式4）

説明

パラメタareasのすべての要素に対して解放予約をします。

パラメタareasがnull以外の場合は，パラメタareasのすべての要素に対して，要素をパラメタとしてExplicitMemory.reclaim(ExplicitMemory area)を呼び出した場合と同じ処理をします。処理する要素の順序は未定義とします。ある要素に対する処理で例外が発生した場合は，その例外をスローします。例外のスローまでに未処理だった要素に対する処理はしません。

形式

public static void reclaim(Iterable<ExplicitMemory> areas);

パラメタ

areas：

解放予約をするExplicitメモリブロックのイテレータを指定します。

例外

NullPointerException：

パラメタareasの値がnullです。

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

なし

注意事項

解放予約をするだけで，解放処理はしません。

オプションHitachiExplicitMemoryAutoReclaimがONの場合（-XX:+HitachiExplicitMemoryAutoReclaimを指定している場合），自動解放されたあとのExplicitメモリブロックは，明示管理ヒープ自動配置設定ファイルで生成されたExplicitメモリブロックと同じ動作をします。この動作をさせたくない場合は，オプションHitachiExplicitMemoryAutoReclaimをOFF（-XX:+HitachiExplicitMemoryAutoReclaimを指定しない）にしてください。

setNameメソッド

説明

Explicitメモリブロックに名称を設定します。このオブジェクトが表すExplicitメモリブロックの名称として，このオブジェクトの名称を表すインスタンスフィールドにパラメタnameを設定します。

この名称は主にデバッグ用に設定します。設定した値はイベントログまたはスレッドダンプで表示します。

形式

public void setName(String name);

パラメタ

name：

設定する名称を表すStringを指定します。

例外

NullPointerException：

パラメタnameの値がnullです。

戻り値

なし

注意事項

複数のExplicitMemoryに同じ名前を設定できるため，名称に一意性はありません。

toStringメソッド

説明

このオブジェクトの文字列表現を返却します。this.getName()を呼び出し，その結果を返却します。

形式

public String toString();

パラメタ

なし

例外

なし

戻り値

このオブジェクトの文字列表現を表すString型オブジェクトへの参照を返却します。

totalMemoryメソッド

説明

Explicitメモリブロックの確保済み総サイズを返却します。

形式

public long totalMemory();

パラメタ

なし

例外

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

共通エラーチェックをして，次のどちらかの値を返却します。

0：

APIの処理ができない場合に返却します。

このオブジェクトが表すExplicitメモリブロックの確保済みの総メモリサイズ（バイト数）：

APIの処理ができる場合は，このオブジェクトが表すExplicitメモリブロックが利用できるメモリサイズをlong型で返却します。

共通エラーチェックについては，「10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）」を参照してください。

usedMemoryメソッド

説明

Explicitメモリブロックの使用されているメモリのサイズを返却します。

形式

public long usedMemory();

パラメタ

なし

例外

InaccessibleMemoryAreaException：

サポートされていない機能です。

戻り値

このオブジェクトが表すExplicitメモリブロックの使用されているメモリサイズ（バイト数）をlong型で返却します。

共通エラーチェックをして処理できないと判定された場合は，0を返却します。共通エラーチェックについては，「10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）」を参照してください。

10.4　MemoryAreaクラス

説明

ExplicitメモリブロックまたはJavaヒープを表す抽象クラスです。MemoryAreaクラスのパッケージは，JP.co.Hitachi.soft.jvm.MemoryAreaです。

MemoryAreaクラスに含まれるメソッドは，抽象メソッドのため処理がありません。各メソッドの処理については，派生クラスの同一シグネチャメソッドを参照してください。各メソッドの形式と参照先を次の表に示します。

メソッドの形式・同一シグネチャメソッドの一覧

メソッド名
形式
同一シグネチャメソッド

freeMemoryメソッド

public abstract long freeMemory();

freeMemoryメソッド

getNameメソッド

public abstract String getName();

getNameメソッド

newArrayメソッド（形式1）

public abstract Object newArray(Class type, int number);

newArrayメソッド（形式1）

newArrayメソッド（形式2）

public abstract Object newArray(Class type, int[] dimensions);

newArrayメソッド（形式2）

newInstanceメソッド（形式1）

public abstract Object newInstance(Class type);

newInstanceメソッド（形式1）

newInstanceメソッド（形式2）

public abstract Object newInstance(Class type, Object... args);

newInstanceメソッド（形式2）

newInstanceメソッド（形式3）

public abstract Object newInstance(java.lang.reflect.Constructor cons, Object... args);

newInstanceメソッド（形式3）

setNameメソッド

public abstract void setName(String name);

setNameメソッド

toStringメソッド

public abstract String toString();

toStringメソッド

totalMemoryメソッド

public abstract long totalMemory();

totalMemoryメソッド

usedMemoryメソッド

public abstract long usedMemory();

usedMemoryメソッド

10.5　MemoryInfoクラス

説明

Javaプログラムから直接GCのメモリ情報を取得できます。

例えば，現在使用中のサイズは次の式で求められます。

getXXXTotalMemory()－getXXXFreeMemory()

MemoryInfoクラスのパッケージは，JP.co.Hitachi.soft.jvmです。

メソッド一覧

メソッド名 | 機能
getEdenFreeMemoryメソッド | Eden領域の空きサイズを取得します。
getEdenMaxMemoryメソッド | Eden領域の最大使用サイズを取得します。
getEdenTotalMemoryメソッド | Eden領域の使用可能サイズを取得します。
getMetaspaceFreeMemoryメソッド | Metaspace領域の空きサイズを取得します。
getMetaspaceMaxMemoryメソッド | Metaspace領域の最大使用サイズを取得します。
getMetaspaceTotalMemoryメソッド | Metaspace領域の使用可能サイズを取得します。
getSurvivorFreeMemoryメソッド | Survivor領域の空きサイズを取得します。
getSurvivorMaxMemoryメソッド | Survivor領域の最大使用サイズを取得します。
getSurvivorTotalMemoryメソッド | Survivor領域の使用可能サイズを取得します。
getTenuredFreeMemoryメソッド | Tenured領域の空きサイズを取得します。
getTenuredMaxMemoryメソッド | Tenured領域の最大使用サイズを取得します。
getTenuredTotalMemoryメソッド | Tenured領域の使用可能サイズを取得します。

使用例

メモリ情報を取得する際のメソッドの使用例を次に示します。

Metaspace領域の空きサイズを求める場合

free_memory = JP.co.Hitachi.soft.jvm.MemoryInfo.getMetaspaceFreeMemory()

現在使用中のEden領域を求める場合

use_memory = JP.co.Hitachi.soft.jvm.MemoryInfo.getEdenTotalMemory()-JP.co.Hitachi.soft.jvm.MemoryInfo.getEdenFreeMemory()

＜この節の構成＞

getEdenFreeMemoryメソッド

getEdenMaxMemoryメソッド

getEdenTotalMemoryメソッド

getMetaspaceFreeMemoryメソッド

getMetaspaceMaxMemoryメソッド

getMetaspaceTotalMemoryメソッド

getSurvivorFreeMemoryメソッド

getSurvivorMaxMemoryメソッド

getSurvivorTotalMemoryメソッド

getTenuredFreeMemoryメソッド

getTenuredMaxMemoryメソッド

getTenuredTotalMemoryメソッド

getEdenFreeMemoryメソッド

説明

Eden領域の空きサイズを取得します。

形式

getEdenFreeMemory();

パラメタ

なし

例外

なし

戻り値

Eden領域の空きサイズ（バイト数）をlong型で返却します。

getEdenMaxMemoryメソッド

説明

Eden領域の最大使用サイズを取得します。

形式

getEdenMaxMemory();

パラメタ

なし

例外

なし

戻り値

Eden領域の最大使用サイズ（バイト数）をlong型で返却します。

注意事項

G1GCを使用している場合，getEdenMaxMemory()，getSurvivorMaxMemory()を呼んだときの返却値は-1となります。また，getTenuredMaxMemory()を呼んだときの返却値はJavaヒープ領域の最大サイズとなります。

getEdenTotalMemoryメソッド

説明

Eden領域の使用可能サイズを取得します。

形式

getEdenTotalMemory();

パラメタ

なし

例外

なし

戻り値

Eden領域の使用可能サイズ（バイト数）をlong型で返却します。

getMetaspaceFreeMemoryメソッド

説明

Metaspace領域の空きサイズを取得します。

形式

getMetaspaceFreeMemory();

パラメタ

なし

例外

なし

戻り値

Metaspace領域の空きサイズ（バイト数）をlong型で返却します。

getMetaspaceMaxMemoryメソッド

説明

Metaspace領域の最大使用サイズを取得します。

形式

getMetaspaceMaxMemory();

パラメタ

なし

例外

なし

戻り値

Metaspace領域の最大使用サイズ（バイト数）をlong型で返却します。

getMetaspaceTotalMemoryメソッド

説明

Metaspace領域の使用可能サイズを取得します。

形式

getMetaspaceTotalMemory();

パラメタ

なし

例外

なし

戻り値

Metaspace領域の使用可能サイズ（バイト数）をlong型で返却します。

getSurvivorFreeMemoryメソッド

説明

Survivor領域の空きサイズを取得します。

形式

getSurvivorFreeMemory();

パラメタ

なし

例外

なし

戻り値

Survivor領域の空きサイズ（バイト数）をlong型で返却します。

getSurvivorMaxMemoryメソッド

説明

Survivor領域の最大使用サイズを取得します。

形式

getSurvivorMaxMemory();

パラメタ

なし

例外

なし

戻り値

Survivor領域の最大使用サイズ（バイト数）をlong型で返却します。

注意事項

G1GCを使用している場合，getEdenMaxMemory()，getSurvivorMaxMemory()を呼んだときの返却値は-1となります。また，getTenuredMaxMemory()を呼んだときの返却値はJavaヒープ領域の最大サイズとなります。

getSurvivorTotalMemoryメソッド

説明

Survivor領域の使用可能サイズを取得します。

形式

getSurvivorTotalMemory();

パラメタ

なし

例外

なし

戻り値

Survivor領域の使用可能サイズ（バイト数）をlong型で返却します。

getTenuredFreeMemoryメソッド

説明

Tenured領域の空きサイズを取得します。

形式

getTenuredFreeMemory();

パラメタ

なし

例外

なし

戻り値

Tenured領域の空きサイズ（バイト数）をlong型で返却します。

getTenuredMaxMemoryメソッド

説明

Tenured領域の最大使用サイズを取得します。

形式

getTenuredMaxMemory();

パラメタ

なし

例外

なし

戻り値

Tenured領域の最大使用サイズ（バイト数）をlong型で返却します。

注意事項

G1GCを使用している場合，getEdenMaxMemory()，getSurvivorMaxMemory()を呼んだときの返却値は-1となります。また，getTenuredMaxMemory()を呼んだときの返却値はJavaヒープ領域の最大サイズとなります。

getTenuredTotalMemoryメソッド

説明

Tenured領域の使用可能サイズを取得します。

形式

getTenuredTotalMemory();

パラメタ

なし

例外

なし

戻り値

Tenured領域の使用可能サイズ（バイト数）をlong型で返却します。

10.6　Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）

有効なExplicitメモリブロックを示していない場合，Explicitヒープを操作する多くのAPIは処理できなくなります。そこで，各API共通のエラーチェックルーチンを定義して，APIの処理ができるかどうか判断します。共通エラーチェックは，各APIの処理対象であるExplicitメモリブロックの状態によって，APIを処理できるかどうかを判断します。共通エラーチェックで返却される値は次のとおりです。

true：

APIの処理を続けることができると判断します。処理対象であるExplicitメモリブロックの状態が有効な場合に返却されます。

false：

APIを処理できないと判断します。処理対象であるExplicitメモリブロックの状態が無効な場合に返却されます。

InaccessibleMemoryAreaException（例外クラス）：

サポートしていない機能を実行しようとした場合にスローされます。InaccessibleMemoryAreaExceptionクラスの詳細は，「10.7　例外クラス」を参照してください。

なお，処理対象のExplicitメモリブロックが次の状態である場合にスローされます。

解放済みの場合

解放予約済み，または自動解放明示予約済みの場合

有効，無効，解放済み，および解放予約済み以外の状態の場合

10.7　例外クラス

JavaVMで使用するAPIで発生する例外を表す，例外クラスについて説明します。

例外クラスの一覧を次に示します。

表10-2　JavaVMで使用するAPIで発生する例外クラス

例外クラス名
説明

JP.co.Hitachi.soft.jvm.MemoryArea.MemoryManagementException
JP.co.Hitachi.soft.jvm.MemoryAreaパッケージで定義する例外クラスの基底クラスです。Javaプログラムで，生成またはスローすることは想定しません。
派生クラスは，InaccessibleMemoryAreaExceptionクラスです。

JP.co.Hitachi.soft.jvm.MemoryArea.InaccessibleMemoryAreaException
MemoryAreaクラスのインスタンスに対して，サポートしていない機能を実行しようとした場合にスローします。
例えば，削除予約済みまたは削除済みのExplicitMemoryクラスのインスタンスに対する削除操作が該当します。
Javaプログラムで，生成またはスローすることは想定しません。
基底クラスは，MemoryManagementExceptionクラスです。

11.　アプリケーション開発時に使用できるプロパティ

この章では，アプリケーションを開発するときに使用できるプロパティについて説明します。

＜この章の構成＞

11.1　バッチアプリケーションで使用できるプロパティ

11.1　バッチアプリケーションで使用できるプロパティ

ここでは，バッチアプリケーションを開発するときに使用できるプロパティについて説明します。

＜この節の構成＞

ejbserver.batch.currentdirプロパティ

ejbserver.batch.currentdirプロパティ

説明

バッチ実行コマンド（cjexecjob）を実行したカレントディレクトリの絶対パスを取得します。

バッチアプリケーション内で使用してください。

使用例

使用例を示します。

File f = new File(System.getProperty("ejbserver.batch.currentdir") + System.getProperty("file.separator") + "DataFile.txt");

付録

＜この付録の構成＞

付録A　Javaヒープメモリのリークを起こしやすいJavaAPIクラス

付録B　JavaVM内部で暗黙にスレッドを生成するJavaAPIクラス

付録A　Javaヒープメモリのリークを起こしやすいJavaAPIクラス

JavaAPIクラスを使用した場合，JavaAPIクラスのインスタンスがJavaヒープメモリ上に作成されます。しかし，表A-1および表A-2に示すJavaAPIクラスのメソッドを使用して，表の条件に該当する場合，JavaAPIクラス以外のインスタンスもJavaヒープメモリ上に作成されます。

作成されたユーザ作成クラスのインスタンスは，JavaAPIクラスが削除されるまでJavaヒープメモリ上に残ります。このため，ユーザが意識しない間にJavaヒープメモリの使用量が増え，Javaヒープメモリがリークするおそれがあるので注意してください。

ただし，表A-2のJavaAPIクラスについては，ユーザ作成クラスのインスタンスを削除することもできます。

Javaヒープメモリがリークしやすいクラス一覧について，インスタンスの削除方法がある場合とない場合に分けて表に示します。表A-2については，ユーザ作成のインスタンスの削除方法も示します。

参考

Javaヒープメモリのリークを起こしやすいJavaAPIクラスや条件，およびユーザ作成クラスのインスタンス削除方法については，08-00以降変更される場合があります。

表A-1　Javaヒープメモリがリークしやすいクラス一覧（削除方法がない場合）

JavaAPIクラス名 | Javaヒープメモリにユーザ作成クラスのインスタンスを作成する条件
java.lang.ClassLoader | defineClass()メソッドの引数に指定したProtectionDomainがユーザ作成クラスと関連づけられている場合。
java.net.URL | URLクラスインスタンスを生成する際，URLStreamHandlerFactoryが作成するURLStreamHanderクラスがユーザ作成クラスの場合。
java.text.DateFormat | DateFormatクラスを継承したユーザ作成クラスのコンストラクタでsuper()を呼び出した場合。
java.util.logging.Level | Levelクラスを継承したユーザ作成クラスのコンストラクタでsuper()を呼び出した場合。
java.util.logging.LogManager | addLogger()メソッドの引数にLoggerクラスを継承したユーザ作成クラスを指定した場合。
java.util.logging.Logger | Loggerクラスを継承したユーザ作成クラスでgetAnonymousLogger()メソッドや setParent()メソッドを呼び出した場合。
javax.accessibility.AccessibleBundle | toDisplayString()メソッドの引数に指定したリソースバンドル名に対応するユーザ実装のクラスで，そのユーザ実装のクラス内で保持しておくキーと値のペアの値に，ユーザクラスのオブジェクトを設定している場合。
javax.print.attribute.standard.MediaSize | MediaSizeクラスを継承したユーザ作成クラスのコンストラクタでsuper()を呼び出した場合。
java.rmi.server.UnicastRemoteObject | exportObject()メソッドの引数(RMIClientSocketFactory,RMIServerSocketFactory)にユーザ作成クラスを指定した場合。

表A-2　Javaヒープメモリがリークしやすいクラス一覧（削除方法がある場合）

JavaAPIクラス名 | Javaヒープメモリにユーザ作成クラスのインスタンスを作成する条件 | ユーザ作成クラスのインスタンス削除方法
java.beans.Introspector | getBeanInfo()メソッドの引数(beanClass)にユーザ作成クラスを指定した場合。 | flushCaches()メソッドやflushFromCaches()メソッドを実行する。
java.beans.PropertyEditorManager | registerEditor()メソッドの引数(editorClass)にユーザ作成クラスを指定した場合。 | registerEditor()メソッドのeditorClassにnullを指定する。
java.util.logging.Logger | addHandler()メソッドの引数にHandlerクラスを継承したユーザ作成クラスを指定した場合。 | removeHandler()メソッドを実行する。
javax.imageio.ImageReader | addIIOReadWarningListener()メソッドの引数にIIOReadWarningListenerクラスを継承したユーザ作成クラスを指定した場合。 | removeIIOReadWarningListener()メソッドを実行する。
addIIOReadProgressListener()メソッドの引数にIIOReadProgressListenerクラスを継承したユーザ作成クラスを指定した場合。 | removeIIOReadProgressListener()メソッドを実行する。
addIIOReadUpdateListener()メソッドの引数にIIOReadUpdateListenerクラスを継承したユーザ作成クラスを指定した場合。 | removeIIOReadUpdateListener()メソッドを実行する。
javax.imageio.ImageWriter | addIIOWriteProgressListener()メソッドの引数にIIOWriteProgressListenerクラスを継承したユーザ作成クラスを指定した場合。 | removeIIOWriteProgressListener()メソッドを実行する。
addIIOWriteWarningListener()メソッドの引数にIIOWriteWarningListenerクラスを継承したユーザ作成クラスを指定した場合。 | removeIIOWriteWarningListener()メソッドを実行する。
javax.naming.InitialContext | addToEnvironment()メソッドの引数(propVal)にユーザ作成クラスを指定した場合。 | removeFromEnvironment()メソッドを実行する。
javax.naming.spi.NamingManager | getContinuationContext()メソッドの引数にユーザ作成クラスを指定した場合。 | 得られたContextのclose()を実装してsuper()を実行する。
javax.print.attribute.HashAttributeSet | add()メソッドの引数にユーザ作成クラスを指定した場合。 | remove(Attribute)メソッドや remove(Class)メソッドを実行する。

付録B　JavaVM内部で暗黙にスレッドを生成するJavaAPIクラス

Java SEのAPIを使用してスレッドの生成が起きるのは，通常はjava.lang.Threadクラスやjava.util.concurrentパッケージのスレッド関係のクラスを使用した場合です。

しかし，Java SE APIの一部には暗黙にスレッドを生成するものがあります。これらのAPIを使用した場合，意図しないでスレッド数が増加しCヒープ領域を消費することがあるため，注意が必要です。ここでは，Java SE 6.0のJavaVM内部でスレッドを生成するAPIや機能を示します。

＜この節の構成＞

付録B.1　スレッド生成処理一覧

付録B.1　スレッド生成処理一覧

ここでは，次のAPIや機能がJavaVM内部で生成するスレッドについて説明します。

GUI関連のAPI

JMX関連のAPI

JNDI関連のAPI

RMI関連のAPI

そのほかのAPIや機能

＜この項の構成＞

(1)　GUI関連のAPI

(2)　JMX関連のAPI

(3)　JNDI関連のAPI

(4)　RMI関連のAPI

(5)　そのほかのAPIや機能

(1)　GUI関連のAPI

GUI関連のAPIで，次のスレッドを生成します。

特定の条件なし

AWTまたはSwingのGUI機能を使用すると，スレッドを生成することがあります。生成するスレッドはJavaプロセスで最大六つです。

java.awt.EventQueueクラス

EventQueueインスタンスごとに，一つのスレッドを生成することがあります。

java.awt.FileDialogクラス

show()メソッドを呼び出すと，スレッドを一つ生成します。この呼び出しによるスレッドはFileDialogインスタンスごとに最大一つです。

java.awt.image.renderable.RenderableImageProducerクラス

startProduction()メソッドを呼び出すとスレッドを一つ生成します。

java.awt.print.PrinterJobクラス

次のメソッドを呼び出すと，スレッドを一つ生成します。

print()（2種両方）

printDialog()（2種両方）

pageDialog()（2種両方）

java.awt.TrayIconクラス

UNIX環境でjava.awt.TrayIconインスタンスを生成すると，インスタンスごとに，一つのスレッドを生成します。

javax.swing.JEditorPaneクラス

JEditorPaneインスタンスごとに，一つのスレッドを生成することがあります。

javax.swing.JFileChooserクラス

javax.swing.JFileChooserインスタンスごとに，一つのスレッドを生成することがあります。

javax.swing.JTableクラス

print()（5種類すべて）を呼び出すと，スレッドを一つ生成します。

javax.swing.Timer

start()またはrestart()メソッドを呼び出すと，スレッドを一つ生成します。この呼び出しによるスレッドはTimerインスタンスごとに最大一つです。

javax.swing.text.LayoutQueueクラス

addTask()メソッドを呼び出すと，スレッドを一つ生成します。この呼び出しによるスレッドはLayoutQueueインスタンスごとに最大一つです。

javax.swing.text.JTextComponentクラス

print()（3種類すべて）を呼び出すと，スレッドを一つ生成することがあります。

javax.swing.text.AsyncBoxViewクラス

次のメソッドを呼び出すと，API内部でLayoutQueueインスタンスを作成し，その延長でスレッドを生成することがあります。

preferenceChanged()

replace()

setSize()

javax.swing.text.html.FormViewクラス

submitData()メソッドを呼び出すと，スレッドを一つ生成します。

Appletの使用

UNIX環境でAppletを使用して警告アイコンが表示されると，スレッドを一つ生成します。

インプットメソッドの使用

java.awt.imやjava.awt.im.spiで提供されるインプットメソッドを使用するとスレッドを生成することがあります。このスレッドはJavaプロセスで最大一つです。

(2)　JMX関連のAPI

JMX関連のAPIで，次のスレッドを生成します。

SNMP(Simple Network Management Protocol)によるリソース監視

SNMPを使用してリソースを監視・管理している場合，最大で九つのスレッドを生成します。

javax.management.remote.rmi. RMIConnectionインターフェース

RMIConnectionインターフェースを実装したクラスのインスタンスごとに，一つのスレッドを生成することがあります。

javax.management.remote.rmi.RMIConnectorクラス

connect()（2種両方）メソッドを呼び出すと，確立した接続一つごとにスレッドを二つ生成します。

(3)　JNDI関連のAPI

JNDI関連のAPIで，次のスレッドを生成します。

特定の条件なし

ネーミングやディレクトリの操作で，JNDIコンテキスト一つごとにスレッドを二つ生成します。

javax.naming.event.EventContextインターフェース

EventContextインターフェースを実装したクラスのaddNamingListene()（2種両方）メソッドを呼び出すと，一つのスレッドを生成することがあります。この呼び出しによるスレッドはディレクトリコンテキストごとに最大一つです。

(4)　RMI関連のAPI

RMI関連のAPIで，次のスレッドを生成します。

RMIサーバ側

JavaVM内部で次のスレッドを生成します。

特定の条件なしに最大六つのスレッドを生成します。このスレッドはJavaVMプロセスの終了まで維持されます。

RMIクライアントから接続待機向けに，リモートオブジェクトをエクスポートしたTCPポート数分のスレッドを生成します。

RMIクライアントからのメソッド呼び出しがあると，その制御のため一つのスレッドを生成します。

java.rmi.server.Unreferencedインターフェースを実装したリモートオブジェクトのunreferenced()メソッド呼び出し向けに，一つのスレッドを生成します。

RMIクライアント側

接続しているRMIサーバと同数のスレッドを生成します。

(5)　そのほかのAPIや機能

そのほかのAPIや機能で，次のスレッドを生成します。

HTTP/HTTPS通信

HTTP/HTTPS通信をするとKeep Aliveの制御のためスレッドを二つ生成します。このスレッドはJavaプロセスで最大二つです。

DNS通信

Windows環境でDNS通信をすると，スレッドを一つ生成することがあります。このスレッドはJavaプロセスで最大一つです。

ファイナライザの明示実行

java.lang.Systemクラスやjava.lang.RuntimeクラスのrunFinalization()を呼び出すとスレッドを一つ生成します。

外部プロセスの作成

UNIX環境でjava.lang.ProcessBuilderクラスなどによって外部プロセスを作成すると，スレッドを一つ生成します。このスレッドはjava.lang.Processインスタンスごとに最大一つです。

java.nio.channels.Selectorクラス

Windows環境でSelectorクラスを使用すると，Selectorインスタンスへのチャネルの登録数が1,024増えるごとに，スレッドを一つ生成します。

java.util.prefs.Preferencesクラス

Preferencesクラスを使用すると，スレッドを一つ生成することがあります。このスレッドはJavaプロセスで最大一つです。

javax.print.PrintServiceLookupクラス

javax.print.PrintServiceLookupを使用すると，スレッドを一つ生成します。このスレッドはJavaプロセスで最大一つです。

sun.security.pkcs11.SunPKCS11クラス

sun.security.pkcs11.SunPKCS11インスタンスごとに，スレッドを一つ生成することがあります。

索引

[記号]
[Ａ][Ｂ][Ｃ][Ｅ][Ｆ][Ｇ][Ｈ][Ｉ][Ｊ][Ｌ][Ｍ][Ｎ][Ｏ][Ｒ][Ｓ][Ｔ][Ｕ][Ｗ]
[ア行][カ行][サ行][タ行][ハ行][ヤ行][ラ行]

(記号)

@ApplicationException

@AroundInvoke

@AssociationOverride

@AssociationOverrides

@AttributeOverride

@AttributeOverrides

@Basic

@Column

@ColumnResult

@DeclareRoles

@DenyAll

@DiscriminatorColumn

@DiscriminatorValue

@EJB

@EJBs

@Embeddable

@Embedded

@EmbeddedId

@Entity

@EntityListeners

@EntityResult

@Enumerated

@ExcludeClassInterceptors

@ExcludeDefaultInterceptors

@ExcludeDefaultListeners

@ExcludeSuperclassListeners

@FieldResult

@GeneratedValue

@Id

@IdClass

@Inheritance

@Init

@Interceptors

@JoinColumn

@JoinColumns

@JoinTable

@Lob

@Local

@LocalHome

@ManyToMany

@ManyToOne

@MapKey

@MappedSuperclass

@NamedNativeQueries

@NamedNativeQuery

@NamedQueries

@NamedQuery

@OneToMany

@OneToOne

@OrderBy

@PermitAll

@PersistenceContext

@PersistenceContexts

@PersistenceProperty

@PersistenceUnit

@PersistenceUnits

@PostActivate

@PostConstruct

@PostLoad

@PostPersist

@PostRemove

@PostUpdate

@PreDestroy

@PrePassivate

@PrePersist

@PreRemove

@PreUpdate

@PrimaryKeyJoinColumn

@PrimaryKeyJoinColumns

@QueryHint

@Remote

@RemoteHome

@Remove

@Resource

@Resources

@RolesAllowed

@RunAs

@SecondaryTable

@SecondaryTables

@SequenceGenerator

@SqlResultSetMapping

@SqlResultSetMappings

@Stateful

@Stateless

@Table

@TableGenerator

@Temporal

@Timeout

@TransactionAttribute

@TransactionManagement

@Transient

@Version

(英字)

(Ａ)

AuditLogRecordクラス

(Ｂ)

BasicExplicitMemoryクラス

BasicExplicitMemoryコンストラクタ（形式1）

BasicExplicitMemoryコンストラクタ（形式2）

(Ｃ)

CJLogRecordクラス

com.hitachi.software.ejb.security.base.authentication.InvalidPasswordException

com.hitachi.software.ejb.security.base.authentication.InvalidUserNameException

com.hitachi.software.ejb.security.base.authentication.NotFoundServerException

com.hitachi.software.web.dbsfo.DatabaseAccessException

com.hitachi.software.web.dbsfo.SessionOperationException

com.hitachi.software.web.eadssfo.SessionOperationException

countExplicitMemoriesメソッド

CprfTraceクラス

createOutMessageメソッド

createpメソッド（形式1）

createpメソッド（形式10）

createpメソッド（形式2）

createpメソッド（形式3）

createpメソッド（形式4）

createpメソッド（形式5）

createpメソッド（形式6）

createpメソッド（形式7）

createpメソッド（形式8）

createpメソッド（形式9）

createrbメソッド（形式1）

createrbメソッド（形式10）

createrbメソッド（形式2）

createrbメソッド（形式3）

createrbメソッド（形式4）

createrbメソッド（形式5）

createrbメソッド（形式6）

createrbメソッド（形式7）

createrbメソッド（形式8）

createrbメソッド（形式9）

createメソッド（形式1）

createメソッド（形式10）

createメソッド（形式2）

createメソッド（形式3）

createメソッド（形式4）

createメソッド（形式5）

createメソッド（形式6）

createメソッド（形式7）

createメソッド（形式8）

createメソッド（形式9）

(Ｅ)

EJBClientInitializerクラス

EJBクライアントアプリケーションで使用するAPI

EJBクライアントアプリケーションで使用するAPIの一覧

EJBクライアントアプリケーションのAPIで使用する例外クラス

ExplicitMemoryクラス

Explicitメモリブロックを制御する処理のエラーチェック（共通エラーチェック）

(Ｆ)

freeMemoryメソッド

(Ｇ)

getAfterInfoメソッド

getAuthorityメソッド

getBeforeInfoメソッド

getCategoryメソッド

getDetectionPointメソッド

getEdenFreeMemoryメソッド

getEdenMaxMemoryメソッド

getEdenTotalMemoryメソッド

getHaidメソッド

getInputDataメソッド

getLocationメソッド

getLoggerメソッド

getMaxOutputLengthメソッド

getMemoryUsageメソッド

getMessageIdメソッド

getMessageメソッド

getMetaspaceFreeMemoryメソッド

getMetaspaceMaxMemoryメソッド

getMetaspaceTotalMemoryメソッド

getNameメソッド

getObjectInfoメソッド

getObjectLocationメソッド

getOperationメソッド

getOutputDataメソッド

getOutputPointメソッド

getReceiverHostメソッド

getReceiverPortメソッド

getRequestTimeoutConfigメソッド

getResultメソッド

getRootApInfoメソッド

getSenderHostメソッド

getSenderPortメソッド

getServiceInstanceメソッド

getSubjectIdメソッド

getSubjectPointメソッド

getSurvivorFreeMemoryメソッド

getSurvivorMaxMemoryメソッド

getSurvivorTotalMemoryメソッド

getTenuredFreeMemoryメソッド

getTenuredMaxMemoryメソッド

getTenuredTotalMemoryメソッド

getUserTransactionメソッド

(Ｈ)

HttpSessionLimitExceededExceptionクラス

(Ｉ)

initializeメソッド

isActiveメソッド

isEnabledメソッド

isLoggableメソッド

isReclaimedメソッド

(Ｊ)

JavaVMで使用するAPIの一覧

javax.annotation.securityパッケージ

javax.annotation.securityパッケージに含まれるアノテーションのサポート範囲

javax.annotationパッケージ

javax.annotationパッケージに含まれるアノテーションのサポート範囲

javax.ejbパッケージ

javax.ejbパッケージに含まれるアノテーションのサポート範囲

javax.interceptorパッケージ

javax.interceptorパッケージに含まれるアノテーションのサポート一覧

javax.jwsパッケージに含まれるアノテーションのサポート範囲

javax.persistenceパッケージ

javax.persistenceパッケージに含まれるアノテーションのサポート範囲

javax.xml.ws.soapパッケージに含まれるアノテーションのサポート範囲

javax.xml.ws.spiパッケージに含まれるアノテーションのサポート範囲

javax.xml.wsパッケージに含まれるアノテーションのサポート範囲

Javaヒープメモリのリークを起こしやすいJavaAPIクラス

JP.co.Hitachi.soft.jvm.MemoryArea.InaccessibleMemoryAreaException

JP.co.Hitachi.soft.jvm.MemoryArea.MemoryManagementException

(Ｌ)

logメソッド

(Ｍ)

MemoryAreaクラス

MemoryInfoクラス

(Ｎ)

newArrayメソッド（形式1）

newArrayメソッド（形式2）

newInstanceメソッド（形式1）

newInstanceメソッド（形式2）

newInstanceメソッド（形式3）

(Ｏ)

onMessageメソッド

(Ｒ)

reclaimメソッド（形式1）

reclaimメソッド（形式2）

reclaimメソッド（形式3）

reclaimメソッド（形式4）

RequestTimeoutConfigFactoryクラス

RequestTimeoutConfigクラス

(Ｓ)

setAfterInfoメソッド

setAuthorityメソッド

setBeforeInfoメソッド

setCategoryメソッド

setDetectionPointメソッド

setHaidメソッド

setLocationメソッド

setMessageIdメソッド

setMessageメソッド

setNameメソッド

setObjectInfoメソッド

setObjectLocationメソッド

setOperationメソッド

setOutputPointメソッド

setReceiverHostメソッド

setReceiverPortメソッド

setRequestTimeoutメソッド（形式1）

setRequestTimeoutメソッド（形式2）

setResultメソッド

setSenderHostメソッド

setSenderPortメソッド

setServiceInstanceメソッド

setSubjectIdメソッド

setSubjectPointメソッド

(Ｔ)

Timer and Work Manager for Application Servers仕様と動作が異なるアプリケーションサーバのAPIの一覧

toStringメソッド

totalMemoryメソッド

TP1InMessageインタフェース

TP1MessageListenerインタフェース

TP1OutMessageインタフェース

TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPI

TP1インバウンドアダプタによってOpenTP1と連携する場合に使用するAPIの一覧

(Ｕ)

unsetRequestTimeoutメソッド

usedMemoryメソッド

UserAuditLoggerクラス

UserTransactionFactoryクラス

(Ｗ)

Webコンテナの例外クラス

(ア行)

(あ)

アノテーション

アプリケーションサーバが対応するDependency Injection

(カ行)

(か)

監査ログ出力で使用するAPI

監査ログ出力で使用するAPIの一覧

(サ行)

(せ)

性能解析トレースで使用するAPIの一覧

(タ行)

(た)

対応するアノテーションのサポート範囲

(ハ行)

(は)

バッチアプリケーションで使用できるプロパティ

(ヤ行)

(ゆ)

ユーザログ機能で使用するAPIの一覧

(ラ行)

(れ)

例外クラス〔EJBクライアントアプリケーションで使用するAPI〕

例外クラス〔JavaVMで使用するAPI〕

例外クラス〔Webコンテナで使用するAPI〕

例外クラス〔監査ログ出力で使用するAPI〕

■ 商標類

CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
IIOPは，OMG仕様によるORB(Object Request Broker)間通信のネットワークプロトコルの名称です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
OMG，CORBA，IIOP，UML，Unified Modeling Language，MDA，Model　Driven　Architectureは，Object Management Group, Inc.の米国及びその他の国における登録商標または商標です。
OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。
SOAP（Simple Object Access Protocol）は，分散ネットワーク環境においてXMLベースの情報を交換するための通信プロトコルの名称です。
UNIXは，The Open Groupの米国ならびに他の国における登録商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).