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

文法書

3021-3-J21-50

前書き

対象製品

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

輸出時の注意

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

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

HITACHI，Cosminexus，OpenTP1，uCosminexusは，株式会社 日立製作所の商標または登録商標です。

Microsoft，Windows，Windows Server は，マイクロソフト 企業グループの商標です。

Oracle(R)，Java ，MySQL及びNetSuite は，Oracle，その子会社及び関連会社の米国及びその他の国における登録商標です。

UNIXは，The Open Groupの登録商標です。

その他記載の会社名，製品名などは，それぞれの会社の商標もしくは登録商標です。

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

発行

2024年 2月 3021-3-J21-50

著作権

All Rights Reserved. Copyright (C) 2020, 2024, Hitachi, Ltd.

変更内容

変更内容(3021-3-J21-50) uCosminexus Application Server 11-40，uCosminexus Client 11-40，uCosminexus Developer 11-40，uCosminexus Service Architect 11-40，uCosminexus Service Platform 11-40

追加・変更内容

変更個所

記載内容は変更なし（リンク情報だけを変更した）。

-

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

はじめに

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

1　APIの概要

この章では，アプリケーションサーバで使用する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章

なお，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章

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　アノテーションの記述形式

1.2.1　記述形式の詳細

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

(1)　説明

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

(2)　属性

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

(a)　属性名

型

属性の型を示します。

説明

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

デフォルト値

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

1.3　APIの記述形式

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

説明

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

形式

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

パラメタ

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

例外

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

戻り値

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

注意事項

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

2　アプリケーションサーバで使用するアノテーションおよびDependency Injection

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

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

2.1　アノテーションのサポート範囲

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

アノテーションのサポート範囲を次に示します。

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

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

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

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

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

アノテーション名

Servlet仕様

JSP仕様

インターセプタ（CDI対象）

例外クラス

ManagedBean（JSF）

その他のクラス

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@ManagedBean

−

−

−

−

−

−

−

−

−

−

−

−

−

○

@PostConstruct

○

−

○

−

○

−

−

○

○

×

○

−

○※1

○※3

@PreDestroy

○

−

○

−

○

−

−

○

○

×

○

−

○※1

○※3

@Priority

−

−

−

−

−

−

−

−

−

−

○

−

−

○

@Resource

○

−

○

−

○

−

−

○

○

×

○※2

−

○

○※3

@Resources

○

−

○

−

○

−

−

○

○

×

×

−

○

×

（凡例）

○：対応する。

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

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

注※1

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

注※2

DIの実行可否は，インターセプタの指定方法やインターセプタメソッドの種類によって非サポートの場合があります。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「15.　Interceptors」を参照してください。

注※3

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

(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

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

デフォルトインターセプタ以外

デフォルトインターセプタ

@ManagedBean

−

−

−

−

−

−

−

−

○

@PostConstruct

−

○

−

×

○

○

○

−

○※2

@PreDestroy

−

○

−

×

○

○

○

−

○※2

@Priority

−

−

−

−

○

−

○

−

○

@Resource

−

○

−

×

○※1

○

○※1

−

○※2

@Resources

−

○

−

×

○※1

○

×

−

×

（凡例）

○：対応する。

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

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

注※1

DIの実行可否は，インターセプタの指定方法やインターセプタメソッドの種類によって非サポートの場合があります。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「15.　Interceptors」を参照してください。

注※2

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

(4)　ライブラリJARのServlet/JSP仕様のクラス

ライブラリJARのServlet/JSP仕様のクラスに記述できるアノテーションの一覧を示します。

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

アノテーション名

Servlet仕様

JSP仕様

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@PostConstruct

−

−

○

−

○

−

−

○

○

×

@PreDestroy

−

−

○

−

○

−

−

○

○

×

@Resource

−

−

○

−

○

−

−

○

○

×

@Resources

−

−

○

−

○

−

−

○

○

×

（凡例）

○：対応する。

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

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

(5)　ライブラリJARのその他のクラス

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

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

アノテーション名

Enterprise Bean

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

@ManagedBean

−

−

−

−

−

−

−

○

@PostConstruct

−

−

−

−

○

○

−

○※2

@PreDestroy

−

−

−

−

○

○

−

○※2

@Priority

−

−

−

−

○

○

−

○

@Resource

−

−

−

−

○※1

○※1

−

○※2

@Resources

−

−

−

−

○※1

×

−

×

（凡例）

○：対応する。

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

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

注※1

DIの実行可否は，インターセプタの指定方法やインターセプタメソッドの種類によって非サポートの場合があります。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「15.　Interceptors」を参照してください。

注※2

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

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

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

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

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

表2‒6　WARファイル（Servlet 4.0/Servlet 3.1/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のServlet/JSP仕様のクラス

ライブラリJARのServlet/JSP仕様のクラスに記述できるアノテーションの一覧を示します。

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

アノテーション名

Servlet仕様

JSP仕様

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@DeclareRoles

−

−

○

−

○

−

−

−

−

−

（凡例）

○：対応する。

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

(5)　ライブラリJARのその他のクラス

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

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

javax.annotation.sqlパッケージのアノテーションのサポート範囲を次の表に示します。

パッケージ

アノテーション

アプリケーションサーバのサポートの有無

javax.annotation.sql

@DataSourceDefinition

×

@DataSourceDefinitions

×

（凡例）

×：対応しない。

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

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

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

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

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

アノテーション名

Servlet仕様

JSP仕様

インターセプタ（CDI対象）

例外クラス

ManagedBean（JSF）

その他のクラス

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@ApplicationException

−

−

−

−

−

−

−

−

−

−

−

○

−

−

@EJB

○

−

○

−

○

−

−

○

○

×

○※

−

○

○※

@EJBs

○

−

○

−

○

−

−

○

○

×

×

−

○

×

（凡例）

○：対応する。

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

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

注※

DIの実行可否は，インターセプタの指定方法やインターセプタメソッドの種類によって非サポートの場合があります。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「15.　Interceptors」を参照してください。

(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

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

デフォルトインターセプタ以外

デフォルトインターセプタ

@AccessTimeout※1

−

○

−

−

−

−

−

−

−

@ActivationConfigProperty

−

−

−

×

−

−

−

−

−

@AfterBegin※2

−

○

−

−

−

−

−

−

−

@AfterCompletion※2

−

○

−

−

−

−

−

−

−

@ApplicationException

−

−

−

−

−

−

−

○

−

@Asynchronous※3

−

○

−

−

−

−

−

−

−

@BeforeCompletion※2

−

○

−

−

−

−

−

−

−

@ConcurrencyManagement※1

−

○

−

−

−

−

−

−

−

@DependsOn※1

−

○

−

−

−

−

−

−

−

@EJB

−

○

−

×

○※5

○

○※5

−

○※6

@EJBs

−

○

−

×

○※5

○

×

−

×

@Init※2

−

○

−

−

−

−

−

−

−

@Local

○

○

−

−

−

−

−

−

−

@LocalBean

−

○

−

−

−

−

−

−

−

@LocalHome

−

○

−

−

−

−

−

−

−

@Lock※1

−

○

−

−

−

−

−

−

−

@MessageDriven

−

−

−

×

−

−

−

−

−

@PostActivate

−

×

−

−

×

×

−

−

−

@PrePassivate

−

×

−

−

×

×

−

−

−

@Remote

○

○

−

−

−

−

−

−

−

@RemoteHome

−

○

−

−

−

−

−

−

−

@Remove※2

−

○

−

−

−

−

−

−

−

@Schedule※3

−

○

−

×

−

−

−

−

−

@Schedules※3

−

○

−

×

−

−

−

−

−

@Singleton※1

−

○

−

−

−

−

−

−

−

@Startup※1

−

○

−

−

−

−

−

−

−

@Stateful※2

−

○

−

−

−

−

−

−

−

@StatefulTimeout

−

×

−

−

−

−

−

−

−

@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の場合にだけ使用できます。

注※5

DIの実行可否は，インターセプタの指定方法やインターセプタメソッドの種類によって非サポートの場合があります。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「15.　Interceptors」を参照してください。

注※6

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

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

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

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

アノテーション名

Enterprise Bean

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

デフォルトインターセプタ以外

デフォルトインターセプタ

@ActivationConfigProperty

−

−

−

×

−

−

−

−

@ApplicationException

−

−

−

−

−

−

○

−

@EJB

−

○

−

×

○

○

−

−

@EJBs

−

○

−

×

○

○

−

−

@Init※1

−

○

−

−

−

−

−

−

@Local

○

○

−

−

−

−

−

−

@LocalHome

−

○

−

−

−

−

−

−

@MessageDriven

−

−

−

×

−

−

−

−

@PostActivate

−

×

−

−

×

×

−

−

@PrePassivate

−

×

−

−

×

×

−

−

@Remote

○

○

−

−

−

−

−

−

@RemoteHome

−

○

−

−

−

−

−

−

@Remove※1

−

○

−

−

−

−

−

−

@Stateful※1

−

○

−

−

−

−

−

−

@Stateless※2

−

○

−

−

−

−

−

−

@Timeout※2

−

○

−

×

−

−

−

−

@TransactionAttribute

−

○

−

×

−

−

−

−

@TransactionManagement

−

○

−

×

−

−

−

−

（凡例）

○：対応する。

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

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

注※1

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

注※2

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

(5)　ライブラリJARのServlet/JSP仕様のクラス

ライブラリJARのServlet/JSP仕様のクラスに記述できるアノテーションの一覧を示します。

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

アノテーション名

Servlet仕様

JSP仕様

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@EJB

−

−

○

−

○

−

−

○

○

×

@EJBs

−

−

○

−

○

−

−

○

○

×

（凡例）

○：対応する。

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

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

(6)　ライブラリJARのその他のクラス

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

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

アノテーション名

Enterprise Bean

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

@ApplicationException

−

−

−

−

−

−

○

−

@EJB

−

−

−

−

○※1

○※1

−

○※2

@EJBs

−

−

−

−

○※1

×

−

×

@Local

○

−

−

−

−

−

−

−

@PostActivate

−

−

−

−

×

−

−

−

@PrePassivate

−

−

−

−

×

−

−

−

@Remote

○

−

−

−

−

−

−

−

（凡例）

○：対応する。

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

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

注※1

DIの実行可否は，インターセプタの指定方法やインターセプタメソッドの種類によって非サポートの場合があります。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「15.　Interceptors」を参照してください。

注※2

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

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

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

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

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

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

表2‒16　WARファイル（Servlet 4.0/Servlet 3.1/Servlet 3.0対応）に記述できるアノテーション（javax.interceptorパッケージ）

アノテーション名

Servlet仕様

JSP仕様

インターセプタ（CDI対象）

例外クラス

ManagedBean（JSF）

その他のクラス

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@AroundConstruct

−

−

−

−

−

−

−

−

−

−

○

−

−

−

@AroundInvoke

−

−

−

−

−

−

−

−

−

−

○

−

−

○※

@AroundTimeout

−

−

−

−

−

−

−

−

−

−

×

−

−

−

@ExcludeClassInterceptors

−

−

−

−

−

−

−

−

−

−

−

−

−

○※

@ExcludeDefaultInterceptors

−

−

−

−

−

−

−

−

−

−

−

−

−

○※

@Interceptor

−

−

−

−

−

−

−

−

−

−

○

−

−

−

@InterceptorBinding

−

−

−

−

−

−

−

−

−

−

−

−

−

○

@Interceptors

−

−

−

−

−

−

−

−

−

−

−

−

−

○※

（凡例）

○：対応する。

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

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

注※

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

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

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

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

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

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

アノテーション名

Enterprise Bean

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

デフォルトインターセプタ以外

デフォルトインターセプタ

@AroundConstruct

−

−

−

−

○

×

○

−

−

@AroundInvoke

−

○

−

×

○

○

○

−

○※

@AroundTimeout

−

×

−

×

×

×

×

−

−

@ExcludeClassInterceptors

−

○

−

×

−

−

−

−

○※

@ExcludeDefaultInterceptors

−

○

−

×

−

−

−

−

○※

@Interceptor

−

−

−

−

○

−

○

−

−

@InterceptorBinding

−

−

−

−

−

−

−

−

○

@Interceptors

−

○

−

×

−

−

−

−

○※

（凡例）

○：対応する。

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

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

注※

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

(4)　ライブラリJARのServlet/JSP仕様のクラス

ライブラリJARのServlet/JSP仕様のクラスに記述できるアノテーションはありません。

(5)　ライブラリJARのその他のクラス

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

表2‒18　ライブラリJARのその他のクラスに記述できるアノテーション（javax.interceptorパッケージ）

アノテーション名

Enterprise Bean

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

@AroundConstruct

−

−

−

−

○

○

−

−

@AroundInvoke

−

−

−

−

○

○

−

○※

@AroundTimeout

−

−

−

−

×

×

−

−

@ExcludeClassInterceptors

−

−

−

−

−

−

−

○※

@ExcludeDefaultInterceptors

−

−

−

−

−

−

−

○※

@Interceptor

−

−

−

−

○

○

−

−

@InterceptorBinding

−

−

−

−

−

−

−

○

@Interceptors

−

−

−

−

−

−

−

○※

（凡例）

○：対応する。

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

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

注※

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

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

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

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

javax.persistenceパッケージのアノテーションの適用範囲を説明します。ここでは，JPAコンテナに依存するアノテーションについて，コンポーネントごとに記述できるアノテーションを説明します。この項に記載がないアノテーションについては，JPA標準仕様およびJPAプロバイダの仕様に依存します。各仕様に依存するアノテーションについては，各仕様のドキュメントを参照してください。

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

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

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

アノテーション名

Servlet仕様

JSP仕様

インターセプタ（CDI対象）

例外クラス

ManagedBean(JSF)

その他のクラス

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@PersistenceContext

○

−

○

−

○

−

−

○

○

×

○

−

○

○

@PersistenceContexts

○

−

○

−

○

−

−

○

○

×

×

−

○

−

@PersistenceProperty

○

−

○

−

○

−

−

○

○

×

○

−

○

○

@PersistenceUnit

○

−

○

−

○

−

−

○

○

×

○

−

○

○

@PersistenceUnits

○

−

○

−

○

−

−

○

○

×

×

−

○

−

（凡例）

○：対応する。

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

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

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

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

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

アノテーション名

Servlet仕様

JSP仕様

その他のクラス

サーブレット

サーブレットフィルタ

イベントリスナ

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@PersistenceContext

○

○

○

−

○

○

×

−

@PersistenceContexts

○

○

○

−

○

○

×

−

@PersistenceProperty

○

○

○

−

○

○

×

−

@PersistenceUnit

○

○

○

−

○

○

×

−

@PersistenceUnits

○

○

○

−

○

○

×

−

（凡例）

○：対応する。

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

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

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

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

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

アノテーション名

Enterprise Bean

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

デフォルトインターセプタ以外

デフォルトインターセプタ

@PersistenceContext

−

○

−

×

○※

○

○

−

○

@PersistenceContexts

−

○

−

×

○※

○

×

−

−

@PersistenceProperty

−

○

−

×

○※

○

○

−

○

@PersistenceUnit

−

○

−

×

○※

○

○

−

○

@PersistenceUnits

−

○

−

×

○※

○

×

−

−

（凡例）

○：対応する。

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

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

注※

DIの実行可否は，インターセプタの指定方法やインターセプタメソッドの種類によって非サポートの場合があります。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「15.　Interceptors」を参照してください。

(4)　ライブラリJARのServlet/JSP仕様のクラス

ライブラリJARのServlet/JSP仕様のクラスに記述できるアノテーションの一覧を示します。

表2‒22　ライブラリJAR（Servlet/JSP）に記述できるアノテーション（javax.persistenceパッケージ）

アノテーション名

Servlet仕様

JSP仕様

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@PersistenceContext

−

−

○

−

○

−

−

○

○

×

@PersistenceContexts

−

−

○

−

○

−

−

○

○

×

@PersistenceProperty

−

−

○

−

○

−

−

○

○

×

@PersistenceUnit

−

−

○

−

○

−

−

○

○

×

@PersistenceUnits

−

−

○

−

○

−

−

○

○

×

（凡例）

○：対応する。

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

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

(5)　ライブラリJARのその他のクラス

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

表2‒23　ライブラリJARのその他のクラスに記述できるアノテーション（javax.persistenceパッケージ）

アノテーション名

Enterprise Bean

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

@PersistenceContext

−

−

−

−

○※

○

−

○

@PersistenceContexts

−

−

−

−

○※

×

−

−

@PersistenceProperty

−

−

−

−

○※

○

−

○

@PersistenceUnit

−

−

−

−

○※

○

−

○

@PersistenceUnits

−

−

−

−

○※

×

−

−

（凡例）

○：対応する。

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

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

注※

DIの実行可否は，インターセプタの指定方法やインターセプタメソッドの種類によって非サポートの場合があります。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「15.　Interceptors」を参照してください。

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

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

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

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

表2‒24　WARファイル（Servlet 4.0/Servlet 3.1/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のServlet/JSP仕様のクラス

ライブラリJARのServlet/JSP仕様のクラスに記述できるアノテーションはありません。

(4)　ライブラリJARのその他のクラス

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

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

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

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

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

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

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

2.1.12　CDIのアノテーションのサポート範囲

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

パッケージ

含まれるアノテーション

アプリケーションサーバのサポートの有無

javax.decorator

@Decorator

○

@Delegate

○

javax.enterprise.context

@ApplicationScoped

○

@BeforeDestroyed

○

@ConversationScoped

○

@Dependent

○

@Destroyed

○

@Initialized

○

@NormalScope

○

@RequestScoped

○

@SessionScoped

○

javax.enterprise.context.control

@ActivateRequestContext

○

javax.enterprise.event

@Observes

○

@ObservesAsync

○

javax.enterprise.inject

@Alternative

○

@Any

○

@Decorated

○

@Default

○

@Disposes

○

@Intercepted

○

@Model

○

@New

○

@Produces

○

@Specializes

○

@Stereotype

○

@TransientReference

○

@Typed

○

@Vetoed

○

javax.enterprise.inject.spi

@WithAnnotations

×

javax.inject

@Inject

○

@Named

○

@Qualifier

○

@Scope

○

@Singleton

○

（凡例）

○：対応する。

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

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

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

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

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

アノテーション名

Servlet仕様

JSP仕様

インターセプタ（CDI対象）

例外クラス

ManagedBean（JSF）

その他のクラス

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@Inject

○

−

○

−

○

−

×

×

×

×

○

×

○

○※

（凡例）

○：対応する。

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

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

注※

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

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

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

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

アノテーション名

Enterprise Bean

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

デフォルトインターセプタ以外

デフォルトインターセプタ

@Inject

×

○

×

×

○

○

○

×

○※

（凡例）

○：対応する。

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

注※

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

(3)　ライブラリJARのServlet/JSP仕様のクラス

ライブラリJARのServlet/JSP仕様のクラスに記述できるアノテーションはありません。

(4)　ライブラリJARのその他のクラス

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

表2‒27　ライブラリJARのその他のクラスに記述できるアノテーション（javax.injectパッケージ）

アノテーション名

Enterprise Bean

インターセプタ（CDI対象）

例外クラス

その他のクラス

インタフェース

Session Bean

Entity Bean

Message-driven Bean

インターセプタ

@Inject

×

×

×

×

○

○

×

○※

（凡例）

○：対応する。

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

注※

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

2.1.13　JSFのアノテーションのサポート範囲

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

パッケージ

含まれるアノテーション

アプリケーションサーバのサポートの有無

javax.faces.annotation

@ApplicationMap

○

@FacesConfig

○

@FlowMap

○

@HeaderMap

○

@HeaderValuesMap

○

@InitParameterMap

○

@ManagedProperty

○

@RequestCookieMap

○

@RequestMap

○

@RequestParameterMap

○

@RequestParameterValuesMap

○

@SessionMap

○

@ViewMap

○

javax.faces.application

@ResourceDependencies

○

@ResourceDependency

○

javax.faces.bean

@ApplicationScoped

○

@CustomScoped

○

@ManagedBean

○

@ManagedProperty

○

@NoneScoped

○

@ReferencedBean

○

@RequestScoped

○

@SessionScoped

○

@ViewScoped

○

javax.faces.component

@FacesComponent

○

javax.faces.component.behavior

@FacesBehavior

○

javax.faces.context

@RequestCookieMap

○

@SessionMap

○

javax.faces.convert

@FacesConverter

○

javax.faces.event

@ListenerFor

○

@ListenersFor

○

@NamedEvent

○

@WebsocketEvent.Closed

○

@WebsocketEvent.Opened

○

javax.faces.flow

@FlowScoped

×

javax.faces.flow.builder

@FlowBuilderParameter

×

@FlowDefinition

×

javax.faces.model

@FacesDataModel

○

javax.faces.push

@Push

○

javax.faces.render

@FacesBehaviorRenderer

○

@FacesRenderer

○

javax.faces.validator

@FacesValidator

○

javax.faces.view

@ViewScoped

○

javax.faces.view.facelets

@FaceletsResourceResolver

○

（凡例）

○：対応する。

×：対応しない。

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

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

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

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

アノテーション名

Servlet仕様

JSP仕様

例外クラス

ManagedBean（JSF）

その他のクラス

サーブレット

サーブレット（API）

サーブレットフィルタ

サーブレットフィルタ（API）

イベントリスナ

イベントリスナ（API）

JSPファイル

タグハンドラ

タグライブラリイベントリスナ

クラシックタグハンドラ

シンプルタグハンドラ

@ManagedBean

−

−

−

−

−

−

−

−

−

−

−

○

−

（凡例）

○：対応する。

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

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

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

(3)　ライブラリJARのServlet/JSP仕様のクラス

ライブラリJARのServlet/JSP仕様のクラスに記述できるアノテーションはありません。

(4)　ライブラリJARのその他のクラス

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

2.1.14　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

○

@Email

○

@Email.List

○

@Past

○

@Past.List

○

@PastOrPresent

○

@PastOrPresent.List

○

@Future

○

@Future.List

○

@FutureOrPresent

○

@FutureOrPresent.List

○

@Max

○

@Max.List

○

@Min

○

@Min.List

○

@Negative

○

@Negative.List

○

@NegativeOrZero

○

@NegativeOrZero.List

○

@NotBlank

○

@NotBlank.List

○

@NotEmpty

○

@NotEmpty.List

○

@Size

○

@Size.List

○

@NotNull

○

@NotNull.List

○

@Null

○

@Null.List

○

@Pattern

○

@Pattern.List

○

@Positive

○

@Positive.List

○

@PositiveOrZero

○

@PositiveOrZero.List

○

javax.validation.constraintvalidation

@SupportedValidationTarget

○

javax.validation.executable

@ValidateOnExecution

○

javax.validation.groups

@ConvertGroup

○

@ConvertGroup.List

○

javax.validation.valueextraction

@ExtractedValue

○

@UnwrapByDefault

○

（凡例）

○：対応する。

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.1.15　JAX-RSのアノテーションのサポート範囲

JAX-RSのアノテーションのサポート範囲を次の表に示します。

パッケージ

アノテーション

アプリケーションサーバのサポートの有無

javax.ws.rs

@ApplicationPath

○

@Consumes

○

@CookieParam

○

@DefaultValue

○

@DELETE

○

@Encoded

○

@FormParam

○

@GET

○

@HEAD

○

@HeaderParam

○

@HttpMethod

○

@MatrixParam

○

@OPTIONS

○

@Path

○

@PathParam

○

@POST

○

@Produces

○

@PUT

○

@QueryParam

○

@BeanParam

○

@ConstrainedTo

○

@NameBinding

○

javax.ws.rs.container

@PreMatching

○

@Suspended

○

javax.ws.rs.core

@Context

○

javax.ws.rs.ext

@Provider

○

@ParamConverter.Lazy

○

（凡例）

○：対応する。

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

2.1.16　Java Batchのアノテーションのサポート範囲

Java Batchのアノテーションのサポート範囲を次の表に示します。

パッケージ

アノテーション

サポートの有無

javax.batch.api

@BatchProperty

○

（凡例）

○：対応する。

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

2.1.17　WebSocketのアノテーションのサポート範囲

WebSocketのアノテーションのサポート範囲を次の表に示します。

パッケージ

アノテーション

アプリケーションサーバのサポートの有無

javax.websocket

@ClientEndpoint

○

@OnClose

○

@OnError

○

@OnMessage

○

@OnOpen

○

javax.websocket.server

@PathParam

○

@ServerEndpoint

○

（凡例）

○：対応する。

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

2.1.18　JTAのアノテーションのサポート範囲

JTAのアノテーションのサポート範囲を次の表に示します。

パッケージ

アノテーション

アプリケーションサーバのサポートの有無

javax.transaction

@Transactional

○

@TransactionScoped

×

（凡例）

○：対応する。

×：対応しない。

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

2.1.19　JMSのアノテーションのサポート範囲

JMSのアノテーションのサポート範囲を次の表に示します。

パッケージ

アノテーション

アプリケーションサーバのサポートの有無

javax.jms

@JMSConnectionFactory

×

@JMSConnectionFactoryDefinition

×

@JMSConnectionFactoryDefinitions

×

@JMSDestinationDefinition

×

@JMSDestinationDefinitions

×

@JMSPasswordCredential

×

@JMSSessionMode

×

（凡例）

×：対応しない。

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

2.1.20　JCAのアノテーションのサポート範囲

JCAのアノテーションのサポート範囲を次の表に示します。

パッケージ

アノテーション

アプリケーションサーバのサポートの有無

javax.resource

@AdministeredObjectDefinition

×

@AdministeredObjectDefinitions

×

@ConnectionFactoryDefinition

×

@ConnectionFactoryDefinitions

×

javax.resource.spi

@Activation

×

@AdministeredObject

×

@AuthenticationMechanism

×

@ConfigProperty

×

@ConnectionDefinition

×

@ConnectionDefinitions

×

@Connector

×

@SecurityPermission

×

（凡例）

×：対応しない。

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

2.1.21　JSON-Bのアノテーションのサポート範囲

JSON-Bのアノテーションのサポート範囲を次の表に示します。

パッケージ

アノテーション

アプリケーションサーバのサポートの有無

javax.json.bind.annotation

@JsonbAnnotation

○

@JsonbCreator

○

@JsonbDateFormat

○

@JsonbNillable

○

@JsonbNumberFormat

○

@JsonbProperty

○

@JsonbPropertyOrder

○

@JsonbTransient

○

@JsonbTypeAdapter

○

@JsonbTypeDeserializer

○

@JsonbTypeSerializer

○

@JsonbVisibility

○

（凡例）

○：対応する。

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

2.2　javax.annotationパッケージ

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

アノテーション一覧

アノテーション名

機能

@PostConstruct

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

@PreDestroy

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

@Resource

リソースへの参照を宣言します。

@Resources

@Resourceを複数設定します。

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

2.2.1　@PostConstruct

(1)　説明

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

(2)　属性

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

2.2.2　@PreDestroy

(1)　説明

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

(2)　属性

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

2.2.3　@Resource

(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‒29　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‒30　@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)　説明

@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

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

String[]

説明

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

デフォルト値

なし

2.3.2　@DenyAll

(1)　説明

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

(2)　属性

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

2.3.3　@PermitAll

(1)　説明

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

(2)　属性

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

2.3.4　@RolesAllowed

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

String[]

説明

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

デフォルト値

なし

2.3.5　@RunAs

(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

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

unit

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

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

(a)　value属性

型

long

説明

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

デフォルト値

なし

(b)　unit属性

型

TimeUnit

説明

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

デフォルト値

MILLISECONDS

2.4.2　@AfterBegin

(1)　説明

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

(2)　属性

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

2.4.3　@AfterCompletion

(1)　説明

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

(2)　属性

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

2.4.4　@ApplicationException

(1)　説明

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

(2)　属性

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

属性名

機能

rollback

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

inherited

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

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

(a)　rollback属性

型

boolean

説明

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

デフォルト値

false

(b)　inherited属性

型

boolean

説明

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

デフォルト値

true

2.4.5　@Asynchronous

(1)　説明

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

(2)　属性

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

2.4.6　@BeforeCompletion

(1)　説明

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

(2)　属性

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

2.4.7　@ConcurrencyManagement

(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)　説明

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)　説明

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)　説明

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

(2)　属性

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

属性名

機能

value

@EJBを設定します。

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

(a)　value属性

型

EJB[]

説明

@EJBを設定します。

デフォルト値

なし

2.4.11　@Init

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

String

説明

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

デフォルト値

""

2.4.12　@Local

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

Class[]

説明

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

デフォルト値

{}

2.4.13　@LocalBean

(1)　説明

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

(2)　属性

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

2.4.14　@LocalHome

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

Class

説明

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

デフォルト値

なし

2.4.15　@Lock

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

LockType

説明

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

デフォルト値

WRITE

2.4.16　@PostActivate

(1)　説明

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

(2)　属性

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

2.4.17　@PrePassivate

(1)　説明

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

(2)　属性

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

2.4.18　@Remote

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

Class[]

説明

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

デフォルト値

{}

2.4.19　@RemoteHome

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

Class

説明

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

デフォルト値

なし

2.4.20　@Remove

(1)　説明

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

(2)　属性

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

属性名

機能

retainIfException

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

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

(a)　retainIfException属性

型

boolean

説明

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

デフォルト値

false

2.4.21　@Schedule

(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)　説明

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

(2)　属性

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

属性名

機能

value

@Scheduleを設定します。

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

(a)　value属性

型

Schedule[]

説明

@Scheduleを設定します。

デフォルト値

なし

2.4.23　@Singleton

(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)　説明

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

(2)　属性

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

2.4.25　@Stateful

(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)　説明

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)　説明

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

(2)　属性

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

2.4.28　@TransactionAttribute

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

TransactionAttributeType

説明

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

デフォルト値

REQUIRED

2.4.29　@TransactionManagement

(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

(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パッケージに含まれるアノテーションの一覧を次の表に示します。

アノテーション一覧

アノテーション名

機能

@AroundConstruct

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

@AroundInvoke

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

@ExcludeClassInterceptors

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

@ExcludeDefaultInterceptors

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

@Interceptor

インターセプタクラスに設定します。

@InterceptorBinding

InterceptorBinding型として宣言するアノテーションに設定します。

@Interceptors

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

2.6.1　@AroundConstruct

(1)　説明

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

(2)　属性

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

2.6.2　@AroundInvoke

(1)　説明

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

(2)　属性

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

2.6.3　@ExcludeClassInterceptors

(1)　説明

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

(2)　属性

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

2.6.4　@ExcludeDefaultInterceptors

(1)　説明

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

(2)　属性

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

2.6.5　@Interceptor

(1)　説明

インターセプタクラスに設定します。

(2)　属性

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

2.6.6　@InterceptorBinding

(1)　説明

InterceptorBinding型として宣言するアノテーションに設定します。

(2)　属性

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

2.6.7　@Interceptors

(1)　説明

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

(2)　属性

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

属性名

機能

value

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

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

(a)　value属性

型

Class[]

説明

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

デフォルト値

なし

2.7　javax.persistenceパッケージ

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

アノテーションの区分

アノテーション名

概要

EntityManagerとEntityManagerFactoryのリファレンス関連のアノテーション

@PersistenceContext

コンテナ管理のEntityManagerを定義します。

@PersistenceContexts

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

@PersistenceProperty

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

@PersistenceUnit

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

@PersistenceUnits

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

2.7.1　@PersistenceContext

(1)　説明

コンテナ管理のEntityManagerのリファレンスを定義するアノテーションです。ルックアップをするクラスに付加します。

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

(2)　属性

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

属性名

任意/必須

属性の説明

name

任意

EntityManagerのルックアップ名を指定する属性です。

unitName

任意

persistence.xmlファイルで定義されている永続化ユニットの名前を指定する属性です。

type

任意

永続化コンテキストのライフサイクルの種類を指定する属性です。

properties

任意

@PersistencePropertyで指定するベンダ依存のプロパティを指定する属性です。

(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.3　@PersistenceProperty」を参照してください。

properties属性を指定した場合，認識できないプロパティは無視します。

デフォルト値

空の配列

2.7.2　@PersistenceContexts

(1)　説明

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

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

(2)　属性

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

属性名

任意/必須

属性の説明

value

必須

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

(a)　value属性

型

PersistenceContext[]

説明

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

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

デフォルト値

なし

2.7.3　@PersistenceProperty

(1)　説明

コンテナ管理のEntityManagerにプロパティを設定するアノテーションです。

現状，使用できるプロパティはありません。

適用可能要素は，@PersistenceContextのproperties属性です。

(2)　属性

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

属性名

任意/必須

属性の説明

name

必須

プロパティの名前を指定する属性です。

value

必須

プロパティの値を指定する属性です。

(a)　name属性

型

String

説明

プロパティの名前を指定する属性です。

デフォルト値

なし

(b)　value属性

型

String

説明

プロパティの値を指定する属性です。

指定できる値は，name属性に指定したプロパティの仕様に依存します。

デフォルト値

なし

2.7.4　@PersistenceUnit

(1)　説明

EntityManagerFactoryのリファレンスを定義するアノテーションです。ルックアップするクラスに付加します。

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

(2)　属性

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

属性名

任意/必須

属性の説明

name

任意

EntityManagerFactoryのルックアップ名を指定する属性です。

unitName

任意

persistence.xmlファイルで定義されている永続化ユニットの名前を指定する属性です。

(a)　name属性

型

String

説明

EntityManagerFactoryのルックアップ名を指定する属性です。JNDI名前空間に登録するEntityManagerFactoryの名前を指定します。

指定できる値は，文字列です。

DIを使用する場合は指定不要です。

デフォルト値

空の文字列

(b)　unitName属性

型

String

説明

persistence.xmlファイルで定義された永続化ユニットの名前を指定する属性です。

unitName属性を指定した場合，JNDI名前空間でアクセスできるEntityManagerFactoryが使用する永続化ユニットを同じ名前にしてください。

デフォルト値

空の文字列

2.7.5　@PersistenceUnits

(1)　説明

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

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

(2)　属性

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

属性名

任意/必須

属性の説明

value

必須

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

(a)　value属性

型

PersistenceUnit[]

説明

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

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

デフォルト値

なし

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

(1)　説明

ServletContainerInitializerインタフェースの実装クラスが扱うクラスの型を設定します。

(2)　属性

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

属性名

機能

value

ServletContainerInitializerインタフェースの実装クラスが扱うクラスやアノテーションの型を設定します。設定されたクラスを継承(extends)または実装(implements)しているクラス，もしくは設定されたアノテーションを付けているクラスのリストが，ServletContainerInitializerインタフェースの実装クラスに渡されます。

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

(a)　value属性

型

Class[]

説明

ServletContainerInitializerインタフェースの実装クラスが扱うクラスやアノテーションの型を設定します。設定されたクラスを継承(extends)または実装(implements)しているクラス，もしくは設定されたアノテーションを付けているクラスのリストが，ServletContainerInitializerインタフェースの実装クラスに渡されます。

デフォルト値

{}

2.8.2　@HttpConstraint

(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)　説明

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)　説明

サーブレットが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)　属性

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

属性名

機能

httpMethodConstraints

サーブレットのHTTPメソッドごとのセキュリティ制約を設定します。

value

サーブレットのデフォルトのセキュリティ制約を設定します。

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

(a)　httpMethodConstraints属性

型

HttpMethodConstraint[]

説明

サーブレットのHTTPメソッドごとのセキュリティ制約を設定します。

デフォルト値

{}

(b)　value属性

型

HttpConstraint

説明

サーブレットのデフォルトのセキュリティ制約を設定します。

デフォルト値

@javax.servlet.annotation.HttpConstraint

2.8.6　@WebInitParam

(1)　説明

サーブレットまたはフィルタの初期パラメタを設定します。

(2)　属性

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

属性名

機能

description

パラメタの説明を設定します。

name

パラメタ名を設定します。

value

パラメタの値を設定します。

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

(a)　description属性

型

String

説明

パラメタの説明を設定します。

デフォルト値

""

(b)　name属性

型

String

説明

パラメタ名を設定します。

デフォルト値

(c)　value属性

型

String

説明

パラメタの値を設定します。

デフォルト値

なし

2.8.7　@WebFilter

(1)　説明

フィルタを設定します。

(2)　属性

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

属性名

機能

asyncSupported

フィルタが非同期リクエスト処理をサポートするかどうかを設定します。

description

フィルタの説明を設定します。

dispatcherTypes

フィルタの適応条件を設定します。

displayName

表示名を設定します。

filterName

フィルタ名を設定します。

initParams

フィルタの初期パラメタを設定します。

largeIcon

GUIツールで使用する大アイコンを設定します。

servletNames

マッピングを行うサーブレットのサーブレット名を設定します。

smallIcon

GUIツールで使用する小アイコンを設定します。

urlPatterns

マッピングするURLパターンを設定します。

value

マッピングするURLパターンを設定します。urlPatternsと同時に設定した場合は無視されます。

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

(a)　asyncSupported属性

型

boolean

説明

フィルタが非同期リクエスト処理をサポートするかどうかを設定します。

デフォルト値

false

(b)　description属性

型

String

説明

フィルタの説明を設定します。

デフォルト値

""

(c)　dispatcherTypes属性

型

DispatcherType[]

説明

フィルタの適応条件を設定します。

デフォルト値

javax.servlet.DispatcherType.REQUEST

(d)　displayName属性

型

String

説明

表示名を設定します。

デフォルト値

""

(e)　filterName属性

型

String

説明

フィルタ名を設定します。

デフォルト値

""

(f)　initParams属性

型

WebInitParam[]

説明

フィルタの初期パラメタを設定します。

デフォルト値

{}

(g)　largeIcon属性

型

String

説明

GUIツールで使用する大アイコンを設定します。

デフォルト値

""

(h)　servletNames属性

型

String[]

説明

マッピングを行うサーブレットのサーブレット名を設定します。

デフォルト値

{}

(i)　smallIcon属性

型

String

説明

GUIツールで使用する小アイコンを設定します。

デフォルト値

""

(j)　urlPatterns属性

型

String[]

説明

マッピングするURLパターンを設定します。

デフォルト値

{}

(k)　value属性

型

String[]

説明

マッピングするURLパターンを設定します。urlPatternsと同時に設定した場合は無視されます。

デフォルト値

{}

2.8.8　@WebListener

(1)　説明

リスナを設定します。

(2)　属性

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

属性名

機能

value

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

(a)　value属性

型

String

説明

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

デフォルト値

""

2.8.9　@WebServlet

(1)　説明

サーブレットを設定します。

(2)　属性

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

属性名

機能

asyncSupported

サーブレットが非同期リクエスト処理をサポートするかどうかを設定します。

description

サーブレットの説明を設定します。

displayName

表示名を設定します。

initParams

サーブレットの初期パラメタを設定します。

largeIcon

GUIツールで使用する大アイコンを設定します。

loadOnStartup

サーブレットの開始順序を設定します。

name

サーブレット名を設定します。

smallIcon

GUIツールで使用する小アイコンを設定します。

urlPatterns

マッピングするURLパターンを設定します。

value

マッピングするURLパターンを設定します。urlPatternsと同時に設定した場合は無視されます。

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

(a)　asyncSupported属性

型

boolean

説明

サーブレットが非同期リクエスト処理をサポートするかどうかを設定します。

デフォルト値

false

(b)　description属性

型

String

説明

サーブレットの説明を設定します。

デフォルト値

""

(c)　displayName属性

型

String

説明

表示名を設定します。

デフォルト値

""

(d)　initParams属性

型

WebInitParam[]

説明

サーブレットの初期パラメタを設定します。

デフォルト値

{}

(e)　largeIcon属性

型

String

説明

GUIツールで使用する大アイコンを設定します。

デフォルト値

""

(f)　loadOnStartup属性

型

int

説明

サーブレットの開始順序を設定します。

デフォルト値

-1

(g)　name属性

型

String

説明

サーブレット名を設定します。

デフォルト値

""

(h)　smallIcon属性

型

String

説明

GUIツールで使用する小アイコンを設定します。

デフォルト値

""

(i)　urlPatterns属性

型

String[]

説明

マッピングするURLパターンを設定します。

デフォルト値

{}

(j)　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　例外クラス

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サーバモードの場合に適用されます。

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クラスを継承しています。

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

この章では，EJBクライアントアプリケーションで使用するAPIおよび例外クラスについて説明します。

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メソッド

説明

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メソッド

説明

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）

説明

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メソッド

説明

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の一覧

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メソッド

説明

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メソッド

説明

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メソッド

説明

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の一覧

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の一覧

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）

説明

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の一覧

監査ログ出力で使用する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メソッド

説明

変更後情報を取得します。

この項目に値を設定していない場合，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メソッド

説明

パラメタに指定した発生コンポーネント名ごとに，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クラス」を参照してください。ただし，推奨されている文字種以外の文字を設定したり，推奨されている文字数を超過して設定したりした場合も，設定した値がそのまま出力されます。

監査ログの出力先は，監査ログ定義ファイルで指定します。監査ログ定義ファイルについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「11.2.1　監査ログ定義ファイル」を参照してください。また，監査ログの出力形式については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「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の一覧

性能解析トレースで使用するAPIの一覧を次の表に示します。

表9‒1　性能解析トレースで使用するAPIの一覧

クラス名

機能

CprfTraceクラス

性能解析トレース関連の機能を提供します。

PrfTraceクラス

性能解析トレース関連の機能を提供します。

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メソッド

説明

現在のスレッドが保持している性能解析トレースのルートアプリケーション情報を文字列表現で返します。

ルートアプリケーション情報の文字列表現とは，ルートアプリケーション情報を構成する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クライアントから呼び出された場合

9.3　PrfTraceクラス

説明

性能解析トレース関連の機能を提供します。

PrfTraceクラスのパッケージ名は，com.hitachi.software.javaee.util.prf.PrfTraceです。

メソッド一覧

メソッド名

機能

getClientApInfoメソッド

getPrfTraceメソッド実行時に取得した性能解析トレースのクライアントアプリケーション情報を文字列表現で返します。

getPrfTraceメソッド

現在のスレッドが保持しているトレース情報を取得し，取得した情報を保持するPrfTraceのインスタンスを返します。

getRootApInfoメソッド

getPrfTraceメソッド実行時に取得した性能解析トレースのルートアプリケーション情報を文字列表現で返します。

注意事項

アプリケーションでPrfTraceクラスを使用する場合は同時にCprfTraceクラスを使用できません。

getClientApInfoメソッド

説明

getPrfTraceメソッド実行時に取得した性能解析トレースのクライアントアプリケーション情報を文字列表現で返します。

形式

public final String getClientApInfo()

パラメタ

なし

例外

なし

戻り値

クライアントアプリケーション情報の文字列表現。

クライアントアプリケーション情報を引き継ぐシーケンスの範囲外で実行した場合nullを返します。

getPrfTraceメソッド

説明

現在のスレッドが保持しているトレース情報を取得し，取得した情報を保持するPrfTraceのインスタンスを返します。

形式

public static PrfTrace getPrfTrace()

パラメタ

なし

例外

なし

戻り値

PrfTraceのインスタンス

getRootApInfoメソッド

説明

getPrfTraceメソッド実行時に取得した性能解析トレースのルートアプリケーション情報を文字列表現で返します。

形式

public final String getRootApInfo()

パラメタ

なし

例外

なし

戻り値

ルートアプリケーション情報の文字列表現。

ルートアプリケーション情報を引き継ぐシーケンスの範囲外で実行した場合nullを返します。

10　JavaVMで使用するAPI

この章では，製品のJavaVM（以降，JavaVMと呼びます）で使用するAPIについて説明します。

なお，JavaVMは，Java SE 8またはJava SE 9に準拠しています。詳細については，マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」を参照してください。また，JDK 8またはJDK 9で使用できるAPIについては，Oracle社が提供しているJDK 8またはJDK 9のドキュメントを参照してください。

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）

説明

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メソッド

説明

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()

注意事項

Cosminexus Developer's Kit for Java 09-70-08以降では，JP.co.Hitachi.soft.jvm.MemoryInfoのAPIの返却値がjava.lang.Long.MAX_VALUEを超える場合，java.lang.Long.MAX_VALUEを返却します

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　バッチアプリケーションで使用できるプロパティ

ここでは，バッチアプリケーションを開発するときに使用できるプロパティについて説明します。

ejbserver.batch.currentdirプロパティ

説明

バッチ実行コマンド（cjexecjob）を実行したカレントディレクトリの絶対パスを取得します。

バッチアプリケーション内で使用してください。

使用例

使用例を示します。

File f = new File(System.getProperty("ejbserver.batch.currentdir") + System.getProperty("file.separator") + "DataFile.txt");

付録

付録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クラスや条件，およびユーザ作成クラスのインスタンス削除方法については，ご使用のアプリケーションサーバのバージョンによって変わる場合があります。

表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　スレッド生成処理一覧

ここでは，次のAPIや機能がJavaVM内部で生成するスレッドについて説明します。

GUI関連のAPI

JMX関連のAPI

JNDI関連のAPI

RMI関連のAPI

そのほかの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[1]

@AroundConstruct[1]

@AroundInvoke[1]

@DeclareRoles[1]

@DenyAll[1]

@EJB[1]

@EJBs[1]

@ExcludeClassInterceptors[1]

@ExcludeDefaultInterceptors[1]

@Init[1]

@Interceptor[1]

@InterceptorBinding[1]

@Interceptors[1]

@Local[1]

@LocalHome[1]

@PermitAll[1]

@PersistenceContext[1]

@PersistenceContexts[1]

@PersistenceProperty[1]

@PersistenceUnit[1]

@PersistenceUnits[1]

@PostActivate[1]

@PostConstruct[1]

@PreDestroy[1]

@PrePassivate[1]

@Remote[1]

@RemoteHome[1]

@Remove[1]

@Resource[1]

@Resources[1]

@RolesAllowed[1]

@RunAs[1]

@Stateful[1]

@Stateless[1]

@Timeout[1]

@TransactionAttribute[1]

@TransactionManagement[1]

A

AuditLogRecordクラス[1]

B

BasicExplicitMemoryクラス[1]

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

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

C

CJLogRecordクラス[1]

com.hitachi.software.ejb.security.base.authentication.InvalidPasswordException[1]

com.hitachi.software.ejb.security.base.authentication.InvalidUserNameException[1]

com.hitachi.software.ejb.security.base.authentication.NotFoundServerException[1]

com.hitachi.software.web.dbsfo.DatabaseAccessException[1]

com.hitachi.software.web.dbsfo.SessionOperationException[1]

countExplicitMemoriesメソッド[1]

CprfTraceクラス[1]

createOutMessageメソッド[1]

createpメソッド（形式1）[1]

createpメソッド（形式10）[1]

createpメソッド（形式2）[1]

createpメソッド（形式3）[1]

createpメソッド（形式4）[1]

createpメソッド（形式5）[1]

createpメソッド（形式6）[1]

createpメソッド（形式7）[1]

createpメソッド（形式8）[1]

createpメソッド（形式9）[1]

createrbメソッド（形式1）[1]

createrbメソッド（形式10）[1]

createrbメソッド（形式2）[1]

createrbメソッド（形式3）[1]

createrbメソッド（形式4）[1]

createrbメソッド（形式5）[1]

createrbメソッド（形式6）[1]

createrbメソッド（形式7）[1]

createrbメソッド（形式8）[1]

createrbメソッド（形式9）[1]

createメソッド（形式1）[1]

createメソッド（形式10）[1]

createメソッド（形式2）[1]

createメソッド（形式3）[1]

createメソッド（形式4）[1]

createメソッド（形式5）[1]

createメソッド（形式6）[1]

createメソッド（形式7）[1]

createメソッド（形式8）[1]

createメソッド（形式9）[1]

E

EJBClientInitializerクラス[1]

EJBクライアントアプリケーションで使用するAPI[1]

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

EJBクライアントアプリケーションのAPIで使用する例外クラス[1]

ExplicitMemoryクラス[1]

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

F

freeMemoryメソッド[1]

G

getAfterInfoメソッド[1]

getAuthorityメソッド[1]

getBeforeInfoメソッド[1]

getCategoryメソッド[1]

getClientApInfoメソッド[1]

getDetectionPointメソッド[1]

getEdenFreeMemoryメソッド[1]

getEdenMaxMemoryメソッド[1]

getEdenTotalMemoryメソッド[1]

getHaidメソッド[1]

getInputDataメソッド[1]

getLocationメソッド[1]

getLoggerメソッド[1]

getMaxOutputLengthメソッド[1]

getMemoryUsageメソッド[1]

getMessageIdメソッド[1]

getMessageメソッド[1]

getMetaspaceFreeMemoryメソッド[1]

getMetaspaceMaxMemoryメソッド[1]

getMetaspaceTotalMemoryメソッド[1]

getNameメソッド[1]

getObjectInfoメソッド[1]

getObjectLocationメソッド[1]

getOperationメソッド[1]

getOutputDataメソッド[1]

getOutputPointメソッド[1]

getPrfTraceメソッド[1]

getReceiverHostメソッド[1]

getReceiverPortメソッド[1]

getRequestTimeoutConfigメソッド[1]

getResultメソッド[1]

getRootApInfoメソッド[1]、[2]

getSenderHostメソッド[1]

getSenderPortメソッド[1]

getServiceInstanceメソッド[1]

getSubjectIdメソッド[1]

getSubjectPointメソッド[1]

getSurvivorFreeMemoryメソッド[1]

getSurvivorMaxMemoryメソッド[1]

getSurvivorTotalMemoryメソッド[1]

getTenuredFreeMemoryメソッド[1]

getTenuredMaxMemoryメソッド[1]

getTenuredTotalMemoryメソッド[1]

getUserTransactionメソッド[1]

H

HttpSessionLimitExceededExceptionクラス[1]

I

initializeメソッド[1]

isActiveメソッド[1]

isEnabledメソッド[1]

isLoggableメソッド[1]

isReclaimedメソッド[1]

J

JavaVMで使用するAPIの一覧[1]

javax.annotation.securityパッケージ[1]

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

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

javax.annotationパッケージ[1]

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

javax.ejbパッケージ[1]

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

javax.interceptorパッケージ[1]

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

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

javax.persistenceパッケージ[1]

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

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

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

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

Javaヒープメモリのリークを起こしやすいJavaAPIクラス[1]

JP.co.Hitachi.soft.jvm.MemoryArea.InaccessibleMemoryAreaException[1]

JP.co.Hitachi.soft.jvm.MemoryArea.MemoryManagementException[1]

L

logメソッド[1]

M

MemoryAreaクラス[1]

MemoryInfoクラス[1]

N

newArrayメソッド（形式1）[1]

newArrayメソッド（形式2）[1]

newInstanceメソッド（形式1）[1]

newInstanceメソッド（形式2）[1]

newInstanceメソッド（形式3）[1]

O

onMessageメソッド[1]

P

PrfTraceクラス[1]

R

reclaimメソッド（形式1）[1]

reclaimメソッド（形式2）[1]

reclaimメソッド（形式3）[1]

reclaimメソッド（形式4）[1]

RequestTimeoutConfigFactoryクラス[1]

RequestTimeoutConfigクラス[1]

S

setAfterInfoメソッド[1]

setAuthorityメソッド[1]

setBeforeInfoメソッド[1]

setCategoryメソッド[1]

setDetectionPointメソッド[1]

setHaidメソッド[1]

setLocationメソッド[1]

setMessageIdメソッド[1]

setMessageメソッド[1]

setNameメソッド[1]

setObjectInfoメソッド[1]

setObjectLocationメソッド[1]

setOperationメソッド[1]

setOutputPointメソッド[1]

setReceiverHostメソッド[1]

setReceiverPortメソッド[1]

setRequestTimeoutメソッド（形式1）[1]

setRequestTimeoutメソッド（形式2）[1]

setResultメソッド[1]

setSenderHostメソッド[1]

setSenderPortメソッド[1]

setServiceInstanceメソッド[1]

setSubjectIdメソッド[1]

setSubjectPointメソッド[1]

T

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

toStringメソッド[1]

totalMemoryメソッド[1]

TP1InMessageインタフェース[1]

TP1MessageListenerインタフェース[1]

TP1OutMessageインタフェース[1]

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

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

U

unsetRequestTimeoutメソッド[1]

usedMemoryメソッド[1]

UserAuditLoggerクラス[1]

UserTransactionFactoryクラス[1]

W

Webコンテナの例外クラス[1]

あ

アノテーション[1]

アノテーションのサポート範囲[1]

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

か

監査ログ出力で使用するAPI[1]

監査ログ出力で使用するAPIの一覧[1]

せ

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

は

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

ゆ

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

れ

例外クラス〔EJBクライアントアプリケーションで使用するAPI〕[1]

例外クラス〔JavaVMで使用するAPI〕[1]

例外クラス〔Webコンテナで使用するAPI〕[1]

例外クラス〔監査ログ出力で使用するAPI〕[1]