Cosminexus Reliable Messaging 3020-3-M17-40 解説・手引・文法・操作書 マニュアルの購入方法

Cosminexus Reliable Messaging 3020-3-M17-40 解説・手引・文法・操作書 マニュアルの購入方法
Cosminexus Reliable Messaging
解説・手引・文法・操作書
3020-3-M17-40
マニュアルの購入方法
このマニュアル,および関連するマニュアルをご購入の際は,
巻末の「ソフトウェアマニュアルのサービス ご案内」をご参
照ください。
■対象製品
●適用 OS:Windows XP,Windows Server 2003,Windows Server 2003 R2,Windows Server 2003(x64)
,
Windows Server 2003 R2(x64),Windows Vista
P-2441-6A24 Cosminexus Reliable Messaging 01-03
●適用 OS:AIX 5L V5.2,AIX 5L V5.3
P-1M41-6A21 Cosminexus Reliable Messaging 01-03 ※
●適用 OS:HP-UX 11i V2(IPF),HP-UX 11i V3(IPF)
P-1J41-6A21 Cosminexus Reliable Messaging 01-03 ※
●適用 OS:Red Hat Enterprise Linux AS 3(x86),Red Hat Enterprise Linux AS 4(x86),Red Hat
Enterprise Linux ES 3(x86),Red Hat Enterprise Linux ES 4(x86)
,Red Hat Enterprise Linux AS 3
(AMD64 & Intel EM64T),Red Hat Enterprise Linux AS 4(AMD64 & Intel EM64T),Red Hat Enterprise Linux
ES 3(AMD64 & Intel EM64T)
,Red Hat Enterprise Linux ES 4(AMD64 & Intel EM64T)
P-9S41-6A21 Cosminexus Reliable Messaging 01-03 ※
●適用 OS:Red Hat Enterprise Linux AS 3(IPF),Red Hat Enterprise Linux AS 4(IPF)
P-9V41-6A21 Cosminexus Reliable Messaging 01-03 ※
※印の製品については,サポート時期をご確認ください。
これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リ
リースノート」でご確認ください。
これら製品は,経済産業省が 2003 年度から 3 年間実施した「ビジネスグリッドコンピューティングプロ
ジェクト」の技術開発の成果を含みます。
■輸出時の注意
本製品を輸出される場合には,外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご
確認の上,必要な手続きをお取りください。
なお,ご不明な場合は,弊社担当営業にお問い合わせください。
■商標類
AIX は,米国における米国 International Business Machines Corp. の登録商標です。
HP-UX は,米国 Hewlett-Packard Company のオペレーティングシステムの名称です。
Itanium は,アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標
です。
Java 及びすべての Java 関連の商標及びロゴは,米国及びその他の国における米国 Sun Microsystems, Inc.
の商標または登録商標です。
Linux は,Linus Torvalds の米国およびその他の国における登録商標あるいは商標です。
Microsoft は,米国およびその他の国における米国 Microsoft Corp. の登録商標です。
ORACLE は,米国 Oracle Corporation の登録商標です。
Oracle は,米国 Oracle Corporation 及びその子会社,関連会社の登録商標です。
Oracle9i は,米国 Oracle Corporation の商標です。
Oracle 10g は,米国 Oracle Corporation の商標です。
Red Hat は,米国およびその他の国で Red Hat,Inc. の登録商標若しくは商標です。
SOAP(Simple Object Access Protocol)は,分散ネットワーク環境において XML ベースの情報を交換する
ための通信プロトコルの名称です。
SQL*Plus は,米国 Oracle Corporation の登録商標です。
Windows は,米国およびその他の国における米国 Microsoft Corp. の登録商標です。
Windows Server は,米国およびその他の国における米国 Microsoft Corp. の商標です。
Windows Vista は,米国 Microsoft Corporation の米国及びその他の国における登録商標または商標です。
■発行
2006 年 4 月(第 1 版)3020-3-M17
2007 年 6 月(第 3 版)3020-3-M17-40
■著作権
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.
変更内容
変更内容(3020-3-M17-40) Cosminexus Reliable Messaging 01-03
追加・変更内容
変更個所
従来の永続版リソースアダプタに加えて非永続版リソースアダプタを提供す
るようにしたため,リソースアダプタの違いによる機能相違点を追加した。
非永続版リソースアダプタの追加に伴い,Cosminexus RM のコンフィグ
レーションプロパティに QueueMakeFileName プロパティを追加した。
1.,2.2,2.3.1,2.3.2,
2.3.5,2.5.1(3),
2.5.3(2),2.6.7,3.1,表
3-1,3.5,4.5.2,5.,
6.1,6.2(3),6.2(9),
6.2(12),7.1,7.5,表
8-1,8.3.2,8.3.7,
8.3.8,8.3.11,8.3.12,
8.3.13,8.3.14,8.3.17,
8.3.24,8.3.27,表 9-1,
付録 C,付録 E
接続先 DB が Oracle で,トランザクションサポートレベルが
XATransaction の場合に,複数の J2EE サーバ上で複数のリソースアダプタ
が共通の DB を利用できるようにした。
1.3.4
メッセージの受け渡し方式で,値渡し方式と参照渡し方式を利用できるよう
にした。
これに伴い,次のように変更した。
• Cosminexus RM のコンフィグレーションプロパティに,
RMPassByReference プロパティを追加した。
• 障害コード HRM-00832 を追加した。
表 1-1,2.3.3,
2.6.7(10),表 6-1,
6.2(11),表 7-7
DB Connector for Cosminexus RM で次の機能を使用できるようにした。
• ステートメントキャンセル
• 障害調査用 SQL の出力
• 軽微な障害時のコネクション再利用
• コネクション ID の取得
表 1-1,2.7.2,2.7.3(2),
2.7.3(3),2.7.3(4),
2.7.3(5)
キュー作成時の表示名を利用する場合は,キュー定義ファイルの作成を不要
にした。
これに伴い,次のように変更した。
• Cosminexus RM のコンフィグレーションプロパティに
RMWaitRestoration プロパティを追加した。
• 次のコマンドに -x オプションを追加した。
・hrmchgque(ローカルキューの属性変更)
・hrmchgque(受信用共用キューの属性変更)
・hrmchgque(送信用共用キューの属性変更)
・hrmchgque(転送キューの属性変更)
・hrmmkque(ローカルキューの作成)
・hrmmkque(受信用共用キューの作成)
・hrmmkque(送信用共用キューの作成)
・hrmmkque(転送キューの作成)
表 1-1,3.4.4,3.5.2,
表 6-1,6.2(4),6.2(6),
8.3.2,8.3.3,8.3.4,
8.3.5,8.3.8(5),8.3.17,
8.3.18,8.3.19,8.3.20,
付録 C.3,付録 C.6
Cosminexus RM のトレースに PRF トレースを追加した。
表 1-1,3.6.5,4.4,
5.3,表 9-1,9.1.6,付
録D
追加・変更内容
変更個所
メッセージの削除方法で,遅延削除と即時削除を利用できるようにした。
これに伴い,Cosminexus RM のコンフィグレーションプロパティに,
RMDeleteMessageImmediately プロパティを追加した。
2.3.4,表 6-1,6.2(10)
キュー間転送で異なるバージョンの Cosminexus RM とメッセージを送受信
する方法を追加した。
これに伴い,次のコマンドに -i オプションを追加した。
• hrmchgque(転送キューの属性変更)
• hrmmkque(転送キューの作成)
2.4.6,4.2.3,8.3.5,
8.3.20,付録 H
ObjectMessage のペイロードにユーザが定義したクラスのオブジェクトを格
納する場合,送受信するアプリケーションにユーザが定義したクラスを含め
なければならないようにした。
2.5.1(3)(b),3.6.3
システム構築の流れを変更した。
3.
Connector 属性ファイルのテンプレートを提供した。
3.1(3),3.4.5(1),
3.4.8(1),3.5.3(1)
システム構築のサンプル手順を追加した。
3.1(3),付録 C.1
適用 OS に Windows Vista を追加した。
4.5.1,5.4.1
Cosminexus RM の開始処理を待ち合わせる場合,タイムアウトが発生する
まで待つことを避けることができるようにした。
これに伴い,Cosminexus RM のコンフィグレーションプロパティに,
RMStartTimeout プロパティを追加した。
表 6-1,6.2(7)
DB Connector for Cosminexus RM のコンフィグレーションプロパティを追
加した。
6.3
次の障害コードを追加した。
HRM-00832,HRM-00833
表 7-7
送信用共用キューの属性を変更できるようにした。
これに伴い,hrmchgque(送信用共用キューの属性変更)コマンドを追加し
た。
表 8-1,8.3.4
コネクションプールの見積もり方法を追加した。
付録 G
Cosminexus RM 01-03 への移行方法を追加した。
付録 H
次のメッセージを追加した。
KFRM01807-W,KFRM10022-E,KFRM10023-E,KFRM13029-I,
KFRM17000-E,KFRM17001-E,KFRM17002-E,KFRM17003-E,
KFRM17004-E,KFRM17005-E,KFRM17006-E,KFRM17007-W,
KFRM17008-W,KFRM17009-W,KFRM17010-W,KFRM17011-W,
KFRM17012-W,KFRM17013-E,KFRM17014-W,KFRM20092-E,
KFRM20093-E,KFRM20095-E,KFRM20096-W,KFRM20097-W,
KFRM20098-I,KFRM20099-I,KFRM20100-E,KFRM20121-W,
KFRM20122-W,KFRM20123-W,KFRM20125-E,KFRM20126-E,
KFRM32009-E,KFRM40013-E
9.1.2,9.4
次のメッセージを変更した。
KFRM14004-E
9.4
次のメッセージを削除した。
KFRM20076-I,KFRM20077-I
9.4
単なる誤字・脱字などはお断りなく訂正しました。
第 3 版では,次に示すマニュアルの内容の一部をこのマニュアルに移動し,目次構成を変更しました。
・Cosminexus アプリケーション設定操作ガイド
・Cosminexus リファレンス 定義編
第 2 版との対応は次のようになっています。
第2版
第3版
1. 概要
1. 概要
2. 機能
2. 機能
3. システム構築
3. システム構築
3.1 前提製品の初期設定
3.1 システム構築の流れ
3.2 Cosminexus RM のインストール
3.2.1 前提製品のインストール
3.1.1 Cosminexus の初期設定
3.2.1(1) Cosminexus のインストール
−
3.2.1(2) DBMS のインストール
−
3.2.1(3) DB クライアントのインストール
−
3.4 Cosminexus RM のシステム構築(永続版
リソースアダプタの場合)
3.1.1(1) Cosminexus DABroker Library の動作環
境の設定
3.4.7 DB Connector for Cosminexus RM の前
提製品の設定
3.1.2 DB クライアントの初期設定
3.4.1(2) DB クライアントの設定
3.4.2(2) DB クライアントの設定
3.1.3 DB Connector の初期設定
マニュアル「Cosminexus アプリケーション設定操
作ガイド」から移動
3.1.4 DBMS の初期設定
3.4.8 DB Connector for Cosminexus RM のプ
ロパティ定義
3.4.1 DBMS の設定(HiRDB を使用する場合)
3.4.2 DBMS の設定(Oracle を使用する場合)
3.1.4(1) HiRDB を使用する場合
3.4.1(1) DBMS の初期設定(HiRDB を使用す
る場合)
3.1.4(1)(e) HiRDB の排他資源の見積もり
付録 F HiRDB の見積もり
3.1.4(1)(f) 同時アクセス可能実表数の見積もり
3.1.4(2) Oracle を使用する場合
3.4.2(1)DBMS の初期設定(Oracle を使用する場
合)
3.1.4(3) 注意事項
3.6.1 DBMS の設定をする場合
3.1.5 SOAP 通信基盤の初期設定
3.4.13(1) SOAP 通信基盤の設定
3.2 Cosminexus RM の初期設定
3.1 システム構築の流れ
3.2.1 インストール
3.2.2 Cosminexus RM をインストールすると格
納されるファイル
第2版
−
第3版
3.3 システム構築の準備
3.2.2 システム名の決定
3.3.1 Cosminexus RM のシステム名の決定
3.2.3 環境変数の設定
3.3.2 環境変数の設定
3.2.4 管理情報テーブルの作成
3.4.1(3) Cosminexus RM の管理情報テーブル
の作成
3.4.2(3) Cosminexus RM の管理情報テーブル
の作成
−
3.4.3 J2EE サーバ(Cosminexus)の設定
3.2.5 キュー定義ファイルの作成
3.4.4 キュー定義ファイルの作成(永続版リ
ソースアダプタの場合)
3.2.6 プロパティのカスタマイズ
3.4.5 Cosminexus RM のプロパティ定義(永続
版リソースアダプタの場合)
マニュアル「Cosminexus アプリケーション設定操
作ガイド」から移動
マニュアル「Cosminexus アプリケーション設定操
作ガイド」から移動
3.4.6 DB Connector for Cosminexus RM の選
択
マニュアル「Cosminexus アプリケーション設定操
作ガイド」から移動
3.4.9 DB Connector for Cosminexus RM と
Cosminexus RM のインポート
マニュアル「Cosminexus アプリケーション設定操
作ガイド」から移動
3.4.10 DB Connector for Cosminexus RM と
Cosminexus RM のプロパティ設定
マニュアル「Cosminexus アプリケーション設定操
作ガイド」から移動
3.4.11 DB Connector for Cosminexus RM と
Cosminexus RM のデプロイ
マニュアル「Cosminexus アプリケーション設定操
作ガイド」から移動
3.4.12 Cosminexus RM の運用前の準備(永続
版リソースアダプタの場合)
−
3.4.13 キュー間転送をする場合の設定
3.2.7 キュー間転送を使用する場合の設定
3.4.13(2) キュー間転送をする場合の
Cosminexus RM の設定
3.2.8 その他の設定
3.4.13(3) 転送データ相互接続用インタフェース
を利用する場合の設定
3.6.3 ObjectMessage のペイロードにユーザが
定義したクラスのオブジェクトを格納する場合
3.6.4 同一サーバ上で Cosminexus RM を複数
デプロイする場合
−
3.2.9 複数デプロイをする場合の注意事項
−
4. 運用
3.6 システム構築時の注意事項
3.6.2 複数デプロイをする場合
3.5 Cosminexus RM のシステム構築(非永続
版リソースアダプタの場合)
4. Cosminexus RM(永続版リソースアダプタ)
の運用
第2版
第3版
5. Cosminexus RM(非永続版リソースアダプ
タ)の運用
−
5. コンフィグレーションプロパティ
6. コンフィグレーションプロパティ
5.1 コンフィグレーションプロパティの一覧
6.1 コンフィグレーションプロパティの一覧
5.2 コンフィグレーションプロパティの詳細説明
6.2 コンフィグレーションプロパティの詳細説
明
マニュアル「Cosminexus リファレンス 定義編」か
ら移動
6.3 DB Connector for Cosminexus RM のコン
フィグレーションプロパティの一覧
6. インタフェース
7. インタフェース
7. コマンドリファレンス
8. コマンドリファレンス
8. 障害対策
9. 障害対策
付録
付録
(凡例)
−:第 3 版で追加した項目
変更内容(3020-3-M17-20) Cosminexus Reliable Messaging 01-02
追加・変更内容
Cosminexus RM が動作する J2EE サーバモードを,スタンダードモードおよびアドバンスモードから
J2EE モードの 1.4 モードに変更した。
トランザクションのサポートレベルが XATransaction の場合,複数の J2EE サーバ内の複数のリソース
アダプタが共通の DB を利用できるようにした。
デッドメッセージキューに移動したメッセージを,移動前のキューに再登録できるようにした。あわせ
て,デッドメッセージキューのデッドメッセージの情報を参照できるようにした。
これに伴い,次のように変更した。
JMS メッセージの次のヘッダの説明を変更した。
• JMSMessageID
• JMSTimestamp
• JMSExpiration
JMS メッセージに次のプロパティを追加した。
• JMS_HITACHI_DeadMessageID
JMS メッセージのプロパティの説明を変更した。
• JMS_HITACHI_DeadMessageTimestamp
• JMS_HITACHI_DeadMessageCause
• JMS_HITACHI_DeadMessageOriginalQueueName
次のコンフィグレーションプロパティの説明を変更した。
• RMSHConnectFlag プロパティ
• RMTRConnectFlag プロパティ
次のコマンドを追加した。
• hrmlsdmsg(デッドメッセージの参照)
• hrmregdmsg(デッドメッセージの再登録)
追加・変更内容
JMSXGroupSeq では,リテラルに 0 以上の整数値を指定する旨の注意事項を追加した。
次の DB Connector を使用できるようにした。
• DABroker 対応の DB Connector
• HiRDB Type4 JDBC ドライバ対応の DB Connector
• Oracle JDBC Thin ドライバ対応の DB Connector
これに伴い,障害コード HRM-00409 の説明を変更した。
Oracle を使用する場合の接続ユーザに付与する権限として,ロール権限を追加した。
各 DB で使用する言語モードは,Cosminexus DABroker Library や DB Connector などの上位のソフト
ウェアの言語モードと合わせる旨の注意事項を追加した。
Cosminexus RM 01-02 への移行方法を追加した。
実行状態,管理状態,または開始中状態から閉塞状態に移行する旨の説明を追加した。また,閉塞状態
での各コマンドの実行可否を追加した。
管理情報テーブルの一覧(データ型および列数の詳細)を追加した。
receive() 発行時に該当キュー内にメッセージがなかった場合の説明を追加した。
次のメソッドに Cosminexus RM のバージョン・リビジョンに応じて,戻り値が異なる旨の説明を追加
した。
• getProviderMajorVersion メソッド
• getProviderMinorVersion メソッド
• getProviderVersion メソッド
障害コード HRM-00911 を削除した。
次のメッセージを追加した。
KFRM01020-I,KFRM13025-I,KFRM13026-I,KFRM13027-I,KFRM13028-W,KFRM20078-I,
KFRM20079-I,KFRM20080-I,KFRM20081-W,KFRM20082-E,KFRM20083-E,KFRM20084-E,
KFRM20085-E,KFRM20086-E,KFRM20087-E,KFRM20088-E,KFRM20089-E,
KFRM20090-E,KFRM20091-E,KFRM20094-W,KFRM40012-I
次のメッセージを削除した。
KFRM13002-I,KFRM13003-I,KFRM13014-I,KFRM40002-I
次のメッセージを変更した。
KFRM01803-W,KFRM14016-E,KFRM14022-E,KFRM20012-E
はじめに
このマニュアルは Cosminexus(コズミネクサス)のシステム内で,複数のアプリケーションを
メッセージの非同期通信によって連携させる仕組みを説明したものです。
このマニュアルは次のプログラムプロダクトについて説明しています。
• P-2441-6A24 Cosminexus Reliable Messaging
• P-1M41-6A21 Cosminexus Reliable Messaging
• P-1J41-6A21 Cosminexus Reliable Messaging
• P-9S41-6A21 Cosminexus Reliable Messaging
• P-9V41-6A21 Cosminexus Reliable Messaging
Cosminexus Reliable Messaging は,Cosminexus のシステム中で,メッセージキューを管理し
ます。
■対象読者
このマニュアルは,Cosminexus のシステムを構築する方およびシステム管理者を対象としてい
ます。
次の内容を理解されていることを前提としています。
• OS(Windows または UNIX)のシステム構築および運用に関する知識
• JMS インタフェースでのプログラミングの知識
• J2EE に関する知識
• リレーショナルデータベースに関する基本的な知識
■マニュアルの構成
このマニュアルは,次に示す章と付録から構成されています。
第 1 章 概要
Cosminexus Reliable Messaging の概要,必要な前提製品およびシステムの形態について説明し
ています。
第 2 章 機能
JMS の PTP メッセージングモデルの概要を示したあとで,各要素の機能について説明していま
す。また,DB Connector for Cosminexus RM の機能について説明しています。
第 3 章 システム構築
Cosminexus Reliable Messaging のシステムを構築する手順について説明しています。
第 4 章 Cosminexus RM(永続版リソースアダプタ)の運用
永続版リソースアダプタを使用する場合の,Cosminexus Reliable Messaging およびアプリケー
ションの開始と停止,管理情報テーブルを保存した DB の運用などについて説明しています。
第 5 章 Cosminexus RM(非永続版リソースアダプタ)の運用
非永続版リソースアダプタを使用する場合の,Cosminexus Reliable Messaging およびアプリ
I
はじめに
ケーションの開始と停止,ローカルキューの運用などについて説明しています。
第 6 章 コンフィグレーションプロパティ
Cosminexus Reliable Messaging および DB Connector for Cosminexus RM のコンフィグレー
ションプロパティの詳細について説明しています。
第 7 章 インタフェース
Cosminexus Reliable Messaging が提供するインタフェースの種類,クラスおよびメソッドの詳
細およびアプリケーションの障害時に設定される障害コードについて説明しています。
第 8 章 コマンドリファレンス
Cosminexus Reliable Messaging が提供するコマンドについて説明しています。
第 9 章 障害対策
メッセージログとトレースの種類,場所,形式およびメッセージ内容について説明しています。
付録 A JMS 仕様との差異
Cosminexus Reliable Messaging の JMS インタフェースの機能について,Sun Microsystems,
Inc. が提供する JMS Version 1.0.2b との機能差を説明しています。
付録 B WS-Reliability サポート一覧
Cosminexus Reliable Messaging の転送キュー機能の前提となる WS-Reliability プロトコルのサ
ポート範囲について説明しています。
付録 C サンプルアプリケーション
Cosminexus Reliable Messaging が提供するサンプルアプリケーションの処理の流れおよび
Cosminexus Component Container で実行する手順について説明しています。また,サンプルア
プリケーション(SessionBean1)を動作させるための環境構築のサンプル手順について説明して
います。
付録 D PRF トレース取得時のイベント ID
Cosminexus Reliable Messaging では,各処理の入口と出口で PRF トレースを取得します。各処
理でのイベント ID,PRF トレースの出力ポイント,およびトレースの取得レベルについて説明し
ています。
付録 E Cosminexus RM のメモリ所要量とディスク占有量
Cosminexus Reliable Messaging 使用時のメモリ所要量およびインストール時のディスク占有量
について説明しています。
付録 F HiRDB の見積もり
HiRDB の排他資源と同時アクセス可能実表数の見積もりについて説明しています。
付録 G コネクションプールの見積もり
コネクションプールに確保する最大コネクション数の見積もりについて説明しています。
付録 H 旧バージョンからの移行
uCosminexus Reliable Messaging 01-00,Cosminexus Reliable Messaging 01-01,および
Cosminexus Reliable Messaging 01-02 から Cosminexus Reliable Messaging 01-03 へ移行すると
II
はじめに
きの手順について説明しています。
付録 I 用語解説
Cosminexus Reliable Messaging で使用する用語について説明しています。
■関連マニュアル
このマニュアルでは,関連するマニュアルについて,対象 OS およびバージョン番号を省略して
表記しています。マニュアルの正式名称とこのマニュアルでの表記を次の表に示します。
正式名称
このマニュアルでの表記
Cosminexus 機能解説
(3020-3-M03)
Cosminexus 機能解説
Cosminexus システム構築ガイド
(3020-3-M06)
Cosminexus システム構築ガイド
Cosminexus システム運用ガイド
(3020-3-M07)
Cosminexus システム運用ガイド
Cosminexus アプリケーション設定操作ガイド
(3020-3-M08)
Cosminexus アプリケーション設定操作ガイド
Cosminexus 運用管理操作ガイド
(3020-3-M09)
Cosminexus 運用管理操作ガイド
Cosminexus リファレンス コマンド編
(3020-3-M10)
Cosminexus リファレンス コマンド編
Cosminexus リファレンス 定義編
(3020-3-M11)
Cosminexus リファレンス 定義編
TPBroker ユーザーズガイド
(3020-3-M16)
TPBroker ユーザーズガイド
Cosminexus アプリケーション開発ガイド
(3020-3-M41)
Cosminexus アプリケーション開発ガイド
Cosminexus リファレンス API 編
(3020-3-M42)
Cosminexus リファレンス API 編
Cosminexus SOAP アプリケーション開発ガイド
(3020-3-M47)
Cosminexus SOAP アプリケーション開発ガイド
スケーラブルデータベースサーバ HiRDB Version 8
システム導入・設計ガイド(UNIX(R) 用)
(3000-6-352)
HiRDB システム導入・設計ガイド
スケーラブルデータベースサーバ HiRDB Version 8
システム導入・設計ガイド(Windows(R) 用)
(3020-6-352)
スケーラブルデータベースサーバ HiRDB Version 8
システム定義(UNIX(R) 用)
(3000-6-353)
HiRDB システム定義
III
はじめに
正式名称
このマニュアルでの表記
スケーラブルデータベースサーバ HiRDB Version 8
システム定義(Windows(R) 用)
(3020-6-353)
スケーラブルデータベースサーバ HiRDB Version 8
システム運用ガイド(UNIX(R) 用)
(3000-6-354)
HiRDB システム運用ガイド
スケーラブルデータベースサーバ HiRDB Version 8
システム運用ガイド(Windows(R) 用)
(3020-6-354)
スケーラブルデータベースサーバ HiRDB Version 8
コマンドリファレンス(UNIX(R) 用)
(3000-6-355)
HiRDB コマンドリファレンス
スケーラブルデータベースサーバ HiRDB Version 8
コマンドリファレンス(Windows(R) 用)
(3020-6-355)
スケーラブルデータベースサーバ HiRDB Version 8
UAP 開発ガイド
(3020-6-356)
HiRDB UAP 開発ガイド
スケーラブルデータベースサーバ HiRDB Version 8
SQL リファレンス
(3020-6-357)
HiRDB SQL リファレンス
■このマニュアルでの表記
このマニュアルで使用する製品名称の略称を次に示します。
名称
AIX 5L V5.2
略称
AIX
AIX 5L V5.3
Cosminexus Reliable Messaging
Cosminexus RM
DB Connector for Cosminexus Reliable Messaging
DB Connector for Cosminexus RM
HP-UX 11i V2(IPF)
HP-UX
HP-UX 11i V3(IPF)
Itanium(R) Processor Family
IPF
JavaTM
Java
Red Hat Enterprise Linux AS 3(AMD64 & Intel
EM64T)
Linux
Red Hat Enterprise Linux AS 3(IPF)
Red Hat Enterprise Linux AS 3(x86)
Red Hat Enterprise Linux AS 4(AMD64 & Intel
EM64T)
IV
はじめに
名称
略称
Red Hat Enterprise Linux AS 4(IPF)
Red Hat Enterprise Linux AS 4(x86)
Red Hat Enterprise Linux ES 3(AMD64 & Intel
EM64T)
Red Hat Enterprise Linux ES 3(x86)
Red Hat Enterprise Linux ES 4(AMD64 & Intel
EM64T)
Red Hat Enterprise Linux ES 4(x86)
ORACLE(R) Oracle9i(TM)
Oracle
ORACLE(R) Oracle 10g(TM)
uCosminexus TP1/Server Base Enterprise Option
TP1/Server Base
Enterprise Option
Microsoft(R) Windows Server(TM) 2003,Enterprise
Edition Operating System(x86)
Windows Server 2003
TP1/EE
Microsoft(R) Windows Server(TM) 2003,Enterprise
x64 Edition Operating System
Microsoft(R) Windows Server(TM) 2003,Standard
Edition Operating System(x86)
Microsoft(R) Windows Server(TM) 2003,Standard
x64 Edition Operating System
Microsoft(R) Windows Server(TM) 2003 R2
Enterprise Edition Operating System(x86)
Microsoft(R) Windows Server(TM) 2003 R2 Standard
Edition Operating System(x86)
Microsoft(R) Windows Server(TM) 2003 R2,
Enterprise x64 Edition Operating System
Microsoft(R) Windows Server(TM) 2003 R2,
Standard x64 Edition Operating System
Microsoft(R) Windows Vista(TM) Business
Windows Vista
Microsoft(R) Windows Vista(TM) Enterprise
Microsoft(R) Windows Vista(TM) Ultimate
Microsoft(R) Windows(R) XP Professional Operating
System
Windows XP
• Windows Server 2003,Windows XP,および Windows Vista とで機能差がない場合,
Windows と表記しています。
• AIX,HP-UX,および Linux を合わせて UNIX と表記しています。
V
はじめに
■略語一覧
このマニュアルで使用する英略語の一覧を次に示します。
英略語
英字での表記
API
Application Programming Interface
DB
Database
DBMS
Database Management System
EJB
Enterprise JavaBeansTM
FIFO
First-In First-Out
HTML
HyperText Markup Language
HTTP
HyperText Transfer Protocol
IIS
Internet Information Services
J2EE
JavaTM 2 Platform, Enterprise Edition
JCA
J2EE Connector Architecture
JDBC
Java DataBase Connectivity
JMS
JavaTM Message Service
JNDI
Java Naming and Directory InterfaceTM
JSP
JavaServer PagesTM
JTA
JavaTM Transaction API
NTP
Network Time Protocol
OASIS
Organization for the Advancement of Structured Information Standards
OS
Operating System
PTP
Point-to-Point
QoS
Quality of Service
RAC
Real Application Clusters
SOAP
Simple Object Access Protocol
SSL
Secure Socket Layer
UAP
User Application Program
UCS
Universal multi-octet coded Character Set
UTC
Coordinated Universal Time
UTF-8
8-bit UCS Transformation Format
VM
Virtual Machine
■操作方法の説明で使用する記号
このマニュアルでは,次に示す記号を使用して操作方法を説明しています。
VI
はじめに
記号
[ ]
意味
メニュー,コマンド,ダイアログの名称およびボタンを示します。
■図中で使用する記号
このマニュアルの図中で使用する記号を,次のように定義します。
■文法の記号
このマニュアルで使用する各種の記号を説明します。
属性表示記号
ユーザ指定値の範囲などを説明する記号です。
属性表示記号
意味
∼
この記号のあとにユーザ指定値の属性を示します。
《 》
ユーザが指定を省略したときの解釈値を示します。
< >
ユーザ指定値の構文要素を示します。
(( ))
ユーザ指定値の指定範囲を示します。
構文要素記号
ユーザ指定値の内容を説明する記号です。
構文要素記号
意味
<英字>
半角のアルファベット(A ∼ Z,a ∼ z)
<数字>
半角の数字(0 ∼ 9)
<英数字>
英字と数字
VII
はじめに
構文要素記号
意味
<識別子>
先頭が英字の英数字列と_(アンダスコア)
<文字列>
任意の文字の配列(ただし,2 バイト文字は除く)
文法記述記号
記述形式を説明する記号です。
文法記述記号
〔 〕
{ }
|
(ストローク)
< >
意味
この記号で囲まれている項目は省略してもよいことを示します。
(例)
〔-l 最大メッセージ長〕
-l オプションとそのオペランドを指定するか,何も指定しないことを示します。
この記号で囲まれている複数の項目のうちから一つを選択することを示します。
(例)
{local | shr_receive}
local と shr_receive のうち,どちらかを指定することを示します。
この記号で区切られた項目は選択できることを示します。
(例)
{local | shr_receive}
local と shr_receive のうち,どちらかを指定することを示します。
この記号で囲まれている項目はユーザの環境によって異なることを表します。
(例)
<HiRDB サーバのホスト名または IP アドレス >
ユーザの環境で使用している HiRDB サーバのホスト名または IP アドレスを指
定することを示します。
■適用 OS の違いによる機能相違点の表記
このマニュアルは,AIX,HP-UX,Linux,および Windows に適用します。OS によって記述
を書き分ける場合,次に示す表記を使用して,それぞれの説明に OS 名を明記しています。
表記
意味
AIX の場合
AIX に該当する表記です。
HP-UX の場合
HP-UX に該当する表記です。
Linux の場合
Linux に該当する表記です。
UNIX の場合
UNIX(AIX,HP-UX,Linux)に該当する表記です。
Windows の場合
Windows(Windows Server 2003,Windows XP,Windows Vista)に該当する表
記です。
■このマニュアルで使用するディレクトリ名
このマニュアルでは,原則として Windows の表記を使用しています。UNIX の場合は,環境変
数の頭に「$」を付加し,ディレクトリセパレータを「/」で読み替えてください。読み替えの例
を次の表に示します。
VIII
はじめに
Windows の場合
%HRMDIR%¥sql
UNIX の場合
$HRMDIR/sql
■リソースアダプタの違いによる機能相違点の表記
このマニュアルの対象製品は,永続版リソースアダプタと非永続版リソースアダプタの 2 種類
のリソースアダプタを提供します。リソースアダプタによって記述を書き分ける場合,次に示
す表記を使用して,それぞれの説明にリソースアダプタの種別を明記しています。
表記
意味
永続版リソースア
ダプタの場合
永続版リソースアダプタに該当する表記です。
非永続版リソース
アダプタの場合
非永続版リソースアダプタに該当する表記です。
■このマニュアルで使用している記号
!
注意事項
間違いやすい点や注意しなければならない点などについて説明しています。
参考
補足的な情報を説明しています。
■常用漢字以外の漢字の使用について
このマニュアルでは,常用漢字を使用することを基本としていますが,次に示す用語について
は,常用漢字以外の漢字を使用しています。
個所(かしょ) 同梱(どうこん)
必須(ひっす) 閉塞(へいそく)
■ KB(キロバイト)などの単位表記について
1KB(キロバイト),1MB(メガバイト),1GB(ギガバイト)
,1TB(テラバイト)はそれぞれ
1,024 バイト,1,0242 バイト,1,0243 バイト,1,0244 バイトです。
IX
目次
1
概要
1
1.1 Cosminexus RM の概要
2
1.2 ソフトウェア構成
5
1.3 システム形態
9
1.3.1 単一システムでのアプリケーション連携
1.3.2 複数システム間でのアプリケーション連携
10
1.3.3 複数システムのキュー間でメッセージを転送するアプリケーション連携
11
1.3.4 DB サーバの共有
12
1.4 システム構築・運用の流れとマニュアルの参照先
2
9
18
1.4.1 システム構築・運用の流れとマニュアルでの説明個所の対応
18
1.4.2 Cosminexus RM の機能とマニュアルでの説明個所の対応
20
機能
25
2.1 メッセージングモデル
26
2.1.1 PTP メッセージングモデル
2.2 キューの種類
26
27
2.2.1 ローカルキュー
27
2.2.2 転送キュー
29
2.2.3 受信用共用キュー
30
2.2.4 送信用共用キュー
32
2.2.5 デッドメッセージキュー
34
2.3 メッセージの管理
38
2.3.1 キューの永続性
38
2.3.2 メッセージ取り出しモード
39
2.3.3 メッセージの受け渡し
41
2.3.4 メッセージの削除
44
2.3.5 メッセージの有効期間
47
2.4 メッセージのキュー間転送
48
2.4.1 キュー間転送の概要
48
2.4.2 キュー間転送のあて先指定
49
2.4.3 キュー間転送の通信モデル
51
2.4.4 キュー間転送の QoS
52
2.4.5 メッセージの再送
55
i
目次
2.4.6 キュー間転送の互換通信
55
2.4.7 キュー間転送の障害時の動作
57
2.4.8 キュー間転送の注意事項
58
2.4.9 SOAP プロトコル
59
2.5 メッセージの構成
2.5.1 JMS メッセージの構成
61
2.5.2 メッセージ要素のアクセスモード
73
2.5.3 メッセージとキューの関係
75
2.5.4 メッセージサイズを見積もる方法
76
2.6 アプリケーションからのメッセージ操作
78
2.6.2 メッセージセレクタ
78
2.6.3 Message-driven Bean との連携
80
2.6.4 共用キューでのメッセージ受信時の処理の流れ
80
2.6.5 DB アクセス時の認証
82
2.6.6 トランザクション制御
83
2.6.7 アプリケーション作成時の注意事項
87
92
2.7.1 Cosminexus RM と DB Connector for Cosminexus RM の関係
92
2.7.2 DB Connector for Cosminexus RM の機能一覧
94
2.7.3 DB Connector for Cosminexus RM 連携時のコネクションと SQL の運用
95
2.7.4 DB Connector for Cosminexus RM 連携時の注意事項
98
システム構築
3.1 システム構築の流れ
3.2 Cosminexus RM のインストール
99
100
103
3.2.1 前提製品のインストール
103
3.2.2 Cosminexus RM をインストールすると格納されるファイル
104
3.3 システム構築の準備
107
3.3.1 Cosminexus RM のシステム名の決定
107
3.3.2 環境変数の設定
107
3.4 Cosminexus RM のシステム構築(永続版リソースアダプタの場合)
ii
78
2.6.1 メッセージの受信制御
2.7 DB Connector for Cosminexus RM の機能
3
61
109
3.4.1 DBMS の設定(HiRDB を使用する場合)
109
3.4.2 DBMS の設定(Oracle を使用する場合)
117
3.4.3 J2EE サーバ(Cosminexus)の設定
118
3.4.4 キュー定義ファイルの作成(永続版リソースアダプタの場合)
118
目次
3.4.5 Cosminexus RM のプロパティ定義(永続版リソースアダプタの場合)
120
3.4.6 DB Connector for Cosminexus RM の選択
123
3.4.7 DB Connector for Cosminexus RM の前提製品の設定
125
3.4.8 DB Connector for Cosminexus RM のプロパティ定義
127
3.4.9 DB Connector for Cosminexus RM と Cosminexus RM のインポート
138
3.4.10 DB Connector for Cosminexus RM と Cosminexus RM のプロパティ設定
139
3.4.11 DB Connector for Cosminexus RM と Cosminexus RM のデプロイ
139
3.4.12 Cosminexus RM の運用前の準備(永続版リソースアダプタの場合)
140
3.4.13 キュー間転送を使用する場合の設定
143
3.5 Cosminexus RM のシステム構築(非永続版リソースアダプタの場合)
146
3.5.1 キュー作成ファイルの作成
146
3.5.2 キュー定義ファイルの作成(非永続版リソースアダプタの場合)
148
3.5.3 Cosminexus RM のプロパティ定義(非永続版リソースアダプタの場合)
150
3.5.4 Cosminexus RM のインポート
152
3.5.5 Cosminexus RM のプロパティ設定
153
3.5.6 Cosminexus RM のデプロイ
153
3.5.7 Cosminexus RM の運用前の準備(非永続版リソースアダプタの場合)
154
3.6 システム構築時の注意事項
156
3.6.1 DBMS の設定をする場合
156
3.6.2 複数デプロイをする場合
156
3.6.3 ObjectMessage のペイロードにユーザが定義したクラスのオブジェクトを格納する
場合
158
4
3.6.4 同一サーバ上で Cosminexus RM を複数デプロイする場合
158
3.6.5 PRF トレースファイルを利用する場合
158
Cosminexus RM(永続版リソースアダプタ)の運用
161
4.1 Cosminexus RM とアプリケーションの開始と停止(永続版リソースアダプタの
場合)
162
4.1.1 Cosminexus RM の開始(永続版リソースアダプタの場合)
162
4.1.2 アプリケーションの開始(永続版リソースアダプタの場合)
163
4.1.3 Cosminexus RM の停止(永続版リソースアダプタの場合)
164
4.1.4 Cosminexus RM の状態遷移(永続版リソースアダプタの場合)
164
4.2 キューの運用(永続版リソースアダプタの場合)
168
4.2.1 ローカルキューによるシステム内アプリケーション間連携
168
4.2.2 共用キューによるシステム間連携
168
4.2.3 キュー間転送によるシステム間連携
170
4.2.4 デッドメッセージキューによるデッドメッセージの再登録
171
iii
目次
4.2.5 キューの状態遷移(永続版リソースアダプタの場合)
4.3 DB の運用
178
4.3.1 管理情報テーブルの移行
178
4.3.2 管理情報テーブルの削除
179
4.3.3 接続ユーザ名の変更
181
4.3.4 DB のバックアップ
184
4.3.5 RD エリアの容量の確保
184
4.3.6 管理情報テーブルの一覧
184
4.3.7 アプリケーション認証による DB アクセス設定
189
4.4 PRF トレースファイルの運用(永続版リソースアダプタの場合)
191
4.4.1 PRF トレースファイルの運用方法
191
4.4.2 PRF トレースファイルの取得レベル
191
4.4.3 PRF トレースファイルの編集
191
4.5 Cosminexus RM 運用時の注意事項(永続版リソースアダプタの場合)
5
174
193
4.5.1 Windows Vista 使用時の注意事項
193
4.5.2 永続版リソースアダプタと非永続版リソースアダプタを切り替える場合の
注意事項
194
4.5.3 Cosminexus RM が動作するマシンの時刻設定の注意事項
195
Cosminexus RM(非永続版リソースアダプタ)の運用
197
5.1 Cosminexus RM とアプリケーションの開始と停止(非永続版リソースアダプタの
場合)
198
5.1.1 Cosminexus RM の開始(非永続版リソースアダプタの場合)
198
5.1.2 アプリケーションの開始(非永続版リソースアダプタの場合)
199
5.1.3 Cosminexus RM の停止(非永続版リソースアダプタの場合)
199
5.1.4 Cosminexus RM の状態遷移(非永続版リソースアダプタの場合)
200
5.2 ローカルキューの運用(非永続版リソースアダプタの場合)
iv
202
5.2.1 ローカルキューの操作方法
202
5.2.2 ローカルキューの状態遷移(非永続版リソースアダプタの場合)
202
5.3 PRF トレースファイルの運用(非永続版リソースアダプタの場合)
204
5.4 Cosminexus RM 運用時の注意事項(非永続版リソースアダプタの場合)
205
5.4.1 Windows Vista 使用時の注意事項
205
5.4.2 永続版リソースアダプタと非永続版リソースアダプタを切り替える場合の
注意事項
206
5.4.3 Cosminexus RM が動作するマシンの時刻設定の注意事項
207
目次
6
コンフィグレーションプロパティ
209
6.1 Cosminexus RM のコンフィグレーションプロパティの一覧
210
6.2 Cosminexus RM のコンフィグレーションプロパティの詳細説明
213
6.3 DB Connector for Cosminexus RM のコンフィグレーションプロパティの一覧 225
7
インタフェース
7.1 インタフェースの種類
249
250
7.1.1 Cosminexus RM が提供するインターフェースの種類
250
7.1.2 非永続版リソースアダプタ使用時の注意事項
250
7.2 JMS インタフェースの一覧
251
7.3 JMS インタフェース継承図
254
7.4 JMS インタフェースの詳細
256
7.4.1 BytesMessage インタフェース
256
7.4.2 ConnectionMetaData インタフェース
272
7.4.3 DeliveryMode インタフェース
277
7.4.4 Message インタフェース
278
7.4.5 ObjectMessage インタフェース
306
7.4.6 Queue(Destination)インタフェース
309
7.4.7 QueueBrowser インタフェース
311
7.4.8 QueueConnection(Connection)インタフェース
315
7.4.9 QueueConnectionFactory(ConnectionFactory)インタフェース
322
7.4.10 QueueReceiver(MessageConsumer)インタフェース
324
7.4.11 QueueSender(MessageProducer)インタフェース
330
7.4.12 QueueSession(Session)インタフェース
340
7.4.13 TextMessage インタフェース
356
7.5 転送データ相互接続用インタフェースの一覧
358
7.6 転送データ相互接続用インタフェース継承図
360
7.7 転送データ相互接続用インタフェースの使い方
361
7.8 転送データ相互接続用インタフェースの詳細
365
7.8.1 BytesContainerFactory インタフェース
365
7.8.2 BytesContainer インタフェース
366
7.8.3 HRMException クラス
375
7.8.4 HRMIllegalArgumentException クラス
377
7.9 障害コードの詳細
378
v
目次
8
コマンドリファレンス
8.1 コマンドの概要
vi
389
390
8.1.1 コマンド実行の前提条件
390
8.1.2 コマンドの有効範囲
390
8.1.3 コマンドの同時実行
390
8.1.4 システム名の設定
390
8.1.5 コマンドの記述形式
391
8.1.6 リクエストタイムアウト値の変更
392
8.1.7 コマンド実行時に出力されるログ
393
8.1.8 UNIX でコマンドを実行する場合の注意事項
393
8.2 コマンドの一覧
394
8.3 コマンドの詳細
396
8.3.1 hrmchgaddr(あて先変更)
396
8.3.2 hrmchgque(ローカルキューの属性変更)
398
8.3.3 hrmchgque(受信用共用キューの属性変更)
401
8.3.4 hrmchgque(送信用共用キューの属性変更)
403
8.3.5 hrmchgque(転送キューの属性変更)
405
8.3.6 hrmdeladdr(あて先削除)
408
8.3.7 hrmdelmsg(メッセージの削除)
409
8.3.8 hrmdelque(キューの削除)
412
8.3.9 hrmlsaddr(あて先表示)
414
8.3.10 hrmlsdmsg(デッドメッセージの参照)
416
8.3.11 hrmlsmsg(メッセージの表示)
420
8.3.12 hrmlsque(キュー情報の表示)
426
8.3.13 hrmlsstat(システム状態の表示)
433
8.3.14 hrmlstrn(トランザクション状態の表示)
434
8.3.15 hrmlstrs(通信状態表示)
436
8.3.16 hrmmkaddr(あて先登録)
440
8.3.17 hrmmkque(ローカルキューの作成)
442
8.3.18 hrmmkque(受信用共用キューの作成)
446
8.3.19 hrmmkque(送信用共用キューの作成)
449
8.3.20 hrmmkque(転送キューの作成)
452
8.3.21 hrmregdmsg(デッドメッセージの再登録)
456
8.3.22 hrmskipmsg(受信待ちメッセージのスキップ)
458
8.3.23 hrmstart(実行状態への移行)
460
8.3.24 hrmstartque(キューの抑止解除)
461
目次
9
8.3.25 hrmstarttrs(送受信抑止解除)
463
8.3.26 hrmstop(管理状態への移行)
464
8.3.27 hrmstopque(キューの抑止)
465
8.3.28 hrmstoptrs(送受信抑止)
468
障害対策
469
9.1 障害時の出力情報
470
9.1.1 開始停止メッセージログ
471
9.1.2 Cosminexus 用メッセージログ
472
9.1.3 メソッドトレース
474
9.1.4 共用キューイベントトレース
478
9.1.5 回線トレース
480
9.1.6 PRF トレース
483
9.2 キューの障害
492
9.3 メッセージの形式
494
9.4 メッセージの詳細
496
付録
573
付録 A JMS 仕様との差異
574
付録 A.1 インタフェースの機能差
574
付録 A.2 クラスの機能差
576
付録 A.3 メソッドの機能差
576
付録 B WS-Reliability サポート一覧
586
付録 B.1 通信仕様
586
付録 B.2 QoS
586
付録 B.3 リプライパターン
587
付録 B.4 グループ
587
付録 B.5 WS-Reliability のヘッダ要素
589
付録 B.6 SOAP アタッチメント
594
付録 B.7 Cosminexus RM が返信するフォルトコード一覧
596
付録 C サンプルアプリケーション
599
付録 C.1 環境構築のサンプル手順
599
付録 C.2 SessionBean1 の処理の流れ
606
付録 C.3 SessionBean1 の実行手順(永続版リソースアダプタの場合)
607
付録 C.4 SessionBean1 の実行手順(非永続版リソースアダプタの場合)
609
vii
目次
付録 C.5 SessionBean2 の処理の流れ(永続版リソースアダプタの場合)
610
付録 C.6 SessionBean2 の実行手順(永続版リソースアダプタの場合)
613
付録 D PRF トレース取得時のイベント ID
617
付録 D.1 永続版リソースアダプタの場合
617
付録 D.2 非永続版リソースアダプタの場合
620
付録 E Cosminexus RM のメモリ所要量とディスク占有量
付録 E.1 メモリ所要量
624
付録 E.2 ディスク占有量
627
付録 F HiRDB の見積もり
628
付録 F.2 同時アクセス可能実表数の見積もり
631
632
付録 G.1 アプリケーションが消費するコネクション数
632
付録 G.2 Cosminexus RM が消費するコネクション数
634
付録 H 旧バージョンからの移行
635
付録 H.1 uCosminexus Reliable Messaging 01-00 からの移行
635
付録 H.2 Cosminexus RM 01-01 からの移行
636
付録 H.3 Cosminexus RM 01-02 からの移行
636
付録 H.4 共用キューのバージョンアップ
637
付録 H.5 移行時の注意事項
638
付録 I 用語解説
viii
628
付録 F.1 HiRDB の排他資源の見積もり
付録 G コネクションプールの見積もり
索引
624
639
645
目次
図目次
図 1-1 永続版リソースアダプタの概要
2
図 1-2 非永続版リソースアダプタの概要
4
図 1-3 永続版リソースアダプタを使用する場合のシステムのソフトウェア構成
5
図 1-4 非永続版リソースアダプタを使用する場合のシステムのソフトウェア構成
6
図 1-5 単一システムでのアプリケーション連携(永続版リソースアダプタの場合)
9
図 1-6 単一システムでのアプリケーション連携(非永続版リソースアダプタ場合)
10
図 1-7 複数システム間でのアプリケーション連携
11
図 1-8 複数システムのキュー間でメッセージを転送するアプリケーション連携
12
図 1-9 DB サーバの共有
13
図 1-10 Cosminexus RM と管理情報テーブルの対応
14
図 1-11 リソースアダプタの DB 共有(J2EE サーバが一つの場合)
15
図 1-12 リソースアダプタの DB 共有(J2EE サーバが複数の場合)
17
図 1-13 システム構築・運用の流れとマニュアルでの説明個所の対応
19
図 2-1 PTP メッセージングモデルの概要
26
図 2-2 ローカルキューの概要(永続版リソースアダプタの場合)
28
図 2-3 ローカルキューの概要(非永続版リソースアダプタの場合)
29
図 2-4 転送キューの概要
30
図 2-5 受信用共用キューの概要
31
図 2-6 送信用共用キューの概要
33
図 2-7 デッドメッセージキューの概要
34
図 2-8 メッセージの転送中に通信の有効期限に達した場合の処理
36
図 2-9 電文不正などの障害でメッセージの受信に失敗した場合の処理
37
図 2-10 シリアル取り出し属性の概要
40
図 2-11 パラレル取り出し属性の概要
41
図 2-12 値渡し方式を利用したメッセージの受け渡しの概要
42
図 2-13 参照渡し方式を利用したメッセージの受け渡しの概要
43
図 2-14 参照渡し方式を利用した場合の動作
43
図 2-15 遅延削除を利用したメッセージの削除の概要
45
図 2-16 即時削除を利用したメッセージの削除の概要
46
図 2-17 転送キューによるキュー間転送の概要
49
図 2-18 転送キューによるキュー間転送のあて先指定の仕組み
50
図 2-19 配送保証の仕組み
53
図 2-20 順序保証の仕組み
54
ix
目次
図 2-21 Cosminexus RM のバージョンの違いによるメッセージの送受信の概要
56
図 2-22 キュー間転送の障害時の動作
58
図 2-23 SOAP メッセージの構成
60
図 2-24 JMS メッセージの構成
61
図 2-25 共用キューを使用して複数システム間でのアプリケーション連携をする場合の
受信処理の流れ
81
図 2-26 アプリケーションからのコネクション取得の概要
82
図 2-27 Cosminexus RM と DB Connector for Cosminexus RM の関係
92
図 3-1 Cosminexus RM のシステム構築の流れ
100
図 3-2 共用キューを使用して複数システム間でのアプリケーション連携をする場合の管理情報
テーブル
156
図 3-3 J2EE 環境での複数デプロイの例
157
図 3-4 J2EE 環境でのキュー間転送用 Web アプリケーションとリソースアダプタの関連
づけ
158
図 4-1 Cosminexus RM の状態遷移
165
図 4-2 キュー間転送用 Web アプリケーションの状態遷移
167
図 4-3 デッドメッセージの再登録
172
図 4-4 送信側・受信側システムのデッドメッセージキューに,同じメッセージが格納される
場合
174
図 4-5 キューの状態遷移
175
図 5-1 非永続版リソースアダプタを使用する場合の Cosminexus RM の状態遷移
201
図 5-2 キューの状態遷移
203
図 7-1 JMS インタフェースの継承
254
図 7-2 例外クラスの継承
255
図 7-3 転送データ相互接続用例外クラスの継承
360
図 7-4 Cosminexus RM 同士の通信での BytesContainer 使用方法の概要
362
図 7-5 Cosminexus RM が送信側の場合の他システムとの通信
363
図 7-6 Cosminexus RM が受信側の場合の他システムとの通信
364
図 7-7 BytesContainer インタフェースの構成
366
図 9-1 開始停止メッセージログの出力形式
471
図 9-2 Cosminexus 用メッセージログの出力形式
473
図 9-3 メソッドトレースの出力形式
475
図 9-4 スタックトレースの出力例
477
図 9-5 共用キューイベントトレースの出力形式
479
図 9-6 不正イベントトレース出力時の共用キューイベントトレースの出力形式
480
図 9-7 回線トレースの出力形式
481
x
目次
図 9-8 電文情報の出力範囲と出力レベル
483
図 B-1 MIME パートを含む SOAP メッセージの構成
595
図 C-1 前提となるマシンとソフトウェア構成
600
図 C-2 サンプルアプリケーション(SessionBean1)の処理の流れ
607
図 C-3 サンプルアプリケーション(SessionBean2)のシステム構成
611
図 C-4 送信用サンプルアプリケーション(SessionBean2Send)の処理の流れ
612
図 C-5 受信用サンプルアプリケーション(SessionBean2Receive)の処理の流れ
613
xi
目次
表目次
表 1-1 Cosminexus RM の機能とマニュアルでの説明個所の対応
20
表 2-1 キューに指定できる永続性
38
表 2-2 キューの種類と利用できる削除方法
46
表 2-3 メッセージの再送の間隔を指定するプロパティ
55
表 2-4 送受信できる Cosminexus RM のバージョン
57
表 2-5 Cosminexus RM の SOAP メッセージ使用方法
59
表 2-6 ヘッダの一覧
61
表 2-7 ヘッダの設定タイミングと取得タイミング
63
表 2-8 ObjectMessage(ペイロードに BytesContainer を含む)を送受信した場合のヘッダの
設定タイミングと取得タイミング
64
表 2-9 JMS 定義のプロパティの一覧
66
表 2-10 JMS 定義のプロパティの設定タイミングと取得タイミング
67
表 2-11 ObjectMessage(ペイロードに BytesContainer を含む)を送受信した場合の JMS 定義
のプロパティの設定タイミングと取得タイミング
68
表 2-12 Cosminexus RM 固有のプロパティの一覧
69
表 2-13 デッドメッセージキューに移動された原因を示す文字列
69
表 2-14 Cosminexus RM 固有のプロパティの設定タイミングと取得タイミング
70
表 2-15 プロパティの型変換
71
表 2-16 メッセージインタフェースのペイロード
71
表 2-17 メッセージ要素とアクセスモードの関係
73
表 2-18 メッセージ生成時のメッセージ要素のアクセスモード
74
表 2-19 メッセージ受信時のメッセージ要素のアクセスモード
74
表 2-20 アクセスモードが移行するタイミング
75
表 2-21 メッセージインタフェースと格納できるキューの種類
75
表 2-22 トランザクションマネジャによってトランザクションが制御されていない場合の
send() メソッドの動作
84
表 2-23 トランザクションマネジャによってトランザクションが制御されていない場合の
receive() および receiveNoWait() メソッドの動作
86
表 2-24 トランザクションマネジャによってトランザクションが制御されている場合の
receive() および receiveNoWait() メソッドの動作
87
表 2-25 JMS メッセージのメソッドの呼び出し可否
90
表 2-26 DB Connector for Cosminexus RM の状態と Cosminexus RM の開始または停止の
関係
93
表 2-27 Cosminexus RM の状態と DB Connector for Cosminexus RM の開始または停止の
関係
93
xii
目次
表 2-28 リソースアダプタの設定情報の分類
94
表 2-29 DB Connector for Cosminexus RM で使用できる DB Connector の機能
94
表 3-1 Cosminexus RM のインストール内容
104
表 3-2 Cosminexus RM が DB コネクションを使用するタイミングと使用するコネクションの
数
113
表 3-3 HiRDB のクライアント環境変数グループに登録する内容
115
表 3-4 Cosminexus RM のコンフィグレーションプロパティの設定例(永続版
リソースアダプタの場合)
122
表 3-5 指定する RAR ファイルの種類
124
表 3-6 各 DB Connector for Cosminexus RM 共通のコンフィグレーションプロパティ
130
表 3-7 DABroker 対応の DB Connector for Cosminexus RM の
コンフィグレーションプロパティ
130
表 3-8 HiRDB Type4 JDBC ドライバ対応の DB Connector for Cosminexus RM の
コンフィグレーションプロパティ
131
表 3-9 Oracle JDBC Thin ドライバ対応の DB Connector for Cosminexus RM の
コンフィグレーションプロパティ
131
表 3-10 データベースとして HiRDB を使用する場合
(DBConnector_DABJ_CP_Cosminexus_RM.rar の場合)
132
表 3-11 データベースとして HiRDB を使用する場合
(DBConnector_DABJ_XA_Cosminexus_RM.rar の場合)
133
表 3-12 データベースとして HiRDB を使用する場合
(DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar の場合)
134
表 3-13 データベースとして HiRDB を使用する場合
(DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar の場合)
135
表 3-14 データベースとして Oracle を使用する場合
(DBConnector_Oracle_CP_Cosminexus_RM.rar の場合)
137
表 3-15 データベースとして Oracle を使用する場合
(DBConnector_Oracle_XA_Cosminexus_RM.rar の場合)
137
表 3-16 クライアント定義ファイルで設定できるキー名称と値の一覧
144
表 3-17 サーバ定義ファイルで設定できるキー名称と値の一覧
144
表 3-18 Cosminexus RM のコンフィグレーションプロパティの設定例(非永続版
リソースアダプタの場合)
152
表 4-1 Cosminexus RM のバージョンと共用キューのバージョン
169
表 4-2 管理情報テーブルの一覧(テーブルの個数,列数,行数,名称規則)
184
表 4-3 管理情報テーブルの一覧(テーブルの可変長文字列数,データ長,データ型,キー名,
キー長)
186
表 4-4 管理情報テーブルの一覧(データ型および列数の詳細)
187
表 4-5 管理情報テーブルの作成方法
188
表 4-6 管理情報テーブルの削除方法
189
xiii
目次
表 4-7 アクセス権限の種類
190
表 6-1 Cosminexus RM のコンフィグレーションプロパティの一覧
210
表 6-2 Cosminexus RM を正常に開始完了できない環境で発生する現象
215
表 6-3 Cosminexus RM が開始処理に失敗しリトライするエラー要因
217
表 6-4 DBConnector_DABJ_CP_Cosminexus_RM.rar を使用する場合に指定できる
プロパティ
225
表 6-5 DBConnector_DABJ_XA_Cosminexus_RM.rar を使用する場合に指定できる
プロパティ
231
表 6-6 DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar を使用する場合に指定できる
プロパティ
238
表 6-7 DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar を使用する場合に指定できる
プロパティ
241
表 6-8 DBConnector_Oracle_CP_Cosminexus_RM.rar を使用する場合に指定できる
プロパティ
245
表 6-9 DBConnector_Oracle_XA_Cosminexus_RM.rar を使用する場合に指定できる
プロパティ
246
表 7-1 JMS インタフェースの一覧
251
表 7-2 JMS インタフェースの例外クラスの一覧
252
表 7-3 転送データ相互接続用インタフェースの一覧
358
表 7-4 転送データ相互接続用インタフェースの例外クラスの一覧
358
表 7-5 BytesContainer の使用方法
361
表 7-6 バイト配列のデータ型一覧
366
表 7-7 障害コードの一覧
378
表 8-1 コマンドの一覧
394
表 8-2 hrmdelmsg コマンドで各キューに設定できるオプション
410
表 8-3 キューと抑止解除できる形態
462
表 8-4 キューと抑止できる形態
466
表 9-1 Cosminexus RM のメッセージログとトレース
470
表 9-2 開始停止メッセージログの出力項目
472
表 9-3 Cosminexus 用メッセージログの出力項目
473
表 9-4 メソッドトレースの出力項目
475
表 9-5 目的識別子の一覧
476
表 9-6 メソッドトレースの出力情報と出力レベル
477
表 9-7 共用キューイベントトレースの出力項目
479
表 9-8 回線トレースの出力項目
481
表 9-9 回線トレースの出力情報と出力レベル
482
表 9-10 PRF トレースの取得情報(永続版リソースアダプタの場合)
485
xiv
目次
表 9-11 PRF トレースの取得情報(非永続版リソースアダプタの場合)
488
表 9-12 管理情報テーブルのレコード不正検知時の復元対象とその対処方法
492
表 A-1 サポートするインタフェース
574
表 A-2 サポートするクラス
576
表 A-3 メッセージング共通機能のメソッドの機能差
576
表 A-4 PTP メッセージング機能のメソッドの機能差
579
表 A-5 メッセージ機能のメソッドの機能差
581
表 B-1 Reliable Message 送信時の対応
589
表 B-2 Reliable Message 受信時の対応
590
表 B-3 設定範囲を超えた場合に返信される RM-Fault
591
表 B-4 RM-Reply Message 送信時の対応
592
表 B-5 RM-Reply Message 受信時の対応一覧
592
表 B-6 メッセージ送信時の MIME ヘッダ要素一覧
596
表 B-7 Cosminexus RM が返す RM-Fault のフォルトコード
596
表 B-8 Cosminexus RM が返す SOAP Fault のフォルトコード
598
表 C-1 構成要素の項目
600
表 C-2 設定する環境変数
601
表 D-1 アプリケーションからのコネクションの取得と解放処理でのイベント ID(永続版
リソースアダプタの場合)
617
表 D-2 J2EE サーバ(Cosminexus Component Container)からのコネクションのアソシエート
処理でのイベント ID(永続版リソースアダプタの場合)
617
表 D-3 アプリケーションからのメッセージ送受信処理でのイベント ID(永続版
リソースアダプタの場合)
618
表 D-4 J2EE サーバ(Cosminexus Component Container)からのトランザクション制御での
イベント ID(永続版リソースアダプタの場合)
618
表 D-5 JMS アプリケーションからの JMS セッションの決着処理でのイベント ID(永続版
リソースアダプタの場合)
619
表 D-6 J2EE サーバ(Cosminexus Component Container)と連携した Message-driven Bean
メッセージ配信処理でのイベント ID(永続版リソースアダプタの場合)
620
表 D-7 アプリケーションからのコネクションの取得と解放処理でのイベント ID(非永続版
リソースアダプタの場合)
620
表 D-8 J2EE サーバ(Cosminexus Component Container)からのコネクションのアソシエート
処理でのイベント ID(非永続版リソースアダプタの場合)
621
表 D-9 アプリケーションからのメッセージ送受信処理でのイベント ID(非永続版
リソースアダプタの場合)
621
表 D-10 J2EE サーバ(Cosminexus Component Container)からのトランザクション制御での
イベント ID(非永続版リソースアダプタの場合)
622
xv
目次
表 D-11 JMS アプリケーションからの JMS セッションの決着処理でのイベント ID(非永続版
リソースアダプタの場合)
623
表 D-12 J2EE サーバ(Cosminexus Component Container)と連携した Message-driven Bean
メッセージ配信処理でのイベント ID(非永続版リソースアダプタの場合)
623
表 F-1 Cosminexus RM が使用する SQL
628
表 F-2 DB テーブルの BINARY 型列数
630
xvi
1
概要
Cosminexus RM は Cosminexus システムを基盤として,アプ
リケーションをメッセージの非同期通信によって連携させる
メッセージングミドルウェアです。
Cosminexus RM では,永続版リソースアダプタと非永続版リ
ソースアダプタの 2 種類のリソースアダプタを提供します。
この章では,Cosminexus RM の概要,必要な前提製品,シス
テムの形態,およびシステム構築・運用の流れとマニュアルの
参照先について説明します。
1.1 Cosminexus RM の概要
1.2 ソフトウェア構成
1.3 システム形態
1.4 システム構築・運用の流れとマニュアルの参照先
1
1. 概要
1.1 Cosminexus RM の概要
Cosminexus RM は,Cosminexus システム上のアプリケーションがメッセージを使用し
て非同期に通信するためのミドルウェアです。メッセージ通信機能をアプリケーション
に提供します。
送信側アプリケーションがメッセージを送信すると,メッセージはキューに登録されま
す。受信側アプリケーションがメッセージを受信すると,キューからメッセージが取り
出されます。
こうして,キューを介してメッセージを送受信することによって,送信側と受信側のア
プリケーションを同時に動作させる必要のない非同期通信ができます。
Cosminexus RM では,永続版リソースアダプタと非永続版リソースアダプタを提供しま
す。永続版リソースアダプタと非永続版リソースアダプタの概要について説明します。
(1) 永続版リソースアダプタの概要
永続版リソースアダプタでは,メッセージやキューの属性情報,システムステータスな
どを DB で管理し永続化しています。永続化とは,不揮発性の記憶媒体にデータを保存
し,変化しない状態にすることです。
永続版リソースアダプタの概要について,次の図に示します。
図 1-1 永続版リソースアダプタの概要
永続版リソースアダプタには,次に示す特長があります。
● 高信頼のメッセージ管理
2
1. 概要
Cosminexus RM がメッセージを登録するキューは,DB のテーブル上に作成されま
す。DB にメッセージを永続化することで,メッセージの再現性を保持し,高信頼の
メッセージ管理ができます。
● 高信頼なメッセージ通信
確実に 1 回の配送保証,または順序保証の QoS(通信品質)を,ユーザが通信相手ご
とに選択できます。
● JMS インタフェースの採用
Cosminexus RM はアプリケーションに JMS インタフェースを提供します。JMS イ
ンタフェースは,Java でのメッセージング通信のための API です。
● インターネット経由のシステム連携
通信手段として SOAP および HTTP を利用します。HTTP は幅広く利用されている
プロトコルです。多くの企業のファイアウォールは HTTP(80 番ポート)による内外
の通信を許可しているので,ファイアウォールを介した接続が比較的容易に実現でき
ます。また,SSL を使用すると,秘密性,完全性などのセキュリティ機能を実現でき
ます。
● WS-Reliability による通信のサポート
オープンで高信頼な通信プロトコルである WS-Reliability によって,Cosminexus
RM 間での通信や,WS-Reliability に準拠した他ベンダのシステムとの通信ができま
す。WS-Reliability は標準化団体 OASIS で標準化された仕様です。
● DB Connector for Cosminexus RM とのコネクション共有
Cosminexus RM と DB Connector for Cosminexus RM が同じ DB に接続する場合,
Cosminexus RM と DB Connector for Cosminexus RM のコネクションを共有するこ
とによって,DB のコネクションの有効利用とトランザクションの 1 相コミット化に
よる性能向上の両方を実現できます。
(2) 非永続版リソースアダプタの概要
非永続版リソースアダプタでは,キューなどのシステム情報を DB で管理しないで非永
続化します。非永続化とは,揮発性のメモリだけにデータを保存して,処理を実施する
ことです。
非永続版リソースアダプタの概要について,次の図に示します。
3
1. 概要
図 1-2 非永続版リソースアダプタの概要
非永続版リソースアダプタには,次に示す特長があります。
● DB 接続の不要
キューなどのシステム情報を DB で管理しないため,DB との接続が不要になります。
その結果,レスポンス性能の向上だけでなく,システム導入・構築,運用の簡易化と
コストダウンが期待できます。
● JMS インタフェースの採用
永続版リソースアダプタの場合と同様に,非永続版リソースアダプタでもアプリケー
ションに JMS インタフェースを提供します。JMS インタフェースは,Java でのメッ
セージング通信のための API です。
!
注意事項
非永続版リソースアダプタの場合,使用できるキューはローカルキューだけです。
4
1. 概要
1.2 ソフトウェア構成
Cosminexus RM が動作するには,幾つかの前提製品が必要です。
Cosminexus RM を使用するシステムのソフトウェア構成について,永続版リソースアダ
プタの場合を図 1-3 に,非永続版リソースアダプタの場合を図 1-4 に示します。
図 1-3 永続版リソースアダプタを使用する場合のシステムのソフトウェア構成
5
1. 概要
図 1-4 非永続版リソースアダプタを使用する場合のシステムのソフトウェア構成
各要素について説明します。
● Cosminexus Developer's Kit for Java
Cosminexus が提供する Java 2 SDK, Standard Edition です。
詳細については,マニュアル「Cosminexus 機能解説」を参照してください。
● Cosminexus Component Container
Cosminexus RM およびアプリケーションが動作する J2EE サーバです。
Cosminexus RM は,J2EE サーバモードの 1.4 モードで動作します。
このモードで,Cosminexus RM はリソースアダプタとして動作します。一つの J2EE
サーバ上で複数の Cosminexus RM を動作させることができます。
J2EE サーバについては,マニュアル「Cosminexus 機能解説」を参照してください。
● アプリケーション
ユーザが業務に合わせて作成するアプリケーションです。Cosminexus システム上で
動作するアプリケーションとして,Cosminexus RM が提供する JMS インタフェース
を使用して作成します。
サーブレット,JSP または EJB として作成します。
● キュー
アプリケーションが送信したメッセージを Cosminexus RM が登録するためのキュー
です。
• 永続版リソースアダプタの場合
ユーザは,Cosminexus RM が提供するコマンド(hrmmkque コマンド)を使用し
て DB のテーブル上にキューを作成します。
自システムからのメッセージの登録と取り出しだけができるローカルキュー,相手
6
1. 概要
システムとの通信に使用するための共用キューなどの種類があります。詳細につい
ては,
「2.2 キューの種類」を参照してください。
• 非永続版リソースアダプタの場合
ユーザは,キュー作成ファイルにキュー属性を定義して Cosminexus RM 内に
キューを作成します。
非永続版リソースアダプタでは,ローカルキューだけを使用できます。
● Cosminexus TPBroker
分散オブジェクト環境でのオブジェクト間通信やトランザクション制御を提供する製
品です。
J2EE サーバは Cosminexus TPBroker を利用してトランザクションマネジャとして
動作します。Cosminexus RM はリソースマネジャとして J2EE サーバと連携します。
詳細については,マニュアル「TPBroker ユーザーズガイド」を参照してください。
● DB Connector for Cosminexus RM
DB にアクセスするための J2EE リソースアダプタとなる,スタンドアロンモジュー
ルです。Cosminexus RM(永続版リソースアダプタ)が DB にアクセスするときに使
用します。
詳細については,マニュアル「Cosminexus システム構築ガイド」を参照してくださ
い。
● HiRDB/Run Time,HiRDB/Developer's Kit または Oracle JDBC Driver
他マシン上の DB にアクセスするためのクライアント機能を提供する製品です。
Cosminexus RM(永続版リソースアダプタ)と DBMS を同じマシン上で運用する場
合は不要です。
HiRDB/Run Time および HiRDB/Developer's Kit については,マニュアル「HiRDB
UAP 開発ガイド」を参照してください。Oracle JDBC Driver については,Oracle の
マニュアルを参照してください。
● HiRDB SQL Executer
SQL を実行するためのクライアントプログラムです。Cosminexus RM(永続版リ
ソースアダプタ)が使用するシステムの管理情報を DB のテーブル上に作成するとき
に使用します。
HiRDB SQL Executer については,HiRDB SQL Executer のドキュメントを参照して
ください。
● DBMS
Cosminexus RM(永続版リソースアダプタ)では,メッセージを格納するキューや管
理情報を DB のテーブル上に作成します。この DB を管理するための DBMS です。
Cosminexus RM では,DBMS として HiRDB または Oracle ※を使用できます。
HiRDB のシステム設計については,マニュアル「HiRDB システム導入・設計ガイ
ド」を参照してください。Oracle のシステム構築については,Oracle のマニュアルを
参照してください。
注※
7
1. 概要
トランザクションのサポートレベルが XATransaction の場合,Oracle RAC 機能
は使用できません。
8
1. 概要
1.3 システム形態
Cosminexus RM のシステム形態は,自システム内だけの通信であるか,システム間の通
信があるかによって異なります。各システムの形態と DB サーバを共有する形態につい
て説明します。
1.3.1 単一システムでのアプリケーション連携
自システム内のアプリケーション間で,ローカルキューを介してメッセージを送受信す
る形態です。この形態は,永続版リソースアダプタ,非永続版リソースアダプタ共に利
用できます。
自システムの送信側アプリケーションがメッセージを送信するとき,ローカルキューに
メッセージが登録されます。自システムの受信側アプリケーションがメッセージを受信
するとき,ローカルキューからメッセージが取り出されます。
単一システムでのアプリケーション連携について,次の図に示します。
図 1-5 単一システムでのアプリケーション連携(永続版リソースアダプタの場合)
9
1. 概要
図 1-6 単一システムでのアプリケーション連携(非永続版リソースアダプタ場合)
1.3.2 複数システム間でのアプリケーション連携
自システムと相手システムが共用キューを共有してメッセージを送受信する形態です。
この形態は,永続版リソースアダプタだけが利用できます。
自システムのアプリケーションがメッセージを送信するとき,送信用共用キューにメッ
セージが登録されます。送信用共用キューは定義だけの仮想的なキューです。メッセー
ジが格納される領域の実体は,相手システムにとっての受信用共用キューにあります。
相手システムのアプリケーションがメッセージを受信するとき,(相手システムにとって
の)受信用共用キューからメッセージが取り出されます。
自システムおよび相手システムは,Cosminexus RM で構築されたシステムです。
複数システム間でのアプリケーション連携について,次の図に示します。
10
1. 概要
図 1-7 複数システム間でのアプリケーション連携
1.3.3 複数システムのキュー間でメッセージを転送するアプ
リケーション連携
自システムから,他システムに組み込まれている Cosminexus RM または他ベンダの
メッセージングシステムに向けてメッセージを送信する形態です。この形態は,永続版
リソースアダプタだけが利用できます。
複数システムのキュー間でメッセージを転送する場合に,自システムで使用するキュー
を転送キューといいます。転送キューについては,
「2.2.2 転送キュー」を参照してくだ
さい。
転送キューを使うには,転送先の情報が必要となります。他ベンダに向けたメッセージ
転送は,BytesContainer インタフェースを使用することで実現できます。
BytesContainer インタフェースについては,
「7.8.2 BytesContainer インタフェース」
を参照してください。
アプリケーションからメッセージを他システムに転送する手順を次に示します。
11
1. 概要
1. 転送キューにメッセージを登録します。
2. 転送キューにメッセージが登録された時点で他システムに向けたメッセージの転送が
開始されます。ただし,コマンドでサーバ間転送のメッセージ送受信を抑止すること
もできます。また,転送キューに登録済みのメッセージは,アプリケーションからは
取り出せません。
複数システムのキュー間でメッセージを転送するアプリケーション連携について,次の
図に示します。
図 1-8 複数システムのキュー間でメッセージを転送するアプリケーション連携
1.3.4 DB サーバの共有
Cosminexus RM は DB サーバが動作するマシンとは異なるマシンで動作できます。この
場合,マシン間を LAN 回線などで接続します。DB サーバの共有は,永続版リソースア
ダプタだけが利用できます。
1 台のマシンには一つ以上の Cosminexus RM を動作させることができます。また,複数
の Cosminexus RM で一つの DB サーバを共有できます。
しかし,一つの Cosminexus RM が複数の DB サーバに接続することはできません。
DB サーバの共有について,次の図に示します。
12
1. 概要
図 1-9 DB サーバの共有
(1) 管理情報テーブルとの対応関係
Cosminexus RM は,メッセージを格納するキューや管理情報を DB 上の管理情報テーブ
ルに保存します。管理情報テーブルは,Cosminexus RM に 1:1 に対応する必要があり
ます。複数の Cosminexus RM で一つの管理情報テーブルを共有できません。特に,一
つの J2EE サーバ上で複数の Cosminexus RM を動作させる場合はご注意ください。
管理情報テーブルは RMSystemName プロパティ指定値によって特定の Cosminexus
RM と対応づけられます。複数の Cosminexus RM がある場合は,システム間で
RMSystemName プロパティ指定値を一意にしてください。
管理情報テーブルの作成方法については,HiRDB の場合は「3.4.1(3) Cosminexus RM
の管理情報テーブルの作成」を,Oracle の場合は「3.4.2(3) Cosminexus RM の管理情
報テーブルの作成」を参照してください。
Cosminexus RM と管理情報テーブルの対応について,次の図に示します。
13
1. 概要
図 1-10 Cosminexus RM と管理情報テーブルの対応
図中の番号(a)∼(c)について説明します。
(a)
Cosminexus RM(1)が DB 上の管理情報テーブル(1)と 1:1 に対応しています。
(b)
Cosminexus RM(2)が DB 上の管理情報テーブル(2)と 1:1 に対応しています。
Cosminexus RM(3)が DB 上の管理情報テーブル(3)と 1:1 に対応しています。
管理情報テーブル(2)と管理情報テーブル(3)は,同じ DB 上に作成されていま
す。
(c)
Cosminexus RM(4)と Cosminexus RM(5)が DB 上の管理情報テーブル(4)
を共有しようとしています。これは Cosminexus RM がサポートしない不正な構成
です。
(2) XATransaction 利用時のリソースアダプタ間での DB 共有の制限
トランザクションのサポートレベルが XATransaction で,Cosminexus RM のほかにも,
DB に関連するリソースアダプタ(DB Connector など)が動作し,各リソースアダプタ
が同じ DB を使用する場合は,次に示す制限があります。
14
1. 概要
(a) 一つの J2EE サーバ内の複数のリソースアダプタが共通の DB を利用する場合
接続先 DB が HiRDB のとき
XAOpen 文字列の値は,リソースアダプタごとに一意となるように指定してくださ
い。Cosminexus RM では,XAOpen 文字列を連携先の DB Connector に指定しま
す。
接続先 DB が Oracle のとき
連携先の DB Connector との間で DB コネクションを共有するときだけ DB を共有
できます。この場合,一つの J2EE サーバ上に複数の Cosminexus RM をデプロイ
して利用できません。
一つの J2EE サーバ上で複数のリソースアダプタを利用する場合の,リソースアダプタ
の DB 共有について,次の図に示します。
図 1-11 リソースアダプタの DB 共有(J2EE サーバが一つの場合)
(b) 複数の J2EE サーバ内の複数のリソースアダプタが共通の DB を利用する場合
接続先 DB が HiRDB のとき
XAOpen 文字列の値は,リソースアダプタごとに一意となるように指定してくださ
15
1. 概要
い。Cosminexus RM では,XAOpen 文字列を連携先の DB Connector に指定しま
す。
接続先 DB が Oracle のとき
特に制限はありません。
複数の J2EE サーバ上で複数のリソースアダプタを利用する場合の,リソースアダプタ
の DB 共有について,次の図に示します。
16
1. 概要
図 1-12 リソースアダプタの DB 共有(J2EE サーバが複数の場合)
17
1. 概要
1.4 システム構築・運用の流れとマニュアルの
参照先
システム構築・運用の流れとマニュアルでの説明個所の対応について説明します。また,
Cosminexus RM の機能とマニュアルでの説明個所の対応についても説明します。
1.4.1 システム構築・運用の流れとマニュアルでの説明個所
の対応
Cosminexus RM のシステム構築・運用の流れとマニュアルでの説明個所の対応を次の図
に示します。
18
1. 概要
図 1-13 システム構築・運用の流れとマニュアルでの説明個所の対応
1. 概要
Cosminexus RM の概要を把握します。
2. 機能
Cosminexus RM の機能を把握します。
永続版リソースアダプタと非永続版リソースアダプタでは,利用できる機能が異なり
ます。詳細は「1.4.2 Cosminexus RM の機能とマニュアルでの説明個所の対応」を
参照してください。
3. システム構築
Cosminexus RM のシステムを構築します。
19
1. 概要
永続版リソースアダプタと非永続版リソースアダプタでは,システムの構築手順が異
なります。図 1-13 で示すマニュアルでの説明個所に従ってシステムを構築してくだ
さい。
4. コンフィグレーションプロパティ
環境に合わせてコンフィグレーションプロパティを設定します。
永続版リソースアダプタと非永続版リソースアダプタでは,設定するプロパティが異
なります。詳細は「6.1 Cosminexus RM のコンフィグレーションプロパティの一
覧」を参照してください。
5. インタフェース
Cosminexus RM が提供するインタフェースを使用してアプリケーションを実装しま
す。
非永続版リソースアダプタでは,転送データ相互接続用インタフェースは使用できま
せん。転送データ相互接続用インタフェースについては,永続版リソースアダプタの
場合だけ参照してください。
6. 運用
Cosminexus RM を運用します。
永続版リソースアダプタの場合は「4. Cosminexus RM(永続版リソースアダプタ)
の運用」を,非永続版リソースアダプタの場合は,「5. Cosminexus RM(非永続版
リソースアダプタ)の運用」を参照してください。
7. コマンドリファレンス
コマンドを入力することによって Cosminexus RM を運用します。
永続版リソースアダプタと非永続版リソースアダプタでは,使用できるコマンドが異
なります。詳細は「8.2 コマンドの一覧」を参照してください。
8. 障害対策
Cosminexus RM の障害に対応します。
1.4.2 Cosminexus RM の機能とマニュアルでの説明個所の
対応
Cosminexus RM の機能とマニュアルでの説明個所の対応を次の表に示します。
表 1-1 Cosminexus RM の機能とマニュアルでの説明個所の対応
項
番
1
2
20
機能
キューの種類
キューの永続性
機能詳細
永続版
リソー
スアダ
プタ
非永続
版リ
ソース
アダプ
タ
マニュアルでの説
明個所
ローカルキュー
○
△※ 1
2.2.1
•
•
•
•
○
×※ 2
2.2.2,2.2.3,
2.2.4,2.2.5
○
×
転送キュー
受信用共用キュー
送信用共用キュー
デッドメッセージキュー
永続キュー属性
2.3.1
1. 概要
項
番
機能
永続版
リソー
スアダ
プタ
非永続
版リ
ソース
アダプ
タ
非永続キュー属性
○
○
機能詳細
マニュアルでの説
明個所
3
メッセージの受
信制御
• プライオリティでの順序
• FIFO での順序
• メッセージセレクタでの順序
○
○
2.6.1,2.6.2
4
メッセージ取り
出しモード
• シリアル取り出し属性
• パラレル取り出し属性
○
○
2.3.2
5
メッセージの作
成
JMS インタフェース
○
○
7章
6
メッセージの受
け渡し方式
• 値渡し方式
• 参照渡し方式
○
○
2.3.3
7
サーバ間転送
• WS-Reliability(SOAP)に
よるサーバ間転送
• OpenTP1 システム(TP1/
EE)とのサーバ間転送
○
×
2.4
8
Message-driven
Bean との連携
Message-driven Bean による
メッセージの配信
○
○
2.6.3
9
コマンド
運用コマンド
○
△※ 3
8章
10
DB Connector
for Cosminexus
RM の機能
• DB Connector for
Cosminexus RM とのコネク
ション共有(トランザクショ
ンの 1 相コミット化)
• ステートメントキャンセル
• 障害調査用 SQL の出力
• 軽微な障害時のコネクション
再利用
• コネクション ID の取得
○
×
2.7
11
J2EE インタ
フェース(JMS,
JCA / JTA)
• ローカルトランザクションの
利用
• トランザクションマネジャで
のトランザクションの利用
○※ 4
○※ 4
2.6.6
• コンテナ管理によるセキュリ
ティ認証(コンテナ認証)
• コンポーネント管理によるセ
キュリティ認証(アプリケー
ション認証)
○
×※ 5
2.6.5
• シェアリングによるコネク
ションの共有
• アソシエーションによるコネ
クションの共有
○
○
転送データ相互接続用インタ
フェース(BytesContainer)
○
×
12
転送データ相互
接続用 API
2.6.7,
マニュアル
「Cosminexus 機
能解説」
7章
21
1. 概要
項
番
機能
機能詳細
永続版
リソー
スアダ
プタ
非永続
版リ
ソース
アダプ
タ
マニュアルでの説
明個所
4.2.5,5.2.2,
8.3.27
13
キューの抑止制
御
キューのメッセージの送受信を
抑止
○
△※ 6
14
キューの障害閉
塞
不整合となったキューの部分閉
塞
○
×
15
J2EE サーバ
(Cosminexus)
の機能
• コネクション接続テスト
• コネクションの障害検知
• コネクションプーリング
○
○※ 7
16
ログとトレース
• 開始停止メッセージログ
• Cosminexus 用メッセージロ
グ
• メソッドトレース
• PRF トレース
○
○
• 共用キューイベントトレース
• 回線トレース
○
×
• キュー定義ファイルの使用
• キュー定義ファイルの未使用
(キュー作成時の表示名の使
用)
○
○※ 8
17
キューの JNDI
ネーミングサー
ビスへの登録
9.2
マニュアル
「Cosminexus 機
能解説」
9.1
3.4.4,3.5.2
(凡例)
○:使用できます。
△:一部使用できます。
×:使用できません。
注※ 1
非永続キュー属性のローカルキューだけ使用できます。また,キュー間転送によるメッセージ
の受信はできません。
注※ 2
永続版リソースアダプタでデッドメッセージキューに登録されるメッセージは,非永続版リ
ソースアダプタでは,即削除されます。
注※ 3
管理状態だけで実行できるコマンド,キュー間転送で使用するコマンドなどは使用できません。
注※ 4
トランザクションサポートレベルには,NoTransaction,LocalTransaction,および
XATransaction を指定できます。
注※ 5
認証情報を指定しても無視されます。
注※ 6
メッセージの送受信抑止だけできます。キュー間転送関連の送受信抑止は使用できません。ま
た,Cosminexus RM の再開始後,キューの抑止状態は引き継がれません。
注※ 7
22
1. 概要
コネクション接続テスト,およびコネクションの障害検知は常に成功します。また,プールさ
れるコネクション中に JDBC リソースは保持されません。
注※ 8
キュー定義ファイル未使用時のキューの表示名は,キュー作成ファイルで定義します。
23
2
機能
Cosminexus RM は,JMS の PTP メッセージングモデルに基
づく要素でシステムを構成します。要素には,キュー,メッ
セージおよびアプリケーションがあります。
この章では,PTP メッセージングモデルの概要を示したあと
で,各要素の機能について説明します。さらに,DB
Connector for Cosminexus RM の機能について説明します。
2.1 メッセージングモデル
2.2 キューの種類
2.3 メッセージの管理
2.4 メッセージのキュー間転送
2.5 メッセージの構成
2.6 アプリケーションからのメッセージ操作
2.7 DB Connector for Cosminexus RM の機能
25
2. 機能
2.1 メッセージングモデル
メッセージングモデルは,メッセージ通信に関係する構成要素と動作を規定したもので
す。Cosminexus RM がサポートするメッセージングモデルについて説明します。
2.1.1 PTP メッセージングモデル
Cosminexus RM が実装する JMS インタフェースは,JMS Version 1.0.2b の PTP(ポイ
ントツーポイント)メッセージングモデルに基づきます。
送信側アプリケーションは特定のキューに対してメッセージを送信します。受信側アプ
リケーションはキューからメッセージを受信します。
PTP メッセージングモデルの概要について,次の図に示します。
図 2-1 PTP メッセージングモデルの概要
26
2. 機能
2.2 キューの種類
アプリケーションが送受信するメッセージは,Cosminexus RM が管理するキューに登録
されます。永続版リソースアダプタの場合と非永続版リソースアダプタの場合とで,
キューの作成や削除などの方法が異なります。
● 永続版リソースアダプタの場合
キューは,hrmmkque コマンドによって DB 上のテーブルに作成されます。キュー作
成時に指定する -t オプション指定値によって,目的ごとにキューの種類を作り分けで
きます。
hrmmkque のコマンドオプションには,格納メッセージの管理方法や格納できるメッ
セージ数などの属性を指定します。属性は hrmlsque コマンドで確認でき,
hrmchgque コマンドで変更できます。不要なキューは,hrmdelque コマンドによっ
て削除できます。
● 非永続版リソースアダプタの場合
キュー定義文(定義の先頭に hrmmkque を記述)を指定して,キュー作成ファイル
を作成します。キュー作成ファイルに指定したキュー定義文を基に,Cosminexus RM
開始時にキューが作成されます。非永続版リソースアダプタの場合,作成される
キューは非永続キュー属性のローカルキューだけです。また,キューは DB で管理さ
れません。
キュー定義文のオプションには,格納メッセージの管理方法や格納できるメッセージ
数などの属性を指定します。属性は hrmlsque コマンドで確認できます。属性を変更
する場合,および不要なキューを削除する場合は,キュー作成ファイルを編集します。
2.2.1 ローカルキュー
ローカルキューは,自システムのアプリケーション間で送受信するメッセージ,または
サーバ間転送のために受信したメッセージを登録するキューです。自システムのアプリ
ケーションは,ローカルキューを指定してメッセージを送信したり,受信したりします。
なお,hrmstopque コマンドを使用して,アプリケーションのメッセージの送受信,およ
びサーバ間転送のメッセージの送受信を抑止できます。サーバ間転送の詳細は,
「2.4 メッセージのキュー間転送」を参照してください。
ローカルキューは,永続版リソースアダプタ,非永続版リソースアダプタのどちらの場
合も使用できます。永続版リソースアダプタ,非永続版リソースアダプタのローカル
キューの概要をそれぞれ説明します。
(1) 永続版リソースアダプタの場合
永続版リソースアダプタのローカルキューの概要について,次の図に示します。
27
2. 機能
図 2-2 ローカルキューの概要(永続版リソースアダプタの場合)
● 作成方法
永続版リソースアダプタのローカルキューを作成するには,hrmmkque コマンドの -t
オプションに local を指定します。
● 送受信できるメッセージ種別
永続版リソースアダプタのローカルキューには,アプリケーションは次に示すメッ
セージインタフェースを使用してメッセージを送受信できます。
• Message
• BytesMessage
• ObjectMessage
• TextMessage
なお,送受信するメッセージは Cosminexus RM が提供する QueueSession インタ
フェースのメソッドで生成したオブジェクトです。
(2) 非永続版リソースアダプタの場合
非永続版リソースアダプタの場合,使用できるのは非永続キュー属性のローカルキュー
だけです。また,サーバ間転送によるメッセージ受信はできません。
非永続版リソースアダプタのローカルキューの概要について,次の図に示します。
28
2. 機能
図 2-3 ローカルキューの概要(非永続版リソースアダプタの場合)
● 作成方法
キュー定義文(定義の先頭に hrmmkque を記述)を指定して,キュー作成ファイル
を作成します。キュー作成ファイルに指定したキュー定義文を基に,Cosminexus RM
開始時に非永続キュー属性のローカルキューが作成されます。
● 送受信できるメッセージ種別
非永続版リソースアダプタのローカルキューには,アプリケーションは次に示すメッ
セージインタフェースを使用してメッセージを送受信できます。
• Message
• BytesMessage
• ObjectMessage(ペイロードに BytesContainer は格納できない)
• TextMessage
なお,送受信するメッセージは Cosminexus RM が提供する QueueSession インタ
フェースのメソッドで生成したオブジェクトです。
2.2.2 転送キュー
転送キューは,他システムに存在する Cosminexus RM または他ベンダのメッセージン
グシステムに向けてメッセージを送信するためのキューです。転送キューを使うには,
転送先の情報が必要になります。他ベンダに向けたメッセージ転送は,BytesContainer
を使用することで実現できます。
メッセージをアプリケーションから他システムに転送したい場合は,自システムの転送
キューにメッセージを登録します。
他システムに向けたメッセージの転送は,転送キューにメッセージが登録された時点で
29
2. 機能
開始します。ただし,hrmstopque コマンドでサーバ間転送のメッセージ送受信を抑止す
ることもできます。また,アプリケーションは転送キューから登録済みのメッセージを
取り出すことはできません。
転送キューによるメッセージ転送は,永続版リソースアダプタの場合だけ利用できます。
転送キューの概要について,次の図に示します。
図 2-4 転送キューの概要
● 作成方法
転送キューを作成するには,hrmmkque コマンドの -t オプションに transmit を指定
し,事前に hrmmkaddr コマンドで登録しておいたあて先情報を -a オプションに指定
します。
● 送信できるメッセージ種別
転送キューには,アプリケーションは次に示すメッセージインタフェースを使用して
メッセージを送信できます。
• 送信先が Cosminexus RM の場合
ローカルキューと同じ
• 送信先が他システムの場合
ObjectMessage(ボディに BytesContainer を含む)
2.2.3 受信用共用キュー
受信用共用キューは,共用キューを使用して複数システム間でのアプリケーション連携
をする場合に,メッセージを取り出すためのキューです。受信側アプリケーションは受
信用共用キューを指定してメッセージを受信します。また,自システムのアプリケー
ションから受信用共用キューを指定してメッセージを送信することもできます。さらに,
hrmstopque コマンドを使用して,アプリケーションのメッセージの送受信を抑止できま
30
2. 機能
す。
受信用共用キューによるメッセージの受信は,永続版リソースアダプタの場合だけ利用
できます。
受信用共用キューの概要について,次の図に示します。
図 2-5 受信用共用キューの概要
● 作成方法
受信用共用キューを作成するには,hrmmkque コマンドの -t オプションに
shr_receive を指定します。
● 受信できるメッセージ種別
受信用共用キューから,アプリケーションは次に示すメッセージインタフェースを使
用してメッセージを受信できます。
• BytesMessage
ただし,メッセージのペイロードだけを取り出しできます。メッセージのペイロー
ドについては,
「2.5.1 JMS メッセージの構成」を参照してください。
なお,受信するメッセージは Cosminexus RM が提供する QueueSession インタ
フェースのメソッドで生成したオブジェクトです。
注意
• 受信用共用キューは,接続先のデータベースの種別が HiRDB の場合だけ作成で
きます。接続先のデータベースの種別が Oracle の場合に受信用共用キューを作成
するとエラーが発生します。
• 共用キューを作成する場合,同一スキーマ定義内に,送信側システムの管理情報
テーブルと受信側システムの管理情報テーブルを定義してください。管理情報
31
2. 機能
テーブルの作成については,
「3.4.1(3) Cosminexus RM の管理情報テーブルの作
成」を参照してください。
2.2.4 送信用共用キュー
送信用共用キューは,共用キューを使用して複数システム間でのアプリケーション連携
をする場合に,メッセージのあて先として指定するキューです。
送信用共用キューは定義だけのキューです。メッセージが格納されるメモリやディスク
領域などの実体は,受信側システムの受信用共用キューです。アプリケーションが(送
信側システムにとっての)送信用共用キューにメッセージを登録すると,実体上は(受
信側システムにとっての)受信用共用キューに登録されます。
(送信側システムにとっての)送信用共用キューは(受信側システムにとっての)受信用
共用キューと n:1(n:任意の整数)に対応づけることができます。そのため,受信側
システムでは,複数の送信側システムから送信されたメッセージを一つの受信用共用
キューに格納するような構成にできます。
送信用共用キューによるメッセージの送信は,永続版リソースアダプタの場合だけ利用
できます。
送信用共用キューの概要について,次の図に示します。
32
2. 機能
図 2-6 送信用共用キューの概要
● 作成方法
送信用共用キューを作成するには,hrmmkque コマンドの -t オプションに shr_send
を指定します。-b オプションには,相手システムの受信用共用キューに基づく名前を
指定します。キュー属性の多くは,(受信側システムにとっての)受信用共用キューに
指定された値に従います。
● 送信できるメッセージ種別
送信用共用キューには,アプリケーションは次に示すメッセージインタフェースを使
用してメッセージを送信できます。
• BytesMessage
ただし,メッセージのペイロードだけが保存されます。メッセージのペイロードに
ついては,
「2.5.1 JMS メッセージの構成」を参照してください。
なお,送信するメッセージは Cosminexus RM が提供する QueueSession インタ
フェースのメソッドで生成したオブジェクトです。
注意
送信用共用キューは,接続先のデータベースの種別が HiRDB のときだけ作成でき
33
2. 機能
ます。接続先のデータベースの種別が Oracle のときに送信用共用キューを作成する
とエラーが発生します。
2.2.5 デッドメッセージキュー
デッドメッセージキューは,有効期限に達したメッセージなどが移動される特別なロー
カルキューです。システム内に一つだけ指定できます。自システムのアプリケーション
は,ローカルキューと同様にデッドメッセージキューから該当するメッセージを受信で
きますが,デッドメッセージキューにメッセージを送信することはできません。また,
デッドメッセージキューに移動したメッセージは,移動前のキューに新しいメッセージ
として再登録できます。さらに,hrmstopque を使用して,アプリケーションのメッセー
ジの受信を抑止することもできます。
デッドメッセージキューは,永続版リソースアダプタの場合だけ利用できます。永続版
リソースアダプタでデッドメッセージキューに移動されるメッセージは,非永続版リ
ソースアダプタでは,即削除されます。
デッドメッセージキューの概要について,次の図に示します。
図 2-7 デッドメッセージキューの概要
● 作成方法
デッドメッセージキューを作成する方法は,ローカルキューと同じです。ただし,
RMDeadMessageQueueName プロパティにキュー名を指定する必要があります。
(1) デッドメッセージキューへの登録
サーバ間転送以外の通信では,次に示す場合に,メッセージはデッドメッセージキュー
に登録されます。サーバ間転送の場合のデッドメッセージキューへの登録については,
「(2) サーバ間転送でのデッドメッセージキューへの登録」を参照してください。
34
2. 機能
● メッセージが有効期限に達した場合
キューに登録されているメッセージが有効期限に達した場合,そのメッセージはデッ
ドメッセージキューに移動されます。ただし,デッドメッセージキューに登録されて
いるメッセージは,有効期限をチェックされないので対象外です。
また,次に示すときメッセージはデッドメッセージキューに移動されないで削除され
ます。
(a)RMDeadMessageQueueName プロパティの指定がないとき
(b)RMDeadMessageQueueName プロパティに指定されたキューがないとき
(c) メッセージ数超過や DB 障害などの要因によって,デッドメッセージキューへの登
録に失敗したとき
● メッセージの配送回数が最大値に達した場合
receive() または receiveNoWait() メソッドを発行してメッセージを受信するアプリ
ケーションや Message-driven Bean でメッセージの配信を受けるアプリケーション
に,Cosminexus RM がキューから取り出したメッセージを渡すことを配送といいま
す。
Cosminexus RM が処理するメッセージの配送回数の最大値は RMMaxDeliveryNum
プロパティで指定します。
キューに登録されているメッセージの配送回数が最大値に達した場合,そのメッセー
ジはデッドメッセージキューに移動されます。ただし,デッドメッセージキューに登
録されているメッセージは,配送回数をチェックされないので対象外です。また,次
に示すときメッセージはデッドメッセージキューに移動されないで,配送できる状態
になります。
(a)RMDeadMessageQueueName プロパティの指定がないとき
(b)RMDeadMessageQueueName プロパティに指定されたキューがないとき
(c) メッセージ数超過や DB 障害などの要因によって,デッドメッセージキューへの登
録に失敗したとき
(2) サーバ間転送でのデッドメッセージキューへの登録
サーバ間転送では,次に示す場合に,メッセージはデッドメッセージキューに登録され
ます。
● メッセージの転送中に通信の有効期限に達した場合
メッセージの転送中に通信の有効期限に達した場合,そのメッセージはデッドメッ
セージキューに登録されます。転送中に通信の有効期限に達する場合の例を次に示し
ます。
(a) 転送されてきたメッセージが通信の有効期限に達していたとき
(b) 順序保証をしていて,順序が前のメッセージが転送される前に順序があとのメッ
セージが転送されて,順序が前のメッセージの到達待ちの間に通信の有効期限に達し
たとき
(a) のときは受信に失敗するため,送信側システムのデッドメッセージキューに登録さ
れます。(b) のとき,順序保証のため滞留している順序があとのメッセージは,ローカ
ルキューには登録されないで,受信側システムのデッドメッセージキューに登録され
35
2. 機能
ます。順序保証については,
「2.4.4 キュー間転送の QoS」を参照してください。
メッセージ数の超過や DB 障害などの要因によってデッドメッセージキューへの登録
に失敗した場合は,デッドメッセージキューへの登録をリトライし続けます。
通信の有効期限に達した場合の処理を次の図に示します。
図 2-8 メッセージの転送中に通信の有効期限に達した場合の処理
● 電文不正などの障害でメッセージの受信に失敗し,かつ再送もできない場合
電文不正などの障害でメッセージの受信に失敗し,かつ再送もできない場合は,その
メッセージは送信側システムのデッドメッセージキューに登録されます。
また,受信に失敗したメッセージが順序保証をしていて,かつすでに受信側システム
には順序保証のために滞留しているメッセージがあった場合,滞留しているメッセー
ジはすべて受信側システムのデッドメッセージキューに登録されます。
メッセージ数の超過や DB 障害などの要因によってデッドメッセージキューへの登録
に失敗した場合は,デッドメッセージキューへの登録をリトライし続けます。
メッセージの転送ができない場合の処理を,受信側システムに滞留しているメッセー
ジがない場合と滞留しているメッセージがある場合に分けて,次の図に示します。
36
2. 機能
図 2-9 電文不正などの障害でメッセージの受信に失敗した場合の処理
37
2. 機能
2.3 メッセージの管理
Cosminexus RM のアプリケーションが送受信するメッセージを管理するときに注意が必
要な点について説明します。
2.3.1 キューの永続性
永続版リソースアダプタの場合,キューの作成時には,hrmmkque コマンドの -m オプ
ションにキューの永続性を指定できます。永続性には次に示す属性があり,メッセージ
の管理が異なります。
● 永続キュー属性(-m オプションに persistent を指定)
送信側アプリケーションが送信したメッセージは,受信側アプリケーションが受信す
るまでキューのある DB 上で永続的に管理されます。DB 障害以外によってメッセー
ジが消滅しないため,通常は永続キュー属性を指定することをお勧めします。
メッセージを送信する際には,DB への書き込みと同時に Cosminexus RM が管理す
るメモリ上にメッセージがキャッシュされます。同一メッセージの受信の際はメモリ
上からメッセージが読み取られるため,取り出し処理のレスポンスが向上します。
● 非永続キュー属性(-m オプションに non_persistent を指定)
送信側アプリケーションが送信したメッセージは,Cosminexus RM のメモリ上でだ
け管理され,DB 上では管理されません。永続キュー属性を指定する場合と比較する
と,DB への書き込みが発生しない分だけレスポンスが良くなりますが,障害発生時
や Cosminexus RM を再度開始するときにメッセージは消滅します。
キューに指定できる永続性について,次の表に示します。
表 2-1 キューに指定できる永続性
項番
キューの種類
永続キュー属性
非永続キュー属性
1
ローカルキュー
○
○
2
転送キュー
○
△※
3
受信用共用キュー
○
×
4
送信用共用キュー
×
×
5
デッドメッセージキュー
○
○
(凡例)
○:指定できます。
△:制限付きで指定できます。
×:指定できません。
注※
順序保証を指定している場合は指定できません。
非永続版リソースアダプタの場合,キューの永続性は非永続キュー属性だけになります。
38
2. 機能
Cosminexus RM の開始時に非永続キュー属性のローカルキューが作成されるため,
キューの永続性は指定できません。
2.3.2 メッセージ取り出しモード
キューの作成時には,次のようにメッセージ取り出しモードを指定できます。
● 永続版リソースアダプタの場合
hrmmkque コマンドの -d オプションにメッセージ取り出しモードを指定して,コマ
ンドを実行します。
● 非永続版リソースアダプタの場合
キュー定義文の -d オプションにメッセージ取り出しモードを指定して,キュー作成
ファイルを作成します。
メッセージ取り出しモードには次に示す属性があり,アプリケーションがキューから
メッセージを受信するときの多重化制御が異なります。
● シリアル取り出し属性(-d オプションに serial を指定)
アプリケーションがトランザクション内でキューからメッセージを受信したあと,ト
ランザクションが未決着な状態であるとき,異なるアプリケーション(または異なる
スレッドのトランザクション)での次メッセージの取り出しが抑止されます。トラン
ザクションが決着してから受信できるようになります。
つまり,同一トランザクション内でのメッセージの連続的な受信だけができます。
複数のアプリケーション(または複数のスレッドのトランザクション)でメッセージ
を受信する場合に,メッセージが送信されたときの順序を保持する必要があるときに
指定します。
シリアル取り出し属性の概要について,次の図に示します。
39
2. 機能
図 2-10 シリアル取り出し属性の概要
● パラレル取り出し属性(-d オプションに parallel を指定)
アプリケーションがトランザクション内でキューからメッセージを受信したあと,ト
ランザクションが未決着な状態であるとき,異なるアプリケーション(または異なる
スレッドのトランザクション)での次メッセージの受信ができます。
複数のアプリケーション(または複数のスレッドのトランザクション)でメッセージ
を受信する場合に,メッセージが送信されたときの順序を保持する必要がないときに
指定します。シリアル取り出し属性よりもメッセージ受信時のスループットが優れま
す。
パラレル取り出し属性の概要について,次の図に示します。
40
2. 機能
図 2-11 パラレル取り出し属性の概要
2.3.3 メッセージの受け渡し
Cosminexus RM は,アプリケーションとキューとの間でメッセージの受け渡しをしま
す。
(1) メッセージの受け渡し方式
アプリケーションとキューとの間でメッセージを受け渡す方式には,値渡し方式と参照
渡し方式の二つ方法があります。それぞれの方法について説明します。
(a) 値渡し方式
値渡し方式は,Cosminexus RM で扱うメッセージとアプリケーションが保持するメッ
セージを分離する方式です。そのため,アプリケーションが 1 度登録したメッセージを
変更したり,取り出したメッセージを再び登録したりできます。Cosminexus RM は,
メッセージの登録時および取り出し時にメッセージをコピーします。
値渡し方式を利用したメッセージの受け渡しの概要を,次の図に示します。
41
2. 機能
図 2-12 値渡し方式を利用したメッセージの受け渡しの概要
(b) 参照渡し方式
参照渡し方式は,アプリケーションが保持するメッセージをそのまま Cosminexus RM
で扱う方式です。アプリケーションが Cosminexus RM と同じメッセージのインスタン
スを参照するため,アプリケーションでメッセージを利用するときに,メッセージの再
利用ができないなどの制限があります。しかし,値渡し方式よりも高速にメッセージを
送受信できます。
参照渡し方式を利用する場合,RMPassByReference プロパティに true を指定します。
参照渡し方式を利用したメッセージの受け渡しの概要を,次の図に示します。
42
2. 機能
図 2-13 参照渡し方式を利用したメッセージの受け渡しの概要
(2) 参照渡し方式を利用した場合の動作
参照渡し方式では,送信側アプリケーションが保持するメッセージと受信側アプリケー
ション(受信をロールバックした場合,ロールバックする前の受信側アプリケーション
を含む)が保持するメッセージが同じインスタンスとなります。そのため,最後の受信
側アプリケーションがメッセージを受信すると,送信側アプリケーションと以前の受信
側アプリケーションが保持するメッセージは,最後の受信側アプリケーションのメッ
セージと同じ状態となります。
参照渡し方式を利用した場合の動作を,次の図に示します。
図 2-14 参照渡し方式を利用した場合の動作
43
2. 機能
図 2-14 に示すように,送信側アプリケーションと受信側アプリケーションでは次の状態
となります。
• 送信側アプリケーションと以前の受信側アプリケーション(受信側アプリケーション
(1)
)が保持し続けているメッセージから取得できる情報は,最後の受信側アプリケー
ション(受信側アプリケーション(2)
)が保持するメッセージと等しくなる。
• 送信側アプリケーションと以前の受信側アプリケーション(受信側アプリケーション
(1)
)が Message.acknowledge() メソッドを呼び出すと,最後の受信アプリケーショ
ン(受信側アプリケーション(2)
)が保持するメッセージの受信を承認したことにな
る。
(3) 参照渡し方式を利用した場合のメッセージの再利用
参照渡し方式を利用した場合,Cosminexus RM が持つメッセージのインスタンスをアプ
リケーションも保持していることがあります。そのため,アプリケーションによるメッ
セージの再利用は行えません。メッセージの再利用とは,Cosminexus RM のキューに登
録されたメッセージまたは登録を試みたメッセージを,再び登録することやそのメッ
セージに設定した情報を変更することです。アプリケーションによってメッセージを再
利用した場合はエラーが発生します。再利用できないメッセージを次に示します。
• QueueSender インタフェースを使用して登録したメッセージ(登録失敗およびロール
バックしたメッセージを含む)
• QueueReceiver インタフェースを使用して取り出したメッセージ
• MDB によって配信されたメッセージ
• QueueBrowser インタフェースを使用して参照したメッセージ
2.3.4 メッセージの削除
Cosminexus RM は,アプリケーションによるメッセージの取り出しなどで不要になった
キュー内のメッセージを削除します。
(1) メッセージの削除方法
メッセージを削除する方法には,遅延削除と即時削除の二つ方法があります。それぞれ
の方法について説明します。
(a) 遅延削除
遅延削除は,メッセージが不要になった時点で削除せず配信済みの状態にしておき,
RMSweepTimerInterval プロパティ指定値の間隔で一括に削除する方法です。遅延削除
はメッセージの取り出しの延長でメッセージを削除しないため,即時削除よりもスルー
プットが優れる場合があります。
なお,非永続リソースアダプタの場合,遅延削除は利用できません。
遅延削除を利用したメッセージの削除の概要を,次の図に示します。
44
2. 機能
図 2-15 遅延削除を利用したメッセージの削除の概要
(b) 即時削除
即時削除は,メッセージが不要になった時点で削除する方法です。そのため,遅延削除
よりも一時的に使用するメモリの量を削減できます。即時削除は,アプリケーションに
よるメッセージの取り出しでのコミット時や,hrmdelmsg コマンド実行時のタイミング
で実施されます。
ローカルキューまたはデッドメッセージキュー内のメッセージに即時削除を利用する場
合,RMDeleteMessageImmediately プロパティに true を指定します。
即時削除を利用したメッセージの削除の概要を,次の図に示します。
45
2. 機能
図 2-16 即時削除を利用したメッセージの削除の概要
(2) キューの種類と利用できる削除方法
キューの種類によって利用できる削除方法が異なります。
キューの種類と利用できる削除方法について,次の表に示します。
表 2-2 キューの種類と利用できる削除方法
項番
キューの種類
遅延削除
即時削除
1
ローカルキュー
○
○※ 1 ※ 2
2
転送キュー
○
×
3
受信用共用キュー
×
○
4
送信用共用キュー
−
−
5
デッドメッセージキュー
○
○※ 1
(凡例)
○:利用できます。
×:利用できません。
−:対象外です。
注※ 1
RMDeleteMessageImmediately プロパティに true を指定した場合だけ即時削除を行います。
注※ 2
キュー間転送では,メッセージの順序を保証するため,アプリケーションによって受信された
メッセージでも削除できないことがあります。そのため,キュー間転送で受信したメッセージ
は即時削除を行いません。
46
2. 機能
2.3.5 メッセージの有効期間
キューの作成時には,次のようにメッセージの有効期間を指定できます。
● 永続版リソースアダプタの場合
hrmmkque コマンドの -e オプションにメッセージの有効期間を指定して,コマンド
を実行します。
● 非永続版リソースアダプタの場合
キュー定義文の -e オプションにメッセージの有効期間を指定して,キュー作成ファイ
ルを作成します。
メッセージの有効期間は,キューに登録されたメッセージがシステム内で有効な時間を
秒単位で表します。
Cosminexus RM は RMSweepTimerInterval プロパティ指定値の間隔(単位:秒)で
メッセージの有効期間を確認し,有効期間に達しているメッセージの削除処理を実行し
ます。有効期間に達している場合,デッドメッセージキューがあるときには,メッセー
ジはデッドメッセージキューに移動されます。デッドメッセージキューがないときには,
メッセージは破棄されます。
メッセージの有効期間に 0 が指定されたローカルキューのメッセージの有効期間は無限
です。
47
2. 機能
2.4 メッセージのキュー間転送
メッセージのキュー間転送について説明します。
2.4.1 キュー間転送の概要
転送キューは,メッセージのキュー間転送をするための送信側のキューです。転送
キューを使用してキュー間転送をすることで,ネットワークを介した複数システム間で
のアプリケーション連携ができるようになります。
転送キューには,受信側システムのアドレスとローカルキュー名を指定します。転送
キューに登録したメッセージは,指定された受信側システムのローカルキューに向けて
転送されます。
送信側システムの転送キューは,受信側システムのローカルキューと,n:1(n:任意の
整数)に対応づけることができます。このため,受信側では,複数の送信側システムか
ら受信するメッセージを一つのローカルキューに格納する形でシステムを構成できます。
転送キューからメッセージを取り出すことはできません。転送キューに登録されたメッ
セージは,転送が成功し,転送先のローカルキューにメッセージが登録されたことが確
認されたあとに削除されます。
転送キューによるキュー間転送の概要について,次の図に示します。
48
2. 機能
図 2-17 転送キューによるキュー間転送の概要
2.4.2 キュー間転送のあて先指定
Cosminexus RM は,キュー間転送用の Web アプリケーションを使用してメッセージを
受信します。
メッセージを転送するときは,転送先のアドレスとして,受信側システムのキュー間転
送用 Web アプリケーションのアドレスを指定します。このアドレス情報は,
hrmmkaddr コマンドを使ってあて先情報テーブルに登録します。BASIC 認証使用時に
は,あて先情報テーブルに BASIC 認証用のユーザ名とパスワードも登録できます。
転送先のローカルキューの識別には,受信側システムのアドレスを表すあて先名と,転
送先のキュー名が使用されます。この情報は,転送キューに登録します。
49
2. 機能
送信側システム A の転送キュー TQ1 から,受信側システム B のローカルキュー LQ1 に
メッセージを転送する場合のあて先指定の仕組みを次の図に示します。
図 2-18 転送キューによるキュー間転送のあて先指定の仕組み
図に示すように,あて先情報テーブルには,転送先 Cosminexus RM のキュー間転送用
Web アプリケーションのアドレス「http://system-B/uCosminexusRM/services/
HRMReceiver/」を登録します。登録したアドレスは,あて先名「SB」で識別されます。
転送キューには,あて先名「SB」と転送先のローカルキュー名「LQ1」を登録します。
この場合の実際の送信アドレスは,「http://system-B/uCosminexusRM/services/
HRMReceiver/LQ1」です。
(1) あて先アドレスの形式
送信側システムに登録するあて先アドレスは,次に示すどちらかの形式で指定してくだ
さい。
50
2. 機能
http://<ホスト名>:<ポート番号>/<コンテキストルート>/services/
HRMReceiver/
https://<ホスト名>:<ポート番号>/<コンテキストルート>/services/
HRMReceiver/
ホスト名
受信側システムのホスト名,または IP アドレス
ポート番号
受信側システムの HTTP(S) 通信用のポート番号
コンテキストルート
受信側 Cosminexus RM のキュー間転送用 Web アプリケーションのコンテキスト
ルート
サービス名:services/HRMReceiver(固定)
受信側 Cosminexus RM のキュー間転送用 Web アプリケーションのサービス名
(2) 注意事項
● BASIC 認証を使用する場合は,hrmmkaddr コマンドによるあて先アドレス登録時
に,BASIC 認証用のユーザ名とパスワードを設定してください。
● リダイレクタを使用する場合は,キュー間転送用 Web アプリケーションのコンテキス
トルートに適切にリダイレクトされるように設定してください。
2.4.3 キュー間転送の通信モデル
Cosminexus RM がサポートする通信モデルには,次に示す二つの層があります。
● アプリケーションが扱うキューの層
● キューのメッセージを取り出して通信を行う通信層
ここでは通信層の詳細を説明します。
(1) 通信層のメッセージとグループ
通信層では「グループ」をメッセージ管理の単位とします。グループは,グローバルに
一意の識別子を持ち,複数のメッセージが属する集合です。また,順序保証などの QoS
(通信品質)を保証する範囲でもあります。
各メッセージは,グループの識別子とグループ内の通し番号によって一意に識別されま
す。送信側のグループは,転送キューの作成時に Cosminexus RM が生成します。受信
側のグループは,グループ内で最初のメッセージの受信時に Cosminexus RM が生成し
ます。
(2) メッセージとグループの有効期間
通信層のメッセージとグループに対して有効期間を設定できます。どちらも有効期間を
51
2. 機能
超過した場合の通信は失敗します。
● メッセージの有効期間
メッセージの有効期間は,メッセージの送信時刻から,転送キューに指定した通信層
のメッセージ有効期限に達するまでの間です。
● グループの有効期間
通信で使用するグループは転送キューの作成時に生成されます。有効期間は,グルー
プの生成時刻から,転送キューに指定したグループの有効期限に達するまでの間です。
グループの有効期間に達すると,自動的に次のグループが作成されて次のグループに
切り替わります。
2.4.4 キュー間転送の QoS
Cosminexus RM で保証する QoS には,配送保証と順序保証の 2 種類があります。
(1) 配送保証
Cosminexus RM は,受信側システムから受信の成功が通知されるまでメッセージを再送
し続けることで,高信頼なキュー間転送を実現します。また,再送によって同じメッ
セージを複数回受信した場合も,識別子を用いてメッセージの重複を判断し,重複して
キューに登録されることを防止します。
次の図は,送信側システムが A1,A2,A3 のメッセージを送信し,受信側システムで
キューに正常に登録できたため,A1,A2,A3 の受信成功が通知された場合を示してい
ます。1. ∼ 5. は,処理の順序を示します。
受信成功が通知されると,送信側システムのキューのメッセージは削除されます。受信
成功が一定の期間通知されない場合は,A1,A2,A3 を再送します。
52
2. 機能
図 2-19 配送保証の仕組み
(2) 順序保証
順序保証が指定された転送キューから送信されたメッセージは,送信された順序で受信
側システムのキューに登録します。順序どおりでないメッセージを受信した場合はメッ
セージを永続化して保持しておき,順序が回復した時点でキューに登録します。
次の図は,A1 → A2 → A3 の順序で順序保証が指定されている場合の処理の仕組みを示
しています。1. ∼ 4. は,処理の順序を示します。
A1,A3 の順序でメッセージを受信しましたが,A3 は順序不正のためローカルキューに
登録されません。その後,A2 を受信した時点で,A2,A3 がローカルキューに登録され
ます。
53
2. 機能
図 2-20 順序保証の仕組み
順序保証を行う場合の滞留メッセージの監視と,メッセージ障害時の動作について説明
します。
(a) 滞留メッセージの監視
例えば図 2-19 で,障害などが原因で A2 のメッセージが受信されない場合,A3 以降の
メッセージはアプリケーションに配送されないメッセージとして滞留します。この場合,
A3 以降のメッセージは,通信の有効期限に達してデッドメッセージキューに移動される
まで,滞留したままとなります。
この対処として,Cosminexus RM は,定期的に滞留メッセージを監視します。滞留メッ
セージの監視時間は,RMTRPendingNotifyInterval プロパティに指定します。メッセー
ジの監視中に,このプロパティに指定した時間より長く滞留しているメッセージが存在
する場合は,ログを出力して通知します。
滞留したメッセージを待ち合わせる必要がない場合は,hrmskipmsg コマンドによって
A2 のメッセージをスキップし,A3 以降のメッセージをアプリケーションに配送できま
す。また,スキップしたメッセージをスキップしたあとに受信すると,そのメッセージ
の受信は失敗します。
(b) メッセージ障害時の動作
受信側システムから受信失敗が通知されると,送信側システムでは新しいグループで,
以降のメッセージを送信します。そのため,受信側システムでは,新しいグループで送
信されたメッセージがキューに登録されます。また,受信側システムで,障害が発生し
たグループ内のキューに登録しないで保持していたメッセージは,デッドメッセージ
キューに登録されます。
54
2. 機能
2.4.5 メッセージの再送
キュー間転送でメッセージを再送するときの間隔は,3 種類のプロパティで指定します。
Cosminexus RM は,2 種類のプロパティに指定した再送間隔と,別のプロパティに指定
したそれらを切り替えるタイミング(再送回数)を使用してメッセージの再送間隔を調
整します。
メッセージの再送の間隔を調整するためのプロパティを次の表に示します。
表 2-3 メッセージの再送の間隔を指定するプロパティ
項番
プロパティ
意味
1
RMTRResendInterval1
再送間隔 1(軽微なネットワーク障害などの短期的な障害を想定)
2
RMTRResendInterval2
再送間隔 2(受信側システムのサーバダウンなどの長期的な障害
を想定)
3
RMTRResendInterval1
Num
再送間隔を切り替えるタイミング(RMTRResendInterval1 プロ
パティの指定値で再送する回数)
Cosminexus RM がメッセージを再送する処理の流れは次のとおりです。
1. RMTRResendInterval1 プロパティに指定した間隔でメッセージの再送を行います。
2. RMTRResendInterval1 プロパティの指定値での再送を,
RMTRResendInterval1Num プロパティに指定した回数分繰り返します。初回の送信
は,RMTRResendInterval1Num プロパティで指定した再送回数に,1 回分として含
まれます。
3. RMTRResendInterval2 プロパティに指定した間隔での再送に切り替えて,メッセー
ジの再送を続けます。
2.4.6 キュー間転送の互換通信
送信側システムと受信側システムの Cosminexus RM のバージョンの違いによって,次
のようにメッセージを送受信します。
● メッセージを送信する場合
受信側システムの Cosminexus RM のバージョンに合わせた形式のメッセージを送信
します。ユーザは受信側システムの Cosminexus RM のバージョンに合わせて,送信
するメッセージの形式を選択する必要があります。送信するメッセージの形式の選択
については,
「(1) 送信するメッセージの形式の選択」を参照してください。
● メッセージを受信する場合
送信側システムの Cosminexus RM のバージョンの形式でメッセージを受信します。
Cosminexus RM のバージョンの違いによるメッセージの送受信の概要を,次の図に示し
ます。
55
2. 機能
図 2-21 Cosminexus RM のバージョンの違いによるメッセージの送受信の概要
(1) 送信するメッセージの形式の選択
送信側システムの Cosminexus RM では,受信側システムの Cosminexus RM のバー
ジョンのメッセージ形式に合わせて,次のように転送モードを選択します。
● 受信側システムの Cosminexus RM のバージョンが 01-03 の場合
hrmmkque コマンドで転送キューを作成する,または hrmchgque コマンドで転送
キューの属性を変更するときに,-i オプションに normal(通常モード)を指定しま
す。
● 受信側システムの Cosminexus RM のバージョンが 01-02 以前の場合
hrmmkque コマンドで転送キューを作成する,または hrmchgque コマンドで転送
キューの属性を変更するときに,-i オプションに compatible(互換モード)を指定し
ます。
なお,01-02 以前のバージョンの Cosminexus RM に対して通常モードで
ObjectMessage を送信した場合,ペイロードに null が指定された ObjectMessage と
して受信されます。
56
2. 機能
(2) 注意事項
(a) 01-02 以前のバージョンの Cosminexus RM と通信する場合
01-03 のバージョンの Cosminexus RM が 01-02 以前のバージョンの Cosminexus RM
とメッセージ送受信する場合の注意事項を次に示します。
● 送信側システムの Cosminexus RM のバージョンが 01-03 の場合
互換モードの転送キューを使用してユーザ定義クラスを設定した ObjectMessage を送
信する場合は,コンテナ拡張ライブラリとしてユーザ定義クラスを指定する必要があ
ります。
● 受信側システムの Cosminexus RM のバージョンが 01-03 の場合
01-02 以前のバージョンの Cosminexus RM からユーザ定義クラスを設定した
ObjectMessage を受信する場合は,コンテナ拡張ライブラリとしてユーザ定義クラス
を指定する必要があります。
(b) 01-03 のバージョンの Cosminexus RM と通信する場合
互換モードの転送キューを使用してユーザ定義クラスを設定した ObjectMessage を送信
する場合は,コンテナ拡張ライブラリとしてユーザ定義クラスを指定する必要がありま
す。
(c) 送受信できる Cosminexus RM のバージョン
送受信できる Cosminexus RM のバージョンを転送モードごとに次の表に示します。
表 2-4 送受信できる Cosminexus RM のバージョン
送信側システムの Cosminexus RM
のバージョン
01-02 以前
転送モード
受信側システムの Cosminexus RM のバージョ
ン
01-02 以前
01-03
△
△
互換モード
△
△
通常モード
×
○
−
01-03
(凡例)
○:送受信できます。
△:送受信できます。ただし,ユーザ定義クラスを設定した ObjectMessage を送信する場合
は,送信側システムおよび受信側システムでコンテナ拡張ライブラリとしてユーザ定義クラス
を指定する必要があります。
×:送受信できません。
−:該当しません。
2.4.7 キュー間転送の障害時の動作
受信側システムで受信したメッセージに,致命的な障害がある場合やメッセージの有効
57
2. 機能
期間を超過していた場合,Cosminexus RM は,送信側システムに受信の失敗を通知しま
す。受信の失敗が通知されたメッセージは,送信側システムのデッドメッセージキュー
に登録されます。さらに,送信側システムでは新しいグループを作成し,障害以降に送
信されたメッセージを新しいグループで送信します。
次の図は,送信側システムが A1,A2 のメッセージを送信し,受信側システムで A2 に障
害が発生したため,A2 の受信失敗が通知された場合を示しています。1. ∼ 9. は,処理
の順序を示します。
受信失敗が通知されると,送信側システムの A2 はデッドメッセージキューに登録され,
次のメッセージは新しいグループの B1 として送信されます。
図 2-22 キュー間転送の障害時の動作
2.4.8 キュー間転送の注意事項
● デッドメッセージキューに関する注意事項
送信側システムが送信したメッセージが,受信側システムに受信されたにもかかわら
ず,何らかの原因で受信成功が通知されない場合,または通知されるのが遅れた場合,
そのあとに再送されたメッセージが有効期限に達していて受信失敗が送信側システム
に通知されると,そのメッセージは次のように処理されることがあります。
• 受信側システムに受信されたメッセージが滞留していたときは,送信側システムと
受信側システムの両方のデッドメッセージキューに登録される。
58
2. 機能
• 受信側システムに受信されたメッセージがキューに登録されていたときは,送信側
システムのデッドメッセージキューに登録されているメッセージが,受信側システ
ムで配送される。
● 非永続キューに関する注意事項
受信側システムのキューが非永続キューの場合,受信側システムのキューに作成され
たグループは再起動時に無効になります。つまり,受信側システムの Cosminexus
RM が,一つでもメッセージを受信するとグループが作成されます。その後,受信側
システムの Cosminexus RM を再起動すると,以降再起動前に作られたグループによ
るメッセージの受信は失敗します。受信に失敗したメッセージは,受信の失敗を通知
することによって,送信側システムのデッドメッセージキューに登録されます。登録
先のデッドメッセージキューは,RMDeadMessageQueueName プロパティで指定し
ます。
2.4.9 SOAP プロトコル
転送キューを使用した複数システム間でのメッセージの送受信には,SOAP プロトコル
をベースとする WS-Reliability を採用しています。メッセージの送受信には SOAP メッ
セージを使います。Cosminexus RM がメッセージ送信時に設定する SOAP メッセージ
の構成要素およびメッセージ受信時の使用方法を次の表に示します。
表 2-5 Cosminexus RM の SOAP メッセージ使用方法
項番
1
SOAP エンベ
ロープ
2
3
SOAP メッセージの使用方法
構成要素名
送信
受信
SOAP ヘッダ
WS-Reliability1.1 プロトコ
ルのヘッダ情報を設定
WS-Reliability1.1 プロ
トコルのヘッダ情報を
取得 ※ 1
SOAP ボディ
設定しない
無視する
メッセージ本体※ 2 を設定
メッセージ本体を取得
SOAP アタッチメント
注※ 1
WS-Reliability 以外のプロトコルのヘッダ情報が設定されていた場合,Cosminexus RM はその
プロトコルのヘッダ情報を無視します。
注※ 2
メッセージ本体は,Cosminexus RM 固有のメッセージオブジェクトをシリアライズしたデー
タ,またはプリミティブなバイト配列で設定されています。
Cosminexus RM で扱う SOAP メッセージの構成について,次の図に示します。
59
2. 機能
図 2-23 SOAP メッセージの構成
60
2. 機能
2.5 メッセージの構成
Cosminexus RM のアプリケーションが送受信するメッセージは,JMS メッセージの形
式に従います。JMS メッセージは Message インタフェースをルートインタフェースとす
るオブジェクトです。
Cosminexus RM で使用するメッセージの構成について説明します。
2.5.1 JMS メッセージの構成
Cosminexus RM は,JMS メッセージを送受信することでアプリケーション連携します。
JMS メッセージは,ヘッダ,プロパティおよびペイロードの三つの要素で構成されま
す。
JMS メッセージの構成について,次の図に示します。
図 2-24 JMS メッセージの構成
(1) JMS メッセージのヘッダ
JMS メッセージのヘッダは,アプリケーションやシステムに,メッセージのあて先や識
別子などの制御情報を提供するためのフィールドです。
ヘッダの一覧について,次の表に示します。
表 2-6 ヘッダの一覧
項番
ヘッダ
型
説明
1
JMSDestination
javax.jms.Destination
メッセージが送信されるあて先です。
2
JMSDeliveryMode
int
メッセージの永続性を示す値です。
61
2. 機能
項番
ヘッダ
型
説明
3
JMSMessageID
java.lang.String
プロバイダによって送信される各メッセー
ジを一意に識別するメッセージ識別子です。
このヘッダの値は RMSystemName プロパ
ティ指定値と現在時刻および通番によって
構成されます。
RMSystemName プロパティ指定値によっ
て,JMSMessageID の一意性は,
Cosminexus RM をわたります。
4
JMSTimestamp
long
メッセージの送信時刻を表す値(単位:ミ
リ秒)です。値はミリ秒で測定した現在時
刻と協定世界時の UTC1970 年 1 月 1 日午
前 0 時との差です。
なお,メッセージのトランザクションやそ
のほかの受信側のキューイングによって実
際の送信はあとから行われるため,メッ
セージが実際に送信された時刻ではありま
せん。
5
JMSExpiration
long
メッセージの有効期間となる時刻を表す値
(単位:ミリ秒)です。値はミリ秒で測定し
た現在時刻と協定世界時の UTC1970 年 1
月 1 日午前 0 時との差です。
このヘッダの値は hrmmkque コマンドの
-e オプション指定値を基に決定されます。
6
JMSRedelivered
boolean
メッセージが再配送中であるかどうかを示
す値です。値が true のとき,メッセージが
再配送中であることを示します。
7
JMSPriority
int
メッセージのプライオリティです。JMS は
いちばん低い優先度の 0 からいちばん高い
優先度の 9 まで,10 のレベルのプライオリ
ティを定義しています。
8
JMSReplyTo
javax.jms.Destination
応答先のあて先です。このヘッダが設定さ
れたメッセージを受信したアプリケーショ
ンが,該当するあて先へメッセージを送信
するかどうかは任意です。
9
JMSCorrelationID
java.lang.String
あるメッセージをほかのメッセージと関連
づけるための相関識別子です。一般的には,
応答メッセージをその要求メッセージと関
連づけるために参照されます。
10
JMSType
java.lang.String
メッセージが送信されるときに,アプリ
ケーションによって提供されるメッセージ
タイプです。
ヘッダの設定タイミングと取得タイミングについて,次の表に示します。
62
2. 機能
表 2-7 ヘッダの設定タイミングと取得タイミング
項番
ヘッダ
設定タイミング
取得タイミング※
1
JMSDestination
QueueSession.createSender(Queue queue) メ
ソッド発行時に,指定したキューの名前が設
定されます。
Message.setJMSDestination() メソッドでこ
のヘッダを設定できません。
メッセージ送信完了
後に取得できます。
2
JMSDeliveryMode
メッセージ送信時に Cosminexus RM が
hrmmkque コマンドの -m オプション指定値
に従って設定します。
Message.setJMSDeliveryMode() メソッドで
このヘッダを設定できません。
メッセージ受信後に
取得できます。
3
JMSMessageID
メッセージ送信時に Cosminexus RM が設定
します。また,デッドメッセージ再登録時に
Cosminexus RM が再設定します。
Message.setJMSMessageID() メソッドでこの
ヘッダを設定できません。
メッセージ送信完了
後に取得できます。
4
JMSTimestamp
メッセージ送信時に Cosminexus RM が設定
します。また,デッドメッセージ再登録時に
Cosminexus RM が再設定します。
Message.setJMSTimestamp() メソッドでこの
ヘッダを設定できません。
メッセージ送信完了
後に取得できます。
5
JMSExpiration
送信側と受信側で,設定のタイミングが異な
ります。
送信側の場合,メッセージ送信時に
Cosminexus RM がキュー属性(メッセージ有
効期間)に従って設定します。また,デッド
メッセージの再登録時に Cosminexus RM が
登録するキューの属性(メッセージ有効期間)
に従って再設定します。
キュー間転送を実施する場合,受信側では,
受信側ローカルキューの属性の設定によって
次のように異なります。
• メッセージ有効期間の選択が受信側となっ
ている場合は,受信側のキュー属性(メッ
セージ有効期間)に従って再設定されます。
• メッセージ有効期間の選択が送信側となっ
ている場合は,送信側で設定された値とな
り,受信側では再設定しません。
メッセージ送信完了
後に取得できます。
なお,Message インタフェースの
setJMSExpiration メソッドでは,このヘッダ
の値を設定できません。setJMSExpiration メ
ソッドの詳細については「7.4.4 Message イ
ンタフェース」を参照してください。
6
JMSRedelivered
メッセージをアプリケーションに配送したが,
リカバーされたなどでもう一度配送する必要
があるときに true に設定されます。
Message.setJMSRedelivered() メソッドでこ
のヘッダを設定できません。
Cosminexus RM を再度開始すると,false に
設定されます。
メッセージ受信後に
取得できます。
63
2. 機能
項番
ヘッダ
設定タイミング
取得タイミング※
7
JMSPriority
QueueSender.setPriority() メソッドまたは
QueueSender.send() メソッドで指定した
priority の値が設定されます。両方のメソッド
で priority が指定されている場合は,
QueueSender.send() メソッドで指定した値が
優先されます。
Message.setJMSPriority() メソッドでこの
ヘッダを設定できません。
メッセージ送信完了
後に取得できます。
8
JMSReplyTo
Message.setJMSReplyTo() メソッド発行時に,
指定値が設定されます。設定は任意です。
受信側からのメッセージ返信を必要とする場
合,送信側のユーザがこのヘッダにあて先を
設定します。
設定タイミング後に
取得できます。
9
JMSCorrelationID
Message.setJMSCorrelationID() メソッド発
行時に,指定値が設定されます。設定は任意
です。
設定タイミング後に
取得できます。
10
JMSType
Message.setJMSType() メソッド発行時に,指
定値が設定されます。設定は任意です。
設定タイミング後に
取得できます。
注※
表中に示したタイミング以外でヘッダの値を取得した場合,ヘッダが設定されていないときの
値が返されます。詳細については,
「7.4.4 Message インタフェース」を参照してください。
ObjectMessage(ペイロードに BytesContainer を含む)を送受信した場合のヘッダの設
定タイミングと取得タイミングについて,次の表に示します。
表 2-8 ObjectMessage(ペイロードに BytesContainer を含む)を送受信した場合の
ヘッダの設定タイミングと取得タイミング
項番
ヘッダ
設定タイミング
取得タイミング※
1
JMSDestination
QueueSession.createSender(Queue queue) メ
ソッド発行時に,指定したキューの名前が設
定されます。
Message.setJMSDestination() メソッドでこ
のヘッダを設定できません。
送信側ではメッセー
ジ送信完了後に取得
できます。受信側で
は取得できません。
2
JMSDeliveryMode
メッセージ送信時に Cosminexus RM が
hrmmkque コマンドの -m オプション指定値
に従って設定します。
Message.setJMSDeliveryMode() メソッドで
このヘッダを設定できません。
メッセージ受信後に
取得できます。
3
JMSMessageID
メッセージ送信時に Cosminexus RM が設定
します。また,デッドメッセージ再登録時に
Cosminexus RM が再設定します。
Message.setJMSMessageID() メソッドでこの
ヘッダを設定できません。
送信側ではメッセー
ジ送信完了後に取得
できます。受信側で
は取得できません。
64
2. 機能
項番
ヘッダ
設定タイミング
取得タイミング※
4
JMSTimestamp
メッセージ送信時に Cosminexus RM が設定
します。また,デッドメッセージ再登録時に
Cosminexus RM が再設定します。
Message.setJMSTimestamp() メソッドでこの
ヘッダを設定できません。
送信側ではメッセー
ジ送信完了後に取得
できます。受信側で
は取得できません。
5
JMSExpiration
送信側ではメッセージ送信時に Cosminexus
RM がキュー属性(メッセージ有効期間)に
従って設定します。ローカルキュー送信の場
合も同様です。また,デッドメッセージの再
登録時に Cosminexus RM が登録するキュー
の属性(メッセージ有効期間)に従って再設
定します。
キュー間転送を実施した場合,受信側では,
受信側ローカルキューの属性の設定によって
次のように異なります。
• メッセージ有効期間の選択が受信側となっ
ている場合は,受信側のキュー属性(メッ
セージ有効期間)に従って設定されます。
• メッセージ有効期間の選択が送信側となっ
ている場合は,WS-Reliability 電文の
ExpiryTime タグと同じ値が設定されます。
キュー間転送の場合,
送信側ではメッセー
ジ送信完了後に取得
できます。受信側で
は別の値が取得でき
ます。
6
JMSRedelivered
メッセージをアプリケーションに配送したが,
リカバーされたなどでもう一度配送する必要
があるときに true に設定されます。
Message.setJMSRedelivered() メソッドでこ
のヘッダを設定できません。
Cosminexus RM を再度開始すると,false に
設定されます。
メッセージ受信後に
取得できます。
7
JMSPriority
送信側では QueueSender.setPriority() メソッ
ドまたは QueueSender.send() メソッドで指定
した priority の値が設定されます。両方のメ
ソッドで priority が指定されている場合は,
QueueSender.send() メソッドで指定した値が
優先されます。
キュー間転送を実施した場合,受信側で受信
メッセージが永続される前に,デフォルト値
が設定されます。
Message.setJMSPriority() メソッドでこの
ヘッダを設定できません。
キュー間転送の場合,
送信側ではメッセー
ジ送信完了後に取得
できます。受信側で
は別の値が取得でき
ます。
8
JMSReplyTo
Message.setJMSReplyTo() メソッド発行時に,
指定値が設定されます。設定は任意です。
受信側からのメッセージ返信を必要とする場
合,送信側のユーザがこのヘッダにあて先を
設定します。
送信側では設定タイ
ミング後に取得でき
ます。受信側では取
得できません。
9
JMSCorrelationID
Message.setJMSCorrelationID() メソッド発
行時に,指定値が設定されます。設定は任意
です。
送信側では設定タイ
ミング後に取得でき
ます。受信側では取
得できません。
65
2. 機能
項番
10
設定タイミング
取得タイミング※
Message.setJMSType() メソッド発行時に,指
定値が設定されます。設定は任意です。
送信側では設定タイ
ミング後に取得でき
ます。受信側では取
得できません。
ヘッダ
JMSType
注※
表中に示したタイミング以外でヘッダの値を取得した場合,ヘッダが設定されていないときの
値が返されます。詳細については,
「7.4.4 Message インタフェース」を参照してください。
(2) JMS メッセージのプロパティ
JMS メッセージのプロパティは,ヘッダに追加する制御情報が格納されたフィールドで
す。次に示す種類があります。
1. JMS 定義のプロパティ
JMS が定義するプロパティです。これらのプロパティの完全なセットは,JMS 仕様
で定義されています。
半角英字だけで定義され,大文字と小文字は区別されます。
2. Cosminexus RM 固有のプロパティ
Cosminexus RM が独自に提供するプロパティです。
半角英字だけで定義され,大文字と小文字は区別されます。
3. アプリケーション指定のプロパティ
ユーザが必要に応じて定義するプロパティです。ただし,使用できるプロパティ名に
は制限があります。
プロパティ名には半角および全角を使用できます。また,大文字と小文字は区別され
ます。
(a) JMS 定義のプロパティ
JMS 定義のプロパティの一覧について,次の表に示します。
表 2-9 JMS 定義のプロパティの一覧
項番
プロパティ
型
説明
1
JMSXUserID
java.lang.String
メッセージを送信するユーザのユーザ識別子で
す。
このプロパティは未サポートです。
2
JMSXAppID
java.lang.String
メッセージを送信するアプリケーションのアプリ
ケーション識別子です。
このプロパティは未サポートです。
3
JMSXConsumerTXID
java.lang.String
メッセージが受信および承認されたトランザク
ションのトランザクション識別子です。
このプロパティは未サポートです。
4
JMSXProducerTXID
java.lang.String
メッセージが生成されたトランザクションのトラ
ンザクション識別子です。
このプロパティは未サポートです。
66
2. 機能
項番
プロパティ
型
説明
5
JMSXRcvTimestamp
long
メッセージがコンシューマに配送された配送時刻
です。
時刻の値はミリ秒で測定した現在時刻と協定世界
時の UTC1970 年 1 月 1 日午前 0 時との差です。
6
JMSXDeliveryCount
int
メッセージ配送回数です。
7
JMSXState
int
コンシューマから送信されたメッセージの各コ
ピーの状態を示す値です。
このプロパティは未サポートです。
8
JMSXGroupID
java.lang.String
メッセージが属しているグループのグループ識別
子です。
9
JMSXGroupSeq
int
メッセージが属しているグループのシーケンス番
号です。
JMS 定義のプロパティの設定タイミングと取得タイミングについて,次の表に示しま
す。
表 2-10 JMS 定義のプロパティの設定タイミングと取得タイミング
項番
プロパティ
設定タイミング
取得タイミング
1
JMSXUserID
−
−
2
JMSXAppID
−
−
3
JMSXConsumerTXID
−
−
4
JMSXProducerTXID
−
−
5
JMSXRcvTimestamp
メッセージをコンシューマに配
送した際に,Cosminexus RM が
設定します。
メッセージ受信後に取得できま
す。
6
JMSXDeliveryCount
メッセージ承認時にCosminexus
RM が設定します。Cosminexus
RM を再度開始すると,この値
は 0 に設定されます。
メッセージ受信後に取得できま
す。
7
JMSXState
−
−
8
JMSXGroupID
Message.setStringProperty("JM
SXGroupID", groupID) または
setObjectProperty("JMSXGroup
ID", groupID) メソッド発行時
に,指定した groupID の値が設
定されます。設定は任意です。
ユーザが設定できる文字数は半
角全角を問わないで 512 文字以
下です。
設定タイミング後に取得できま
す。
67
2. 機能
項番
9
プロパティ
JMSXGroupSeq
設定タイミング
Message.setIntProperty("JMSX
GroupSeq", seq) メソッド発行時
に,指定した seq の値が設定さ
れます。設定は任意です。
ユーザが設定できる値は 0 以上
です。
取得タイミング
設定タイミング後に取得できま
す。
(凡例)
−:未サポートのため該当しません。
また,ObjectMessage(ペイロードに BytesContainer を含む)を送受信した場合の
JMS 定義のプロパティの設定タイミングと取得タイミングについて,次の表に示しま
す。
表 2-11 ObjectMessage(ペイロードに BytesContainer を含む)を送受信した場合の
JMS 定義のプロパティの設定タイミングと取得タイミング
項番
プロパティ
設定タイミング
取得タイミング
1
JMSXUserID
−
−
2
JMSXAppID
−
−
3
JMSXConsumerTXID
−
−
4
JMSXProducerTXID
−
−
5
JMSXRcvTimestamp
メッセージをコンシューマに配
送した際に,Cosminexus RM が
設定します。
メッセージ受信後に取得できま
す。
6
JMSXDeliveryCount
メッセージ承認時にCosminexus
RM が設定します。Cosminexus
RM を再度開始すると,この値
は 0 に設定されます。
メッセージ受信後に取得できま
す。
7
JMSXState
−
−
8
JMSXGroupID
Message.setStringProperty("JM
SXGroupID", groupID) または
setObjectProperty("JMSXGroup
ID", groupID) メソッド発行時
に,指定した groupID の値が設
定されます。設定は任意です。
ユーザが設定できる文字数は半
角全角を問わないで 512 文字以
下です。
送信側では設定タイミング後に
取得できます。受信側では取得
できません。
9
JMSXGroupSeq
Message.setIntProperty("JMSX
GroupSeq", seq) メソッド発行時
に,指定した seq の値が設定さ
れます。設定は任意です。
ユーザが設定できる値は 0 以上
です。
送信側では設定タイミング後に
取得できます。受信側では取得
できません。
68
2. 機能
(凡例)
−:未サポートのため該当しません。
(b) Cosminexus RM 固有のプロパティ
Cosminexus RM 固有のプロパティの一覧について,次の表に示します。
表 2-12 Cosminexus RM 固有のプロパティの一覧
項番
プロパティ
型
説明
1
JMS_HITACHI_DeadMessageTimestamp
long
メッセージがデッドメッ
セージキューに移動された
時刻を示す値(単位:ミリ
秒)です。
時刻の値はミリ秒で測定し
た現在時刻と協定世界時の
UTC1970 年 1 月 1 日午前
0 時との差です。
2
JMS_HITACHI_DeadMessageCause
java.lang.String
メッセージがデッドメッ
セージキューに移動された
原因を示す文字列※です。
3
JMS_HITACHI_DeadMessageOriginalQu
eueName
java.lang.String
メッセージがデッドメッ
セージキューに移動される
前に保存されていたキュー
名です。
4
JMS_HITACHI_DeadMessageID
java.lang.String
デッドメッセージを一意に
識別するための値です。こ
のプロパティの値は,コン
フィグレーションプロパ
ティの RMSystemName
プロパティの値と現在時刻
および通番によって決定さ
れます。
注※
次の表に示す文字列のどれかが設定されます。
表 2-13 デッドメッセージキューに移動された原因を示す文字列
項番
文字列
説明
1
DMQCAUSE-001
メッセージが有効期限に達しまし
た。
2
DMQCAUSE-002
メッセージの配送回数が最大値に
達しました。
3
DMQCAUSE-003
順序制御のために滞留している
メッセージが有効期限に達しまし
た。または,滞留しているメッ
セージの属しているグループが閉
鎖しました。
4
DMQCAUSE-004
メッセージの受信に失敗した通知
を受け取りました。
69
2. 機能
Cosminexus RM 固有のプロパティ固有のプロパティの設定タイミングと取得タイミング
について,次の表に示します。
表 2-14 Cosminexus RM 固有のプロパティの設定タイミングと取得タイミング
項番
プロパティ
設定タイミング
取得タイミング
1
JMS_HITACHI_DeadMessageTimesta
mp
メッセージがデッドメッ
セージキューに保存される
際に,Cosminexus RM が設
定します。
なお,デッドメッセージが
再登録される際に削除しま
す。
デッドメッセージ
キューからメッ
セージを受信した
あとで取得できま
す。
2
JMS_HITACHI_DeadMessageCause
メッセージがデッドメッ
セージキューに保存される
際に,Cosminexus RM が設
定します。
なお,デッドメッセージが
再登録される際に削除しま
す。
デッドメッセージ
キューからメッ
セージを受信した
あとで取得できま
す。
3
JMS_HITACHI_DeadMessageOriginal
QueueName
メッセージがデッドメッ
セージキューに保存される
際に,Cosminexus RM が設
定します。
なお,デッドメッセージが
再登録される際に削除しま
す。
デッドメッセージ
キューからメッ
セージを受信した
あとで取得できま
す。
4
JMS_HITACHI_DeadMessageID
メッセージがデッドメッ
セージキューに保存される
際に,Cosminexus RM が設
定します。なお,デッド
メッセージが再登録される
際に削除します。
デッドメッセージ
キューからメッ
セージを受信した
あとで取得できま
す。
(c) アプリケーション指定のプロパティ
ユーザが必要に応じて定義するプロパティです。
ユーザは,メッセージインタフェースの set< 型名 >Property() メソッドの name 引数に
任意のプロパティ名を指定してプロパティに値を設定します。get< 型名 >Property() メ
ソッドの name 引数に set メソッドと同じ名前を指定してプロパティから値を取得しま
す。
プロパティ名はユーザの実装に依存します。ただし,次に示す名前は使用できません。
• JMS 定義のプロパティが使用する接頭語(JMSX)で始まるプロパティ名
• Cosminexus RM 固有のプロパティが使用する接頭語(JMS_)で始まるプロパティ名
• メッセージセレクタで使用する予約語(NOT,AND,OR,BETWEEN,LIKE,
IN,IS,NULL,TRUE および FALSE)と同じプロパティ名
70
2. 機能
(d) プロパティの型変換
Cosminexus RM 固有のプロパティとアプリケーション指定のプロパティに設定できる型
は,boolean,byte,short,int,long,float,double および String です。書き込まれ
たときと異なる型でプロパティを読み取る場合,型は変換されます。
プロパティの型変換について,次の表に示します。
表 2-15 プロパティの型変換
書き込み時の型
読み取り時の型
boolean
boolean
byte
short
int
long
float
double
○
○
byte
○
short
○
○
○
○
○
○
○
○
○
○
○
○
○
int
long
float
○
double
String
String
○
○
○
○
○
○
○
○
○
○
○
○
(凡例)
○:型が変換されます。
空白:型が変換されません。読み取り時に JMSException(MessageFormatException)が発
生します。
注
String 型で書き込まれた文字列を String 以外の型に変換して読み取る場合,書き込まれた文字
列を,変換後の型でラッパークラスの valueOf メソッドによって解釈できないとき,
java.lang.NumberFormatException が発生します。
(3) JMS メッセージのペイロード
JMS メッセージのペイロードは,メッセージ本体のフィールドです。
Cosminexus RM は,次に示すメッセージインタフェースを提供します。各メッセージイ
ンタフェースのペイロードについて,次の表に示します。
表 2-16 メッセージインタフェースのペイロード
項番
インタフェース名
ペイロードの説明
1
Message
ペイロードがありません。
2
BytesMessage
ペイロードがプリミティブなバイトの配列です。
71
2. 機能
項番
インタフェース名
3
ObjectMessage ※
4
TextMessage
ペイロードの説明
ペイロードがシリアライズできる Java オブジェクトです
(BytesContainer およびユーザが定義したクラスのオブジェクトを格
納できます)。
ペイロードが java.lang.String 型です。
注※
非永続版リソースアダプタの場合,ObjectMessage のペイロードに BytesContainer は格納で
きません。
(a) ObjectMessage のペイロードに BytesContainer を格納する場合
永続版リソースアダプタの場合,ObjectMessage オブジェクトの setObject メソッドの
引数に BytesContainer オブジェクトを指定することで,BytesContainer を含む
ObjectMessage を送信することができます。詳細は「7.7 転送データ相互接続用インタ
フェースの使い方」を参照してください。
(b) ObjectMessage のペイロードにユーザが定義したクラスのオブジェクトを格納する
場合
ObjectMessage のペイロードにユーザが定義したクラスのオブジェクトを格納する場合
は,送受信するアプリケーションにユーザが定義したクラスを含める必要があります。
アプリケーションにユーザが定義したクラスを含めない場合は,Cosminexus の J2EE
サーバ用オプション定義ファイルにユーザが定義したクラスまたはクラスが含まれる
JAR のクラスパスを,コンテナ拡張ライブラリとして指定する必要があります。
これらの設定や指定をしていない場合,取り出したメッセージからペイロードを取得す
るときに例外が発生します。ペイロードの取得で例外が発生した場合でも,取り出した
メッセージのトランザクションが決着すると,メッセージが配信済みになるので注意し
てください。
また,Cosminexus RM 01-02 以前でキューに登録したメッセージを移行した場合や,
Cosminexus RM 01-02 以前とキュー間転送する場合も,Cosminexus の J2EE サーバ用
オプション定義ファイルにユーザが定義したクラスまたはクラスが含まれる JAR のクラ
スパスを,コンテナ拡張ライブラリとして指定する必要があります。
Cosminexus の J2EE サーバ用オプション定義ファイル(usrconf.cfg)は,次に示す場
所に格納されています。
<Cosminexusのインストールディレクトリ>¥CC¥server¥usrconf¥ejb¥<サーバ名
>¥usrconf.cfg
usrconf.cfg ファイルをテキストエディタで開き,次の行を追加します。
add.class.path=<コンテナ拡張ライブラリ用のclassまたはJARのクラスパス>
72
2. 機能
J2EE サーバ用オプション定義ファイルについては,マニュアル「Cosminexus リファレ
ンス 定義編」を参照してください。
2.5.2 メッセージ要素のアクセスモード
JMS メッセージのメッセージ要素(ヘッダ,プロパティ,およびペイロード)の値を取
得したり,設定したりするには,メッセージインタフェースが提供するメソッドを使用
します。各要素には,次に示すアクセスモードがあります。
● 読み取り書き込み両用モード(Read / Write mode)
読み取りも書き込みもできるモードです。ヘッダ,プロパティおよびペイロードで発
生するモードです。
● 読み取り専用モード(Read Only mode)
情報の読み取りだけができるモードです。このモードのときにメッセージ要素に情報
を書き込もうとすると MessageNotWriteableException が発生します。プロパティと
ペイロードで発生するモードです。
● 書き込み専用モード(Write Only mode)
情報の書き込みだけができるモードです。このモードのときにメッセージ要素から情
報を読み取ろうとすると MessageNotReadableException が発生します。ペイロード
で発生するモードです。
メッセージ要素とアクセスモードの関係について,次の表に示します。
表 2-17 メッセージ要素とアクセスモードの関係
項番
メッセージ要素
読み取り書き込み両
用モード
読み取り専用モード
書き込み専用モード
1
ヘッダ
○
×
×
2
プロパティ
○
○
×
3
ペイロード
○
○
○
(凡例)
○:あります。
×:ありません。
(1) メッセージ生成時のアクセスモード
メッセージインタフェースのインスタンスは,次に示すメソッドの発行によって生成し
ます。
• QueueSession.createMessage() メソッド:Message インタフェースの場合
• QueueSession.createBytesMessage() メソッド:BytesMessage インタフェースの場
合
73
2. 機能
• QueueSession.createObjectMessage() メソッド:ObjectMessage インタフェースの場
合
• QueueSession.createTextMessage() メソッド:TextMessage インタフェースの場合
メッセージ生成時のメッセージ要素のアクセスモードについて,次の表に示します。
表 2-18 メッセージ生成時のメッセージ要素のアクセスモード
項番
1
インタフェース
Message
2
メッセージ要素
ヘッダ
モード
読み取り書き込み両用モード
プロパティ
3
BytesMessage
ヘッダ
読み取り書き込み両用モード
4
プロパティ
5
ペイロード
書き込み専用モード
ヘッダ
読み取り書き込み両用モード
6
ObjectMessage
7
プロパティ
8
ペイロード
9
TextMessage
ヘッダ
10
プロパティ
11
ペイロード
(2) メッセージ受信時のアクセスモード
受信側アプリケーションは,QueueReceiver.receive() または receiveNoWait() メソッド
の戻り値として,メッセージを受信します。
メッセージ受信時のメッセージ要素のアクセスモードについて,次の表に示します。
表 2-19 メッセージ受信時のメッセージ要素のアクセスモード
項番
1
インタフェース
Message
メッセージ要素
モード
ヘッダ
読み取り書き込み両用モード
プロパティ
読み取り専用モード
ヘッダ
読み取り書き込み両用モード
4
プロパティ
読み取り専用モード
5
ペイロード
2
3
6
BytesMessage
ObjectMessage
ヘッダ
読み取り書き込み両用モード
7
プロパティ
読み取り専用モード
8
ペイロード
9
TextMessage
ヘッダ
読み取り書き込み両用モード
10
プロパティ
読み取り専用モード
11
ペイロード
74
2. 機能
また,メッセージ要素のアクセスモードは,メッセージ受信後に特定のタイミングに
よって移行することがあります。アクセスモードが移行するタイミングについて,次の
表に示します。
表 2-20 アクセスモードが移行するタイミング
項番
タイミング
メッセージ
要素
移行前
1
Message.clearProperties() メ
ソッドの発行
プロパティ
読み取り専用モード
2
ObjectMessage.clearBody()
メソッドの発行
TextMessage.clearBody() メ
ソッドの発行
ペイロード
3
BytesMessage.clearBody() メ
ソッドの発行
4
BytesMessage.reset() メソッ
ドの発行
移行後
読み取り書き込み両
用モード
書き込み専用モード
書き込み専用モード
読み取り専用モード
2.5.3 メッセージとキューの関係
Cosminexus RM のキューは,種類によって格納できるメッセージインタフェースが異な
ります。また,キュー作成時の指定値によってメッセージの管理方法が異なります。
(1) メッセージインタフェースとキューの種類
使用するメッセージインタフェースによって,そのメッセージを格納できるキューの種
類は異なります。
メッセージインタフェースと格納できるキューの種類について,次の表に示します。
表 2-21 メッセージインタフェースと格納できるキューの種類
項番
インタフェース
格納できるキューの種類
1
Message
ローカルキュー
転送キュー
2
BytesMessage
ローカルキュー
転送キュー
送信用共用キュー(ただし,ペイロードだけ)
受信用共用キュー(ただし,ペイロードだけ)
3
ObjectMessage
ローカルキュー※
転送キュー
4
TextMessage
ローカルキュー
転送キュー
注※
BytesContainer を ObjectMessage のペイロードに設定して送信する処理では,ペイロードに
75
2. 機能
設定した BytesContainer のデータだけを送信します。
(2) キュー作成時の指定値とメッセージのヘッダ
キューの作成は,永続版リソースアダプタの場合と非永続版リソースアダプタの場合と
で作成方法が異なります。
● 永続版リソースアダプタの場合
hrmmkque コマンドによって作成されます。
● 非永続版リソースアダプタの場合
キュー定義文(定義の先頭に hrmmkque を記述)を指定して,キュー作成ファイル
を作成します。キュー作成ファイルに指定されたキュー定義文を基に,Cosminexus
RM 開始時にローカルキューが作成されます。
作成時の指定値によって,そのキューに格納されるメッセージの管理方法は異なります。
特に,次に示すオプション指定値はメッセージのヘッダに影響します。
● キューの永続性(永続版リソースアダプタの場合,-m オプション指定値)
送信されたメッセージが永続キュー属性のキューに登録されるとき,そのメッセージ
は永続メッセージになります。アプリケーションが永続メッセージを受信するとき,
メッセージの JMSDeliveryMode ヘッダは DeliveryMode.PERSISTENT に設定され
ています。
送信されたメッセージが非永続キュー属性のキューに登録されるとき,そのメッセー
ジは非永続メッセージになります。アプリケーションが非永続メッセージを受信する
とき,メッセージの JMSDeliveryMode ヘッダは DeliveryMode.NON_PERSISTENT
に設定されています。
なお,非永続版リソースアダプタの場合は,非永続メッセージしか扱いません。その
ため,作成されるキューは非永続キュー属性のキューだけになります。
永続メッセージと非永続メッセージが,各属性のキューでどのように管理されるかに
ついては,
「2.3.1 キューの永続性」を参照してください。
● メッセージの有効期間(-e オプション指定値)
送信されたメッセージがキューに登録されるとき,メッセージの有効期間が秒単位で
設定されます。アプリケーションがメッセージを受信するとき,メッセージの
JMSExpiration ヘッダに有効期間が設定されています。
有効期間が指定されたメッセージが,どのように管理されるかについては,
「2.3.5 メッセージの有効期間」を参照してください。
2.5.4 メッセージサイズを見積もる方法
Cosminexus RM で送受信するメッセージのメッセージサイズを見積もるための計算式は
次のとおりです。
ローカルキューまたは転送キューを使用する場合
7500 + N + M + L + S(単位:バイト)
76
2. 機能
• N =ユーザが設定できる JMS ヘッダの設定サイズ
設定するヘッダによって,次の値を加算します。
JMSReplyTo:シリアライズしたオブジェクトのサイズ
JMSCorrelationID:半角文字数+全角文字数× 3
JMSType:半角文字数+全角文字数× 3
• M = JMS 定義プロパティの設定サイズ
設定するプロパティによって,次の値を加算します。
JMSXGroupID:半角文字数+全角文字数× 3
JMSXGroupSeq:100
• L=l+m
l:ユーザ定義プロパティ名のサイズ(
(半角文字数+全角文字数× 3)×プロパ
ティ数)
m:ユーザ定義プロパティ値のサイズ
プロパティの型によって,次の値を加算します。
java.lang.String:
(半角文字数+全角文字数× 3)×プロパティ数
java.lang.String 以外:100 ×プロパティ数
• S = JMS メッセージのペイロード設定サイズ
メッセージインタフェースによって,次の値を加算します。
TextMessage:半角文字数+全角文字数× 3
BytesMessage:半角文字数+全角文字数× 2
ObjectMessage:シリアライズしたオブジェクトのサイズ
共用キューを使用する場合
1500 +半角文字数+全角文字数× 2(単位:バイト)
77
2. 機能
2.6 アプリケーションからのメッセージ操作
Cosminexus RM のアプリケーションは,JMS インタフェースまたは転送データ相互接
続用インタフェースを使用してメッセージを操作します。ここでは,アプリケーション
作成時に留意しなくてはならない点について説明します。
2.6.1 メッセージの受信制御
アプリケーションが複数のメッセージを受信するとき,メッセージの受信順序はプライ
オリティ,FIFO およびメッセージセレクタによって決定されます。
● プライオリティでの順序
送信側アプリケーションが QueueSender.setPriority() または send() メソッドで設定
したプライオリティの高い順で,受信側アプリケーションはメッセージを受信します。
同じプライオリティのメッセージは FIFO での順序で受信します。
● FIFO での順序
送信側アプリケーションがすべてのメッセージにプライオリティを設定しなかった場
合,またはすべてのメッセージに同じプライオリティを設定した場合,受信側アプリ
ケーションは,メッセージが送信またはコミットされた順序で受信します。
ただし,送信側アプリケーションが複数のスレッドから同時に同じキューにメッセー
ジを送信した場合,メッセージを受信する順序は保証されません。
● メッセージセレクタでの順序
受信側アプリケーションがメッセージセレクタを指定すると,キューに登録された
メッセージの中から,特定の条件に合うメッセージだけを受信できます。複数のメッ
セージが条件に合う場合は,プライオリティでの順序または FIFO での順序でメッ
セージを受信できます。
メッセージセレクタについては,
「2.6.2 メッセージセレクタ」を参照してください。
2.6.2 メッセージセレクタ
QueueSession.createReceiver() または createBrowser() メソッドの引数に,メッセージ
セレクタを指定できます。メッセージセレクタは,受信するメッセージの条件を指定す
るための java.lang.String 型の構文です。受信側アプリケーションはメッセージセレク
タを使用することによって,構文の条件に合うヘッダおよびプロパティの値を持つメッ
セージをキューから受信できます。
注意
受信用共用キューからメッセージを受信または閲覧する場合は,メッセージセレク
タは使用できません。
メッセージセレクタには,識別子,比較演算子,リテラルおよび論理演算子を組み合わ
せた構文を指定します。
78
2. 機能
(1) 識別子
次に示す識別子を指定できます。識別子は半角英字であり,大文字と小文字が区別され
ます。
不正な識別子を指定した場合は InvalidSelectorException が発生します。
• ヘッダの JMSCorrelationID
• プロパティの JMSXGroupID
• プロパティの JMSXGroupSeq
(2) 比較演算子
等号(=)だけを指定できます。比較演算子は半角記号です。
不正な比較演算子を指定した場合は InvalidSelectorException が発生します。
(3) リテラル
指定できるリテラルは識別子によって異なります。各識別子に指定できるリテラルを次
に示します。
不正なリテラルを指定した場合は InvalidSelectorException が発生します。
• ヘッダの JMSCorrelationID またはプロパティの JMSXGroupID の場合
文字列リテラルを指定できます。
文字列リテラルはアポストロフィ(')で囲んでください。文字列リテラルにアポスト
ロフィ(')を含む場合はアポストロフィ(')を二つ記述します。例えば "literal's" を
指定する場合は,次に示すとおり記述します。
'literal''s'
• プロパティの JMSXGroupSeq の場合
厳密な数値リテラルを指定できます。
数値リテラルは半角数字と半角記号です。int の範囲の値を指定できます。0 以上の整
数値(57,+ 62 など)を指定してください。負数は指定しないでください。
(4) 論理演算子
AND だけを指定できます。論理演算子は半角英字であり,大文字だけを指定できます。
JMSXGroupID についての式と JMSXGroupSeq についての式の組み合わせだけが有効
で,論理演算子の前後には空白が必要です。
OR や NOT を使用したり,JMSCorrelationID についての式が含まれる場合は
InvalidSelectorException が発生します。
79
2. 機能
(5) 指定できる構文の例
メッセージセレクタに指定できる構文の例を次に示します。
JMSCorrelationID = 'aaa'
JMSXGroupID = 'bbb'
JMSXGroupSeq = 1
JMSXGroupID = 'bbb' AND JMSXGroupSeq = 2
JMSXGroupSeq = 3 AND JMSXGroupID = 'ccc'
2.6.3 Message-driven Bean との連携
受信用のキューにメッセージが登録されたことを契機に,Message-driven Bean を実装
したアプリケーションはメッセージの配信を受けることができます。
メッセージの配信を受けるには,アプリケーションで次に示すインタフェースを実装す
るクラスを定義し,MessageListener の onMessage() メソッドをオーバライドしてくだ
さい。
• javax.ejb.MessageDrivenBean
• javax.jms.MessageListener
キューにメッセージが登録されると,それを契機に Cosminexus RM は onMessage() メ
ソッドを呼び出し,その引数としてメッセージを渡します。ユーザは onMessage() メ
ソッドの内部を実装し,業務に合わせてメッセージを処理するコードを作成してくださ
い。
Message-driven Bean 実装時の注意事項については,マニュアル「Cosminexus アプリ
ケーション開発ガイド」を参照してください。また,キューのリファレンスの解決方法
については,マニュアル「Cosminexus アプリケーション設定操作ガイド」を参照して
ください。
2.6.4 共用キューでのメッセージ受信時の処理の流れ
共用キューを使用して複数システム間でのアプリケーション連携をする場合について,
メッセージ受信の処理の流れを説明します。
共用キューを使用して複数システム間でのアプリケーション連携をする場合に受信側ア
プリケーションが QueueReceiver.receive() または receiveNoWait() メソッドを発行して
メッセージを受信するには,Cosminexus RM 内部で受信準備を完了しておく必要があり
ます。受信準備はイベントの受信,またはリカバリスレッドでのメッセージ登録の検出
を契機として開始されます。
共用キューを使用して複数システム間でのアプリケーション連携をする場合の受信処理
の流れについて,次の図に示します。
80
2. 機能
図 2-25 共用キューを使用して複数システム間でのアプリケーション連携をする場合の
受信処理の流れ
図中の番号について,説明します。
1. イベントの送信
送信側システムは送信用共用キューへのメッセージ登録が完了したあと,受信側シス
テムにイベントを送信します。
送信時のあて先として受信用共用キューに定義されているホスト名とポート番号が使
用されます。
2. イベントの受信
イベントを受信した受信側システムでは,Cosminexus RM が受信準備を開始します。
受信準備では,DB にアクセスしてメッセージオブジェクトを生成したり,トランザ
クションの制御元にメッセージの有効化を連絡したりします。
受信用共用キューを使用する場合には RMSHConnectFlag プロパティに true を指定
してください。また,RMSHPort プロパティにイベントを受信するためのポート番
号を指定してください。
3. リカバリスレッドでのメッセージの検出
イベントの受信に失敗したときのために,Cosminexus RM は内部にリカバリスレッ
ドを動作させています。リカバリスレッドは RMSHRecoveryTimerInterval プロパ
ティ指定値(単位:秒)で自システムの受信用共用キューを監視します。メッセージ
が登録されていても受信準備が開始されていないキューを検出すると,準備処理が開
始されます。
81
2. 機能
4. アプリケーションでのメッセージの受信
受信準備が完了したあと,アプリケーションが QueueReceiver.receive() または
receiveNoWait() メソッドを発行すると,Cosminexus RM はキューから取り出した
メッセージをアプリケーションに配送します。
2.6.5 DB アクセス時の認証
アプリケーションが取得するコネクション(QueueSession オブジェクト)には,JDBC
コネクションが関連づけられます。
アプリケーションがコネクションを要求すると,Cosminexus RM は Cosminexus のコ
ネクションプーリング機能と連携し,プーリングされている JDBC コネクションを再利
用します。JDBC コネクションがプールにないときは,DBMS から新しい JDBC コネク
ションを取得します。このとき DBMS の接続ユーザの認証にはアプリケーションで指定
した認証方法(コンテナ認証またはアプリケーション認証)が使用されます。認証情報
の設定については,「3.4.5 Cosminexus RM のプロパティ定義(永続版リソースアダプ
タの場合)」を参照してください。
また,アプリケーションがコネクションを解放するときは,Cosminexus のコネクショ
ンプーリング機能を経由して処理されます。コネクションプーリング数(Cosminexus
での定義値)に空きがあると JDBC コネクションは解放されないでプールされます。
アプリケーションからのコネクション取得の概要について,次の図に示します。
図 2-26 アプリケーションからのコネクション取得の概要
図中の番号について,説明します。
1. コネクションの要求
82
2. 機能
アプリケーションが QueueConnection.createQueueSession() メソッドを発行し,コ
ネクションを要求します。
2. コネクションの要求通知
Cosminexus RM が Cosminexus にコネクションの要求通知をします。
3. JDBC コネクションの再利用
Cosminexus 内にプーリング中のコネクションがある場合はプール中の JDBC コネク
ションが再利用されます。
4. JDBC コネクションの要求
プーリング中のコネクションがない場合,Cosminexus RM は DBMS に要求して
JDBC コネクションを取得します。コンテナ認証の場合は,リソースアダプタのプロ
パティで指定した認証情報が利用されます。また,アプリケーション認証の場合は,
アプリケーションで指定した認証情報が利用されます。
5. QueueSession オブジェクトとの関連づけ
Cosminexus RM はアプリケーションに返却する QueueSession オブジェクトを生成
し,3. または 4. で取得した JDBC コネクションと関連づけます。
6. QueueSession オブジェクトの返却
Cosminexus RM はアプリケーションに QueueSession オブジェクトを返します。
2.6.6 トランザクション制御
Cosminexus RM のアプリケーションはトランザクションマネジャでのトランザクショ
ン,およびローカルトランザクションを利用できます。ただし,トランザクションマネ
ジャでのトランザクションとローカルトランザクションとを並行して利用することはで
きません。
例えば,トランザクションマネジャが制御しているときに次に示す状態の QueueSession
オブジェクトを,トランザクション属性が NotSupported のメソッド内で利用しようと
した場合,ローカルトランザクションを並行して利用することになるため例外が発生し
ます。
• QueueConnection.createQueueSession() メソッドの transacted 引数に true を指定し
た QueueSession オブジェクト
• QueueConnection.createQueueSession() メソッドの acknowledgeMode 引数に
CLIENT_ACKNOWLEDGE を指定した QueueSession オブジェクト
(1) ローカルトランザクションの利用
キューセッションでのローカルトランザクションを利用する場合,
QueueConnection.createQueueSession() メソッドの transacted 引数に true を指定しま
す。
ローカルトランザクションの場合,Cosminexus RM のメッセージ送受信だけがトランザ
クションの対象になります。他製品が提供するリソースに対する操作は対象になりませ
ん。
83
2. 機能
(2) トランザクションマネジャでのトランザクションの利用
Cosminexus RM では,トランザクションマネジャでのトランザクションを利用できま
す。次に示す場合,トランザクションマネジャでのトランザクションが発生します。
● Cosminexus の BMT 使用時:javax.transaction.UserTransaction.begin() 発行
● Cosminexus の CMT 使用時:Enterprise Bean のビジネスメソッド呼び出し
トランザクションマネジャでのトランザクションの場合,Cosminexus RM のメッセージ
送受信だけでなく,他製品が提供するリソースに対する操作を含めたトランザクション
が使用できます。
トランザクションマネジャでのトランザクションを使用する場合,Connector 属性ファ
イルの <transaction-support> タグに LocalTransaction または XATransaction を指定し
てください。ただし,LocalTransaction を指定した場合,他製品が提供するリソースに
対する操作を含めたトランザクションを使用できません。NoTransaction を指定した場
合,トランザクションマネジャでのトランザクションを使用できません。Connector 属
性ファイルについては,マニュアル「Cosminexus リファレンス 定義編」を参照してく
ださい。
(3) トランザクションとメッセージ送信
メッセージ送信時の QueueSender.send() メソッドの動作について,トランザクションマ
ネジャによってトランザクションが制御されていない場合と制御されている場合に分け
て説明します。
● トランザクションマネジャによって制御されていない場合
トランザクションマネジャによってトランザクションが制御されていない場合,
QueueSender.send() メソッドの動作は QueueConnection.createQueueSession() メ
ソッドの transacted 引数指定値によって異なります。
トランザクションマネジャによってトランザクションが制御されていない場合の
send() メソッドの動作について,次の表に示します。
表 2-22 トランザクションマネジャによってトランザクションが制御されていない場合
の send() メソッドの動作
transacted 引数
項番
動作内容
1
true
• QueueSender.send() メソッドを発行するとキューセッションで
のローカルトランザクションが開始されます。
QueueSession.commit() メソッドを発行したときにメッセージ
送信がコミットされます。
• ローカルトランザクションが未決着の状態で,トランザクショ
ンマネジャでのトランザクションを開始すると例外が発生しま
す。ローカルトランザクションが開始されていない状態である
なら,トランザクションを開始できます。
2
false
QueueSender.send() メソッドを発行すると,メッセージを正常に
送信完了したときに自動的にコミットされます。
84
2. 機能
注
コミット済みのメッセージを再度送信する場合,プロパティが再設定されて送信されます。
● トランザクションマネジャによって制御されている場合
トランザクションマネジャによってトランザクションが制御されている場合,
QueueSender.send() メソッドでのメッセージ送信はトランザクションマネジャでのト
ランザクションに含まれます。QueueSession.commit() または rollback() メソッドを
発行すると例外が発生します。
(4) トランザクションとメッセージ受信
メッセージの受信方式には,同期受信および非同期受信があります。
● 同期受信
アプリケーションが QueueReceiver.receive() または receiveNoWait() メソッドを発行
したタイミングでメッセージを受信します。
● 非同期受信
Message-driven Bean がキューを監視し,キューにメッセージが到着したタイミング
でメッセージを受信します。
onMessage() メソッドの message 引数によってメッセージを受信できます。この場合
は,QueueConnection.createQueueSession() メソッドの acknowledgeMode 引数に
Session.AUTO_ACKNOWLEDGE を指定したときの QueueReceiver.receive() または
receiveNoWait() メソッドの動作と同じ動作内容になります。Message-driven Bean
との連携については,「2.6.3 Message-driven Bean との連携」を参照してください。
以降では,同期受信についてトランザクションマネジャによってトランザクションが制
御されていない場合と制御されている場合に分けて説明します。
● トランザクションマネジャによって制御されていない場合
トランザクションマネジャによってトランザクションが制御されていない場合,
receive() および receiveNoWait() メソッドの動作は
QueueConnection.createQueueSession() メソッドの transacted および
acknowledgeMode 引数指定値によって異なります。
トランザクションマネジャによってトランザクションが制御されていない場合の
receive() および receiveNoWait() メソッドの動作について,次の表に示します。
85
2. 機能
表 2-23 トランザクションマネジャによってトランザクションが制御されていない場合
の receive() および receiveNoWait() メソッドの動作
項番
transacted
引数
acknowledgeMode 引数
動作内容
1
true
−
• QueueReceiver.receive() または
receiveNoWait() メソッドを発行すると
キューセッションでのローカルトランザク
ションが開始されます。
QueueSession.commit() メソッドを発行し
たときにメッセージ受信が承認されます。
• ローカルトランザクションが未決着の状態
で,トランザクションマネジャでのトラン
ザクションを開始すると例外が発生します。
ローカルトランザクションが開始されてい
ない状態であるなら,トランザクションマ
ネジャでのトランザクションを開始できま
す。
2
false
AUTO_ACKNOWLEDGE
メッセージを正常に受信完了したとき,メッ
セージは自動的に承認されます。
3
DUPS_OK_ACKNOWLEDG
E
4
CLIENT_ACKNOWLEDGE
Queue.Receiver() および receiveNoWait() メ
ソッドでのメッセージの受信はローカルトラ
ンザクションに含まれます。
Message.acknowledge() メソッドを発行する
と,同一のセッションで以前に受信して承認
していないすべてのメッセージおよび現在の
メッセージが承認されます。
QueueSession.recover() メソッドを発行する
と,配送済みのメッセージが再度配送できる
ようになります。
Message.acknowledge() または
QueueSession.recover() メソッドを発行しな
いかぎり,トランザクションマネジャでのト
ランザクションを開始できません。
(凡例)
−:該当しません。
● トランザクションマネジャによって制御されている場合
トランザクションマネジャによってトランザクションが制御されている場合,
QueueReceiver.receive() および receiveNoWait() メソッドの動作は
QueueConnection.createQueueSession() メソッドの transacted および
acknowledgeMode 引数指定値によって異なります。
トランザクションマネジャによってトランザクションが制御されている場合の
receive() および receiveNoWait() メソッドの動作について,次の表に示します。
86
2. 機能
表 2-24 トランザクションマネジャによってトランザクションが制御されている場合の
receive() および receiveNoWait() メソッドの動作
項番
transacted
引数
1
true
−
QueueReceiver.receive() または
receiveNoWait() メソッドでのメッセージの
受信はトランザクションマネジャでのトラン
ザクションに含まれます。
2
false
AUTO_ACKNOWLEDGE
QueueSession.commit() または rollback() メ
ソッドを発行すると例外が発生します。
acknowledgeMode 引数
3
DUPS_OK_ACKNOWLEDGE
4
CLIENT_ACKNOWLEDGE
動作内容
QueueReceiver.receive() または
receiveNoWait() メソッドでのメッセージの
受信はトランザクションマネジャでのトラン
ザクションに含まれます。
Message.acknowledge() または
QueueSession.recover() メソッドを発行する
と例外が発生します。
(凡例)
−:該当しません。
(5) Cosminexus のアウトプロセストランザクションサービスの利用
Cosminexus のアウトプロセストランザクションサービスを使用し,XID 再利用で最適
化を行った場合,グローバルトランザクションで異なる二つのリソースアダプタ(別々
にデプロイされた二つの Cosminexus RM,Cosminexus RM と DB Connector など)か
ら同一の DB に接続するコネクションを使用しないでください。
この構成にすると,リソースマネジャでエラーが発生する,または応答が返らないおそ
れがあります。XID 再利用による最適化については,マニュアル「Cosminexus 機能解
説」を参照してください。
2.6.7 アプリケーション作成時の注意事項
Cosminexus RM のアプリケーションを作成するときの注意事項を次に示します。
なお,非永続版リソースアダプタの場合は,(2),(6),(8),および (9) の注意事項には該
当しません。
(1) スレッド間でのオブジェクトの共有
QueueSession オブジェクトおよび QueueSession オブジェクトを使用して生成したオブ
ジェクトを複数のスレッドやアプリケーションで共有できません。共有した場合の動作
は保証されません。
87
2. 機能
(2) JDBC コネクション
(a) JDBC コネクションの消費
アプリケーションのリソースアダプタリファレンスの解決時に,サーブレットおよび
JSP や Enterprise Bean の属性ファイルの <res-sharing-scope> タグに "Shareable" が
指定されていない場合,Cosminexus RM では QueueSession オブジェクトが一つ生成さ
れるたびに,JDBC コネクションが一つ消費されます。このため,アプリケーションで
使用しなくなった QueueSession オブジェクトについては,必ず QueueSession.close()
メソッドを発行してリソースを解放するようにしてください。属性ファイルについては,
マニュアル「Cosminexus リファレンス 定義編」を参照してください。
ただし,Cosminexus のコネクションプーリング機能を使用する場合は QueueSession オ
ブジェクト生成時に JDBC コネクションは再利用されます。QueueSession.close() メ
ソッドで解放しても JDBC コネクションは継続して使用されます。
Message-driven Bean を使用する場合は,メッセージが配信されるとき,
Message-driven Bean のインスタンスごとに一つの JDBC コネクションが消費されま
す。メッセージの配信が終了すると,リソースは解放されます。コネクションプーリン
グ機能を使用している場合は,JDBC コネクションは解放されないでプールされます。
(b) トランザクションマネジャ内での JDBC コネクションの利用
トランザクションマネジャでのトランザクション内では,最初にトランザクションに参
加した JDBC コネクションが常に利用されます。つまり,2 番目以降の JDBC コネク
ションに対する処理も,最初の JDBC コネクションを利用して行われるので注意が必要
です。
(3) コネクションシェアリング時の指定
アプリケーションのリソースアダプタリファレンスの解決時に,サーブレットおよび
JSP や Enterprise Bean の属性ファイルの <res-sharing-scope> タグに "Shareable" を
指定し,かつ論理コネクション(QueueSession オブジェクト)を複数生成する場合は,
QueueSession オブジェクト生成時の transacted 引数に false を,acknowledgeMode 引
数に AUTO_ACKNOWLEDGE を指定してください。属性ファイルについては,マニュ
アル「Cosminexus リファレンス 定義編」を参照してください。
異なる引数を指定して QueueSession オブジェクトを生成した場合,コネクションシェ
アリングが動作する契機で例外が発生します。
(4) Message-driven Bean の監視対象のキュー
Message-driven Bean で監視するキューがシリアル取り出し属性の場合は,
Message-driven Bean の多重度を 2 以上にしても性能面での効果はありません。多重度
を上げてメッセージを配送する場合は監視するキューをパラレル取り出し属性にするこ
とをお勧めします。
88
2. 機能
また,Message-driven Bean で監視するキューがシリアル取り出し属性の場合は,同一
のキューに対する QueueReceiver.receive() メソッドを発行しないでください。発行する
とデッドロックが発生します。
(5) Message-driven Bean 使用時のトランザクションの指定
Message-driven Bean を使用する場合,Connector 属性ファイルの
<transaction-support> タグに XATransaction または LocalTransaction を指定してくだ
さい。XATransaction または LocalTransaction 以外を指定すると Message-driven Bean
アプリケーションのデプロイに失敗します。Connector 属性ファイルについては,マ
ニュアル「Cosminexus リファレンス 定義編」を参照してください。
(6) Message-driven Bean を BMT で使用するときの DB Connector のス
テートメントプールの指定
Message-driven Bean を BMT で使用する場合,接続先が HiRDB で,かつ
XATransaction モードのときは,DB Connector のステートメントプールを使用しないで
ください。DB Connector のステートメントプール使用した場合,エラーメッセージとと
もに SQLException 例外が発生することがあります。
(7) Message-driven Bean 使用時のコネクションプーリング数の指定
Message-driven Bean を使用する場合,コネクションプーリング数が Message-driven
Bean の多重度よりも少ないと,性能が劣化することがあります。コネクションプーリン
グ数は,Message-driven Bean の多重度よりも多くすることをお勧めします。
(8) 共用キュー
(a) 共用キューのアクセス順序
一つのトランザクション内で複数の共用キューにアクセスする場合,各アプリケーショ
ンでキューにアクセスする順序を統一する必要があります。異なる順序で共用キューに
アクセスしようとすると,デッドロックが発生するおそれがあります。
(b) 受信用共用キューの利用
一つのトランザクション内で,同一の受信用共用キューに対する受信と送信を混在させ
ないようにしてください。
(9) メッセージのサイズ制限
キュー間転送を行う場合,SOAP 通信基盤の SOAP アタッチメントに関する仕様によっ
て,転送するメッセージのサイズに制限が掛かる条件があります。制限の内容および制
限が掛かる条件については SOAP 通信基盤のドキュメントを参照してください。
89
2. 機能
(10)参照渡し方式利用時の JMS メッセージの再利用
参照渡し方式を利用する場合,1 度でも登録,取り出し,または参照した JMS メッセー
ジに対しては,次の操作を実行しないでください。
● メッセージの登録
• 登録したメッセージの再登録
• 登録したメッセージの更新メソッドおよび acknowledge() メソッドの呼び出し
• 登録したメッセージが BytesMessage の場合,ペイロードの参照メソッドの呼び出
し
● メッセージの取り出し
• 取り出したメッセージの登録
• 取り出したメッセージの更新メソッドの呼び出し
• 取り出しをコミットしたメッセージの acknowledge() メソッドの呼び出し
• 取り出しをロールバックしたメッセージのすべてのメソッドの呼び出し
● メッセージの参照
• 参照したメッセージの登録
• 参照したメッセージの更新メソッドおよび acknowledge() メソッドの呼び出し
参照渡し方式利用時の JMS メッセージのメソッドの呼び出し可否を次の表に示します。
表 2-25 JMS メッセージのメソッドの呼び出し可否
JMS メッセージのメソッドを呼び出すタイミング
登録後
取り出し後
参照メソッ
ド
更新メソッ
ド
acknowledg
e() メソッ
ド
send() メソッドの発行後
○※
×
×
commit() メソッドの発行後
○※
×
×
rollback() メソッドの発行後
○※
×
×
receive() メソッドの発行または MDB 配
信後
○
×
○
commit() メソッドまたは acknowledge()
メソッドの発行後
○
×
×
rollback() メソッドまたは recover() メ
ソッドの発行後
×
×
×
○
×
×
参照後
(凡例)
○:呼び出せます。
×:呼び出せません。
90
JMS メッセージのメソッドの呼び出し可
否
2. 機能
注※
BytesMessage の場合,ペイロードの参照メソッドは呼び出せません。
登録,取り出し,または参照した JMS メッセージに対して,呼び出せないメソッドを呼
び出した場合の動作は保証できません。呼び出せないメソッドを呼び出した場合,ほか
のセッションで取り出したメッセージの受信を承認(acknowledge)してしまう,メッ
セージデータが不正になる,例外が発生するなどの状態になることがあります。
登録に失敗したメッセージを再び登録したい場合は,新たに JMS メッセージを作成し,
作成したメッセージに,登録に失敗したメッセージに設定していた情報を設定し直して,
登録してください。
(11)参照渡し方式利用時の JMS メッセージの排他
参照渡し方式を利用する場合,JMS メッセージに対して synchronized による排他を取
らないでください。JMS メッセージで排他を取得した場合,デッドロックが発生するお
それがあります。
91
2. 機能
2.7 DB Connector for Cosminexus RM の機能
Cosminexus RM は,システム状態やユーザから送られてきたメッセージを DB 上のテー
ブルに永続化します。その場合,DB へのアクセスには DB Connector for Cosminexus
RM を利用します。
2.7.1 Cosminexus RM と DB Connector for Cosminexus RM
の関係
Cosminexus RM と DB Connector for Cosminexus RM の関係について,次の図に示し
ます。
図 2-27 Cosminexus RM と DB Connector for Cosminexus RM の関係
DB Connector for Cosminexus RM はデータベースにアクセスするためのリソースアダ
プタです。Cosminexus RM は,DB Connector for Cosminexus RM の JDBC コネク
ションを取得し,JDBC インタフェースを利用してデータベースにアクセスします。
Cosminexus RM と DB Connector for Cosminexus RM は 1:1 に対応づける必要があり
ます。そのため,Cosminexus RM の RMLinkedDBConnectorName プロパティに DB
Connector for Cosminexus RM の表示名を指定します。同様に,DB Connector for
Cosminexus RM から Cosminexus RM への対応づけも必要です。
なお,DB Connector for Cosminexus RM と連携できるのは,永続版リソースアダプタ
92
2. 機能
の Cosminexus RM だけです。
(1) リソースアダプタ間の依存関係
Cosminexus RM は,DB Connector for Cosminexus RM の JDBC コネクションを利用
して DB にアクセスします。したがって,Cosminexus RM の稼働時には,DB
Connector for Cosminexus RM も稼働している必要があります。
Cosminexus Component Container は,Cosminexus RM の開始時に,連携する DB
Connector for Cosminexus RM が稼働中かどうかをチェックし,稼働していない場合は
エラーを返します。また,DB Connector for Cosminexus RM の停止時には,連携する
Cosminexus RM が停止済みかどうかをチェックし,停止していない場合はエラーを返し
ます。
リソースアダプタの状態と開始または停止の依存関係を次の表に示します。
表 2-26 DB Connector for Cosminexus RM の状態と Cosminexus RM の開始または停止
の関係
DB Connector for Cosminexus RM の状態
稼働中
連携する Cosminexus RM の動作
開始できる
停止できる
停止中
開始できない
表 2-27 Cosminexus RM の状態と DB Connector for Cosminexus RM の開始または停止
の関係
Cosminexus RM の状態
連携する DB Connector for Cosminexus RM の動作
稼働中
停止できない
停止中
開始できる
停止できる
リソースアダプタの開始時には,Cosminexus Component Container が Cosminexus
RM と DB Connector for Cosminexus RM の対応づけをチェックします。Cosminexus
RM の開始時に DB Connector for Cosminexus RM と正しく対応づけられなかった場合
は,Cosminexus RM は開始できません。
(2) リソースアダプタの設定
リソースアダプタの設定情報のうち,コネクションプールに関する情報や認証情報は,
Cosminexus RM のプロパティに設定します。また,DB への接続情報は DB Connector
for Cosminexus RM のプロパティに設定します。
リソースアダプタの設定情報の分類を次の表に示します。
93
2. 機能
表 2-28 リソースアダプタの設定情報の分類
DB Connector for
Cosminexus RM
Cosminexus RM
Cosminexus RM 固有の情報
−
○
DB Connector for Cosminexus
RM 固有の情報(ステートメント
プールなど)
○
−
ログ取得情報
○
○
連携先リソースアダプタ名
○
○
認証情報(ユーザ名,パスワード)※ 1 ※ 2
○
○
コネクションプールサイズ※ 2
○
○
コネクション障害検知※ 2
○
○
コネクション取得リトライ※ 2
○
○
トランザクションサポートレベル※ 2
○
○
データベース接続定義
○
−
設定情報
コンフィグレーショ
ンプロパティ
(凡例)
○:設定が必要です。
−:設定項目がありません。
注※ 1
コンテナ認証時の DB への接続ユーザ名およびパスワードとして使用されます。
注※ 2
DB Connector for Cosminexus RM と Cosminexus RM で同じ値を設定してください。
2.7.2 DB Connector for Cosminexus RM の機能一覧
DB Connector の機能の中には,DB Connector for Cosminexus RM で使用できる機能と
使用できない機能があります。DB Connector for Cosminexus RM で使用できる DB
Connector の機能を次の表に示します。なお,各機能の詳細については,
「2.7.3 DB
Connector for Cosminexus RM 連携時のコネクションと SQL の運用」
,マニュアル
「Cosminexus 機能解説」
,およびマニュアル「Cosminexus システム運用ガイド」を参照
してください。
表 2-29 DB Connector for Cosminexus RM で使用できる DB Connector の機能
項
番
DB Connector の機能
DB Connector for Cosminexus RM での使
用可否
1
コネクションプーリング
○
2
コネクションプールのウォーミングアップ
○
3
コネクションシェアリング・アソシエーション
○
94
2. 機能
DB Connector の機能
項
番
DB Connector for Cosminexus RM での使
用可否
4
ステートメントプーリング
○
5
ステートメントキャンセル
○
6
DataSource オブジェクトのキャッシング
○
7
DB Connector のコンテナ管理でのサインオンの最適
化
○
8
コネクションの障害検知
○
9
コネクションの障害検知のタイムアウト
○
10
コネクション枯渇時のコネクション取得待ち
○
11
コネクションの取得リトライ
○
12
コネクションプールの情報表示
○
13
コネクションプールのクリア
○
14
コネクションの自動クローズ
○
15
コネクションスイーパ
○
16
接続テスト
○
17
コネクション数調節機能
○
18
コネクションプールの情報表示
○
19
コネクションプールの一時停止
×
20
コネクションプールの再開
×
21
J2EE リソースのオプショナル名機能
○
22
コネクション ID の取得
○
23
障害調査用 SQL の出力
◎
24
軽微な障害時のコネクション再利用
○
(凡例)
◎:必ず有効になります。
○:使用できます。
×:使用できません。
2.7.3 DB Connector for Cosminexus RM 連携時のコネクショ
ンと SQL の運用
Cosminexus RM と DB Connector for Cosminexus RM が連携するときのコネクション
と SQL の運用について説明します。
(1) コネクションの共有
DB Connector for Cosminexus RM と Cosminexus RM は,共に JDBC コネクションを
95
2. 機能
利用します。同一トランザクション内で JDBC と JMS のアクセスを行う場合は,JDBC
コネクションを共有できます。
DB Connector for Cosminexus RM と Cosminexus RM の間でコネクションを共有する
には,次の条件を満たす必要があります。
● DB Connector for Cosminexus RM と Cosminexus RM が使用する DB が同一である
こと。
● Cosminexus RM の RMAssociateJDBCFlag プロパティに true が指定されているこ
と。
● アプリケーションのリソースアダプタリファレンスの解決時に,データソースと
キューコネクションファクトリの Session Bean 属性ファイル,Entity Bean 属性ファ
イル,WAR 属性ファイル,または MessageDrivenBean 属性ファイルの
<res-sharing-scope> タグに "Shareable" を指定していること(各属性ファイルについ
ては,マニュアル「Cosminexus リファレンス 定義編」を参照してください)
。
● 認証情報(ユーザ名,パスワード)が同一であること。
● 認証方法(コンテナ認証またはアプリケーション認証)が同一であること。
● Cosminexus RM の QueueSession が,すべて AutoAcknowledge モードであること
(AutoAcknowledge モード以外の QueueSession との間でコネクションを共有しよう
とすると,論理コネクション(java.sql.Connection, QueueSession)の取得に失敗し
ます)
。
コネクション共有の条件を満たさない場合は,別の JDBC コネクションが取得されます。
この場合も,トランザクションマネジャでのトランザクション内では最初にトランザク
ションに参加した JDBC コネクションが常に利用されます。つまり,2 番目以降の
JDBC コネクションに対する処理も,最初の JDBC コネクションを利用して行われるの
で注意が必要です。
なお,コネクション共有を利用するかどうかに関係なく,JDBC コネクションは
Cosminexus RM のコネクションとしてプール管理されます。一方,DB Connector for
Cosminexus RM のコネクションはプール管理されません。コネクション取得時には
Cosminexus RM のコネクションプールから JDBC コネクションを取得します。
(2) ステートメントキャンセル
DB Connector for Cosminexus RM と連携する場合,実行中の SQL 処理が返ってこない
状態でトランザクションのタイムアウトが発生すると,ステートメントがキャンセルさ
れます。
Cosminexus RM のステートメントキャンセルで注意する点を次に示します。
● ステートメントキャンセルは,ユーザが JDBC を利用して行う処理に対してだけ有効
です。ユーザが JMS,または JDBC と JMS との間でコネクションシェアリングを利
96
2. 機能
用する場合,ステートメントキャンセルは JDBC の処理に対してだけ有効となりま
す。このとき,JMS を通して行われる処理に対しては,ステートメントがキャンセル
されません。
● トランザクションのサポートレベルが XATransaction で DABroker を利用して
HiRDB と接続する場合,ステートメントはキャンセルされません。
(3) 障害調査用 SQL の出力
デッドロックやスローダウンなどの障害が発生した場合,発行した SQL が障害の要因と
なった可能性があります。そこで,発行した SQL をログに出力することによって,障害
要因の解析が容易になります。ログに出力される SQL の情報を障害調査用 SQL と呼び
ます。障害調査用 SQL の詳細については,マニュアル「Cosminexus 機能解説」を参照
してください。
Cosminexus RM の障害調査用 SQL の出力で注意する点を次に示します。
● 障害調査用 SQL の出力は,ユーザが JDBC を利用して行う処理に対してだけ有効で
す。ただし,ユーザがリソースアダプタ管理のトランザクション(リソース固有の
API によって,ユーザが直接トランザクションを管理する方法)で JDBC と JMS と
の間でコネクションシェアリングを利用する場合,JMS を通して行われる処理に対し
ての障害調査用 SQL が出力されることがあります。
● ステートメントキャンセルと障害調査用 SQL の出力は,まず障害調査用 SQL の出力
が実行され,そのあとにステートメントキャンセルが実行されます。
● 障害調査用 SQL は,DB Connector for Cosminexus RM の稼働ログ,および性能解析
トレースに出力されます。
DB Connector for Cosminexus RM の稼働ログ
<Cosminexus のログディレクトリ >¥connectors
性能解析トレース
<Cosminexus のインストールディレクトリ
>¥PRF¥spool¥utt¥prf¥PRF_ID¥dcopltrc
(4) 軽微な障害時のコネクション再利用
コネクション利用時に発生したエラーが,テーブルの一意性に違反した SQL の発行など
軽微な障害の場合,コネクションを再利用します。
Cosminexus RM の軽微な障害時のコネクション再利用で注意する点を次に示します。
● 軽微な障害時のコネクション再利用は,ローカルトランザクションの場合だけ有効で
す。トランザクションを使用していない,またはトランザクションのサポートレベル
が XATransaction の場合,コネクションは破棄されます。
97
2. 機能
(5) コネクション ID の取得
DB Connector for Cosminexus RM と連携した場合,接続先 DB のコネクション ID を取
得できます。コネクション ID とは,DB との接続に使用しているコネクションを一意に
識別するための接続情報です。コネクション ID の取得の詳細については,マニュアル
「Cosminexus システム運用ガイド」を参照してください。
Cosminexus RM のコネクション ID の取得で注意する点を次に示します。
● Cosminexus RM は,一つのトランザクション内の場合,アプリケーションは同じ DB
Connector for Cosminexus RM のコネクションを利用します。そのため,一つのトラ
ンザクション内で複数のコネクションを利用しているときに cjlistpool コマンドを実
行すると,同じコネクション ID が二つあるように見えます。
(6) コネクションの接続テスト
Cosminexus Component Container が提供する Cosminexus RM の接続テストを行うに
は,連携する DB Connector for Cosminexus RM が稼働中であることが前提となります。
また,DB Connector for Cosminexus RM の接続テストでは,Cosminexus RM と DB
Connector for Cosminexus RM の両方が稼働中であることを前提とします。
接続テストに失敗した場合は,メッセージの内容に応じて要因を取り除いてください。
2.7.4 DB Connector for Cosminexus RM 連携時の注意事項
● Cosminexus RM が管理状態または閉塞状態のときには,DB Connector for
Cosminexus RM を利用して,トランザクションマネジャでのトランザクションの利
用はできません。
● DB だけを利用する場合は,通常の DB Connector を利用してください。DB
Connector for Cosminexus RM は,コネクション共有機能のオーバヘッドがあるた
め,性能が劣化します。
● DB Connector for Cosminexus RM を利用している場合,java.sql.Connection の
setAutoCommit() メソッドは利用できません。したがって,JDBC 固有のトランザク
ション制御はできません。なお,コネクション共有を行い,トランザクションマネ
ジャのトランザクションを利用していない場合,JDBC のコネクションは
AutoCommit=true となります。また,JMS の QueueSession は
AUTO_ACKNOWLEDGE モードとなります。
● Oracle を利用して JDBC と JMS のアクセスを行う場合は,コネクション共有機能を
使うことが前提となります。Cosminexus RM では,同一 DB に対して,異なるリ
ソースアダプタとの間の 2 相コミットはできません。
● java.sql.Connection からの生成物(例:java.sql.Statement)を,トランザクション
の範囲を超えて使用することはできません。
98
3
システム構築
この章では Cosminexus RM のシステムを構築する手順につい
て説明します。
なお,Cosminexus RM のシステム構築は,永続版リソースア
ダプタを使用する場合と非永続版リソースアダプタを使用する
場合とで手順が異なります。
3.1 システム構築の流れ
3.2 Cosminexus RM のインストール
3.3 システム構築の準備
3.4 Cosminexus RM のシステム構築(永続版リソースアダプタの場合)
3.5 Cosminexus RM のシステム構築(非永続版リソースアダプタの場合)
3.6 システム構築時の注意事項
99
3. システム構築
3.1 システム構築の流れ
Cosminexus RM のシステム構築の流れを次の図に示します。
図 3-1 Cosminexus RM のシステム構築の流れ
図中の番号について説明します。
100
3. システム構築
(1) インストール
Cosminexus や DBMS などの前提製品をインストールしたあと,Cosminexus RM を
Cosminexus システムが動作するマシンにインストールします。Windows の場合は
HITACHI 総合インストーラを,UNIX の場合は日立 PP インストーラを使用してインス
トールしてください。また,インストール後に格納されるファイルについては,
「3.2.2 Cosminexus RM をインストールすると格納されるファイル」を参照してください。
(2) システム構築の準備
システム名として,RMSystemName プロパティに指定する値(先頭が英字の 1 ∼ 3 文
字の大文字英字または数字)を決定します。また,Cosminexus RM が使用する環境変数
を設定します。
システム名の決定については,
「3.3.1 Cosminexus RM のシステム名の決定」を,環境
変数の設定については,
「3.3.2 環境変数の設定」を参照してください。
(3) システム構築
システム構築の手順は,永続版リソースアダプタを使用する場合と,非永続版リソース
アダプタを使用する場合で異なります。
永続版リソースアダプタを使用する場合は,
「3.4 Cosminexus RM のシステム構築(永
続版リソースアダプタの場合)
」を,非永続版リソースアダプタを使用する場合は,「3.5
Cosminexus RM のシステム構築(非永続版リソースアダプタの場合)」を参照してく
ださい。
なお,キュー定義ファイルの作成以降の作業については,コマンドでシステムを構築し
ています。コマンド以外にも,GUI(プラグイン)や Cosminexus Management Server
を利用してシステムを構築することもできます。GUI(プラグイン)または
Cosminexus Management Server を利用したシステム構築方法については,マニュアル
「Cosminexus システム構築ガイド」およびマニュアル「Cosminexus アプリケーション
開発ガイド」を参照してください。
また,Cosminexus RM および DB Connector for Cosminexus RM のプロパティは,
ユーザが環境に合わせて定義します。プロパティ定義の流れを次に示します。
1. J2EE サーバの開始
Cosminexus を J2EE サーバモードの 1.4 モードで開始します。また,アプリケー
ションの要件に合わせて,必要な Cosminexus のサービスを開始してください。
2. プロパティの定義
DB Connector for Cosminexus RM および Cosminexus RM のプロパティを定義しま
す。Cosminexus RM で提供する Connector 属性ファイルのテンプレートを任意の
ディレクトリにコピーして,コピーしたファイルを編集してください。
認証情報(User および Password)には Cosminexus RM が HiRDB または Oracle
にアクセスするために利用する接続ユーザのユーザ名,パスワードを指定してくださ
101
3. システム構築
い。
なお,非永続版リソースアダプタでは認証情報(User および Password)は,指定し
ても無視されます。
3. DB Connector for Cosminexus RM および Cosminexus RM のインポート
サーバ管理コマンドを使用して,リソースアダプタとして DB Connector for
Cosminexus RM および Cosminexus RM をインポートします。
4. プロパティの設定
サーバ管理コマンドを使用して,DB Connector for Cosminexus RM および
Cosminexus RM のプロパティを設定します。
5. DB Connector for Cosminexus RM および Cosminexus RM のデプロイ
サーバ管理コマンドを使用して,DB Connector for Cosminexus RM および
Cosminexus RM をデプロイします。
6. J2EE サーバの停止
必要に応じて J2EE サーバ(Cosminexus Component Container)を停止します。引
き続き Cosminexus RM を開始する場合は,J2EE サーバを停止しないで,永続版リ
ソースアダプタを使用するときは「4.1 Cosminexus RM とアプリケーションの開始
と停止(永続版リソースアダプタの場合)」を,非永続版リソースアダプタを使用す
るときは「5.1 Cosminexus RM とアプリケーションの開始と停止(非永続版リソー
スアダプタの場合)」を参照してください。
なお,Cosminexus RM および DB Connector for Cosminexus RM のシステムを構築す
るサンプル手順については,「付録 C.1 環境構築のサンプル手順」を参照してください。
102
3. システム構築
3.2 Cosminexus RM のインストール
Cosminexus RM は,Windows の場合は HITACHI 総合インストーラを,UNIX の場合
は日立 PP インストーラを使用してインストールします。インストールは,HITACHI 総
合インストーラ,または日立 PP インストーラの指示に従ってください。なお,
Cosminexus RM のインストールは,前提製品をインストールしたあとに実施します。前
提製品のインストールについては,
「3.2.1 前提製品のインストール」を参照してくださ
い。
3.2.1 前提製品のインストール
Cosminexus RM をインストールする前に,Cosminexus や DBMS(永続版リソースア
ダプタを使用する場合だけ)などの前提製品をインストールする必要があります。前提
製品のインストールの方法については,この章で説明する内容に加えて各製品が提供す
るマニュアルを参照してください。
(1) Cosminexus のインストール
Cosminexus RM は J2EE サーバ上で動作します。Cosminexus RM が動作するマシン
に,次に示す製品をインストールしてください。
• Cosminexus Component Container
• Cosminexus DABroker Library
DB Connector for Cosminexus RM で Cosminexus DABroker Library を使用する場合
だけ必要です。
• Cosminexus Developer's Kit for Java
• Cosminexus TPBroker
• Cosminexus Performance Tracer
PRF トレースを取得する場合だけ必要です。
インストールしたあと,アプリケーションで実行する業務に合わせて Cosminexus シス
テムを構築してください。構築方法については,マニュアル「Cosminexus システム構
築ガイド」を参照してください。
(2) DBMS のインストール
永続版リソースアダプタを使用する場合,DBMS として HiRDB または Oracle をインス
トールしてください。
(3) DB クライアントのインストール
永続版リソースアダプタを使用する場合で,DBMS として HiRDB を使用するとき,次
に示す製品をインストールしてください。
103
3. システム構築
• HiRDB/Run Time または HiRDB/Developer's Kit
詳細については,マニュアル「HiRDB UAP 開発ガイド」を参照してください。
• HiRDB SQL Executer
詳細については,HiRDB SQL Executer のドキュメントを参照してください。
3.2.2 Cosminexus RM をインストールすると格納される
ファイル
Cosminexus RM をインストールすると,次に示すファイルが格納されます。
Cosminexus RM のインストール内容について,次の表に示します。
表 3-1 Cosminexus RM のインストール内容
項番
名称
ディレクトリ
ファイル名
1
永続版リソースアダプタ
%HRMDIR%¥lib
reliablemessaging.rar
2
非永続版リソースアダプタ
%HRMDIR%¥lib
reliablemessagingNP.rar
3
ライブラリ
%HRMDIR%¥lib
reliablemessaging-api.jar
4
クラスライブラリ
%HRMDIR%¥lib
hrmcommand.jar
5
EAR
%HRMDIR%¥lib
hrmqueue-transmit.ear
6
コマンド
%HRMDIR%¥bin
Windows の場合
hrm*.bat
UNIX の場合
hrm*
7
クライアント定義ファイル
%HRMDIR%¥conf
c4webcl.properties
8
テーブル作成用 SQL ファ
イル
%HRMDIR%¥sql
createtableshirdb.sql
createtablesoracle.sql
9
テーブル削除用 SQL ファ
イル
%HRMDIR%¥sql
deletetableshirdb.sql
deletetablesoracle.sql
10
共用キューバージョンアッ
プ用 SQL
%HRMDIR%¥sql
shqupdate_V1toV2.sql
11
Connector 属性ファイルの
テンプレート
%HRMDIR%¥conf
rm_prop.xml
rmnp_prop.xml
12
クライアントログファイル
%HRMDIR%¥logs¥cmd¥clt
−
104
3. システム構築
項番
13
名称
ディレクトリ
ファイル名
%HRMDIR%¥samples¥
SessionBean1
JMSSample1.java
JMSSample1Client.java
JMSSample1EJB.java
JMSSample1Home.java
QueueConfig.properties
QueueConfigNP.properties
QueueMake.properties
config.xml
Windows の場合
compileBean.bat
compileClient.bat
testClient.bat
deployApp.bat
unDeployApp.bat
UNIX の場合
compileBean
compileClient
testClient
deployApp
unDeployApp
14
%HRMDIR%¥samples¥
SessionBean1¥DD_EJB¥MET
A-INF
ejb-jar.xml
15
%HRMDIR%¥samples¥
SessionBean1¥DD_APP¥MET
A-INF
application.xml
16
%HRMDIR%¥samples¥
SessionBean2¥Receive
JMSSample2Receive.java
JMSSample2ReceiveClient.j
ava
JMSSample2ReceiveEJB.ja
va
JMSSample2ReceiveHome.j
ava
QueueConfig.properties
config.xml
Windows の場合
compileBean.bat
compileClient.bat
testReceiveClient.bat
deployApp.bat
unDeployApp.bat
UNIX の場合
compileBean
compileClient
testReceiveClient
deployApp
unDeployApp
17
%HRMDIR%¥samples¥
SessionBean2¥Receive¥DD_E
JB¥META-INF
ejb-jar.xml
サンプルアプリケーション
105
3. システム構築
項番
名称
ディレクトリ
ファイル名
18
%HRMDIR%¥samples¥
SessionBean2¥Receive¥DD_A
PP¥META-INF
application.xml
19
%HRMDIR%¥samples¥
SessionBean2¥Send
JMSSample2Send.java
JMSSample2SendClient.jav
a
JMSSample2SendEJB.java
JMSSample2SendHome.jav
a
QueueConfig.properties
config.xml
Windows の場合
compileBean.bat
compileClient.bat
testSendClient.bat
deployApp.bat
unDeployApp.bat
UNIX の場合
compileBean
compileClient
testSendClient
deployApp
unDeployApp
20
%HRMDIR%¥samples¥
SessionBean2¥Send¥DD_EJB
¥META-INF
ejb-jar.xml
21
%HRMDIR%¥samples¥
SessionBean2¥Send¥DD_APP
¥META-INF
application.xml
(凡例)
−:インストール直後はファイルがありません。
注
%HRMDIR% は Cosminexus RM がインストールされたディレクトリを表します。
106
3. システム構築
3.3 システム構築の準備
システムを構築する前の準備について説明します。
3.3.1 Cosminexus RM のシステム名の決定
システム名として,システム間で一意となる値(先頭が英字の 1 ∼ 3 文字の大文字英字
または数字)を決定します。決定した値は環境変数,RMSystemName プロパティなど
に指定します。
3.3.2 環境変数の設定
Cosminexus RM が動作するマシンで,次に示す環境変数を設定してください。
● HRMDIR
Cosminexus RM がインストールされたディレクトリのパスを指定します。
● HRM_SYSTEM_NAME
Cosminexus RM が提供するコマンドを実行する際に操作の対象となるシステム名を
指定する環境変数です。「3.3.1 Cosminexus RM のシステム名の決定」で決定した値
を指定します。
● HRM_CMD_HOST
CORBA ネーミングサービスのホスト名です。Cosminexus RM のコマンドが CORBA
ネーミングサービスを使用するときのホスト名または IP アドレスを指定します。
CORBA ネーミングサービスは JNDI の機能を実現します。ユーザが Cosminexus
RM のコマンドを使用したり,アプリケーションがキューを lookup するときに動作し
ている必要があります。
IP アドレスを二つ以上持つマシン上で明示的にネーミングサービスのアドレスを指定
したい場合などには,このプロパティを指定してください。
CORBA ネーミングサービスを自動起動モード(J2EE サーバ用ユーザプロパティ
ファイルの ejbserver.naming.startupMode に automatic または inprocess を指定)
で使用し,EJB コンテナの IP アドレスを固定(J2EE サーバ用ユーザプロパティ
ファイルの vbroker.se.iiop_tp.host を指定)した場合は,このプロパティに固定した
IP アドレスを指定してください。
● HRM_CMD_PORT
CORBA ネーミングサービス(nameserv)のポート番号です。Cosminexus RM のコ
マンドが CORBA ネーミングサービス(nameserv)を使用するときのポート番号を
指定します。
ユーザが特に変更していない場合は,デフォルト値である 900 を指定してください。
● PATH
107
3. システム構築
Cosminexus RM が提供するコマンドが格納されたディレクトリを指定します。
%HRMDIR%¥bin を追加してください。
108
3. システム構築
3.4 Cosminexus RM のシステム構築(永続版
リソースアダプタの場合)
永続版リソースアダプタを使用する場合の Cosminexus RM のシステム構築について説
明します。
3.4.1 DBMS の設定(HiRDB を使用する場合)
HiRDB を使用する場合の DBMS の設定について説明します。説明する以外の設定内容
や手順については,HiRDB のマニュアルを参照してください。
(1) DBMS の初期設定(HiRDB を使用する場合)
(a) HiRDB の初期設定
HiRDB をインストールしたら,環境設定をします。Cosminexus RM の管理情報テーブ
ルを格納するための RD エリアを作成してください。HiRDB の環境設定については,マ
ニュアル「HiRDB システム導入・設計ガイド」を参照してください。
なお,HiRDB を環境設定するときに使用する文字コードは,Cosminexus DABroker
Library に設定した漢字コードセットに合わせてください。文字コードの選択について
は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。
(b) HiRDB のユーザ権限の付与
HiRDB では " ユーザの作成 " という操作がなく,ユーザ権限の一つである CONNECT
権限をユーザに付与することによってユーザが作成されます。ユーザ権限については,
マニュアル「HiRDB システム運用ガイド」を参照してください。
Cosminexus RM は HiRDB の接続ユーザを使用して HiRDB にアクセスします。
Cosminexus RM で使用する接続ユーザには,次に示すユーザ権限を付与してください。
• CONNECT 権限
• スキーマ定義権限
ユーザ権限を付与するには,データベース定義ユティリティ(pddef)または HiRDB
SQL Executer を使用します。ここでは,データベース定義ユティリティ(pddef)を使
用してユーザ権限を付与する場合の手順を説明します。Cosminexus RM が動作するマシ
ンまたは HiRDB が動作するマシンで,次に示す手順を実行してください。データベー
ス定義ユティリティ(pddef)の使用方法については,マニュアル「HiRDB コマンドリ
ファレンス」を参照してください。
1. 環境変数の設定
次に示す環境変数を設定します。
109
3. システム構築
Windows の場合
SET PDHOST = <HiRDBサーバのホスト名またはIPアドレス>
SET PDNAMEPORT = <HiRDBサーバのポート番号>
SET PDUSER = <DBA権限を持つユーザ名>/<パスワード>
UNIX(csh)の場合
setenv PDHOST <HiRDBサーバのホスト名またはIPアドレス>
setenv PDNAMEPORT <HiRDBサーバのポート番号>
setenv PDUSER <DBA権限を持つユーザ名>/<パスワード>
UNIX(sh)の場合
PDHOST=<HiRDBサーバのホスト名またはIPアドレス>
PDNAMEPORT=<HiRDBサーバのポート番号>
PDUSER=<DBA権限を持つユーザ名>/<パスワード>
export PDHOST
export PDNAMEPORT
export PDUSER
2. データベース定義ユティリティ(pddef)の開始
次に示すとおりコマンドを入力して,データベース定義ユティリティ(pddef)を開
始します。
pddef
3. SQL 文の実行
次に示す SQL 文を実行します。
GRANT
GRANT
TO <権限を付与する接続ユーザ名>※
IDENTIFIED BY <パスワード>;
SCHEMA
TO <権限を付与する接続ユーザ名>※;
CONNECT
注※
Cosminexus RM が使用する接続ユーザの名前です。HiRDB のクライアント環
境変数グループに登録した PDUSER 環境変数と同じ値になります。PDUSER
110
3. システム構築
環境変数については,「(2)(b) HiRDB の環境変数グループの登録」を参照して
ください。
4. データベース定義ユティリティ(pddef)の終了
データベース定義ユティリティ(pddef)を終了するには,
Windows の場合
Ctrl キーと Z キーを同時に押したあと,Enter キーを押してください。
UNIX の場合
Ctrl キーと D キーを同時に押してください。
(c) HiRDB のスキーマの定義
Cosminexus RM の管理情報テーブル用のスキーマを定義します。
スキーマを定義するには,データベース定義ユティリティ(pddef)または HiRDB SQL
Executer を使用します。ここでは,データベース定義ユティリティ(pddef)を使用し
てスキーマ定義する場合の手順を説明します。Cosminexus RM が動作するマシンまたは
HiRDB が動作するマシンで,次に示す手順を実行してください。データベース定義ユ
ティリティ(pddef)の使用方法については,マニュアル「HiRDB コマンドリファレン
ス」を参照してください。
1. 環境変数の設定
次に示す環境変数を設定します。
Windows の場合
SET PDHOST = <HiRDBサーバのホスト名またはIPアドレス>
SET PDNAMEPORT = <HiRDBサーバのポート番号>
SET PDUSER = <接続ユーザ名>/<パスワード>※
UNIX(csh)の場合
setenv PDHOST <HiRDBサーバのホスト名またはIPアドレス>
setenv PDNAMEPORT <HiRDBサーバのポート番号>
setenv PDUSER <接続ユーザ名>/<パスワード>※
UNIX(sh)の場合
111
3. システム構築
PDHOST=<HiRDBサーバのホスト名またはIPアドレス>
PDNAMEPORT=<HiRDBサーバのポート番号>
PDUSER=<接続ユーザ名>/<パスワード>※
export PDHOST
export PDNAMEPORT
export PDUSER
注※
接続ユーザ名には,権限を付与した接続ユーザ名を指定します。詳細について
は,
「(1)(b) HiRDB のユーザ権限の付与」を参照してください。
2. データベース定義ユティリティ(pddef)の開始
次に示すとおりコマンドを入力して,データベース定義ユティリティ(pddef)を開
始します。
pddef
3. SQL 文の実行
次に示す SQL 文を実行します。
CREATE SCHEMA;
4. データベース定義ユティリティ(pddef)の終了
データベース定義ユティリティ(pddef)を終了するには,
Windows の場合
Ctrl キーと Z キーを同時に押したあと,Enter キーを押してください。
UNIX の場合
Ctrl キーと D キーを同時に押してください。
(d) HiRDB の RD エリアの準備
Cosminexus RM の管理情報テーブルを格納するために,必要に応じて RD エリアを作成
します。RD エリアの作成方法については,マニュアル「HiRDB システム運用ガイド」
を参照してください。
複数のユーザで Cosminexus RM にアクセスする際にアプリケーション認証を使用する
場合は,公用 RD エリアを作成し,その公用 RD エリアに Cosminexus RM の管理情報
112
3. システム構築
テーブルを作成します。
(e) HiRDB の排他資源と同時アクセス可能実表数の見積もり
HiRDB の排他資源および同時アクセス可能実表数の見積もりについては,
「付録 F HiRDB の見積もり」を参照してください。
(2) DB クライアントの設定
次に示す製品をインストールしたら,Cosminexus RM が動作するマシンで設定をしま
す。
● HiRDB/Run Time または HiRDB/Developer's Kit
● HiRDB SQL Executer
(a) HiRDB の環境変数の設定
次に示す環境変数を設定します。
● PDXAMODE
1 を指定します。
● PDTXACANUM
Cosminexus RM が使用する DB コネクション数の最大値を指定します。この場合の
最大値は,Cosminexus RM 本体およびアプリケーションが使用する DB コネクショ
ンの合計です。Cosminexus RM が DB コネクションを使用するタイミングと,使用
するコネクションの数を次の表に示します。
表 3-2 Cosminexus RM が DB コネクションを使用するタイミングと使用するコネク
ションの数
項番
Cosminexus RM
の機能
DB コネクションを使用するタイミング
コネクション使用
数
1
コマンド
コマンド実行時に取得し,コマンド完了後に解放しま
す。
1
2
共用キューによ
るシステム間連
携
リソースアダプタの開始時に 1 コネクションを取得
し,リソースアダプタの停止時に解放します。
1
イベント受信時に 1 コネクションを取得し,イベント
受信完了後に解放します。
1
3
4
メモリ復元処理
メモリ復元時に取得し,復元完了時に解放します。復
元処理の詳細については,
「4.1.4(1) 状態遷移」の開
始中状態を参照してください。
1
5
メッセージ削除
処理
リソースアダプタの開始時に取得し,リソースアダプ
タ停止時に解放します。
1
6
XA リカバリ
リソースアダプタの開始時に 1 コネクションを取得
し,リソースアダプタの停止時に解放します。
1
113
3. システム構築
Cosminexus RM
の機能
項番
7
キュー間転送
8
DB コネクションを使用するタイミング
コネクション使用
数
送信
1 メッセージの送信でキャッシュにメッ
セージがない場合,またはグループを切
り替える場合に,1 コネクションを取得
し,メッセージの送信終了後に解放しま
す。
コネクション取得数の最大値は,送信ス
レッドの起動数です。
1 以上
受信
1 メッセージの受信で 1 コネクション取
得し,メッセージの受信完了後に解放し
ます。ただし,同時リクエスト数に比例
してコネクション取得数も増加します。
1 以上
上記の表に示したとおり,Cosminexus RM の DB コネクション使用数は次の値になりま
す。
6 +送信スレッドの起動数+メッセージ受信リクエスト数
なお,Cosminexus の J2EE コンポーネントから HiRDB にアクセスする場合は,マニュ
アル「Cosminexus システム構築ガイド」に記載されている見積もり値に,Cosminexus
RM の DB コネクション使用数を加えた値を指定します。
● LD_LIBRARY_PATH(Linux の場合),LIBPATH(AIX の場合),SHLIB_PATH
(HP-UX の場合)
下記のパスを指定してください。
/opt/Cosminexus/TPB/lib
/opt/Cosminexus/PRF/lib
/opt/Cosminexus/CTM/lib(CTM 利用時だけ)
<Cosminexus DABroker Library 運用ディレクトリ >/lib
/opt/HiRDB/client/lib
/opt/HiRDB/client/utl
!
注意事項
HiRDB のクライアント環境定義 PDDBLOG には,NO を指定しないで ALL を指定してく
ださい。
(b) HiRDB の環境変数グループの登録
HiRDB の環境変数グループの登録方法を次に示します。
Windows の場合
DABroker 対応の DB Connector for Cosminexus RM を使用するときは,HiRDB ク
ライアント環境変数登録ツールを使用して環境変数のグループを登録します。
[シス
114
3. システム構築
テムグループ]ラジオボタンを選択して環境変数グループ名を登録してください。
HiRDB Type4 JDBC ドライバ対応の DB Connector for Cosminexus RM を使用する
ときは,環境変数のグループは,HiRDB のクライアント環境変数グループの設定
ファイルに登録します。
UNIX の場合
環境変数のグループは,HiRDB のクライアント環境変数グループの設定ファイルに
登録します。
登録方法については,マニュアル「HiRDB UAP 開発ガイド」を参照してください。
ここで登録した環境変数グループ名は,DB Connector for Cosminexus RM のコンフィ
グレーションプロパティで,XAOpen 文字列として設定する必要があります。DB
Connector for Cosminexus RM のコンフィグレーションプロパティについては,「6.3 DB Connector for Cosminexus RM のコンフィグレーションプロパティの一覧」を参照
してください。
HiRDB のクライアント環境変数グループに登録する内容について,次の表に示します。
表 3-3 HiRDB のクライアント環境変数グループに登録する内容
項番
環境変数名
設定内容
1
PDHOST
HiRDB サーバのホスト名または IP アドレスを指定します。
2
PDUSER
HiRDB サーバのユーザ名※ 1 およびパスワードを指定します。
3
PDNAMEPORT
HiRDB サーバのポート番号を指定します。
4
PDSWAITTIME ※ 2
Cosminexus Component Container のトランザクションタイム
PDCWAITTIME ※ 2
Cosminexus Component Container のトランザクションタイム
PDSWATCHTIME
0 を指定します。
5
6
アウトの値 ※ 3 よりも大きな値を指定します。
アウトの値 ※ 3 よりも大きな値を指定します。
注※ 1
Cosminexus RM が HiRDB の管理する DB にアクセスするために使用する接続ユーザの名前で
す。
共用キューを使用して複数システム間でのアプリケーション連携をする場合は,送信側システ
ムと受信側システムで同じ接続ユーザ名を指定します。
注※ 2
HiRDB を使用する場合,Cosminexus RM のトランザクション決着中に,HiRDB の設定値で
ある PDSWAITTIME および PDCWAITTIME に指定した値によってタイムアウトが発生し
DB がロールバックすると,Cosminexus RM は閉塞することがあります。このため,
PDSWAITTIME および PDCWAITTIME には,適切な値を設定してください。
PDSWAITTIME および PDCWAITTIME については,マニュアル「HiRDB システム導入・設
計ガイド」を参照してください。なお,Cosminexus RM が閉塞した場合は,Cosminexus を強
制停止したあと,再起動してください。
115
3. システム構築
注※ 3
Cosminexus Component Container のトランザクションタイムアウト値は J2EE サーバ用ユー
ザプロパティファイルまたは UserTransaction.setTransactionTimeout() メソッドで指定しま
す。J2EE サーバ用ユーザプロパティファイルについては,マニュアル「Cosminexus リファレ
ンス 定義編」を参照してください。UserTransaction.setTransactionTimeout() メソッドについ
ては,Java のドキュメントを参照してください。
(3) Cosminexus RM の管理情報テーブルの作成
DBMS として HiRDB を使用する場合,次に示す手順で管理情報テーブルを作成します。
HiRDB SQL Executer の使用方法については,HiRDB SQL Executer のドキュメントを
参照してください。
1. コンフィグレーションプロパティの RMSystemName に指定する値(3 文字以内の英
数字)の決定
RMSystemName については,
「6.2 Cosminexus RM のコンフィグレーションプロ
パティの詳細説明」を参照してください。
2. SQL ファイルの編集
テーブル作成用 SQL ファイル(%HRMDIR%¥sql¥createtableshirdb.sql)を任意の
場所にコピーしてから,このファイルをテキストエディタで開き,ファイル中の 5 か
所の "<RMSystemName>" の部分を手順 1. で決定した RMSystemName の指定値で
置き換えて,ファイルを保存します。
また,必要に応じて "<RMAREA>" の部分を表の行を格納する RD エリア名に変更し
ます。または "IN <RMAREA>" の部分を削除します。"IN <RMAREA>" の部分を削
除した場合は,格納する RD エリアを HiRDB が決定します。HiRDB が決定する RD
エリアについては,マニュアル「HiRDB SQL リファレンス」を参照してください。
3. SQL ファイルの実行
Windows の場合
次に示すコマンドで HiRDB SQL Executer を開始します。
pdsqlw -u <接続ユーザ名>/<パスワード>※
-h <HiRDBサーバのホスト名またはIPアドレス>
-n <HiRDBサーバのポート番号>
HiRDB SQL Executer の[ファイル]メニューから[ファイルから実行]を選択
し,手順 2. で編集した SQL ファイルを指定して実行します。
UNIX の場合
環境変数 PDUSER ※ ,PDHOST,PDNAMEPORT を設定し,次に示すコマンド
で HiRDB SQL Executer から SQL ファイルを実行します。
116
3. システム構築
pdsql
<
<手順2.で編集したSQLスクリプトファイルのパス>
注※
接続ユーザ名には,権限を付与した接続ユーザ名を指定します。詳細について
は,「(1)(b) HiRDB のユーザ権限の付与」を参照してください。
共用キューを使用して複数システム間でのアプリケーション連携をする場合に
は,送信側システムと受信側システムで同じ接続ユーザ名を使用します。
3.4.2 DBMS の設定(Oracle を使用する場合)
Oracle を使用する場合の DBMS の設定について説明します。説明する以外の設定内容
や手順については,Oracle のマニュアルを参照してください。
なお,Oracle RAC の機能は,Oracle 10g Release2 以降に対してだけ使用できます。
Oracle RAC の機能を利用する場合は,Oracle Clusterware をインストールしてくださ
い。
(1) DBMS の初期設定(Oracle を使用する場合)
DBMS として Oracle を使用する場合は,Oracle に管理情報を格納するために,Oracle
に接続ユーザを作成して,接続ユーザに権限を付与する必要があります。ユーザ作成や
権限付与の方法の詳細については,Oracle のマニュアルを参照してください。
(a) 付与する権限
システム権限
• CREATE ANY INDEX システム権限
• CREATE SESSION システム権限
• CREATE TABLE システム権限
• FORCE ANY TRANSACTION システム権限
オブジェクト権限
• SYS.DBA_PENDING_TRANSACTIONS の SELECT 権限
• SYS.DBMS_SYSTEM の EXECUTE 権限
ロール権限
• SELECT_CATALOG_ROLE 権限
(b) ユーザ作成と権限付与の方法
次のどちらかの方法でユーザ作成と権限付与を行います。
• Oracle Enterprise Manager コンソールを使用する
117
3. システム構築
• sqlplus を使用する
(2) DB クライアントの設定
Oracle に接続するためには,Cosminexus RM が動作するマシンで,ネット・サービス
名を作成します。ネット・サービス名を作成する方法については,Oracle9i または
Oracle 10g のマニュアルを参照してください。
(3) Cosminexus RM の管理情報テーブルの作成
DBMS として Oracle を使用する場合,次に示す手順で管理情報テーブルを作成します。
SQL*Plus の使用方法については,Oracle のマニュアルを参照してください。
1. コンフィグレーションプロパティの RMSystemName に指定する値(3 文字以内の英
数字)の決定
RMSystemName については,
「6.2 Cosminexus RM のコンフィグレーションプロ
パティの詳細説明」を参照してください。
2. SQL ファイルの編集
テーブル作成用 SQL ファイル(%HRMDIR%¥sql¥createtablesoracle.sql)を任意の
場所にコピーしてから,このファイルをテキストエディタで開き,ファイル中の 5 か
所の "<RMSystemName>" の部分を手順 1. で決定した RMSystemName の指定値で
置き換えて,ファイルを保存します。
3. GUI 版 SQL*Plus またはコマンドライン版 sqlplus の起動
「(1) DBMS の初期設定(Oracle を使用する場合)
」の手順で作成したユーザを使用
してデータベースに接続します。
4. コマンドの実行
次の形式で実行してください。
start <手順2.で編集したSQLファイルの絶対パス>
3.4.3 J2EE サーバ(Cosminexus)の設定
J2EE サーバ(Cosminexus)の設定をして,J2EE サーバを構築します。J2EE サーバ
の構築については,マニュアル「Cosminexus システム構築ガイド」を参照してくださ
い。
3.4.4 キュー定義ファイルの作成(永続版リソースアダプタ
の場合)
キュー定義ファイルは,JNDI ネーミングサービスに登録するキュー表示名と実際の
キュー名を関連づけるファイルです。テキストファイルで作成して,任意のディレクト
リに格納してください。キュー定義ファイルのフルパスを QueueConfigFileName プロ
118
3. システム構築
パティに指定すると,Cosminexus RM の開始時に,定義されたキュー表示名が JNDI
ネーミングサービスに登録されます。
なお,キュー作成時の表示名を利用する場合,キュー定義ファイルの作成は不要です。
(1) キュー定義ファイルの記述形式
記述形式
QueueImplClass = jp.co.Hitachi.soft.reliablemessaging.ra.jms.QueueImpl※1
Queue.通番※2.DisplayName = キュー表示名※3
Queue.通番.QueueName = キュー名※4
注※ 1
ユーザの環境に依存しない固定の値です。
注※ 2
通番には 1 ∼ 20480 の範囲の値を指定してください。
注※ 3
キュー表示名として任意の名称を指定します。
キュー表示名は JNDI ネーミングサービスに "<Cosminexus RM の表示名 >__< キュー表示名
>__que" の形式で登録されます。なお,"<Cosminexus RM の表示名 >__< キュー表示名
>__que" の形式の文字列の長さが 256 文字を超えないようにしてください。
<Cosminexus RM の表示名 > は,Connector 属性ファイルの <display-name> タグの指定値を
サニタイズ(半角英数字以外をアンダスコア(_)に変更)した値です。<display-name> タグ
の初期値は "Cosminexus_Reliable_Messaging" です。Connector 属性ファイルについては,マ
ニュアル「Cosminexus リファレンス 定義編」を参照してください。
< キュー表示名 > には,アンダスコア二つ(__)を指定しないでください。
注※ 4
キュー名は hrmmkque コマンド引数指定値を指定します。
(2) キュー定義ファイルの記述例
QueueImplClass =
jp.co.Hitachi.soft.reliablemessaging.ra.jms.QueueImpl
Queue.1.DisplayName = Q1
Queue.1.QueueName = Queue1
Queue.2.DisplayName = Q2
Queue.2.QueueName = Queue2
(3) キュー定義ファイルの作成規則
● java.util.Properties.load() メソッドで読み取りできる形式にしてください。コメント
や継続行の扱いも同様です。
● QueueImplClass の指定がない場合および値が指定されていない場合はデプロイ時に
エラーが発生します。
119
3. システム構築
● 一つのキューについて DisplayName および QueueName の両方を指定してください。
● 同一のプロパティを複数記述した場合は,どの値が有効になるか保証しません。
● 通番は 1 から指定してください。通番 1 のキュー定義がない場合はデプロイ時にエ
ラーが発生します。
● Queue.n.DisplayName の指定がない場合および値が指定されていない場合,通番が
n-1 番目のキューまでが有効になります。通番 n 以降のキュー定義は無視されます。
● QueueName の指定がない,または値が指定されていないキューは無視されます。
● キュー定義が一つもない場合はフォーマット不正によってデプロイ時にエラーが発生
します。
● 表示名が重複した場合,通番の大きい方が有効になります。
● 通番の最大値より大きい値のキュー定義は無視されます。
● DisplayName に指定できる文字は,半角英字(A ∼ Z,a ∼ z)半角数字(0 ∼ 9)お
よび半角のアンダスコア(_)です。これら以外の文字を指定したキューは無視されま
す。
● QueueName に指定する値は,大文字と小文字を hrmmkque コマンド引数指定値と
一致させてください。
3.4.5 Cosminexus RM のプロパティ定義(永続版リソース
アダプタの場合)
Cosminexus RM のプロパティを定義します。Cosminexus RM をデプロイしたあとでも
実行できます。なお,設定済みの Cosminexus RM のプロパティを変更する場合は,該
当する Cosminexus RM を停止した状態で実行してください。
Cosminexus RM がデータベースと接続するには,DB Connector for Cosminexus RM の
コンフィグレーションプロパティを設定する必要があります。DB Connector for
Cosminexus RM のコンフィグレーションプロパティの設定については,「3.4.8 DB
Connector for Cosminexus RM のプロパティ定義」を参照してください。
(1) 編集する属性ファイル
Cosminexus RM で提供する Connector 属性ファイルのテンプレートを任意のディレク
トリにコピーして,コピーしたファイルを編集します。
Connector 属性ファイルのテンプレートは,次のディレクトリに格納されています。
%HRMDIR%¥conf¥rm_prop.xml
なお,cjgetresprop コマンドによって取得した Connector 属性ファイルを使用すること
もできます。
120
3. システム構築
!
注意事項
テンプレートからコピーした Connector 属性ファイルに ASCII 文字以外を使用する場合は,
次のどちらかの対処が必要です。
• UTF-8 形式で保存する。
• 編集したファイルの文字エンコーディング形式に従って,ファイルの先頭行に次に示す
encoding 宣言を追加する。
<?xml version="1.0" encoding=" <文字エンコーディング> "?>
(2) 編集する属性設定項目
Cosminexus RM のプロパティ設定項目を次に示します。
• リソースアダプタの一般情報
• コンフィグレーションプロパティ
• 実行時プロパティ
(a) リソースアダプタの一般情報
設定できる Cosminexus RM の一般情報属性(<outbound-resourceadapter> タグ)の設
定項目を次に示します。
項目
必須
対応するタグ
トランザクションサポートのレベル
○
<transaction-support>
再認証のサポート有無※
○
<reauthentication-support>
(凡例)
○:必須
注※ 必ず false を指定してください。
プロパティの設定項目の説明については,マニュアル「Cosminexus リファレンス 定義
編」を参照してください。
(b) コンフィグレーションプロパティ
Cosminexus RM のコンフィグレーションプロパティ(<outbound-resourceadapter> <connection-definition> - <config-property> タグ)の設定項目を次に示します。
項目
対応するタグ
コンフィグレーションプロパティ名
<config-property-name>
コンフィグレーションプロパティのデータ型
<config-property-type>
コンフィグレーションプロパティの値
<config-property-value> ※
注※ コンフィグレーションプロパティの値をクリアする場合
<config-property-value> タグだけを指定して,値を指定しないでください。
<config-property-value> タグ自体が指定されていない場合は,そのプロパティの値は変更され
121
3. システム構築
ないで,すでに設定されている値がそのまま有効になります。
定義するコンフィグレーションプロパティの数だけ上記の設定を繰り返してください。
Cosminexus RM のコンフィグレーションプロパティの設定内容については,「6. コン
フィグレーションプロパティ」を参照してください。
(c) 実行時プロパティ
Cosminexus RM の実行時プロパティ(<outbound-resourceadapter> <connection-definition> - <connector-runtime> - <property> タグ)の設定項目を次に示
します。
項目
対応するタグ
プロパティ名
<property-name>
プロパティのデータ型
<property-type>
プロパティの値
<property-value>
定義するプロパティの数だけ,上記の設定を繰り返してください。
実行時プロパティ名(<property-name>)およびコネクションプールの動作と注意事項
については,マニュアル「Cosminexus アプリケーション設定操作ガイド」の DB
Connector のプロパティ定義に関する内容を参照してください。
!
注意事項
ユーザ名およびコネクションプールに関する設定値は,Cosminexus RM と DB Connector
for Cosminexus RM で同じ値を設定してください。
(3) コンフィグレーションプロパティの設定例
Cosminexus RM のコンフィグレーションプロパティの設定例を示します。コンフィグ
レーションプロパティの各項目の詳細については,「6.2 Cosminexus RM のコンフィグ
レーションプロパティの詳細説明」を参照してください。
表 3-4 Cosminexus RM のコンフィグレーションプロパティの設定例(永続版リソース
アダプタの場合)
項番
プロパティ名
設定例
1
RMSystemName
<システム名>
2
RMLinkedDBConnectorName
<連携する DB Connector の表示名>
3
QueueConfigFileName
指定しない
4
RMDeadMessageQueueName
<デッドメッセージキュー名>
5
RMWaitRestoration
true
122
3. システム構築
項番
プロパティ名
設定例
6
RMStartTimeout
60
7
RMAssociateJDBCFlag
true
8
RMSweepTimerInterval
600
9
RMDeleteMessageImmediately
false
10
RMPassByReference
false
11
RMMaxDeliveryNum
10
12
RMMethodTraceLevel
1
13
RMLineTraceLevel
3
14
RMLogTraceFileNum
2
15
RMLogTraceFileSize
2097152
16
RMSHConnectFlag
false
17
RMSHPort ※ 1
20351
18
RMSHRecoveryTimerInterval ※ 1
60
19
RMTRConnectFlag
false
20
RMTRSendThreadNum ※ 2
1
21
RMTRResendInterval1Num ※ 2
6
22
RMTRResendInterval1 ※ 2
10
23
RMTRResendInterval2 ※ 2
600
24
RMTRResendTimerInterval ※ 2
10
25
RMTRPendingNotifyInterval ※ 2
600
26
RMTRTransferControlDir ※ 2
<クライアント定義ファイルが格納されているディレ
クトリのパス>
27
RMAutoDeleteMessage
false
注※ 1
RMSHConnectFlag プロパティが false の場合,設定値は無視されます。
注※ 2
RMTRConnectFlag プロパティが false の場合,設定値は無視されます。
3.4.6 DB Connector for Cosminexus RM の選択
インポートする DB Connector for Cosminexus RM を選択します。使用するデータベー
ス,およびトランザクションの管理方法によって,次の表に示すどれかの RAR ファイル
を指定します。
123
3. システム構築
表 3-5 指定する RAR ファイルの種類
RAR ファイル
説明
1
DBConnector_DABJ_CP_Cosminexus_RM.rar
Cosminexus DABroker Library 用の DB
Connector for Cosminexus RM です。
HiRDB を使用する場合で,ローカルトラン
ザクションを使用するとき,またはトラン
ザクション管理なしで使用するとき(トラ
ンザクションのサポートレベルに
LocalTransaction または NoTransaction を
指定するとき)に選択します。
Cosminexus DABroker Library の
ConnectionPoolDataSource を使用してデー
タベースに接続します。
2
DBConnector_DABJ_XA_Cosminexus_RM.rar
Cosminexus DABroker Library 用の DB
Connector for Cosminexus RM です。
HiRDB を使用する場合で,グローバルトラ
ンザクションを使用するとき(トランザク
ションのサポートレベルに XATransaction
を指定するとき)に選択します。
Cosminexus DABroker Library の
XADataSource を使用してデータベースに
接続します。
3
DBConnector_HiRDB_Type4_CP_Cosminexus
_RM.rar
HiRDB Type4 JDBC Driver 用の DB
Connector for Cosminexus RM です。
HiRDB を使用する場合で,ローカルトラン
ザクションを使用するとき,またはトラン
ザクション管理なしで使用するとき(トラ
ンザクションのサポートレベルに
LocalTransaction または NoTransaction を
指定するとき)に選択します。
HiRDB Type4 JDBC Driver の
ConnectionPoolDataSource を使用して
HiRDB に接続します。
4
DBConnector_HiRDB_Type4_XA_Cosminexus
_RM.rar
HiRDB Type4 JDBC Driver 用の DB
Connector for Cosminexus RM です。
HiRDB を使用する場合で,グローバルトラ
ンザクションを使用するとき(トランザク
ションのサポートレベルに XATransaction
を指定するとき)に選択します。
HiRDB Type4 JDBC Driver の
XADataSource を使用して,HiRDB に接続
します。
項番
124
3. システム構築
RAR ファイル
説明
5
DBConnector_Oracle_CP_Cosminexus_RM.rar
Oracle JDBC Thin Driver 用の DB
Connector for Cosminexus RM です。
Oracle を使用する場合で,ローカルトラン
ザクションを使用するとき,またはトラン
ザクション管理なしで使用するとき(トラ
ンザクションのサポートレベルに
LocalTransaction または NoTransaction を
指定するとき)に選択します。
Oracle JDBC Thin Driver の
ConnectionPoolDataSource を使用して
Oracle に接続します。
6
DBConnector_Oracle_XA_Cosminexus_RM.rar
Oracle JDBC Thin Driver 用の DB
Connector for Cosminexus RM です。
Oracle を使用する場合で,グローバルトラ
ンザクションを使用するとき(トランザク
ションのサポートレベルに XATransaction
を指定するとき)に選択します。
Oracle JDBC Thin Driver の
XADataSource を使用して Oracle に接続し
ます。
項番
3.4.7 DB Connector for Cosminexus RM の前提製品の設定
(1) Cosminexus DABroker Library の動作環境の設定
Cosminexus DABroker Library の環境設定で次に示す項目を設定してください。各項目
の詳細については,Cosminexus DABroker Library のドキュメントを参照してくださ
い。また,設定方法の詳細については,マニュアル「Cosminexus システム構築ガイド」
の Cosminexus DABroker Library の動作環境の設定に関する内容を参照してください。
なお,HiRDB Type4 JDBC ドライバ対応の DB Connector for Cosminexus RM を使用
する場合は,Cosminexus DABroker Library を使用しないため,この設定は不要です。
● BLOB/LONG/CLOB 型データ受取バッファサイズ
Windows の場合
環境設定の[リモートアクセス設定]タブで[BLOB/LONG/CLOB 型データ受取
バッファサイズ]に,次の条件を満たす値を設定してください。
• DB Connector for Cosminexus RM の bufSize プロパティに設定した値よりも大き
い
• 1024 以上(ただし,キュー間転送を利用する場合は 10000 以上)
UNIX の場合
• <Cosminexus DABroker Library 運用ディレクトリ >/conf に作成した動作環境定義
ファイルの DABHIRDBA_BLOBBUFSIZE に,bufSize プロパティに設定する値よ
り大きな値を設定してください。
125
3. システム構築
bufSize プロパティに設定する値については,「6.3(1) Cosminexus DABroker
Library を使用して Oracle または HiRDB に接続する場合」を参照してください。
● 漢字コードセット
Windows の場合
環境設定の[リモートアクセス設定]タブで使用する DB の文字コードに合わせ
て[漢字コードセット]を設定してください。
UNIX の場合
<Cosminexus DABroker Library 運用ディレクトリ >/conf に作成した動作環境定
義ファイルの DAB_LANG を使用する DB の文字コードに合わせて設定してくだ
さい。
各 DB の文字コードについては,マニュアル「HiRDB システム導入・設計ガイド」
,
および Oracle のマニュアルを参照してください。
環境設定が終わったら,データベースに接続するための設定をします。データベースに
接続するための設定については,マニュアル「Cosminexus システム構築ガイド」を参
照してください。
(2) Oracle JDBC Thin Driver の設定
Oracle JDBC Thin Driver を使用して Oracle に接続する場合,J2EE サーバ側で次に示
す設定をしてください。
● Oracle JDBC Thin Driver の JAR ファイルの入手
Cosminexus がサポートするバージョンの,Oracle JDBC Thin Driver の JAR ファイ
ルを入手してください。
Oracle クライアントをインストールした場合は,Oracle クライアントのインストール
ディレクトリ下の「jdbc/lib/ojdbc14.jar」,および「jdbc/lib/ojdbc14_g.jar」が該当す
る JAR ファイルです。
● J2EE サーバのユーザクラスパスの指定
J2EE サーバのユーザクラスパスに ojdbc14.jar を指定してください。J2EE サーバ用
の usrconf.cfg の add.class.path キーに「add.class.path=<ojdbc14.jar のパス >」の
形式で指定してください。
Oracle JDBC Thin Driver の設定方法の詳細については,マニュアル「Cosminexus シ
ステム構築ガイド」の Oracle の設定(Oracle JDBC Thin Driver の場合)に関する内容
を参照してください。
(3) HiRDB Type4 JDBC Driver の設定
HiRDB Type4 JDBC Driver を使用して HiRDB に接続する場合,J2EE サーバ側で次に
示す設定をしてください。
● HiRDB Type4 JDBC Driver の JAR ファイルの入手
126
3. システム構築
HiRDB Type4 JDBC Driver の JAR ファイル(pdjdbc2.jar)を入手してください。
JAR ファイル(pdjdbc2.jar)の格納場所については,マニュアル「HiRDB UAP 開発
ガイド」を参照してください。
● J2EE サーバのユーザクラスパスの指定
J2EE サーバのユーザクラスパスに pdjdbc2.jar を指定してください。J2EE サーバ用
の usrconf.cfg の add.class.path キーに「add.class.path=<pdjdbc2.jar のパス >」の
形式で指定してください。
HiRDB Type4 JDBC Driver の設定方法の詳細については,マニュアル「Cosminexus シ
ステム構築ガイド」の HiRDB の設定(HiRDB Type4 JDBC Driver の場合)に関する内
容を参照してください。
3.4.8 DB Connector for Cosminexus RM のプロパティ定義
Cosminexus RM がデータベースと接続するには,DB Connector for Cosminexus RM の
プロパティを定義する必要があります。
「3.4.6 DB Connector for Cosminexus RM の選
択」で選択した DB Connector for Cosminexus RM のプロパティを定義します。
DB Connector for Cosminexus RM のプロパティの定義は,DB Connector for
Cosminexus RM をデプロイしたあとでも実行できます。なお,設定済みの DB
Connector for Cosminexus RM のプロパティを変更する場合は,該当する DB
Connector for Cosminexus RM を停止した状態で実行してください。
注意事項
DB Connector for Cosminexus RM では,認証機能情報およびコネクションプーリ
ング情報の設定は無効になります。このため,リソースアダプタの認証機能情報の
ユーザ名とパスワードの設定は,Cosminexus RM のプロパティ設定で実施してくだ
さい。
(1) 編集する属性ファイル
Cosminexus で提供する DB Connector for Cosminexus RM の Connector 属性ファイル
のテンプレートを任意のディレクトリにコピーして,コピーしたファイルを編集します。
DB Connector for Cosminexus RM の Connector 属性ファイルのテンプレートは,次の
ディレクトリに格納されています。
< Cosminexus のインストールディレクトリ> ¥CC¥admin¥templates
DB Connector for Cosminexus RM の Connector 属性ファイルのテンプレートについて
は,マニュアル「Cosminexus リファレンス 定義編」の Connector 属性ファイルのテン
プレートファイルに関する内容を参照してください。
127
3. システム構築
!
注意事項
テンプレートからコピーした Connector 属性ファイルに ASCII 文字以外を使用する場合は,
次のどちらかの対処が必要です。
• UTF-8 形式で保存する。
• 編集したファイルの文字エンコーディング形式に従って,ファイルの先頭行に次に示す
encoding 宣言を追加する。
<?xml version="1.0" encoding=" <文字エンコーディング> "?>
(2) 編集する属性設定項目
DB Connector for Cosminexus RM のプロパティ設定項目を次に示します。
• リソースアダプタの一般情報
• コンフィグレーションプロパティ
• 実行時プロパティ
(a) リソースアダプタの一般情報
設定できる DB Connector for Cosminexus RM の一般情報属性
(<outbound-resourceadapter> タグ)の設定項目を次に示します。
項目
必須
対応するタグ
トランザクションサポートのレベル
○
<transaction-support>
再認証のサポート有無
○
<reauthentication-support>
(凡例)
○:必須
プロパティの設定項目の説明については,マニュアル「Cosminexus リファレンス 定義
編」を参照してください。
(b) コンフィグレーションプロパティ
リソースアダプタのコンフィグレーションプロパティ(<outbound-resourceadapter> <connection-definition> - <config-property> タグ)の設定項目を次に示します。
項目
対応するタグ
コンフィグレーションプロパティ名
<config-property-name>
コンフィグレーションプロパティのデータ型
<config-property-type>
コンフィグレーションプロパティの値
<config-property-value> ※
注※ コンフィグレーションプロパティの値をクリアする場合
<config-property-value> タグだけを指定して,値を指定しないでください。
<config-property-value> タグ自体が指定されていない場合は,そのプロパティの値は変更され
ないで,すでに設定されている値がそのまま有効になります。
128
3. システム構築
定義するコンフィグレーションプロパティの数だけ上記の設定を繰り返してください。
設定する必要がある項目は,DB Connector for Cosminexus RM の種類によって一部異
なります。DB Connector for Cosminexus RM の種類によって,設定できるコンフィグ
レーションプロパティの違いについては,
「(3) DB Connector for Cosminexus RM の種
類によるコンフィグレーションプロパティの違い」を参照してください。
なお,PreparedStatementPoolSize,CallableStatementPoolSize,LogLevel,および
CancelStatement 以外のプロパティは,すべて Cosminexus DABroker Library,
HiRDB Type4 JDBC Driver,または Oracle JDBC Thin Driver に設定する項目です。
Cosminexus DABroker Library の場合は Cosminexus DABroker Library の環境設定ユ
ティリティ(Windows の場合)
,または Cosminexus DABroker Library 動作環境定義
ファイル(UNIX の場合)で設定します。詳細は,マニュアル「Cosminexus リファレン
ス 定義編」を参照してください。
DB Connector for Cosminexus RM のコンフィグレーションプロパティの設定内容につ
いては,「6.3 DB Connector for Cosminexus RM のコンフィグレーションプロパティ
の一覧」を参照してください。
(c) 実行時プロパティ
DB Connector for Cosminexus RM の実行時プロパティ(<outbound-resourceadapter>
- <connection-definition> - <connector-runtime> - <property> タグ)の設定項目を次に
示します。
項目
対応するタグ
プロパティ名
<property-name>
プロパティのデータ型
<property-type>
プロパティの値
<property-value>
定義するプロパティの数だけ,上記の設定を繰り返してください。
実行時プロパティ名(<property-name>)およびコネクションプールの動作と注意事項
については,マニュアル「Cosminexus アプリケーション設定操作ガイド」の DB
Connector のプロパティ定義に関する内容を参照してください。
なお,DB Connector for Cosminexus RM の場合は,次の実行時プロパティの設定だけ
が有効となります。
• ログを出力するかどうかの選択(LogEnabled)
129
3. システム構築
!
注意事項
ユーザ名およびコネクションプールに関する設定値は,Cosminexus RM と DB Connector
for Cosminexus RM で同じ値を設定してください。
(3) DB Connector for Cosminexus RM の種類によるコンフィグレーショ
ンプロパティの違い
DB Connector for Cosminexus RM の種類によって,設定するコンフィグレーションプ
ロパティが異なります。DB Connector for Cosminexus RM の種類を次に示します。
• DABroker 対応の DB Connector for Cosminexus RM
• HiRDB Type4 JDBC ドライバ対応の DB Connector for Cosminexus RM
• Oracle JDBC Thin ドライバ対応の DB Connector for Cosminexus RM
(a) 各 DB Connector for Cosminexus RM 共通のコンフィグレーションプロパティ
DABroker 対応の DB Connector for Cosminexus RM,HiRDB Type4 JDBC ドライバ対
応の DB Connector for Cosminexus RM,Oracle JDBC Thin ドライバ対応の DB
Connector for Cosminexus RM 共通で設定が必要なコンフィグレーションプロパティを
次の表に示します。
表 3-6 各 DB Connector for Cosminexus RM 共通のコンフィグレーションプロパティ
プロパティ名
設定値
linkedResourceAdapterName
Cosminexus RM の表示名
(b) DABroker 対応の DB Connector for Cosminexus RM のコンフィグレーションプロパ
ティ
DABroker 対応の DB Connector for Cosminexus RM を使用する場合,Cosminexus RM
として設定が必要な DB Connector for Cosminexus RM のコンフィグレーションプロパ
ティを次の表に示します。
表 3-7 DABroker 対応の DB Connector for Cosminexus RM のコンフィグレーションプロ
パティ
項番
プロパティ名
設定値
1
description
接続先 DB に必要な接続付加情報
2
DBHostName
接続先 HiRDB のホスト名
3
XAOpenString ※
XA_OPEN 文字列
4
databaseName
Cosminexus RM の接続先 DB
5
bufSize
DB Connector for Cosminexus RM が DB から受信した
データを格納するためのバッファサイズ
130
3. システム構築
注※ XATransaction で使用する場合だけ設定が必要です。
(c) HiRDB Type4 JDBC ドライバ対応の DB Connector for Cosminexus RM コンフィグ
レーションプロパティ
HiRDB Type4 JDBC ドライバ対応の DB Connector for Cosminexus RM を使用する場
合,Cosminexus RM として設定が必要な DB Connector for Cosminexus RM のコン
フィグレーションプロパティを次の表に示します。
表 3-8 HiRDB Type4 JDBC ドライバ対応の DB Connector for Cosminexus RM のコン
フィグレーションプロパティ
項番
プロパティ名
設定値
1
description
接続先 DB に必要な接続付加情報
2
DBHostName
接続先 HiRDB のホスト名
3
XAOpenString ※
XA_OPEN 文字列
4
SQLWarningLevel
SQL 実行時に発生した警告保持レベル
5
maxBinarySize
JDBC SQL タイプ LONGVARBINARY 型データ取得時の
データサイズの上限
注※ XATransaction で使用する場合だけ設定が必要です。
(d) Oracle JDBC Thin ドライバ対応の DB Connector for Cosminexus RM のコンフィグ
レーションプロパティ
Oracle JDBC Thin ドライバ対応の DB Connector for Cosminexus RM を使用する場合,
Cosminexus RM として設定が必要な DB Connector for Cosminexus RM のコンフィグ
レーションプロパティを次の表に示します。
表 3-9 Oracle JDBC Thin ドライバ対応の DB Connector for Cosminexus RM のコンフィ
グレーションプロパティ
項番
プロパティ名
設定値
1
databaseName
Oracle サーバ上の特定のデータベース名(SID)
2
serverName
Oracle サーバのホスト名または IP アドレス
(4) コンフィグレーションプロパティの設定例
次に示す場合の DB Connector for Cosminexus RM のコンフィグレーションプロパティ
の設定例を示します。
• DBConnector_DABJ_CP_Cosminexus_RM.rar で,HiRDB を使用する場合
• DBConnector_DABJ_XA_Cosminexus_RM.rar で,HiRDB を使用する場合
• DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar で,HiRDB を使用する場合
• DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar で,HiRDB を使用する場合
131
3. システム構築
• DBConnector_Oracle_CP_Cosminexus_RM.rar で,Oracle を使用する場合
• DBConnector_Oracle_XA_Cosminexus_RM.rar で,Oracle を使用する場合
コンフィグレーションプロパティの各項目の詳細については,「6.3 DB Connector for
Cosminexus RM のコンフィグレーションプロパティの一覧」を参照してください。
(a) DBConnector_DABJ_CP_Cosminexus_RM.rar で,HiRDB を使用する場合
DBConnector_DABJ_CP_Cosminexus_RM.rar で,HiRDB を使用する場合のコンフィ
グレーションプロパティの設定例を次の表に示します。
表 3-10 データベースとして HiRDB を使用する場合
(DBConnector_DABJ_CP_Cosminexus_RM.rar の場合)
項番
HiRDB の場合の設定例
プロパティ名
1
linkedResourceAdapterName
<連携する Cosminexus RM のリソースアダプタの表
示名>
2
networkProtocol
lib
3
description
< HiRDB ポート番号>※
4
DBHostName
< HiRDB ホスト名>
5
loginTimeout
0
6
serverName
−
7
portNumber
40179
8
databaseName
HIRDB
9
DBEnv
−
10
encodLang
−
11
JDBC_IF_TRC
false
12
SV_EVENT_TRC
false
13
TRC_NO
500
14
uapName
−
15
bufSize
64
16
rowSize
16
17
OSAuthorize
false
18
HiRDBCursorMode
false
19
blockUpdate
false
20
executeDirectMode
false
21
SQLWarningIgnore
false
22
LONGVARBINARY_Access
REAL
23
bufferPoolSize
0
24
PreparedStatementPoolSize
10
132
3. システム構築
項番
HiRDB の場合の設定例
プロパティ名
25
CallableStatementPoolSize
10
26
ConnectionIDUpdate
false
27
logLevel
ERROR
(凡例)
−:設定は不要です。
注※ HiRDB クライアントの環境変数グループ名(Windows の場合)または環境変数グループの
設定ファイルのパス(UNIX の場合)を指定することもできます。
(b) DBConnector_DABJ_XA_Cosminexus_RM.rar で,HiRDB を使用する場合
DBConnector_DABJ_XA_Cosminexus_RM.rar で,HiRDB を使用する場合のコンフィ
グレーションプロパティの設定例を次の表に示します。
表 3-11 データベースとして HiRDB を使用する場合
(DBConnector_DABJ_XA_Cosminexus_RM.rar の場合)
項番
HiRDB の場合の設定例
プロパティ名
1
linkedResourceAdapterName
<連携する Cosminexus RM のリソースアダプタの表
示名>
2
networkProtocol
lib
3
description
<環境変数グループ識別子>※ 1
4
DBHostName
< HiRDB ホスト名>
5
XAOpenString
Windows の場合
<環境変数グループ識別子※ 2 > + <環境変数グ
ループ名※ 3 >
UNIX の場合
<環境変数グループ識別子※ 2 > + <環境変数グ
ループの設定ファイルのパス※ 3 >
6
loginTimeout
0
7
serverName
−
8
portNumber
40179
9
databaseName
HIRDB
10
DBEnv
−
11
encodLang
−
12
JDBC_IF_TRC
false
13
SV_EVENT_TRC
false
14
TRC_NO
500
15
uapName
−
16
bufSize
64
17
rowSize
16
133
3. システム構築
項番
HiRDB の場合の設定例
プロパティ名
18
OSAuthorize
false
19
HiRDBCursorMode
false
20
blockUpdate
false
21
executeDirectMode
false
22
SQLWarningIgnore
false
23
LONGVARBINARY_Access
REAL
24
bufferPoolSize
0
25
XACloseString
−
26
RMID
1※4
27
XAThreadMode
true
28
XALocalCommitMode
true
29
PreparedStatementPoolSize
10
30
CallableStatementPoolSize
10
31
ConnectionIDUpdate
false
32
logLevel
ERROR
(凡例)
−:設定は不要です。
注※ 1 J2EE サーバ内でユニークな 4 バイトの文字列を指定します。
注※ 2 [Description]フィールドに入力した値を指定します。
注※ 3 HiRDB の環境変数グループ名(Windows の場合)または環境変数グループの設定ファイ
ルのパス(UNIX の場合)を指定します。詳細については,マニュアル「Cosminexus システム構築
ガイド」を参照してください。
注※ 4 リソースマネジャの識別子を指定します。J2EE サーバ内でユニークな 1 ∼ 2147483647 の
数値で指定します。
(c) DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar で,HiRDB を使用する場合
DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar で,HiRDB を使用する場合の
コンフィグレーションプロパティの設定例を次の表に示します。
表 3-12 データベースとして HiRDB を使用する場合
(DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar の場合)
項番
プロパティ名
HiRDB の場合の設定例
1
linkedResourceAdapterName
<連携する Cosminexus RM のリソースアダプタの表
示名>
2
description
< HiRDB ポート番号>※
3
DBHostName
< HiRDB ホスト名>
4
environmentVariables
< HiRDB クライアント環境変数名>
134
3. システム構築
項番
HiRDB の場合の設定例
プロパティ名
5
loginTimeout
8
6
encodeLang
−
7
JDBC_IF_TRC
false
8
TRC_NO
500
9
uapName
−
10
LONGVARBINARY_Access
REAL
11
SQLInNum
300
12
SQLOutNum
300
13
SQLWarningLevel
SQLWARN
14
SQLWarningIgnore
false
15
HiRDBCursorMode
false
16
maxBinarySize
64000
17
LONGVARBINARY_AccessSize
0
18
PreparedStatementPoolSize
10
19
CallableStatementPoolSize
10
20
CancelStatement
true
21
logLevel
ERROR
(凡例)
−:設定は不要です。
注※ HiRDB クライアントの環境変数グループ名(Windows の場合)または環境変数グループの
設定ファイルのパス(UNIX の場合)も指定できます。
(d) DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar で,HiRDB を使用する場合
DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar で,HiRDB を使用する場合の
コンフィグレーションプロパティの設定例を次の表に示します。
表 3-13 データベースとして HiRDB を使用する場合
(DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar の場合)
項番
プロパティ名
HiRDB の場合の設定例
1
linkedResourceAdapterName
<連携する Cosminexus RM のリソースアダプタの表
示名>
2
description
<環境変数グループ識別子>
3
DBHostName
< HiRDB ホスト名>
4
environmentVariables
< HiRDB クライアント環境変数名>
135
3. システム構築
項番
5
HiRDB の場合の設定例
プロパティ名
XAOpenString
Windows の場合
<環境変数グループ識別子※ 1 > + <環境変数グ
ループ名※ 2 >
UNIX の場合
<環境変数グループ識別子※ 1 > + <環境変数グルー
プの設定ファイルのパス※ 2 >
6
loginTimeout
8
7
encodeLang
−
8
JDBC_IF_TRC
false
9
TRC_NO
500
10
uapName
−
11
LONGVARBINARY_Access
REAL
12
SQLInNum
300
13
SQLOutNum
300
14
SQLWarningLevel
SQLWARN
15
SQLWarningIgnore
false
16
HiRDBCursorMode
false
17
maxBinarySize
64000
18
LONGVARBINARY_AccessSize
0
19
XACloseString
−
20
XALocalCommitMode
true
21
PreparedStatementPoolSize
10
22
CallableStatementPoolSize
10
23
CancelStatement
true
24
logLevel
ERROR
(凡例)
−:設定は不要です。
注※ 1 [Description]フィールドに入力した値を指定します。
注※ 2 HiRDB の環境変数グループ名(Windows の場合)または環境変数グループの設定ファイ
ルのパス(UNIX の場合)を指定します。詳細については,マニュアル「Cosminexus システム構築
ガイド」を参照してください。
(e) DBConnector_Oracle_CP_Cosminexus_RM.rar で,Oracle を使用する場合
DBConnector_Oracle_CP_Cosminexus_RM.rar で,Oracle を使用する場合のコンフィ
グレーションプロパティの設定例を次の表に示します。
136
3. システム構築
表 3-14 データベースとして Oracle を使用する場合
(DBConnector_Oracle_CP_Cosminexus_RM.rar の場合)
項番
Oracle の場合の設定例
プロパティ名
1
linkedResourceAdapterName
<連携する Cosminexus RM のリソースアダプタの表
示名>
2
databaseName
< Oracle SID >
3
serverName
<接続先 Oracle のホスト名称,または IP アドレス
>
4
portNumber
1521
5
url
−
6
loginTimeout
8000
7
PreparedStatementPoolSize
10
8
CallableStatementPoolSize
10
9
ConnectionIDUpdate
false
10
logLevel
ERROR
(凡例)
−:設定は不要です。
(f) DBConnector_Oracle_XA_Cosminexus_RM.rar で,Oracle を使用する場合
DBConnector_Oracle_XA_Cosminexus_RM.rar で,Oracle を使用する場合のコンフィ
グレーションプロパティの設定例を次の表に示します。
表 3-15 データベースとして Oracle を使用する場合
(DBConnector_Oracle_XA_Cosminexus_RM.rar の場合)
項番
Oracle の場合の設定例
プロパティ名
1
linkedResourceAdapterName
<連携する Cosminexus RM のリソースアダプタの表
示名>
2
databaseName
< Oracle SID >
3
serverName
<接続先 Oracle のホスト名称,または IP アドレス
>
4
portNumber
1521
5
url
−
6
loginTimeout
8000
7
sessionTimeout
300
8
PreparedStatementPoolSize
10
9
CallableStatementPoolSize
10
10
ConnectionIDUpdate
false
11
logLevel
ERROR
137
3. システム構築
(凡例)
−:設定は不要です。
3.4.9 DB Connector for Cosminexus RM と Cosminexus RM
のインポート
DB Connector for Cosminexus RM および Cosminexus RM をインポートします。
(1) DB Connector for Cosminexus RM のインポート
次に示すコマンドを実行して DB Connector for Cosminexus RM をインポートします。
cjimportres コマンドの詳細については,マニュアル「Cosminexus リファレンス コマン
ド編」を参照してください。
実行形式
cjimportres [<サーバ名称>] [-nameserver <プロバイダURL>] -type rar -f <ファイ
ルパス>
実行例
cjimportres MyServer -type rar -f "C:¥Program
Files¥Hitachi¥Cosminexus¥CC¥DBConnector¥ReliableMessaging¥DBCon
nector_HiRDB_Type4_CP_Cosminexus_RM.rar"
<ファイルパス>には,「3.4.6 DB Connector for Cosminexus RM の選択」で選択した
RAR ファイル指定してください。RAR ファイルは,次のディレクトリに格納されていま
す。
• Windows の場合
< Cosminexus のインストールディレクトリ>
¥CC¥DBConnector¥ReliableMessaging¥
• UNIX の場合
/opt/Cosminexus/CC/DBConnector/ReliableMessaging/
(2) Cosminexus RM のインポート
DB Connector for Cosminexus RM と同様に,cjimportres コマンドを実行して,
Cosminexus RM をインポートします。
実行例
cjimportres MyServer -type rar -f "C:¥Program
Files¥Hitachi¥Cosminexus¥RM¥lib¥reliablemessaging.rar"
<ファイルパス>には,Cosminexus RM の RAR ファイル(reliablemessaging.rar)を
指定してください。RAR ファイルは,次のディレクトリに格納されています。
138
3. システム構築
%HRMDIR%¥lib
3.4.10 DB Connector for Cosminexus RM と Cosminexus RM
のプロパティ設定
次に示すコマンドを実行して,DB Connector for Cosminexus RM および Cosminexus
RM のプロパティを設定します。
実行形式
cjsetresprop [<サーバ名称>] -type rar -resname <DB Connector for Cosminexus
RMの表示名,またはCosminexus RMの表示名> -c <Connector属性ファイルパス>
実行例
cjsetresprop MyServer -type rar -resname
Cosminexus_Reliable_Messaging -c rm_prop.xml
注意事項
DB Connector for Cosminexus RM および Cosminexus RM をデプロイしたあとで
プロパティを定義する場合は,cjgetrarprop コマンドと cjsetrarprop コマンドを使
用してください。コマンドの詳細については,マニュアル「Cosminexus リファレ
ンス コマンド編」を参照してください。
3.4.11 DB Connector for Cosminexus RM と Cosminexus RM
のデプロイ
DB Connector for Cosminexus RM および Cosminexus RM は,デプロイすると J2EE
リソースアダプタとして使用できます。
サーバ管理コマンドでインポートした DB Connector for Cosminexus RM および
Cosminexus RM をデプロイすると,その J2EE サーバ上で動作するすべての J2EE ア
プリケーションから使用できるようになります。なお,デプロイしたあとで,プロパ
ティを定義することもできます。デプロイ後に定義する場合は,該当する DB Connector
for Cosminexus RM および Cosminexus RM を停止した状態で実行してください。プロ
パティを定義する方法については,
「3.4.5 Cosminexus RM のプロパティ定義(永続版
リソースアダプタの場合)
」および「3.4.8 DB Connector for Cosminexus RM のプロパ
ティ定義」を参照してください。
次に示すコマンドを実行して,DB Connector for Cosminexus RM および Cosminexus
RM をデプロイします。
実行形式
139
3. システム構築
cjdeployrar [<サーバ名称>] [-nameserver <プロバイダURL>] -resname <DB
Connector for Cosminexus RMの表示名> -resname <Cosminexus RMの表示名>
実行例
cjdeployrar MyServer -resname
DB_Connector_for_HiRDB_Type4_Cosminexus_RM -resname
Cosminexus_Reliable_Messaging
cjdeployrar コマンドの詳細については,マニュアル「Cosminexus リファレンス コマン
ド編」を参照してください。
3.4.12 Cosminexus RM の運用前の準備(永続版リソースア
ダプタの場合)
Cosminexus RM の運用前の準備について説明します。
(1) DB Connector for Cosminexus RM と Cosminexus RM の接続テスト
DB Connector for Cosminexus RM および Cosminexus RM に設定した内容が正しいか
どうか,接続テストによって検証します。
(a) 接続テストで確認できる項目
接続テストの成功によって,次に示す項目を確認できます。
• 接続先 DB の設定(ホスト名,ポート番号,ユーザ名,パスワードなど)が正しいこ
と。
• 接続先 DB が正常に開始していること。
• RMLinkedDBConnectorName プロパティが正しく設定されていて,かつ指定した
Cosminexus RM と連携する DB Connector for Cosminexus RM が開始済みであるこ
と。
• RMSystemName プロパティのフォーマットが正しいこと。
(b) 接続テストの手順
1. DB Connector for Cosminexus RM を開始します。
DB Connector for Cosminexus RM の開始方法については,「(2) DB Connector for
Cosminexus RM と Cosminexus RM の開始」を参照してください。
2. 次に示すコマンドを実行して Cosminexus RM の接続テストを実施します。
実行形式
cjtestres [<サーバ名称>] [-nameserver <プロバイダURL>] -type rar -resname <
Cosminexus RMの表示名>
140
3. システム構築
実行例
cjtestres MyServer -type rar -resname
Cosminexus_Reliable_Messaging
なお,接続に失敗した場合には,出力されるメッセージを基にエラーに対処し,再度
接続テストを実施してください。
cjtestres コマンドの詳細については,マニュアル「Cosminexus リファレンス コマンド
編」を参照してください。
注意事項
一度接続テストをした DB Connector for Cosminexus RM および Cosminexus RM
は,J2EE サーバを再起動するまで削除できません。DB Connector for Cosminexus
RM および Cosminexus RM を削除する場合は,DB Connector for Cosminexus RM
および Cosminexus RM を停止してから,J2EE サーバを再起動してください。
(c) 接続テストの失敗事例
接続テストに失敗する事例を次に示します。
• DB の管理情報テーブルが正常に作成されていない場合
接続テストでは DB へのアクセスを試みます。Cosminexus RM が前提とする DB の
管理情報テーブルにアクセスするため,DB の管理情報テーブルが正常に作成されて
いないときは接続テストに失敗します。
• Cosminexus Component Container 側でエラーを検知した場合
接続テストでは Cosminexus RM と Cosminexus Component Container の両方で
チェックを実行します。そのため,Cosminexus Component Container 側でエラーを
検知すると接続テストに失敗する場合もあります。
接続テストに成功しても Cosminexus RM の起動時に接続に失敗する場合があります。
事例を次に示します。
• QueueConfigFileName プロパティを指定した場合のファイルパスが不正のとき,ま
たは指定したキュー定義ファイルの内容が不正のとき
• ロガーの初期化に失敗したとき,またはコマンドのネーミングサービスの登録に失敗
したとき
(2) DB Connector for Cosminexus RM と Cosminexus RM の開始
DB Connector for Cosminexus RM および Cosminexus RM を開始します。なお,DB
Connector for Cosminexus RM および Cosminexus RM が連携するために,J2EE リ
ソースアダプタは次の順序で開始してください。
1. DB Connector for Cosminexus RM
2. Cosminexus RM
この順序で開始しないとエラーになります。
141
3. システム構築
なお,Cosminexus RM の接続テストを実施して,すでに DB Connector for
Cosminexus RM が開始している場合は,手順 1. は不要です。
1. 次に示すコマンドを実行して DB Connector for Cosminexus RM を開始します。
実行形式
cjstartrar [<サーバ名称>] [-nameserver <プロバイダURL>] -resname <DB
Connector for Cosminexus RMの表示名>
実行例
cjstartrar MyServer -resname
DB_Connector_for_HiRDB_Type4_Cosminexus_RM
2. 手順 1. と同様に,cjstartrar コマンドを実行して Cosminexus RM を開始します。
実行形式
cjstartrar [<サーバ名称>] [-nameserver <プロバイダURL>] -resname <Cosminexus
RMの表示名>
実行例
cjstartrar MyServer -resname Cosminexus_Reliable_Messaging
cjstartrar コマンドの詳細については,マニュアル「Cosminexus リファレンス コマンド
編」を参照してください。
注意事項
• J2EE アプリケーション中の J2EE リソースが DB Connector for Cosminexus RM
または Cosminexus RM を参照している場合は,DB Connector for Cosminexus
RM または Cosminexus RM を開始してから,J2EE アプリケーションを開始して
ください。
• 一度開始したリソースアダプタは,J2EE サーバを再起動するまで削除できませ
ん。リソースアダプタを削除する場合は,リソースアダプタを停止してから,
J2EE サーバを再起動してください。
(3) キューの作成
DB Connector for Cosminexus RM および Cosminexus RM を開始すると,Cosminexus
RM が管理状態になります。管理状態になったことを確認したら,hrmmkque コマンド
を入力して,キューを作成してください。そのあと,hrmstart コマンドを入力して,
Cosminexus RM を実行状態にします。
詳細については,「4.2 キューの運用(永続版リソースアダプタの場合)」を参照してく
142
3. システム構築
ださい。
3.4.13 キュー間転送を使用する場合の設定
キュー間転送を使用する場合の設定について説明します。
(1) SOAP 通信基盤の設定
キュー間転送をする場合,SOAP 通信基盤を使用します。
SOAP 通信基盤は,クライアント定義ファイルおよびサーバ定義ファイルに定義された
内容に従って送受信処理をします。
(a) SOAP 通信基盤の動作モード
SOAP 通信基盤を標準モードで動作するよう設定します。SOAP 通信基盤を標準モード
で動作する方法および詳細については,マニュアル「Cosminexus SOAP アプリケー
ション開発ガイド」を参照してください。
(b) クライアント定義ファイルの使用方法
SOAP 通信基盤が出力するメッセージログ,トレースファイルの内容を指定する場合,
または Cosminexus RM を複数デプロイする場合は次に示す順序に従ってください。
1. クライアント定義ファイルを任意のディレクトリにコピーします。
2. Cosminexus RM の RMTRTransferControlDir プロパティに,コピーしたクライアン
ト定義ファイルが格納されているディレクトリのパスを指定します。
!
注意事項
• クライアント定義ファイルは削除しないでください。
• クライアント定義ファイルのファイル名は変更しないでください。
• Cosminexus RM を複数デプロイする場合,RMTRTransferControlDir プロパティには,
クライアント定義ファイルが格納されているディレクトリのパスを Cosminexus RM ごと
に指定してください。なお,クライアント定義ファイルで設定する,
c4web.logger.log_file_prefix キーは Cosminexus RM ごとに異なる文字列を設定してくだ
さい。
• uCosminexus Reliable Messaging 01-00 から Cosminexus RM 01-02 にバージョンアップ
する場合は,J2EE サーバを起動する前に J2EE サーバ用オプション定義ファイル
(usrconf.cfg)をテキストエディタで開き,次に示す行を削除してください。
add.class.path=<uCosminexus Reliable Messaging 01-00 のインストールディレクトリ
>¥conf
クライアント定義ファイルで設定できるキー名称と値の一覧を次の表に示します。次の
表に示したキーだけを設定してください。ほかのキーを設定した場合,動作は保証され
ません。
143
3. システム構築
表 3-16 クライアント定義ファイルで設定できるキー名称と値の一覧
キー名称
値
c4web.logger.log_file_prefix
トレースファイル,アプリケーションログ
のプレフィクス
c4web.common.prf_trace_level
性能解析トレースの出力オプション
c4web.common.send_max_soap_envelope_size
送信できる SOAPEnvelope の最大サイズ
c4web.common.receive_max_soap_envelope_size
受信できる SOAPEnvelope の最大サイズ
c4web.attachment.send_max_attachment_count
送信できる添付データの最大個数
c4web.attachment.receive_max_attachment_count
受信できる添付データの最大個数
c4web.attachment.send_max_attachment_size
送信できる添付データの最大サイズ
c4web.attachment.receive_max_attachment_size
受信できる添付データの最大サイズ
クライアント定義ファイルで設定できるキーの詳細については,マニュアル
「Cosminexus SOAP アプリケーション開発ガイド」を参照してください。
(c) サーバ定義ファイルの設定
キュー間転送をする場合,サーバ定義ファイルは,キュー間転送用 Web アプリケーショ
ンを対象に設定する必要があります。
サーバ定義ファイルで設定できるキー名称と値の一覧を次の表に示します。次の表に示
したキーだけを設定してください。ほかのキーを設定した場合,動作は保証されません。
表 3-17 サーバ定義ファイルで設定できるキー名称と値の一覧
キー名称
値
c4web.logger.< 識別子 >.log_file_prefix
トレースファイル,アプリ
ケーションログのプレフィク
ス
c4web.common.< 識別子 >.prf_trace_level
性能解析トレースの出力オプ
ション
c4web.common.< 識別子 >.send_max_soap_envelope_size
送信できる SOAPEnvelope の
最大サイズ
c4web.common.< 識別子 >.receive_max_soap_envelope_size
受信できる SOAPEnvelope の
最大サイズ
c4web.attachment.< 識別子 >.send_max_attachment_count
送信できる添付データの最大
個数
c4web.attachment.< 識別子 >.receive_max_attachment_count
受信できる添付データの最大
個数
c4web.attachment.< 識別子 >.send_max_attachment_size
送信できる添付データの最大
サイズ
c4web.attachment.< 識別子 >.receive_max_attachment_size
受信できる添付データの最大
サイズ
144
3. システム構築
キー名称の < 識別子 > には,キュー間転送用 Web アプリケーションのコンテキストルー
トを指定します。
サーバ定義ファイルで設定できるキーの詳細については,マニュアル「Cosminexus
SOAP アプリケーション開発ガイド」を参照してください。
(2) キュー間転送を使用する場合の Cosminexus RM の設定
キュー間転送を使用する場合は,送信側と受信側の Cosminexus RM に対して次に示す
設定をしてください。
1. Cosminexus の Web サーバ連携機能またはインプロセス HTTP サーバ機能を有効に
設定
Web サーバ連携機能およびインプロセス HTTP サーバ機能については,
「Cosminexus 機能解説」および「Cosminexus システム構築ガイド」を参照してくだ
さい。
2. SOAP 通信基盤を標準モードで動作するように設定
SOAP 通信基盤については,マニュアル「Cosminexus SOAP アプリケーション開発
ガイド」を参照してください。
3. コンフィグレーションプロパティの RMTRConnectFlag に true を指定
4. サーバ管理コマンドで Cosminexus RM の ear ファイル(キュー間転送用 Web アプリ
ケーション)をインポート
5. サーバ管理コマンドで Cosminexus RM のキュー間転送用 Web アプリケーションと
Cosminexus RM のリソースアダプタを関連づけ
6. hrmstart コマンドを入力して Cosminexus RM を実行状態に移行
(3) 転送データ相互接続用インタフェースを利用する場合の設定
転送データ相互接続用インタフェースを利用したアプリケーションを作成する場合,転
送データ相互接続用インタフェースのライブラリを開発環境のクラスパスに含める必要
があります。詳細は「7.5 転送データ相互接続用インタフェースの一覧」を参照してく
ださい。
145
3. システム構築
3.5 Cosminexus RM のシステム構築(非永続
版リソースアダプタの場合)
非永続版リソースアダプタの場合の Cosminexus RM のシステム構築について説明しま
す。
3.5.1 キュー作成ファイルの作成
非永続版リソースアダプタを使用する場合,キュー作成ファイルに記述したキュー定義
文を基にキューを作成します。キュー作成ファイルはテキストファイルで作成して,任
意のディレクトリに格納してください。キュー作成ファイルのフルパスを
QueueMakeFileName プロパティに指定すると,キュー作成ファイルに指定された
キュー定義文を基に,Cosminexus RM 開始時に非永続キュー属性のローカルキューが作
成されます。
(1) キュー作成ファイルの記述形式
記述形式
hrmmkque 〔-d {serial|parallel}〕
〔-n 最大メッセージ数〕〔-x 表示名〕
〔-e メッセージ有効期間〕
キュー名
● オプション
-d {serial | parallel} ∼《parallel》
作成するキューのメッセージ取り出しモードを指定します。
serial:シリアル取り出し属性
parallel:パラレル取り出し属性
各属性を指定したときのメッセージの処理については,「2.3.2 メッセージ取り
出しモード」のメッセージ取り出しモードの説明を参照してください。
-n 最大メッセージ数 ∼<数字> ((1 ∼ 65535))《1024》
キューに格納するメッセージの最大数を指定します。
-e メッセージ有効期間 ∼<数字> ((0 ∼ 2592000))《0》
キューに格納するメッセージの有効期間を秒単位で指定します。
0 を指定する場合,メッセージの有効期間は無限です。
有効期間を指定するときのメッセージの処理については,「2.3.5 メッセージの
有効期間」を参照してください。有効期間に達すると,そのメッセージは破棄さ
れます。
146
3. システム構築
-x 表示名 ∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミン
グサービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合はキュー名と同じ名称を指定したものと見なされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとな
ります。
オプションを指定するときの注意事項を次に示します。
• オプションは,キュー名より前に指定してください。
• オプションは順序不同です。
• "hrmmkque",オプション,およびキュー名の間は一つ以上の半角スペース,タブ,
または改行のどれかを入力してください。
• 同じオプションフラグを 2 回以上指定すると最後に指定したものが有効となります。
例えば,次のように「-n 1」のあとに「-n 2」を指定すると,
「-n 2」が有効になりま
す。
hrmmkque -n 1 -n 2
● 引数
キュー名 ∼< 1 ∼ 20 文字の識別子>
作成するキューの名前を指定します。
指定できる文字は,先頭文字が英数字で,2 文字目以降が英数字または _(アンダスコ
ア)となります。
キュー作成ファイルに対して同一のキュー名称を指定した場合は,後ろに記述された
同一のキュー名称を含むキュー定義文が無視され,処理が続行されます。
(2) キュー作成ファイルの記述例
記述例 1
hrmmkque queue1;
記述例 2
hrmmkque -e 1000
-n 65535
queue2;
# 有効期限は1000秒(約16分)を指定
# 最大メッセージ数は-nオプションの最大値を指定
(3) キュー作成ファイルの作成規則
● 定義の先頭には,hrmmkque を入力してください。行の先頭でも途中でも差し支えあ
りません。
● 定義の終端には,セミコロン(;)を指定してください。
● hrmmkque からセミコロン(;)までが定義と解釈されます。
● 定義の中で改行やコメントを挿入できます。ただし,文字列の途中で改行はできませ
ん。
● シャープ(#)で始まる行はコメントと見なされます。行の途中にシャープ(#)があ
る場合は,シャープ(#)以降から行の最後までがコメントと見なされます。
147
3. システム構築
● コメントに相当しない位置で,かつキュー定義文に含まれない位置で入力された,
"hrmmkque",シャープ(#),半角スペース,タブ,および改行以外の文字は,すべ
て不正と見なされます。
参考
キューを削除する場合,削除するキューのキュー定義文を削除するか,または先頭にシャー
プ(#)を付けてコメントにします。
(4) キュー作成ファイルの作成時の注意事項
● 次の場合は,Cosminexus RM が閉塞します。
• キュー作成ファイルの読み込みに失敗した場合
• 指定されたパスにキュー作成ファイルがない場合
• キュー作成ファイル読み込み時にメモリ不足が発生した場合
• キュー作成ファイルに不正なキュー定義文がある場合
• キュー作成ファイルに "hrmmkque" と対になるセミコロンがない場合
• キュー作成ファイルに有効なキュー定義文が存在しない場合
• キュー作成ファイルの読み込み処理中に何らかの入出力例外が発生した場合
● オプションフラグ,フラグ引数,またはキュー名に不正がある場合,該当の定義文を
無視して処理が続行されます。
● -x オプションで指定したキューの表示名は,キュー定義ファイルを使用しない場合
に,指定した表示名で JNDI ネーミングサービスに登録されます。キュー定義ファイ
ルを使用する場合は,指定した表示名で JNDI ネーミングサービスに登録されません。
3.5.2 キュー定義ファイルの作成(非永続版リソースアダプ
タの場合)
キュー定義ファイルは,JNDI ネーミングサービスに登録するキュー表示名と実際の
キュー名を関連づけるファイルです。テキストファイルで作成して,任意のディレクト
リに格納してください。キュー定義ファイルのフルパスを QueueConfigFileName プロ
パティに指定すると,Cosminexus RM の開始時に,定義されたキュー表示名が JNDI
ネーミングサービスに登録されます。
なお,キュー作成時の表示名を利用する場合,キュー定義ファイルの作成は不要です。
(1) キュー定義ファイルの記述形式
キュー定義ファイルの記述形式について,次に示します。
記述形式
148
3. システム構築
QueueImplClass = jp.co.Hitachi.soft.reliablemessaging_np.ra.jms.QueueImpl※1
Queue.通番※2.DisplayName = キュー表示名※3
Queue.通番.QueueName = キュー名※4
注※ 1
ユーザの環境に依存しない固定の値です。
永続版リソースアダプタの場合と指定値が異なるので注意してください。
注※ 2
通番には 1 ∼ 20480 の範囲の値を指定してください。
注※ 3
キュー表示名として任意の名称を指定します。
キュー表示名は JNDI ネーミングサービスに "<Cosminexus RM の表示名 >__< キュー表示名
>__que" の形式で登録されます。なお,"<Cosminexus RM の表示名 >__< キュー表示名
>__que" の形式の文字列の長さが 256 文字を超えないようにしてください。
Cosminexus RM の表示名は,Connector 属性ファイルの <display-name> タグの指定値をサニ
タイズ(半角英数字以外をアンダスコア(_)に変更)した値です。<display-name> タグの初
期値は "Cosminexus_Reliable_Messaging" です。Connector 属性ファイルについては,マニュ
アル「Cosminexus リファレンス 定義編」を参照してください。
< キュー表示名 > には,アンダスコア二つ(__)を指定しないでください。
注※ 4
キュー名はキュー作成ファイルの hrmmkque 定義の引数指定値を指定します。
(2) キュー定義ファイルの記述例
QueueImplClass =
jp.co.Hitachi.soft.reliablemessaging_np.ra.jms.QueueImpl
Queue.1.DisplayName = Q1
Queue.1.QueueName = Queue1
Queue.2.DisplayName = Q2
Queue.2.QueueName = Queue2
(3) キュー定義ファイルの作成規則
● java.util.Properties.load() メソッドで読み取りできる形式にしてください。コメント
や継続行の扱いも同様です。
● QueueImplClass の指定がない場合および値が指定されていない場合はデプロイ時に
エラーが発生します。
● 一つのキューについて DisplayName および QueueName の両方を指定してください。
● 同一のプロパティを複数記述した場合は,どの値が有効になるか保証しません。
● 通番は 1 から指定してください。通番 1 のキュー定義がない場合はデプロイ時にエ
ラーが発生します。
● Queue.n.DisplayName の指定がない場合および値が指定されていない場合,通番が
149
3. システム構築
n-1 番目のキューまでが有効になります。通番 n 以降のキュー定義は無視されます。
● QueueName の指定がない,または値が指定されていないキューは無視されます。
● キュー定義が一つもない場合はフォーマット不正によってデプロイ時にエラーが発生
します。
● 表示名が重複した場合,通番の大きい方が有効になります。
● 通番の最大値より大きい値のキュー定義は無視されます。
● DisplayName に指定できる文字は,半角英字(A ∼ Z,a ∼ z)半角数字(0 ∼ 9)お
よび半角のアンダスコア(_)です。これら以外の文字を指定したキューは無視されま
す。
● QueueName に指定する値は,大文字と小文字を hrmmkque 定義の引数指定値と一
致させてください。
3.5.3 Cosminexus RM のプロパティ定義(非永続版リソー
スアダプタの場合)
Cosminexus RM のプロパティを定義します。Cosminexus RM をデプロイしたあとでも
実行できます。なお,設定済みの Cosminexus RM のプロパティを変更する場合は,該
当する Cosminexus RM を停止した状態で実行してください。
(1) 編集する属性ファイル
Cosminexus RM で提供する Connector 属性ファイルのテンプレートを任意のディレク
トリにコピーして,コピーしたファイルを編集します。
Connector 属性ファイルのテンプレートは,次のディレクトリに格納されています。
%HRMDIR%¥conf¥rmnp_prop.xml
なお,cjgetresprop コマンドによって取得した Connector 属性ファイルを使用すること
もできます。
!
注意事項
テンプレートからコピーした Connector 属性ファイルに ASCII 文字以外を使用する場合は,
次のどちらかの対処が必要です。
• UTF-8 形式で保存する。
• 編集したファイルの文字エンコーディング形式に従って,ファイルの先頭行に次に示す
encoding 宣言を追加する。
<?xml version="1.0" encoding=" <文字エンコーディング> "?>
150
3. システム構築
(2) 編集する属性設定項目
Cosminexus RM のプロパティ設定項目を次に示します。
• リソースアダプタの一般情報
• コンフィグレーションプロパティ
• 実行時プロパティ
(a) リソースアダプタの一般情報
設定できる Cosminexus RM の一般情報属性(<outbound-resourceadapter> タグ)の設
定項目を次に示します。
項目
必須
対応するタグ
トランザクションサポートのレベル
○
<transaction-support>
再認証のサポート有無※
○
<reauthentication-support>
(凡例)
○:必須
注※ 必ず false を指定してください。
プロパティの設定項目の説明については,マニュアル「Cosminexus リファレンス 定義
編」を参照してください。
(b) コンフィグレーションプロパティ
Cosminexus RM のコンフィグレーションプロパティ(<outbound-resourceadapter> <connection-definition> - <config-property> タグ)の設定項目を次に示します。
項目
対応するタグ
コンフィグレーションプロパティ名
<config-property-name>
コンフィグレーションプロパティのデータ型
<config-property-type>
コンフィグレーションプロパティの値
<config-property-value> ※
注※ コンフィグレーションプロパティの値をクリアする場合
<config-property-value> タグだけを指定して,値を指定しないでください。
<config-property-value> タグ自体が指定されていない場合は,そのプロパティの値は変更され
ないで,すでに設定されている値がそのまま有効になります。
定義するコンフィグレーションプロパティの数だけ上記の設定を繰り返してください。
Cosminexus RM のコンフィグレーションプロパティの設定内容については,「6. コン
フィグレーションプロパティ」を参照してください。
(c) 実行時プロパティ
Cosminexus RM の実行時プロパティ(<outbound-resourceadapter> <connection-definition> - <connector-runtime> - <property> タグ)の設定項目を次に示
151
3. システム構築
します。
項目
対応するタグ
プロパティ名
<property-name>
プロパティのデータ型
<property-type>
プロパティの値
<property-value>
定義するプロパティの数だけ,上記の設定を繰り返してください。
実行時プロパティ名(<property-name>)およびコネクションプールの動作と注意事項
については,マニュアル「Cosminexus アプリケーション設定操作ガイド」の DB
Connector のプロパティ定義に関する内容を参照してください。
(3) コンフィグレーションプロパティの設定例
Cosminexus RM のコンフィグレーションプロパティの設定例を示します。コンフィグ
レーションプロパティの各項目の詳細については,「6.2 Cosminexus RM のコンフィグ
レーションプロパティの詳細説明」を参照してください。
表 3-18 Cosminexus RM のコンフィグレーションプロパティの設定例(非永続版リソー
スアダプタの場合)
項番
プロパティ名
設定例
1
RMSystemName
<システム名>
2
QueueMakeFileName
<キュー作成ファイルの場所>
3
QueueConfigFileName
指定しない
4
RMSweepTimerInterval
600
5
RMPassByReference
false
6
RMMaxDeliveryNum
10
7
RMMethodTraceLevel
1
8
RMLogTraceFileNum
2
9
RMLogTraceFileSize
2097152
3.5.4 Cosminexus RM のインポート
次に示すコマンドを実行して Cosminexus RM をインポートします。
cjimportres コマンドの詳細については,マニュアル「Cosminexus リファレンス コマン
ド編」を参照してください。
実行形式
152
3. システム構築
cjimportres [<サーバ名称>] [-nameserver <プロバイダURL>] -type rar -f <ファイ
ルパス>
実行例
cjimportres MyServer -type rar -f "C:¥Program
Files¥Hitachi¥Cosminexus¥RM¥lib¥reliablemessagingNP.rar"
<ファイルパス>には,Cosminexus RM の RAR ファイル(reliablemessagingNP.rar)
を指定してください。RAR ファイルは,次のディレクトリに格納されています。
%HRMDIR%¥lib
3.5.5 Cosminexus RM のプロパティ設定
次に示すコマンドを実行して,Cosminexus RM のプロパティを設定します。
実行形式
cjsetresprop [<サーバ名称>] -type rar -resname <Cosminexus RMの表示名> -c <
Connector属性ファイルパス>
実行例
cjsetresprop MyServer -type rar -resname
Cosminexus_Reliable_Messaging -c rmnp_prop.xml
注意事項
Cosminexus RM をデプロイしたあとでプロパティを定義する場合は,cjgetrarprop
コマンドと cjsetrarprop コマンドを使用してください。コマンドの詳細については,
マニュアル「Cosminexus リファレンス コマンド編」を参照してください。
3.5.6 Cosminexus RM のデプロイ
Cosminexus RM は,デプロイすると J2EE リソースアダプタとして使用できます。
サーバ管理コマンドでインポートした Cosminexus RM をデプロイすると,その J2EE
サーバ上で動作するすべての J2EE アプリケーションから使用できるようになります。
なお,デプロイしたあとで,プロパティを定義することもできます。デプロイ後に定義
する場合は,該当する Cosminexus RM を停止した状態で実行してください。プロパ
ティを定義する方法については,
「3.5.3 Cosminexus RM のプロパティ定義(非永続版
リソースアダプタの場合)
」を参照してください。
次に示すコマンドを実行して,Cosminexus RM をデプロイします。
実行形式
153
3. システム構築
cjdeployrar [<サーバ名称>] [-nameserver <プロバイダURL>] -resname <
Cosminexus RMの表示名>
実行例
cjdeployrar MyServer -resname Cosminexus_Reliable_Messaging
cjdeployrar コマンドの詳細については,マニュアル「Cosminexus リファレンス コマン
ド編」を参照してください。
3.5.7 Cosminexus RM の運用前の準備(非永続版リソース
アダプタの場合)
Cosminexus RM の運用前の準備について説明します。
(1) Cosminexus RM の接続テスト
Cosminexus RM に設定した内容が正しいかどうか,接続テストによって検証します。
(a) 接続テストで確認できる項目
接続テストの成功によって,次に示す項目を確認できます。
• RMSystemName プロパティのフォーマットが正しいこと。
(b) 接続テストの手順
1. 次に示すコマンドを実行して Cosminexus RM の接続テストを実施します。
実行形式
cjtestres [<サーバ名称>] [-nameserver <プロバイダURL>] -type rar -resname <
Cosminexus RMの表示名>
実行例
cjtestres MyServer -type rar -resname
Cosminexus_Reliable_Messaging
なお,接続に失敗した場合には,出力されるメッセージを基にエラーに対処し,再度
接続テストを実施してください。
cjtestres コマンドの詳細については,マニュアル「Cosminexus リファレンス コマンド
編」を参照してください。
注意事項
一度接続テストをした Cosminexus RM は,J2EE サーバを再起動するまで削除でき
154
3. システム構築
ません。Cosminexus RM を削除する場合は,Cosminexus RM を停止してから,
J2EE サーバを再起動してください。
(c) 接続テストの失敗事例
接続テストに失敗する事例を次に示します。
• Cosminexus Component Container 側でエラーを検知した場合
接続テストでは Cosminexus RM と Cosminexus Component Container の両方で
チェックを実行します。そのため,Cosminexus Component Container 側でエラーを
検知すると接続テストに失敗する場合もあります。
接続テストに成功しても Cosminexus RM の起動時に接続に失敗する場合があります。
事例を次に示します。
• QueueConfigFileName プロパティや QueueMakeFileName プロパティに指定した
ファイルパスが不正のとき,または指定したファイルの内容が不正のとき
• ロガーの初期化に失敗したとき,またはコマンドのネーミングサービスの登録に失敗
したとき
(2) Cosminexus RM の開始
cjstartrar コマンドを実行して,Cosminexus RM を開始します。
実行形式
cjstartrar [<サーバ名称>] [-nameserver <プロバイダURL>] -resname <Cosminexus
RMの表示名>
実行例
cjstartrar MyServer -resname Cosminexus_Reliable_Messaging
cjstartrar コマンドの詳細については,マニュアル「Cosminexus リファレンス コマンド
編」を参照してください。
注意事項
• J2EE アプリケーション中の J2EE リソースが Cosminexus RM を参照している場
合は,Cosminexus RM を開始してから,J2EE アプリケーションを開始してくだ
さい。
• 一度開始したリソースアダプタは,J2EE サーバを再起動するまで削除できませ
ん。リソースアダプタを削除する場合は,リソースアダプタを停止してから,
J2EE サーバを再起動してください。
155
3. システム構築
3.6 システム構築時の注意事項
システム構築時の注意事項について説明します。
3.6.1 DBMS の設定をする場合
DBMS の初期設定時の注意事項について説明します。
● 共用キューを使用して複数システム間でのアプリケーション連携をする場合には,同
一スキーマ定義内に送信側システムの管理情報テーブルと受信側システムの管理情報
テーブルを定義する必要があります。
共用キューを使用して複数システム間でのアプリケーション連携をする場合の管理情
報テーブルについて,次の図に示します。
図 3-2 共用キューを使用して複数システム間でのアプリケーション連携をする場合の管
理情報テーブル
● 共用キューの場合,送信側(または受信側)システムの管理情報テーブルを定義した
あとで受信側(または送信側)システムの管理情報テーブルを定義するときは,
DBMS の初期設定は不要です。受信側(または送信側)システムでは,送信側(また
は受信側)システムと同じ接続ユーザ名を使用します。
● 各 DB で使用する言語モードは,Cosminexus DABroker Library や DB Connector
for Cosminexus RM などの上位のソフトウェアの言語モードと合わせてください。
3.6.2 複数デプロイをする場合
Cosminexus RM はリソース使用量が多いため,複数デプロイは推奨しません。複数デプ
ロイをする場合の注意事項を次に示します。
● 複数の Cosminexus RM 間で DB 上の管理情報テーブルを共有しないようにしてくだ
さい。
156
3. システム構築
● アプリケーションがネーミングサービスから lookup メソッドでオブジェクトを取得
するときのオブジェクト名称によって,稼働する Cosminexus RM を切り替えます。
J2EE 環境での複数デプロイの例を次の図に示します。
図 3-3 J2EE 環境での複数デプロイの例
● Cosminexus RM を複数デプロイした場合,Cosminexus RM ごとに別々のクライアン
ト定義ファイルを指定してください。クライアント定義ファイルの詳細については,
「3.4.13(1) SOAP 通信基盤の設定」を参照して確認してください。
● Cosminexus RM を複数デプロイする場合,キュー間転送用 Web アプリケーションの
コンテキストルートを一意にするように設定してください。
● キュー間転送用 Web アプリケーションとリソースアダプタの関連づけは,1 対 1 にし
てください。つまり,複数のキュー間転送用 Web アプリケーションを一つのリソース
アダプタに関連づけることはできません。
Cosminexus Component Container では,キュー間転送用 Web アプリケーションの
カスタマイズ時に,関連するリソースアダプタの表示名を指定することで関連づけま
す。J2EE 環境でのキュー間転送用 Web アプリケーションとリソースアダプタの関連
づけについて,次の図に示します。
157
3. システム構築
図 3-4 J2EE 環境でのキュー間転送用 Web アプリケーションとリソースアダプタの関
連づけ
● J2EE サーバ内に異なるバージョンの Cosminexus RM を同時にインポートすること
はできません。異なるバージョンを同時にインポートした場合,不正な動作をする可
能性があります。
3.6.3 ObjectMessage のペイロードにユーザが定義したクラ
スのオブジェクトを格納する場合
ObjectMessage のペイロードにユーザが定義したクラスのオブジェクトを格納する場合,
アプリケーションにユーザが定義したクラスを含める必要があります。アプリケーショ
ンにユーザ定義クラスを含めない場合,Cosminexus の J2EE サーバ用オプション定義
ファイルにユーザが定義したクラスのクラスパスを指定する必要があります。「2.5.1(3)
JMS メッセージのペイロード」を参照してください。
3.6.4 同一サーバ上で Cosminexus RM を複数デプロイする
場合
同一サーバ上で Cosminexus RM を複数デプロイする場合,またはキュー間転送の通信
設定を変更する場合は,Cosminexus RM ごとに別々のクライアント定義ファイルを指定
する必要があります。詳細については,「3.4.13(1)(b) クライアント定義ファイルの使用
方法」を参照してください。
3.6.5 PRF トレースファイルを利用する場合
PRF トレースファイルを利用するに場合に必要な設定については,永続版リソースアダ
158
3. システム構築
プタの場合は「4.4 PRF トレースファイルの運用(永続版リソースアダプタの場合)」
を,非永続版リソースアダプタの場合は「5.3 PRF トレースファイルの運用(非永続版
リソースアダプタの場合)
」を参照してください。
159
4
Cosminexus RM(永続版リ
ソースアダプタ)の運用
Cosminexus RM のアプリケーションを開始するには,あらか
じめ Cosminexus RM を開始しておく必要があります。
Cosminexus RM を停止するには,あらかじめアプリケーショ
ンを停止しておく必要があります。
この章では,永続版リソースアダプタを使用する場合の,
Cosminexus RM およびアプリケーションの開始と停止,管理
情報テーブルを保存した DB の運用などについて説明します。
4.1 Cosminexus RM とアプリケーションの開始と停止(永続版リソースア
ダプタの場合)
4.2 キューの運用(永続版リソースアダプタの場合)
4.3 DB の運用
4.4 PRF トレースファイルの運用(永続版リソースアダプタの場合)
4.5 Cosminexus RM 運用時の注意事項(永続版リソースアダプタの場合)
161
4. Cosminexus RM(永続版リソースアダプタ)の運用
4.1 Cosminexus RM とアプリケーションの開
始と停止(永続版リソースアダプタの場
合)
永続版リソースアダプタを使用する場合の,Cosminexus RM とアプリケーションの開始
手順および停止手順について説明します。
4.1.1 Cosminexus RM の開始(永続版リソースアダプタの
場合)
Cosminexus RM を開始するには,あらかじめプロパティのカスタマイズとデプロイを完
了させている必要があります。詳細については,「3.4.5 Cosminexus RM のプロパティ
定義(永続版リソースアダプタの場合)」を参照してください。また,Cosminexus RM
の開始時に使用するサーバ管理コマンドついては,マニュアル「Cosminexus アプリ
ケーション設定操作ガイド」を参照してください。
Cosminexus RM を開始する手順を次に示します。
1. DBMS の開始
HiRDB または Oracle を開始します。
2. J2EE サーバの開始
Cosminexus を J2EE サーバモードの 1.4 モードで開始します。また,アプリケー
ションの要件に合わせて,必要な Cosminexus のサービスを開始してください。
3. DB Connector for Cosminexus RM の開始
サーバ管理コマンドを使用して,リソースアダプタとして DB Connector for
Cosminexus RM を開始します。
4. Cosminexus RM の開始
サーバ管理コマンドを使用して,リソースアダプタとして Cosminexus RM を開始し
ます。
注意
• サーバ管理コマンドで Cosminexus RM が開始状態になっても,実際には開始中
状態のことがあります。このときにアプリケーションを開始すると Cosminexus
RM がコネクションを取得する契機でエラーが発生します。ただし,
Message-driven Bean の場合は,Cosminexus RM が開始するまでアプリケーショ
ンの開始処理が完了しません。開始処理が完了し KFRM01009-I(メッセージロ
グの出力レベルに関係なく出力します)が出力されるのを待ってからアプリケー
ションを開始してください。開始中状態の詳細については,
「4.1.4 Cosminexus
RM の状態遷移(永続版リソースアダプタの場合)」を参照してください。
162
4. Cosminexus RM(永続版リソースアダプタ)の運用
• Connector 属性ファイルの <transaction-support> タグに LocalTransaction また
は NoTransaction を指定した場合,サーバ管理コマンドで Cosminexus RM が開
始状態になっても,実際には開始処理に失敗していることがあります。このとき
にアプリケーションを開始すると Cosminexus RM がコネクションを取得する契
機でエラーが発生します。
• Cosminexus RM の開始中は,Cosminexus RM が使用しているキュー定義ファイ
ルを削除したり,読み込みができなくなるようなアクセス権限の変更は行わない
でください。Cosminexus RM の再開始時にキュー定義ファイルが読み込めない状
態であった場合,データベースに未決着のトランザクションが滞留してしまい,
Cosminexus RM が正常に開始できなくなります。
4.1.2 アプリケーションの開始(永続版リソースアダプタの
場合)
アプリケーションを開始するには,あらかじめ Cosminexus RM が開始されている必要
があります。各手順で使用するサーバ管理コマンドおよび各属性ファイルの詳細につい
ては,マニュアル「Cosminexus アプリケーション設定操作ガイド」およびマニュアル
「Cosminexus リファレンス 定義編」を参照してください。
アプリケーションを開始する手順を次に示します。
1. キューの作成
アプリケーションで使用するキューを作成していない場合は,hrmmkque コマンドを
使用してキューを作成します。
キューの作成の詳細については,
「4.2 キューの運用(永続版リソースアダプタの場
合)
」を参照してください。
2. アプリケーションのインポート
サーバ管理コマンドを使用して,Cosminexus RM のアプリケーションをインポート
します。
3. J2EE アプリケーションのプロパティ設定
テキストエディタを使って,Session Bean 属性ファイル,Entity Bean 属性ファイ
ル,WAR 属性ファイル,または MessageDrivenBean 属性ファイルを編集して,リ
ソースアダプタのリファレンス定義,リソース環境のリファレンス定義およびメッ
セージ参照の設定項目を設定します。
4. 実行状態への移行
次に示す場合は,hrmstart コマンドを入力して Cosminexus RM を管理状態から実
行状態に移行してください。
• 初めて Cosminexus RM を開始した場合
• 前回のオンラインで管理状態のときに Cosminexus RM を停止した場合
Cosminexus RM の状態については,hrmlsstat コマンドによって確認できます。状
態遷移については,
「4.1.4 Cosminexus RM の状態遷移(永続版リソースアダプタ
163
4. Cosminexus RM(永続版リソースアダプタ)の運用
の場合)」を参照してください。
5. アプリケーションの開始
サーバ管理コマンドを使用して,アプリケーションを開始します。
4.1.3 Cosminexus RM の停止(永続版リソースアダプタの
場合)
サーバ管理コマンドを使用して,アプリケーションを停止させてから,Cosminexus RM
を停止させます。サーバ管理コマンドについては,マニュアル「Cosminexus アプリ
ケーション設定操作ガイド」を参照してください。
Cosminexus RM を停止する手順を次に示します。
1. アプリケーションの停止
サーバ管理コマンドを使用して,アプリケーションを停止します。一つの
Cosminexus RM を利用する複数のアプリケーションがある場合はすべて停止します。
キュー間転送用 Web アプリケーションも含みます。
2. Cosminexus RM の停止
サーバ管理コマンドを使用して,Cosminexus RM を停止します。
3. DB Connector for Cosminexus RM の停止
サーバ管理コマンドを使用して,DB Connector for Cosminexus RM を停止します。
4. J2EE サーバの停止
Cosminexus システムを使用しない場合は,J2EE サーバと Cosminexus のサービス
を停止します。
5. DBMS の終了
DBMS を使用しない場合は,HiRDB または Oracle を終了します。
4.1.4 Cosminexus RM の状態遷移(永続版リソースアダプ
タの場合)
Cosminexus システムにとって,Cosminexus RM には未デプロイ状態,デプロイ済み状
態,およびリソースアダプタ開始状態の三つの状態があります。また,リソースアダプ
タ開始状態の Cosminexus RM の内部状態として,実行状態,管理状態,閉塞状態およ
び開始中状態があります。
Cosminexus RM の状態について次に説明します。
実行状態
アプリケーションにサービスを提供する状態です。管理状態から hrmstart コマンド
の入力によって移行します。
164
4. Cosminexus RM(永続版リソースアダプタ)の運用
管理状態
Cosminexus RM が提供するコマンドを入力して,キューを作成したり,メッセージ
を削除したりするためのシステム管理用の状態です。実行状態から hrmstop コマン
ドの入力によって移行します。
閉塞状態
Cosminexus RM 内部のメモリ状態不正などによって,処理の続行ができなくなった
状態です。実行状態,管理状態,または開始中状態から移行します。この状態では,
アプリケーションにサービスは提供されません。
開始中状態
リソースアダプタを開始して,前回の状態によって管理状態または実行状態に移行
するまでの一時的な状態です。この状態では,DB 上に格納されているキューやメッ
セージ情報をメモリ上に復元します。復元に掛かる時間は,DB に格納されている
メッセージの数に比例します。
(1) 状態遷移
Cosminexus RM の状態遷移について,次の図に示します。
図 4-1 Cosminexus RM の状態遷移
165
4. Cosminexus RM(永続版リソースアダプタ)の運用
リソースアダプタを開始した直後は,前回のオンラインで Cosminexus RM を停止した
ときの内部状態に移行します。また,コマンドによっては特定の内部状態のときだけに
入力できます。詳細については,「8.2 コマンドの一覧」を参照してください。
(2) 管理状態への移行処理
管理状態に移行するときは,あらかじめアプリケーションを停止させてください。
hrmstop コマンドを入力すると,Cosminexus RM は実行状態から管理状態へ移行しま
す。移行時には,仕掛かり中のメッセージ処理に影響を与えないように,次に示す処理
が実行されます。
• 新しいメッセージ受信を停止し,仕掛かり中のメッセージ受信処理が完了するまで待
ちます。
• 新しいメッセージ送信を停止し,仕掛かり中のメッセージ送信処理が完了するまで待
ちます。
• キュー間転送での新しい SOAP メッセージの受信を停止し,仕掛かり中の SOAP
メッセージの受信処理が完了するまで待ちます。
• キュー間転送での新しい SOAP メッセージの送信を停止し,仕掛かり中の SOAP
メッセージの送信処理で応答が返されるのを待ちます。
• 共用キュー連携時は新しいイベントの受信を停止し,仕掛かり中のメッセージ受信処
理が完了するまで待ちます。
• アプリケーションからの新しい API 呼び出しに対して例外を返し,仕掛かり中の API
処理が完了するまで待ちます。なお,仕掛かり中のトランザクションがあっても,
Cosminexus RM はトランザクションをロールバックしません。
(3) キュー間転送用 Web アプリケーションの状態遷移
Cosminexus RM のキュー間転送用 Web アプリケーションを J2EE アプリケーションと
してデプロイします。J2EE コンテナから見たキュー間転送用 Web アプリケーションの
状態として,未デプロイ状態,デプロイ状態,および開始状態の三つの状態があります。
また,開始状態のキュー間転送用 Web アプリケーションの内部状態として,実行状態が
あります。
キュー間転送用 Web アプリケーションが開始状態に遷移できるのは,Cosminexus RM
がリソースアダプタ開始状態であることが前提となります。
キュー間転送用 Web アプリケーションの状態遷移について,次の図に示します。
166
4. Cosminexus RM(永続版リソースアダプタ)の運用
図 4-2 キュー間転送用 Web アプリケーションの状態遷移
167
4. Cosminexus RM(永続版リソースアダプタ)の運用
4.2 キューの運用(永続版リソースアダプタの
場合)
ローカルキュー,共用キュー,転送キュー,およびデッドメッセージキューの運用方法
について説明します。
4.2.1 ローカルキューによるシステム内アプリケーション間
連携
自システム内のアプリケーション間で,ローカルキューを介してメッセージを送受信す
る手順を次に説明します。
1. Cosminexus RM のリソースアダプタの開始
2. 管理状態への移行
Cosminexus RM を管理状態にします。hrmlsstat コマンドで Cosminexus RM の状
態を確認してください。実行状態の場合は hrmstop コマンドを入力すると管理状態
に移行します。
3. ローカルキューの作成
hrmmkque コマンドの -t オプションに local を指定して,メッセージを受信するため
のローカルキューを作成します。hrmmkque コマンドについては,
「8.3.17 hrmmkque(ローカルキューの作成)
」を参照してください。
4. 実行状態への移行
hrmstart コマンドを入力して,Cosminexus RM を実行状態にします。
4.2.2 共用キューによるシステム間連携
(1) 共用キューによるシステム間連携の手順
共用キューによるシステム間連携の手順を次に説明します。共用キューを使用する場合,
共用キューのバージョンについてあらかじめ確認してください。共用キューのバージョ
ンについては,「(2) Cosminexus RM のバージョンと共用キューのバージョン」を参照
してください。
受信側システムの手順
1. Cosminexus RM のリソースアダプタの開始
2. 管理状態への移行
Cosminexus RM を管理状態にします。hrmlsstat コマンドで Cosminexus RM の状
態を確認してください。実行状態の場合は hrmstop コマンドを入力すると管理状態
に移行します。
3. 受信用共用キューの作成
168
4. Cosminexus RM(永続版リソースアダプタ)の運用
hrmmkque コマンドの -t オプションに shr_receive を指定して,メッセージを受信す
るための受信用共用キューを作成します。hrmmkque コマンドについては,
「8.3.18
hrmmkque(受信用共用キューの作成)」を参照してください。
4. 実行状態への移行
hrmstart コマンドを入力して,Cosminexus RM を実行状態にします。
送信側システムの手順
1. Cosminexus RM のリソースアダプタの開始
2. 管理状態への移行
Cosminexus RM を管理状態にします。hrmlsstat コマンドで Cosminexus RM の状
態を確認してください。実行状態の場合は hrmstop コマンドを入力すると管理状態
に移行します。
3. 送信用共用キューの作成
hrmmkque コマンドの -t オプションに shr_send を指定して,送信用共用キューを作
成します。hrmmkque コマンドについては,
「8.3.19 hrmmkque(送信用共用
キューの作成)
」を参照してください。
4. 実行状態への移行
hrmstart コマンドを入力して,Cosminexus RM を実行状態にします。
5. ユーザアプリケーションの開始
ユーザアプリケーションを開始して,共用キューによるシステム間連携を行います。
(2) Cosminexus RM のバージョンと共用キューのバージョン
Cosminexus RM のバージョンによって共用キューに格納する情報が異なるため,
Cosminexus RM のバージョンに対応して共用キューにもバージョンが存在します。
また,Cosminexus RM のバージョンによって使用できる共用キューのバージョンが決め
られています。したがって,共用キューを使用する場合は,送信側システムと受信側シ
ステムの Cosminexus RM のバージョンを統一し,必要に応じて共用キューをバージョ
ンアップする必要があります。
Cosminexus RM のバージョンと,それに対応する共用キューのバージョンを次の表に示
します。
表 4-1 Cosminexus RM のバージョンと共用キューのバージョン
Cosminexus RM のバージョン
共用キューのバージョン
01-00
0100
01-01
0200
01-02
01-03
169
4. Cosminexus RM(永続版リソースアダプタ)の運用
なお,共用キューのバージョン 0200 を使用して TP1/EE とシステム間連携する場合は,
TP1/EE の DB キュー機能オプションは TYPE1 に指定してください。共用キューのバー
ジョン 0100 を使用する場合は,TP1/EE の DB キュー機能オプションは TYPE0 に指定
してください。
4.2.3 キュー間転送によるシステム間連携
キュー間転送を行う場合は,事前に受信側システムのあて先アドレスを確認しておいて
ください。
キュー間転送の手順を次に説明します。
受信側システムの手順
1. Cosminexus RM のリソースアダプタの開始
このとき,キュー間転送用 Web アプリケーションは停止しておきます。
2. 管理状態への移行
Cosminexus RM を管理状態にします。hrmlsstat コマンドで Cosminexus RM の状
態を確認してください。実行状態の場合は hrmstop コマンドを入力すると管理状態
に移行します。
3. ローカルキューの作成
hrmmkque コマンドの -t オプションに local を指定して,メッセージを受信するため
のローカルキューを作成します。hrmmkque コマンドについては,
「8.3.17 hrmmkque(ローカルキューの作成)
」を参照してください。
4. 実行状態への移行
hrmstart コマンドを入力して,Cosminexus RM を実行状態にします。
5. キュー間転送用 Web アプリケーションの開始
送信側システムの手順
1. Cosminexus RM のリソースアダプタの開始
このとき,キュー間転送用 Web アプリケーションは停止しておきます。
2. 管理状態への移行
Cosminexus RM を管理状態にします。hrmlsstat コマンドで Cosminexus RM の状
態を確認してください。実行状態の場合は hrmstop コマンドを入力すると管理状態
に移行します。
3. 受信側システムのあて先アドレスの登録
hrmmkaddr コマンドを入力して,受信側システムのあて先アドレスをあて先情報
テーブルに登録します。
4. 転送キューの作成
hrmmkque コマンドの -t オプションに transmit を指定して,転送キューを作成しま
す。受信側システムの Cosminexus RM のバージョンが 01-02 以前の場合は,
170
4. Cosminexus RM(永続版リソースアダプタ)の運用
hrmmkque コマンドの -i オプションに compatible を指定して,転送キューを作成し
ます。hrmmkque コマンドについては,
「8.3.20 hrmmkque(転送キューの作成)
」
を参照してください。
5. 実行状態への移行
hrmstart コマンドを入力して,Cosminexus RM を実行状態にします。
6. キュー間転送用 Web アプリケーションの開始
7. ユーザアプリケーションの開始
ユーザアプリケーションを開始して,キュー間転送を行います。
4.2.4 デッドメッセージキューによるデッドメッセージの再
登録
デッドメッセージキューを作成する方法は,ローカルキューと同じです。ただし,
RMDeadMessageQueueName プロパティにキュー名を指定する必要があります。ロー
カルキューの作成方法については,
「4.2.1 ローカルキューによるシステム内アプリケー
ション間連携」を参照してください。
ここでは,デッドメッセージを再登録する場合の手順について説明します。有効期限切
れ,配信回数超過,通信失敗などで,デッドメッセージキューに移動したメッセージを,
移動前のキュー(ローカルキュー,受信用共用キュー,または転送キュー)に新しい
メッセージとして再登録できます。デッドメッセージを再登録する場合の手順を次の図
に示します。
171
4. Cosminexus RM(永続版リソースアダプタ)の運用
図 4-3 デッドメッセージの再登録
1. デッドメッセージキュー移動時にログファイルに出力されるデッドメッセージ ID
(DMID)を参照します。
ログファイルは,Cosminexus 用メッセージログに出力されます。また,DMID につ
いては,「4.2.4(1) DMID」を参照してください。
2. DMID を基に,hrmlsdmsg コマンドでデッドメッセージキューに移動したデッドメッ
セージの内容(JMS ヘッダ,プロパティ,ペイロード,デッドメッセージ固有の属性
情報など)を確認します。
hrmlsdmsg コマンドについては,「8.3.10 hrmlsdmsg(デッドメッセージの参照)
」
を参照してください。
3. 該当メッセージをデッドメッセージキューに移動する前のキューに再登録したい場合
は,hrmregdmsg コマンドを使用します。
該当メッセージはデッドメッセージキューから削除され,デッドメッセージキューに
移動する前のキューに再登録されます。このとき,新しいメッセージとして登録され
ます。※ hrmregdmsg コマンドについては,「8.3.21 hrmregdmsg(デッドメッセー
ジの再登録)」を参照してください。
注※
デッドメッセージ移動前のキューに再登録する場合,ユーザが指定したメッセージ
172
4. Cosminexus RM(永続版リソースアダプタ)の運用
の情報は引き継がれます。ただし,メッセージ ID やメッセージ有効期限などの
Cosminexus RM がメッセージ登録時に設定する情報は再設定されます。また,デッ
ドメッセージ固有の属性情報(DMID,移動前キュー名,デッドメッセージキュー
移動原因,デッドメッセージキュー移動時刻)は失われます。
(1) DMID
デッドメッセージ ID(DMID)とは,デッドメッセージを識別するために設定される一
意の ID です。hrmlsdmsg コマンドでデッドメッセージを参照したり,hrmregdmsg コ
マンドでデッドメッセージを再登録したりするときの引数として使用します。
DMID は,デッドメッセージキュー移動時のログメッセージに出力されます。また,
JMS メッセージの Cosminexus RM 固有のプロパティや hrmlsdmsg コマンドの実行結
果として参照できます。
(2) サーバ間転送での注意事項
サーバ間転送時の送信側システムのデッドメッセージキューには,受信側システムに到
達しているメッセージや受信側デッドメッセージキューに格納されているメッセージが
存在する場合があります。
この場合,送信側システムの転送キューからデッドメッセージキュー移動したデッド
メッセージを転送キューに再登録する前に,メッセージ ID などで受信側システムのメッ
セージ到達状態を確認して,受信側システムに到達済みのメッセージを再登録しないよ
うにしてください。送信側システムで転送キューに再登録したメッセージは,最初に転
送キューに登録したメッセージとは別のメッセージとして転送されます。そのため,送
信側システムで再登録すると,受信側システムで同じ内容のメッセージが重複して受信
されることになります。
受信側システムのメッセージ到達状態を確認するには,送信側システムで該当するデッ
ドメッセージのデッドメッセージキュー移動時のメッセージログ(KFRM40012-I)に出
力される DMID,グループ ID,グループ内シーケンス番号と,受信側システムで回線ト
レースに出力されるグループ ID,グループ内シーケンス番号とを照合してください。回
線トレースについては,
「9.1.5 回線トレース」を参照してください。
送信側・受信側システム両方のデッドメッセージキューに,同じメッセージが格納され
る場合を次の図に示します。
173
4. Cosminexus RM(永続版リソースアダプタ)の運用
図 4-4 送信側・受信側システムのデッドメッセージキューに,同じメッセージが格納さ
れる場合
1. 転送キューからローカルキューへの送信は成功します。
2. 受信システムからの受信成功通知に失敗します。
3. ローカルキューに格納されたメッセージは有効期限に到達するなどして,受信側シス
テムのデッドメッセージキューに格納されます。
4. 転送キューからメッセージが再送されますが,有効期限に到達して,失敗通知が送信
側システムに通知されます。これによって,送信側システムのデッドメッセージ
キューに同じメッセージが格納されます。
4.2.5 キューの状態遷移(永続版リソースアダプタの場合)
キューには,通常状態,抑止状態(一部抑止状態および完全抑止状態),閉塞状態があり
ます。キューの抑止状態は,システムを管理状態に移行して,すべてのキューに対して
メッセージの送受信を抑止するのではなく,特定のキューに対してメッセージの送受信
を抑止する場合などに利用します。
キューの状態について次に説明します。
通常状態
正常に使用できる状態です。
一部抑止状態
メッセージの送受信が一部抑止されている状態です。指定するキューの種類によっ
て,抑止される形態が異なります。キューの種類と抑止される形態については,
「8.3.27(3) オプション」を参照してください。
完全抑止状態
174
4. Cosminexus RM(永続版リソースアダプタ)の運用
メッセージの送受信が完全に抑止されている状態です。指定するキューの種類に応
じて,抑止できる形態をすべて抑止します。
閉塞状態
キューに障害が発生した状態です。hrmlsque コマンドおよび hrmdelque コマンド
だけを受け付け,それ以外のコマンドおよびメッセージの送受信を実行できません。
キューの状態遷移を,キューの種類別に次の図に示します。
図 4-5 キューの状態遷移
175
4. Cosminexus RM(永続版リソースアダプタ)の運用
注
送信用共用キューは抑止および抑止解除状態はありません。
注1
デッドメッセージキューは,抑止形態が一つであるため一部抑止および一部抑止解
除状態がありません。
注2
デッドメッセージキューが閉塞状態に移行すると,システムが閉塞します。
図中で使用されるイベントの意味は次のとおりです。
一部抑止
hrmstopque コマンドの -y オプションに ap_send,ap_receive,trs_send,
176
4. Cosminexus RM(永続版リソースアダプタ)の運用
trs_receive,または ap_all を指定して,実行します。
完全抑止
hrmstopque コマンドの -y オプションに all を指定して,実行します。
一部抑止解除
hrmstartque コマンドの -y オプションに ap_send,ap_receive,trs_send,
trs_receive,または ap_all を指定して,実行します。
完全抑止解除
hrmstartque コマンドの -y オプションに all を指定して,実行します。
障害検知
Cosminexus RM がキューに関連する障害を検知したことを示します。
177
4. Cosminexus RM(永続版リソースアダプタ)の運用
4.3 DB の運用
Cosminexus RM は,メッセージを格納するキューや管理情報を DB 上の管理情報テーブ
ルに保存します。テーブルの移行手順や接続ユーザ名の変更手順などについて説明しま
す。
DBMS として HiRDB または Oracle を使用できます。それぞれの DBMS で必要な設定
について説明します。ここで説明していない設定内容や手順については,HiRDB または
Oracle のマニュアルを参照してください。
4.3.1 管理情報テーブルの移行
DBMS の動作マシンの入れ替えなどによって,管理情報テーブルを異なる DB に移行す
るときの手順について,次に示します。
(1) 管理情報を格納する DB が HiRDB の場合
1. Cosminexus RM の停止
Cosminexus RM を停止します。詳細については,「4.1.3 Cosminexus RM の停止
(永続版リソースアダプタの場合)
」を参照してください。
2. テーブルの移行
HiRDB のディクショナリ搬出入ユティリティ(pdexp コマンド)とデータベース再
編成ユティリティ(pdrorg コマンド)を使用して管理情報テーブルを移行します。詳
細については,マニュアル「HiRDB システム運用ガイド」および「HiRDB コマンド
リファレンス」を参照してください。
3. 環境設定の変更
次のどちらかの方法で環境設定を変更します。
• HiRDB クライアント環境変数登録ツールを使用して,移行先マシンに合わせて環
境変数を変更します(Windows の場合)。または,HiRDB のクライアント環境変
数グループの設定ファイルに記載している環境変数を,移行先マシンに合わせて変
更します(UNIX の場合)。該当する環境変数については,
「3.4.1(2)(b) HiRDB の
環境変数グループの登録」を参照してください。
• HiRDB クライアント環境変数登録ツールを使用して,新しい環境変数グループを
登録し,DB Connector for Cosminexus RM のコンフィグレーションプロパティを
変更します(Windows の場合)。または,HiRDB のクライアント環境変数グルー
プの設定ファイルを新しく作成し,DB Connector for Cosminexus RM のコンフィ
グレーションプロパティを変更します(UNIX の場合)。詳細については,
「6.3 DB Connector for Cosminexus RM のコンフィグレーションプロパティの一覧」を
参照してください。
178
4. Cosminexus RM(永続版リソースアダプタ)の運用
(2) 管理情報を格納する DB が Oracle の場合
1. Cosminexus RM の停止
Cosminexus RM を停止します。詳細については,「4.1.3 Cosminexus RM の停止
(永続版リソースアダプタの場合)」を参照してください。
2. テーブルの移行
エクスポート・ユーティリティおよびインポート・ユーティリティを使用して管理情
報テーブルを移行します。詳細については,Oracle のマニュアルを参照してくださ
い。
3. 環境設定の変更
次のどちらかの方法で環境設定を変更します。
• DB クライアントの環境設定時に作成したネット・サービスのネットワーク情報を,
移行先のマシンに合わせて変更します。DB クライアントの環境設定については,
「3.4.2(2) DB クライアントの設定」を参照してください。
• Oracle Client の環境設定時に作成したネット・サービスのネットワーク情報に従っ
て新たにネット・サービス名を作成し,DB Connector for Cosminexus RM のコン
フィグレーションプロパティを変更します。詳細については,
「6.3 DB Connector
for Cosminexus RM のコンフィグレーションプロパティの一覧」を参照してくださ
い。
4.3.2 管理情報テーブルの削除
DBMS の動作マシンの入れ替えや Cosminexus RM のアンインストールなどによって,
管理情報テーブルを DB から削除するときの手順について,次に示します。
1. アプリケーションの停止
Cosminexus RM を使用しているアプリケーションをすべて停止します。詳細につい
ては,
「4.1.3 Cosminexus RM の停止(永続版リソースアダプタの場合)」を参照し
てください。
2. 管理状態への移行
hrmstop コマンドを使用して Cosminexus RM を管理状態に移行します。
3. Cosminexus RM の再開始
コネクションプーリングで使用中の DB のコネクションや未決着のトランザクション
が残らないように Cosminexus RM を一度停止したあと,再度開始します。
4. 全キューの削除
hrmdelque コマンドを使用して,作成済みのキューをすべて削除します。
5. Cosminexus RM の停止
Cosminexus RM を停止します。詳細については,「4.1.3 Cosminexus RM の停止
(永続版リソースアダプタの場合)」を参照してください。
6. テーブルの削除
179
4. Cosminexus RM(永続版リソースアダプタ)の運用
SQL ファイルを使用して,Cosminexus RM の管理情報テーブルを削除します。管理
情報テーブルの削除方法を「(1) テーブル削除用 SQL ファイルの使用」で説明しま
す。
なお,キューが削除されている場合も,手順 1. ∼手順 3.,手順 5. を実行してから手順 6.
を実行してください。
(1) テーブル削除用 SQL ファイルの使用
(a) HiRDB の場合
DBMS として HiRDB を使用する場合,次に示す手順で管理情報テーブルを削除します。
HiRDB SQL Executer の使用方法については,HiRDB SQL Executer のドキュメントを
参照してください。
1. SQL ファイルの編集
テーブル削除用 SQL ファイル(%HRMDIR%¥sql¥deletetableshirdb.sql)を任意の
場所にコピーしたあと,"<RMSystemName>" の部分を「3.3.1 Cosminexus RM の
システム名の決定」で決定した値に変更します。
2. SQL ファイルの実行
Windows の場合
次に示すコマンドで HiRDB SQL Executer を開始します。
pdsqlw -u <接続ユーザ名>/<パスワード>※
-h <HiRDBサーバのホスト名またはIPアドレス>
-n <HiRDBサーバのポート番号>
HiRDB SQL Executer の[ファイル]メニューから[ファイルから実行]を選択し,
手順 1. で編集した SQL ファイルを指定して実行します。
UNIX の場合
環境変数 PDUSER ※,PDHOST,PDNAMEPORT を設定したあと,次に示す
コマンドで HiRDB SQL Executer から SQL ファイルを実行します。
pdsql
<
<手順1.で編集したSQLファイルのパス>
注※
接続ユーザ名には,権限を付与した接続ユーザ名を指定します。詳細について
は,
「3.4.1(1)(b) HiRDB のユーザ権限の付与」を参照してください。
(b) Oracle の場合
DBMS として Oracle を使用する場合,次に示す手順で管理情報テーブルを削除します。
SQL*Plus の使用方法については,Oracle のマニュアルを参照してください。
1. SQL ファイルの編集
180
4. Cosminexus RM(永続版リソースアダプタ)の運用
テーブル削除用 SQL ファイル(%HRMDIR%¥sql¥deletetablesoracle.sql)を任意の
場所にコピーしたあと,"<RMSystemName>" の部分を「3.3.1 Cosminexus RM の
システム名の決定」で決定した値に変更します。
2. GUI 版 SQL*Plus またはコマンドライン版 sqlplus の起動
システム構築時のユーザ名を使用してデータベースに接続します。
3. コマンドの実行
次の形式で実行してください。
start <手順1.で任意の場所にコピーしたあと編集したSQLファイルの絶対パス>
4.3.3 接続ユーザ名の変更
DBMS の接続ユーザ名を変更する場合は,管理情報テーブルを作り直す必要があります。
作り直しの対象となるテーブルについては,
「4.3.6 管理情報テーブルの一覧」を参照し
てください。テーブルを移行したあと,環境設定を変更します。
(1) テーブルの移行
(a) HiRDB の場合
Cosminexus RM を停止したあと,次に示す手順でテーブルを作り直します。各手順の詳
細については,マニュアル「HiRDB システム運用ガイド」および「HiRDB コマンドリ
ファレンス」を参照してください。
1. 定義系 SQL の作成
変更前ユーザが所有するテーブルの定義系 SQL を HiRDB の pddefrev コマンドに
よって生成したあと,生成した定義系 SQL ファイルから CREATE TABLE 文の認可
識別子の指定を削除します。
2. RD エリアの閉塞
移行対象のデータを格納している RD エリアを HiRDB の pdhold コマンドによって
閉塞します。
3. テーブルデータのアンロード
変更前ユーザが所有するテーブルのテーブルデータを HiRDB のデータベース再編成
ユティリティ(pdrorg)によってアンロードします。
4. RD エリアの閉塞解除
手順 2. で閉塞した RD エリアを HiRDB の pdrels コマンドによって解除します。
5. 変更後ユーザの作成とスキーマ定義
変更後ユーザにユーザ権限を付与し,管理情報テーブル用のスキーマを定義します。
詳細については,
「3.4.1(1)(b) HiRDB のユーザ権限の付与」および「3.4.1(1)(c) HiRDB のスキーマの定義」を参照してください。
6. バックアップの取得
181
4. Cosminexus RM(永続版リソースアダプタ)の運用
データベース移行中の障害発生に備えて HiRDB の pdcopy コマンドによってバック
アップを取得します。バックアップを取得する RD エリアを次に示します。
• マスタディレクトリ用 RD エリア
• データディレクトリ用 RD エリア
• データディクショナリ用 RD エリア
• 移行するテーブルを格納するユーザ用 RD エリア
7. テーブルの定義
Windows の場合
次に示すコマンドで HiRDB SQL Executer を開始します。
pdsqlw -u <変更後ユーザの接続ユーザ名>/<パスワード>
-h <HiRDBサーバのホスト名またはIPアドレス>
-n <HiRDBサーバのポート番号>
HiRDB SQL Executer の[ファイル]メニューから[ファイルから実行]を選択し,
手順 1. で編集した定義系 SQL ファイルを指定して実行します。
UNIX の場合
変更後ユーザに合わせて環境変数 PDUSER,PDHOST,PDNAMEPORT を設
定したあと,HiRDB SQL Executer から手順 1. で編集した定義系 SQL ファイル
を実行します。
pdsql
< <手順1.で編集した定義系SQLファイルのパス>
8. RD エリアの閉塞
変更後ユーザが所有するテーブルを格納している RD エリアを HiRDB の pdhold コ
マンドによって閉塞します。
9. テーブルデータのリロード
変更後ユーザが所有するテーブルにテーブルデータを HiRDB のデータベース再編成
ユティリティ(pdrorg)によってリロードします。
10.RD エリアの閉塞解除
手順 8. で閉塞した RD エリアを HiRDB の pdrels コマンドによって解除します。
11. テーブルの削除
Windows の場合
次に示すコマンドで HiRDB SQL Executer を開始します。
pdsqlw -u <変更前ユーザの接続ユーザ名>/<パスワード>
-h <HiRDBサーバのホスト名またはIPアドレス>
-n <HiRDBサーバのポート番号>
DROP TABLE 文によって変更前ユーザが所有するテーブルを削除します。
182
4. Cosminexus RM(永続版リソースアダプタ)の運用
UNIX の場合
変更前ユーザに合わせて環境変数 PDUSER, PDHOST, PDNAMEPORT を設定
したあと,HiRDB SQL Executer を起動させて,DROP TABLE 文により変更前
ユーザが所有する表を削除します。
12.バックアップの取得
データベース移行後のバックアップを HiRDB の pdcopy コマンドによって取得しま
す。バックアップを取得する RD エリアを次に示します。
• マスタディレクトリ用 RD エリア
• データディレクトリ用 RD エリア
• データディクショナリ用 RD エリア
• 移行したテーブルを格納するユーザ用 RD エリア
(b) Oracle の場合
各手順の詳細については,Oracle のマニュアルを参照してください。
1. Cosminexus RM の停止
Cosminexus RM を停止します。詳細については,「4.1.3 Cosminexus RM の停止
(永続版リソースアダプタの場合)」を参照してください。
2. テーブルの移行
エクスポート・ユーティリティおよびインポート・ユーティリティを使用して管理情
報テーブルを移行します。詳細については,Oracle のマニュアルを参照してくださ
い。
(2) 環境設定の変更
(a) HiRDB の場合
変更後ユーザに合わせて環境変数を変更します。変更する環境変数については,
「3.4.1(2)(b) HiRDB の環境変数グループの登録」を参照してください。
または,新しい環境変数グループ名を登録してから,DB Connector for Cosminexus RM
のコンフィグレーションプロパティの指定値を変更します。詳細については,
「6.3 DB
Connector for Cosminexus RM のコンフィグレーションプロパティの一覧」を参照して
ください。
(b) Oracle の場合
DB Connector for Cosminexus RM のコンフィグレーションプロパティの指定値を変更
します。詳細については,
「6.3 DB Connector for Cosminexus RM のコンフィグレー
ションプロパティの一覧」を参照してください。
183
4. Cosminexus RM(永続版リソースアダプタ)の運用
4.3.4 DB のバックアップ
管理情報テーブルを保存する DB をバックアップする場合は,DBMS が提供するバック
アップ取得機能を使用して実行します。バックアップの対象となるテーブルについては,
「4.3.6 管理情報テーブルの一覧」を参照してください。
DBMS として HiRDB を使用する場合は,マニュアル「HiRDB システム運用ガイド」を
参照してください。DBMS として Oracle を使用する場合は,Oracle のマニュアルを参
照してください。
4.3.5 RD エリアの容量の確保
HiRDB を使用する場合,メッセージの送受信を長時間繰り返すと,HiRDB で使用でき
る RD エリアの容量が徐々に減少します。RD エリアの容量が減少した場合は,再編成や
使用中空きページの解放を行ない,容量を確保してください。再編成や使用中空きペー
ジの解放の方法については,マニュアル「HiRDB システム運用ガイド」を参照してくだ
さい。
4.3.6 管理情報テーブルの一覧
Cosminexus RM の管理情報テーブルは,メッセージを格納するキューを保存するテーブ
ルと管理情報を保存するテーブルによって構成されます。
管理情報テーブルを使用するのに必要な,構成情報(テーブルの個数,列数,行数,名
称規則,可変長文字列数,データ長,データ型,キー名,キー長)について次の表に示
します。
表 4-2 管理情報テーブルの一覧(テーブルの個数,列数,行数,名称規則)
項
番
種類
個数
列
数
行数
名称規則
※
1
システム
管理情報
テーブル
1
10
1
次に示す文字列を順に連
結した名称です。
• <RMSystemName プ
ロパティ指定値 >
• "_SYSTEMINFORMATI
ON"
2
キュー情
報テーブ
ル
1
23
最大キュー数
次に示す文字列を順に連
結した名称です。
• <RMSystemName プ
ロパティ指定値 >
• "_QUEUEINFORMATI
ON"
184
4. Cosminexus RM(永続版リソースアダプタ)の運用
項
番
種類
個数
列
数
行数
名称規則
※
3
FIFO 情報
テーブル
1
21
最大キュー数と最大
通信用グループ数の
総数
次に示す文字列を順に連
結した名称です。
• <RMSystemName プ
ロパティ指定値 >
• "_FIFOINFORMATION
"
4
あて先情
報テーブ
ル
1
7
最大あて先数
次に示す文字列を順に連
結した名称です。
• <RMSystemName プ
ロパティ指定値 >
• "_ADDRESS_MAPPING
"
5
メッセー
ジ情報
テーブル
永続キュー属性のロー
カルキューまたは永続
キュー属性の転送
キューの最大キュー数
21
永続キュー属性の
ローカルキューの最
大メッセージ数とス
イーパ実行間隔内で
登録される最大メッ
セージ数または永続
キュー属性の転送
キューの最大メッ
セージ数の総数
次に示す文字列を順に連
結した名称です。
• <RMSystemName プ
ロパティ指定値 >
• "_MSG_"
• < キュー名 >
6
共用
キュー受
信用メッ
セージ情
報テーブ
ル
受信用共用キューの最
大キュー数
3
受信用共用キューの
最大メッセージ数
次に示す文字列を順に連
結した名称です。
• <RMSystemName プ
ロパティ指定値 >
• "_SHR_"
• < キュー名 >
• "MG"
7
共用
キュー受
信用ライ
ト管理
テーブル
受信用共用キューの最
大キュー数
4
1
次に示す文字列を順に連
結した名称です。
• <RMSystemName プ
ロパティ指定値 >
• "_SHR_"
• < キュー名 >
• "WT"
8
共用
キュー受
信用リー
ド管理
テーブル
受信用共用キューの最
大キュー数
4
1
次に示す文字列を順に連
結した名称です。
• <RMSystemName プ
ロパティ指定値 >
• "_SHR_"
• < キュー名 >
• "RD"
注※
列数の詳細については,表 4-4 を参照してください。
185
4. Cosminexus RM(永続版リソースアダプタ)の運用
表 4-3 管理情報テーブルの一覧(テーブルの可変長文字列数,データ長,データ型,
キー名,キー長)
可変長文字列数※ 1
(VARCHAR ≧ 256)
データ
長(バ
イト)
項
番
種類
1
システム
管理情報
テーブル
5
1024
2
キュー情
報テーブ
ル
3
3
FIFO 情
報テーブ
ル
4
5
キー名※ 3
データ
型※ 2
既定義
型
キー
長
(バイ
ト)
−
−
1024
QUEUE_NAME
32
1 または 3
256 ま
たは
1024
FIFO_ID
256
あて先情
報テーブ
ル
3
1024
LOGICAL_ADDRESS
32
メッセー
ジ情報
テーブル
2 または 5
256 ま
たは
1024
FIFO_ID
256
SEQUENCE_NO
20
GROUP_NAME
256
GROUP_MESSAGE_NUMBE
R
20
6
共用
キュー受
信用メッ
セージ情
報テーブ
ル
0
0
MSG#
4
7
共用
キュー受
信用ライ
ト管理
テーブル
0
0
−
−
8
共用
キュー受
信用リー
ド管理
テーブル
0
0
−
−
(凡例)
−:該当しません。
注※ 1
HiRDB では VARCHAR 型,Oracle では VARCHAR2 型となります。
注※ 2
186
4. Cosminexus RM(永続版リソースアダプタ)の運用
データ型の詳細については,表 4-4 を参照してください。
注※ 3
キー名は一意にしてください。
データ型および列数の詳細を次に示します。
表 4-4 管理情報テーブルの一覧(データ型および列数の詳細)
項
番
1
2
3
4
5
テーブル
システム管理情報テーブル
キュー情報テーブル
FIFO 情報テーブル
あて先情報テーブル
メッセージ情報テーブル
HiRDB でのデータ型
Oracle でのデータ型
列数
TIMESTAMP
DATE
2
INTEGER
NUMBER(10)
2
VARCHAR(128)
VARCHAR2(128)
1
VARCHAR(1024)
VARCHAR2(1024)
5
TIMESTAMP
DATE
2
INTEGER
NUMBER(10)
6
VARCHAR(20)
VARCHAR2(20)
6
VARCHAR(32)
VARCHAR2(32)
4
VARCHAR(64)
VARCHAR2(64)
1
VARCHAR(128)
VARCHAR2(128)
1
VARCHAR(1024)
VARCHAR2(1024)
3
TIMESTAMP
DATE
2
INTEGER
NUMBER(10)
4
VARCHAR(20)
VARCHAR2(20)
8
VARCHAR(32)
VARCHAR2(32)
1
VARCHAR(256)
VARCHAR2(256)
1
VARCHAR(1024)
VARCHAR2(1024)
3
BINARY(10000000)
BLOB
2
VARCHAR(16)
VARCHAR2(16)
2
VARCHAR(32)
VARCHAR2(32)
1
VARCHAR(512)
VARCHAR2(512)
1
VARCHAR(1024)
VARCHAR2(1024)
3
INTEGER
NUMBER(10)
4
VARCHAR(20)
VARCHAR2(20)
8
VARCHAR(128)
VARCHAR2(128)
1
VARCHAR(256)
VARCHAR2(256)
2
VARCHAR(1024)
VARCHAR2(1024)
5
BINARY(2147483647)
LONG RAW
1
187
4. Cosminexus RM(永続版リソースアダプタ)の運用
項
番
6
7
8
テーブル
共用キュー受信用メッセージ
情報テーブル
共用キュー受信用ライト管理
テーブル
共用キュー受信用リード管理
テーブル
HiRDB でのデータ型
Oracle でのデータ型
列数
INTEGER
−
1
BINARY(n) ※
−
1
BINARY(512)
−
1
INTEGER
−
2
SMALLINT
−
1
BINARY(256)
−
1
INTEGER
−
1
SMALLINT
−
1
BINARY(256)
−
2
(凡例)
−:該当しません。
注※
n は,ユーザが受信用共用キュー作成時に指定したメッセージ長です。
(1) 管理情報テーブルの作成方法
管理情報テーブルを作成するには,SQL ファイルまたはコマンドを実行します。管理情
報テーブルの作成方法について,次の表に示します。
表 4-5 管理情報テーブルの作成方法
項
番
種類
1
システム管理情報テーブル
2
キュー情報テーブル
3
FIFO 情報テーブル
4
あて先情報テーブル
5
メッセージ情報テーブル
188
作成方法
テーブル作成用 SQL ファイルを実行して作成します。
管理情報テーブルの作成については,HiRDB の場合は
「3.4.1(3) Cosminexus RM の管理情報テーブルの作成」
を,Oracle の場合は「3.4.2(3) Cosminexus RM の管
理情報テーブルの作成」を参照してください。
hrmmkque コマンド(-t オプションに local または
transmit を指定し,かつ -m オプションで persistent を
指定する場合)を実行して作成します。hrmmkque コマ
ンドについては,「8.3.17 hrmmkque(ローカルキュー
の作成)」および「8.3.20 hrmmkque(転送キューの作
成)」を参照してください。
4. Cosminexus RM(永続版リソースアダプタ)の運用
項
番
種類
6
共用キュー受信用メッセージ情報
テーブル
7
共用キュー受信用ライト管理テーブ
ル
8
共用キュー受信用リード管理テーブ
ル
作成方法
hrmmkque コマンド(-t オプションに shr_receive を指
定する場合)を実行して作成します。hrmmkque コマン
ドについては,「8.3.18 hrmmkque(受信用共用キュー
の作成)」を参照してください。
(2) 管理情報テーブルの削除方法
管理情報テーブルを削除するには,SQL ファイルまたはコマンドを実行します。管理情
報テーブルの削除方法について,次の表に示します。
表 4-6 管理情報テーブルの削除方法
項
番
種類
1
システム管理情報テーブル
2
キュー情報テーブル
3
FIFO 情報テーブル
4
あて先情報テーブル
5
メッセージ情報テーブル
6
共用キュー受信用メッセージ情報
テーブル
7
共用キュー受信用ライト管理テーブ
ル
8
共用キュー受信用リード管理テーブ
ル
削除方法
テーブル削除用 SQL ファイルを実行して削除します。
管理情報テーブルの削除については,
「4.3.2(1) テーブ
ル削除用 SQL ファイルの使用」を参照してください。
hrmdelque コマンドを実行して削除します。hrmdelque
コマンドについては,「8.3.8 hrmdelque(キューの削
除)」を参照してください。
4.3.7 アプリケーション認証による DB アクセス設定
アプリケーション認証を使うと,Cosminexus RM の初期設定を行った DBA 権限を持つ
ユーザ(DBA ユーザ)以外のユーザ(一般ユーザ)も,Cosminexus RM にアクセスで
きるようになります。
アプリケーション認証を利用するには,DB に格納した Cosminexus RM の管理情報テー
ブルごとに,一般ユーザに適切なアクセス権限を与える必要があります。
ユーザに与えるアクセス権限の種類を次の表に示します。
189
4. Cosminexus RM(永続版リソースアダプタ)の運用
表 4-7 アクセス権限の種類
項番
アクセス権限の種類
説明
1
SELECT 権限
テーブルの行を参照できる
2
INSERT 権限
テーブルに行を追加できる
3
DELETE 権限
テーブルから行を削除できる
4
UPDATE 権限
テーブルの行を更新できる
(a) HiRDB の場合
DBA ユーザ権限を持つユーザ(DBA ユーザ)が,アプリケーション認証によって
Cosminexus RM のテーブルにアクセスするユーザ(一般ユーザ)に権限を与えるには,
次の SQL 文を実行します。
GRANT CONNECT TO <一般ユーザ> IDENTIFIED BY <一般ユーザのパスワード>;
GRANT SELECT,INSERT,DELETE,UPDATE
ON <DBAユーザ>.<管理情報テーブル名> TO <一般ユーザ>;
ユーザ権限の設定に関する詳細は,マニュアル「HiRDB システム運用ガイド」を参照し
てください。
(b) Oracle の場合
DBA ユーザ権限を持つユーザ(DBA ユーザ)が,アプリケーション認証によって
Cosminexus RM のテーブルにアクセスするユーザ(一般ユーザ)に権限を与えるには,
次の SQL 文を実行します。
CREATE USER <一般ユーザ> IDENTIFIED BY <一般ユーザのパスワード>;
GRANT SELECT,INSERT,DELETE,UPDATE
ON <DBAユーザ>.<管理情報テーブル名> TO <一般ユーザ>;
ユーザ権限の設定に関する詳細は,Oracle のマニュアルを参照してください。
190
4. Cosminexus RM(永続版リソースアダプタ)の運用
4.4 PRF トレースファイルの運用(永続版リ
ソースアダプタの場合)
Cosminexus の PRF トレースファイルを利用して,Cosminexus RM の性能を解析でき
ます。
PRF トレースファイルの運用方法,取得レベル,および編集について説明します。
4.4.1 PRF トレースファイルの運用方法
PRF トレースを取得するには,Cosminexus Performance Tracer(以降,パフォーマン
ストレーサと呼びます)をインストールしておく必要があります。パフォーマンスト
レーサは,J2EE サーバの起動に合わせて起動するため,Cosminexus 運用管理ドメイン
や J2EE サーバでの設定が必要となります。これらの設定は Cosminexus Management
Server を利用して実施します。Cosminexus Management Server での設定手順を次に示
します。なお,設定方法の詳細については,マニュアル「Cosminexus 運用管理操作ガ
イド」を参照してください。
1. パフォーマンストレーサの追加
Cosminexus 運用管理ドメインで,パフォーマンストレーサを追加します。
2. パフォーマンストレーサの設定
論理サーバの環境設定で,パフォーマンストレーサの設定をします。
3. J2EE サーバで利用するパフォーマンストレーサの設定
論理サーバの環境設定で,J2EE サーバで利用するパフォーマンストレーサを選択し
ます。
4.4.2 PRF トレースファイルの取得レベル
PRF トレースファイルの取得レベルには標準レベルと詳細レベルがあり,パフォーマン
ストレーサに PRF トレース取得レベルを設定できます。Cosminexus RM では,標準レ
ベルの場合,主にアプリケーションインタフェースでのトレース情報を取得し,詳細レ
ベルの場合,さらに内部インタフェースのトレース情報を取得します。
PRF トレース取得レベルは,パフォーマンストレーサの起動中に任意のタイミングで変
更できます。PRF トレース取得レベルの変更方法については,マニュアル
「Cosminexus システム運用ガイド」を参照してください。
4.4.3 PRF トレースファイルの編集
PRF トレースはバイナリ形式で出力されるため,cprfed コマンドで編集する必要があり
ます。cprfed コマンドの詳細については,マニュアル「Cosminexus リファレンス コマ
191
4. Cosminexus RM(永続版リソースアダプタ)の運用
ンド編」を参照してください。また,PRF トレースの出力については,「9.1.6 PRF ト
レース」を参照してください。
192
4. Cosminexus RM(永続版リソースアダプタ)の運用
4.5 Cosminexus RM 運用時の注意事項(永続
版リソースアダプタの場合)
永続版リソースアダプタを使用する場合の,Cosminexus RM の運用時の注意事項につい
て説明します。
4.5.1 Windows Vista 使用時の注意事項
Windows Vista で,Cosminexus RM のシステムを構築,運用する場合の注意事項につ
いて説明します。
(1) Cosminexus RM が提供するコマンド使用時の注意事項
Cosminexus RM が提供するコマンドは,管理者特権で実行する必要があります。
Cosminexus RM が提供するコマンドは,「管理者:コマンドプロンプト」で実行してく
ださい。
「管理者:コマンドプロンプト」は,Windows Vista で提供されている機能を使用して起
動してください。起動方法の例を次に示します。
1. [スタート]ボタンをクリックします。
2. [プログラム]−[アクセサリ]を選択します。
3. [コマンド プロンプト]を右クリックして,
[管理者として実行]をクリックします。
管理者のパスワードまたは確認を求められた場合は,画面の指示に従って,パスワー
ドを入力するか,または確認情報を提供してください。
(2) JIS X0213:2004 に含まれる Unicode の補助文字を使用する場合の
注意事項
Windows Vista でサポートされた JIS X0213:2004 の第三水準および第四水準の文字の一
部には,Unicode の補助文字が含まれます。Unicode の補助文字とは,基本多言語面以
外の文字(Unicode のコードポイントが U+10000 ∼ U+10FFFF の範囲の文字)のこと
です。UTF-16 エンコーディングでは,サロゲートペアとして表されます。
Unicode の補助文字を使用する場合の注意事項を次に示します。
(a) リクエストで使用する場合の注意事項
Cosminexus RM に対して,Internet Explorer 7 などのクライアントから Unicode の補
助文字を含むリクエストを送信した場合,Unicode の補助文字は,ログや PRF トレース
に正しく出力されません。ただし,その場合も,Unicode の補助文字以外の文字は,ロ
グや PRF トレースに正しく出力されます。
また,リクエストに Unicode の補助文字が含まれる場合も,アプリケーションは正しく
193
4. Cosminexus RM(永続版リソースアダプタ)の運用
動作します。
リクエストでの Unicode の補助文字の使用を制限したい場合には,アプリケーションで
の対応などを検討してください。
(b) 環境構築/運用時の注意事項
Cosminexus RM のシステムを構築,運用する場合,およびアプリケーションやリソース
をデプロイする場合に使用する定義に,Unicode の補助文字は使用できません。
Unicode の補助文字を使用できない定義の例を示します。
• EAR,WAR,JAR,EJB-JAR,サーブレット,JSP,クラス,メソッド,引数,ま
たは変数の名称
• DD 内の各種定義
• システムのインストール先の指定値
• そのほか,各種定義ファイルの設定値
4.5.2 永続版リソースアダプタと非永続版リソースアダプタ
を切り替える場合の注意事項
● 永続版リソースアダプタから非永続版リソースアダプタに切り替える場合,または非
永続版リソースアダプタから永続版リソースアダプタに切り替える場合,
Cosminexus の提供するリソースアダプタバージョンアップコマンドによる更新はで
きません。永続版リソースアダプタと非永続版リソースアダプタを切り替えるには,
切り替え前のリソースアダプタのアンデプロイ(cjundeployrar)とリソース削除
(cjdeleteres)を実行し,新しく切り替え後のリソースアダプタのインポート
(cjimportres)とデプロイ(cjdeployrar)を実行してください。
● 切り替え前のリソースアダプタで作成したキューや定義情報は,切り替え後のリソー
スアダプタで使用できません。切り替え後のリソースアダプタの仕様に従って再定義
する必要があります。リソースアダプタの属性ファイル(Connector 属性ファイル)
は,切り替え後のリソースアダプタを J2EE サーバにインポート(またはデプロイ)
したあと,Cosminexus の属性ファイル取得/設定コマンド cjgetresprop /
cjsetresprop(または cjgetrarprop / cjsetrarprop)で設定し直してください。
● Cosminexus RM 01-03 より古い永続版リソースアダプタから Cosminexus RM 01-03
の非永続版リソースアダプタに切り替える場合,または Cosminexus RM 01-03 より
古い非永続版リソースアダプタから Cosminexus RM 01-03 の永続版リソースアダプ
タに切り替える場合,環境変数で設定している HRMDIR のパスを Cosminexus RM
01-03 のインストールディレクトリに変更してください。また,環境変数の PATH に
切り替え前の古いリソースアダプタのコマンド格納ディレクトリを指定している場合
は,切り替え後の新しいインストールディレクトリのコマンド格納ディレクトリ
(<Cosminexus RM 01-03 インストールディレクトリ >¥bin)に変更してください。
194
4. Cosminexus RM(永続版リソースアダプタ)の運用
4.5.3 Cosminexus RM が動作するマシンの時刻設定の注意
事項
Cosminexus RM が動作するマシンの時刻を,NTP ソフトなどを使用して進めたり戻し
たりしないでください。時刻を操作した場合の動作は保証されません。
195
5
Cosminexus RM(非永続版
リソースアダプタ)の運用
Cosminexus RM のアプリケーションを開始するには,あらか
じめ Cosminexus RM を開始しておく必要があります。
Cosminexus RM を停止するには,あらかじめアプリケーショ
ンを停止しておく必要があります。
この章では,非永続版リソースアダプタを使用する場合の,
Cosminexus RM およびアプリケーションの開始と停止,ロー
カルキューの運用などについて説明します。
5.1 Cosminexus RM とアプリケーションの開始と停止(非永続版リソース
アダプタの場合)
5.2 ローカルキューの運用(非永続版リソースアダプタの場合)
5.3 PRF トレースファイルの運用(非永続版リソースアダプタの場合)
5.4 Cosminexus RM 運用時の注意事項(非永続版リソースアダプタの場合)
197
5. Cosminexus RM(非永続版リソースアダプタ)の運用
5.1 Cosminexus RM とアプリケーションの開
始と停止(非永続版リソースアダプタの場
合)
非永続版リソースアダプタを使用する場合の,Cosminexus RM とアプリケーションの開
始手順および停止手順について説明します。
5.1.1 Cosminexus RM の開始(非永続版リソースアダプタ
の場合)
Cosminexus RM を開始するには,あらかじめプロパティのカスタマイズとデプロイを完
了させている必要があります。詳細については,「3.5.3 Cosminexus RM のプロパティ
定義(非永続版リソースアダプタの場合)」を参照してください。また,Cosminexus
RM の開始時に使用するサーバ管理コマンドついては,マニュアル「Cosminexus アプリ
ケーション設定操作ガイド」を参照してください。
Cosminexus RM を開始する手順を次に示します。
1. J2EE サーバの開始
Cosminexus を J2EE サーバモードの 1.4 モードで開始します。また,アプリケー
ションの要件に合わせて,必要な Cosminexus のサービスを開始してください。
2. Cosminexus RM の開始
サーバ管理コマンドを使用して,リソースアダプタとして Cosminexus RM を開始し
ます。
注意
• 非永続版リソースアダプタの場合,Cosminexus RM が正常に開始すると,実行状
態になります。
• 非永続版リソースアダプタの場合,起動時にキュー作成ファイルの読み込みや解
析で続行できないエラーが発生すると,閉塞状態で起動します。
• Connector 属性ファイルの <transaction-support> タグに LocalTransaction また
は NoTransaction を指定した場合,Cosminexus RM が開始状態になっても,実
際には開始処理に失敗していることがあります。このときにアプリケーションを
開始すると Cosminexus RM がコネクションを取得する契機でエラーとなります。
このため,Cosminexus RM が正常に開始していることを Cosminexus のログメッ
セージで確認してください。Cosminexus RM が正常に開始している場合,ログ
メッセージとして KFRM01009-I が表示されます。
• Cosminexus RM の開始中は,Cosminexus RM が使用しているキュー定義ファイ
ルおよびキュー作成ファイルを削除したり,読み込みができなくなったりするよ
うなアクセス権限の変更は行わないでください。
198
5. Cosminexus RM(非永続版リソースアダプタ)の運用
5.1.2 アプリケーションの開始(非永続版リソースアダプタ
の場合)
アプリケーションを開始するには,あらかじめ Cosminexus RM が開始されている必要
があります。各手順で使用するサーバ管理コマンドおよび各属性ファイルの詳細につい
ては,マニュアル「Cosminexus アプリケーション設定操作ガイド」およびマニュアル
「Cosminexus リファレンス 定義編」を参照してください。
アプリケーションを開始する手順を次に示します。
1. アプリケーションのインポート
サーバ管理コマンドを使用して,Cosminexus RM のアプリケーションをインポート
します。
2. J2EE アプリケーションのプロパティ設定
テキストエディタを使って,Session Bean 属性ファイル,Entity Bean 属性ファイ
ル,WAR 属性ファイル,または MessageDrivenBean 属性ファイルを編集して,リ
ソースアダプタのリファレンス定義,リソース環境のリファレンス定義およびメッ
セージ参照の設定項目を設定します。
3. アプリケーションの開始
サーバ管理コマンドを使用して,アプリケーションを開始します。
5.1.3 Cosminexus RM の停止(非永続版リソースアダプタ
の場合)
サーバ管理コマンドを使用して,アプリケーションを停止させてから,Cosminexus RM
を停止させます。サーバ管理コマンドについては,マニュアル「Cosminexus アプリ
ケーション設定操作ガイド」を参照してください。
Cosminexus RM を停止する手順を次に示します。
1. アプリケーションの停止
サーバ管理コマンドを使用して,アプリケーションを停止します。一つの
Cosminexus RM を利用する複数のアプリケーションがある場合はすべて停止します。
2. Cosminexus RM の停止
サーバ管理コマンドを使用して,Cosminexus RM を停止します。
3. J2EE サーバの停止
Cosminexus システムを使用しない場合は,J2EE サーバと Cosminexus のサービス
を停止します。
199
5. Cosminexus RM(非永続版リソースアダプタ)の運用
5.1.4 Cosminexus RM の状態遷移(非永続版リソースアダ
プタの場合)
Cosminexus システムにとって,Cosminexus RM には未デプロイ状態,デプロイ済み状
態,およびリソースアダプタ開始状態の三つの状態があります。また,非永続版リソー
スアダプタを使用する場合,リソースアダプタ開始状態の Cosminexus RM の内部状態
として,実行状態,閉塞状態および開始中状態があります。なお,非永続版リソースア
ダプタには,管理状態はありません。
Cosminexus RM の状態について次に説明します。
実行状態
アプリケーションにサービスを提供する状態です。
閉塞状態
Cosminexus RM 内部のメモリ状態不正などによって,処理の続行ができなくなった
状態です。アプリケーションにサービスは提供されなくなります。
開始中状態
リソースアダプタを開始して,実行状態に移行するまでの一時的な状態です。
(1) 状態遷移
非永続版リソースアダプタを使用する場合の Cosminexus RM の状態遷移について,次
の図に示します。
200
5. Cosminexus RM(非永続版リソースアダプタ)の運用
図 5-1 非永続版リソースアダプタを使用する場合の Cosminexus RM の状態遷移
201
5. Cosminexus RM(非永続版リソースアダプタ)の運用
5.2 ローカルキューの運用(非永続版リソース
アダプタの場合)
5.2.1 ローカルキューの操作方法
Cosminexus RM の非永続版リソースアダプタを開始すると,キュー作成ファイルを基に
ローカルキューが作成されます。Cosminexus RM が実行状態に移行すると,メッセージ
の送受信ができます。
非永続版リソースアダプタを使用する場合のローカルキューの操作について次に説明し
ます。
● キューの追加,削除,および属性変更をする場合
キュー作成ファイルを編集し,Cosminexus RM を再起動してください。非永続版リ
ソースアダプタでは非永続キューだけを提供するため,Cosminexus RM を再起動す
るとすべてのメッセージがなくなります。キュー作成ファイルの詳細については,
「3.5.1 キュー作成ファイルの作成」を参照してください。
● キュー情報の表示,メッセージの表示,メッセージの削除をする場合
次に示すコマンドを実行してください。コマンドの詳細については,
「8. コマンドリ
ファレンス」を参照してください。
• hrmlsque(キュー情報の表示)
• hrmlsmsg(メッセージの表示)
• hrmdelmsg(メッセージの削除)
5.2.2 ローカルキューの状態遷移(非永続版リソースアダプ
タの場合)
キューには,通常状態,抑止状態(一部抑止状態および完全抑止状態)があります。
キューの抑止状態は,特定のキューに対してメッセージの送受信を抑止する場合などに
利用します。
キューの状態について次に説明します。
通常状態
正常に使用できる状態です。
一部抑止状態
メッセージの送受信が一部抑止されている状態です。指定するキューの種類によっ
て,抑止される形態が異なります。キューの種類と抑止される形態については,
「8.3.27(3) オプション」を参照してください。
完全抑止状態
メッセージの送受信が完全に抑止されている状態です。指定するキューの種類に応
202
5. Cosminexus RM(非永続版リソースアダプタ)の運用
じて,抑止できる形態をすべて抑止します。
キューの状態遷移を次の図に示します。
図 5-2 キューの状態遷移
203
5. Cosminexus RM(非永続版リソースアダプタ)の運用
5.3 PRF トレースファイルの運用(非永続版
リソースアダプタの場合)
Cosminexus の PRF トレースファイルを利用して,Cosminexus RM の性能を解析でき
ます。
PRF トレースを取得するには,Cosminexus Performance Tracer(以降,パフォーマン
ストレーサと呼びます)をインストールしておく必要があります。パフォーマンスト
レーサは,J2EE サーバの起動に合わせて起動するため,Cosminexus 運用管理ドメイン
や J2EE サーバでの設定が必要となります。これらの設定は Cosminexus Management
Server を利用して実施します。設定手順,および設定内容の詳細については,
「4.4 PRF トレースファイルの運用(永続版リソースアダプタの場合)」を参照してください。
204
5. Cosminexus RM(非永続版リソースアダプタ)の運用
5.4 Cosminexus RM 運用時の注意事項(非永
続版リソースアダプタの場合)
非永続版リソースアダプタを使用する場合の,Cosminexus RM の運用時の注意事項につ
いて説明します。
5.4.1 Windows Vista 使用時の注意事項
Windows Vista で,Cosminexus RM のシステムを構築,運用する場合の注意事項につ
いて説明します。
(1) Cosminexus RM が提供するコマンド使用時の注意事項
Cosminexus RM が提供するコマンドは,管理者特権で実行する必要があります。
Cosminexus RM が提供するコマンドは,「管理者:コマンドプロンプト」で実行してく
ださい。
「管理者:コマンドプロンプト」は,Windows Vista で提供されている機能を使用して起
動してください。起動方法の例を次に示します。
1. [スタート]ボタンをクリックします。
2. [プログラム]−[アクセサリ]を選択します。
3. [コマンド プロンプト]を右クリックして,
[管理者として実行]をクリックします。
管理者のパスワードまたは確認を求められた場合は,画面の指示に従って,パスワー
ドを入力するか,または確認情報を提供してください。
(2) JIS X0213:2004 に含まれる Unicode の補助文字を使用する場合の
注意事項
Windows Vista でサポートされた JIS X0213:2004 の第三水準および第四水準の文字の一
部には,Unicode の補助文字が含まれます。Unicode の補助文字とは,基本多言語面以
外の文字(Unicode のコードポイントが U+10000 ∼ U+10FFFF の範囲の文字)のこと
です。UTF-16 エンコーディングでは,サロゲートペアとして表されます。
Unicode の補助文字を使用する場合の注意事項を次に示します。
(a) リクエストで使用する場合の注意事項
Cosminexus RM に対して,Internet Explorer 7 などのクライアントから Unicode の補
助文字を含むリクエストを送信した場合,Unicode の補助文字は,ログや PRF トレース
に正しく出力されません。ただし,その場合も,Unicode の補助文字以外の文字は,ロ
グや PRF トレースに正しく出力されます。
また,リクエストに Unicode の補助文字が含まれる場合も,アプリケーションは正しく
205
5. Cosminexus RM(非永続版リソースアダプタ)の運用
動作します。
リクエストでの Unicode の補助文字の使用を制限したい場合には,アプリケーションで
の対応などを検討してください。
(b) 環境構築/運用時の注意事項
Cosminexus RM のシステムを構築,運用する場合,およびアプリケーションやリソース
をデプロイする場合に使用する定義に,Unicode の補助文字は使用できません。
Unicode の補助文字を使用できない定義の例を示します。
• EAR,WAR,JAR,EJB-JAR,サーブレット,JSP,クラス,メソッド,引数,ま
たは変数の名称
• DD 内の各種定義
• システムのインストール先の指定値
• そのほか,各種定義ファイルの設定値
5.4.2 永続版リソースアダプタと非永続版リソースアダプタ
を切り替える場合の注意事項
● 永続版リソースアダプタから非永続版リソースアダプタに切り替える場合,または非
永続版リソースアダプタから永続版リソースアダプタに切り替える場合,
Cosminexus の提供するリソースアダプタバージョンアップコマンドによる更新はで
きません。永続版リソースアダプタと非永続版リソースアダプタを切り替えるには,
切り替え前のリソースアダプタのアンデプロイ(cjundeployrar)とリソース削除
(cjdeleteres)を実行し,新しく切り替え後のリソースアダプタのインポート
(cjimportres)とデプロイ(cjdeployrar)を実行してください。
● 切り替え前のリソースアダプタで作成したキューや定義情報は,切り替え後のリソー
スアダプタで使用できません。切り替え後のリソースアダプタの仕様に従って再定義
する必要があります。リソースアダプタの属性ファイル(Connector 属性ファイル)
は,切り替え後のリソースアダプタを J2EE サーバにインポート(またはデプロイ)
したあと,Cosminexus の属性ファイル取得/設定コマンド cjgetresprop /
cjsetresprop(または cjgetrarprop / cjsetrarprop)で設定し直してください。
● Cosminexus RM 01-03 より古い永続版リソースアダプタから Cosminexus RM 01-03
の非永続版リソースアダプタに切り替える場合,または Cosminexus RM 01-03 より
古い非永続版リソースアダプタから Cosminexus RM 01-03 の永続版リソースアダプ
タに切り替える場合,環境変数で設定している HRMDIR のパスを Cosminexus RM
01-03 のインストールディレクトリに変更してください。また,環境変数の PATH に
切り替え前の古いリソースアダプタのコマンド格納ディレクトリを指定している場合
は,切り替え後の新しいインストールディレクトリのコマンド格納ディレクトリ
(<Cosminexus RM 01-03 インストールディレクトリ >¥bin)に変更してください。
206
5. Cosminexus RM(非永続版リソースアダプタ)の運用
5.4.3 Cosminexus RM が動作するマシンの時刻設定の注意
事項
Cosminexus RM が動作するマシンの時刻を,NTP ソフトなどを使用して進めたり戻し
たりしないでください。時刻を操作した場合の動作は保証されません。
207
6
コンフィグレーションプロ
パティ
Cosminexus RM および DB Connector for Cosminexus RM を
開始するには,ユーザの環境に合わせてコンフィグレーション
プロパティを設定する必要があります。
この章では,Cosminexus RM および DB Connector for
Cosminexus RM のコンフィグレーションプロパティの詳細に
ついて説明します。
6.1 Cosminexus RM のコンフィグレーションプロパティの一覧
6.2 Cosminexus RM のコンフィグレーションプロパティの詳細説明
6.3 DB Connector for Cosminexus RM のコンフィグレーションプロパティ
の一覧
209
6. コンフィグレーションプロパティ
6.1 Cosminexus RM のコンフィグレーション
プロパティの一覧
コンフィグレーションプロパティは Cosminexus RM の動作内容を指定するプロパティ
です。プロパティを定義したら,サーバ管理コマンドを使用して,Cosminexus RM をイ
ンポートします。そのあと,プロパティを設定します。プロパティ定義の詳細について
は,永続版リソースアダプタの場合は「3.4.5 Cosminexus RM のプロパティ定義(永
続版リソースアダプタの場合)」を,非永続版リソースアダプタの場合は「3.5.3 Cosminexus RM のプロパティ定義(非永続版リソースアダプタの場合)」を参照してく
ださい。
Cosminexus RM が提供するコンフィグレーションプロパティの一覧について,次の表に
示します。
表 6-1 Cosminexus RM のコンフィグレーションプロパティの一覧
項番
プロパティ名
設定内容
永続版リ
ソースア
ダプタで
の指定
非永続版
リソース
アダプタ
での指定
1
RMSystemName
システム名
◎
◎
2
RMLinkedDBConnectorNa
me
連携する DB Connector の表示名
◎
×
3
QueueMakeFileName
キュー作成ファイルの場所
×
◎
4
QueueConfigFileName
キュー定義ファイルの場所
○※ 1
○※ 1
5
RMDeadMessageQueueNa
me
デッドメッセージキュー名
○
×
6
RMWaitRestoration
キュー定義ファイル未使用時の
Cosminexus RM 開始時の復元完了待
ち合わせの有無
○※ 2
×
7
RMStartTimeout
Cosminexus RM 開始処理のタイムア
ウト時間(無限待ちの回避)
○※ 3
×
8
RMAssociateJDBCFlag
DB Connector とのコネクション共有
の利用有無
○
×
9
RMSweepTimerInterval
メッセージ削除処理の実行間隔
○
○
10
RMDeleteMessageImmedia
tely
メッセージ即時削除の利用有無
○
×
11
RMPassByReference
メッセージ送受信時の参照渡し方式
の利用の有無
○
○
12
RMMaxDeliveryNum
配送回数の最大値
○
○
13
RMMethodTraceLevel
メソッドトレースの出力レベル
○
○
14
RMLineTraceLevel
回線トレースの出力レベル
○
×
210
6. コンフィグレーションプロパティ
項番
プロパティ名
設定内容
永続版リ
ソースア
ダプタで
の指定
非永続版
リソース
アダプタ
での指定
15
RMLogTraceFileNum
トレースファイルの最大面数
○
○
16
RMLogTraceFileSize
トレースファイルのファイルサイズ
○
○
17
RMSHConnectFlag
共用キューを使用して複数システム
間でのアプリケーション連携をする
場合の受信用共用キューの有無
○
×
18
RMSHPort
共用キューを使用して複数システム
間でのアプリケーション連携をする
場合のイベント受信用ポート番号
○※ 4
×
19
RMSHRecoveryTimerInter
val
共用キューを使用して複数システム
間でのアプリケーション連携をする
場合のリカバリスレッド監視間隔
○※ 4
×
20
RMTRConnectFlag
キュー間転送の使用有無
○
×
21
RMTRSendThreadNum
送信スレッドの起動数
○※ 5
×
22
RMTRResendInterval1Nu
m
再送間隔 1 での再送回数
○※ 5
×
23
RMTRResendInterval1
再送間隔 1
○※ 5
×
24
RMTRResendInterval2
再送間隔 2
○※ 5
×
25
RMTRResendTimerInterva
l
再送タイマ監視間隔
○※ 5
×
26
RMTRPendingNotifyInterv
al
滞留メッセージの監視時間
○※ 5
×
27
RMTRTransferControlDir
クライアント定義ファイルが格納さ
れているディレクトリのパス
○※ 5
×
28
RMAutoDeleteMessage
デッドメッセージキュー未使用時の
無効メッセージ自動削除の有無
○
×
(凡例)
◎:必ず指定します。
○:必要に応じて指定します。
×:指定不要です。
注※ 1
キュー定義ファイルを使用する場合,QueueConfigFileName プロパティは必須です。キュー
定義ファイルを使用しない場合は,QueueConfigFileName プロパティを省略するか,プロパ
ティの値を空にしてください。
注※ 2
キュー定義ファイルを使用する場合,RMWaitRestoration プロパティは無視されます。
注※ 3
キュー定義ファイルを使用する場合,または RMWaitRestoration プロパティに false を指定す
る場合,RMStartTimeout プロパティは無視されます。
211
6. コンフィグレーションプロパティ
注※ 4
RMSHConnectFlag プロパティに false を指定する場合,これらのプロパティは無視されます。
注※ 5
RMTRConnectFlag プロパティに false を指定する場合,これらのプロパティは無視されます。
212
6. コンフィグレーションプロパティ
6.2 Cosminexus RM のコンフィグレーション
プロパティの詳細説明
各コンフィグレーションプロパティの詳細について説明します。
(1) RMSystemName = システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字:java.lang.String >
Cosminexus RM が連携するシステム全体で一意なシステム名を指定します。このプロパ
ティは必須です。
このプロパティの指定がない場合や空白を指定している場合,Cosminexus RM の開始時
にエラーが発生します。
(2) RMLinkedDBConnectorName = 連携する DB Connector の表示名
∼<文字列:java.lang.String > ((1 ∼ 128))
連携する DB Connector の表示名を指定します。このプロパティは必須です。
プロパティが省略された場合や,プロパティに指定した表示名の DB Connector が起動
していない場合,起動に失敗します。
(3) QueueMakeFileName = キュー作成ファイルの場所
∼<文字列:java.lang.String >
キュー作成ファイル名を絶対パスで指定します。非永続版リソースアダプタではこのプ
ロパティは必須です。永続版リソースアダプタではこのプロパティは指定不要です。
非永続版リソースアダプタでこのプロパティの指定がない場合,または指定したキュー
作成ファイルの読み取りに失敗した場合,Cosminexus RM の開始時にエラーが発生しま
す。
キュー作成ファイルの詳細については,
「3.5.1 キュー作成ファイルの作成」を参照して
ください。
(4) QueueConfigFileName = キュー定義ファイルの場所
∼<文字列:java.lang.String >
キュー定義ファイル名を絶対パスで指定します。
このプロパティは,キュー定義ファイルを使用する場合は必須です。キュー定義ファイ
ルを使用しない場合はこのプロパティを省略するか,プロパティの値を空にしてくださ
い。
213
6. コンフィグレーションプロパティ
キュー定義ファイルを使用しない場合,キュー作成時に指定した表示名に従って生成さ
れたキューの識別名が JNDI ネーミングサービスに登録されます。
指定したキュー定義ファイルの読み取りに失敗した場合,Cosminexus RM の開始時にエ
ラーが発生します。
キュー定義ファイルの詳細については,永続版リソースアダプタの場合,「3.4.4 キュー
定義ファイルの作成(永続版リソースアダプタの場合)」を参照してください。非永続版
リソースアダプタの場合,「3.5.2 キュー定義ファイルの作成(非永続版リソースアダプ
タの場合)」を参照してください。
(5) RMDeadMessageQueueName = デッドメッセージキュー名
∼< 1 ∼ 20 文字の識別子:java.lang.String >
デッドメッセージキューを使用する場合に,デッドメッセージキューとして使用する
ローカルキュー名を指定します。ローカルキュー以外のキュー名を指定する場合,
Cosminexus RM の開始時にエラーが発生します。このプロパティの指定がない場合,ま
たは存在しないキュー名を指定した場合,デッドメッセージキューを使用できません。
デッドメッセージキューとして使用するキューは,ユーザが hrmmkque コマンドでロー
カルキューとして作成してください。
なお,このプロパティを変更して別のローカルキューをデッドメッセージキューにする
場合,変更前のデッドメッセージキューに格納されているメッセージをすべて削除して
ください。
キュー間転送では,転送できなかったメッセージは転送キューに蓄積されます。転送
キュー内のメッセージが格納できる最大メッセージ数に達すると,転送キュー内のメッ
セージが減らないかぎり,新たにメッセージを転送キューに格納し送信できなくなりま
す。
デッドメッセージキューを使用すると,転送できなかったメッセージを削除処理のタイ
ミングで転送キューからデッドメッセージキューに移動できます。これによって,転送
キューがいっぱいになるのを防止できます。
(6) RMWaitRestoration = Cosminexus RM 開始時の復元完了待ち合わせ
の有無
∼< java.lang.Boolean > ((true | false))《true》
キュー定義ファイルを使用しない場合に,Cosminexus RM を開始するときに非同期に実
行する復元処理(DB に格納されているキュー情報を読み込みキューを復元すること)が
完了するまで,Cosminexus RM の開始を待ち合わせるかどうかを指定します。
キュー定義ファイルを使用する場合,このプロパティは無視されます。
非永続版リソースアダプタの場合,Cosminexus RM の開始処理と復元処理を同期で実行
しているためこのプロパティは使用しません。
214
6. コンフィグレーションプロパティ
このプロパティに true を指定した場合,復元処理の完了を待ち合わせて Cosminexus
RM を開始します。false を指定した場合,復元処理の完了を待ち合わせないで
Cosminexus RM を開始します。
このプロパティに true を指定した場合,Cosminexus RM の開始を待ち合わせることに
より,次のような影響があります。
• Cosminexus RM とアプリケーションが開始している状態で Cosminexus を再起動し
たときに,DB からの復元処理に時間が掛かるとアプリケーションの開始処理の完了
が遅くなります。
• Cosminexus が開始している状態で,Cosminexus RM を開始するときに,
Cosminexus RM の復元処理に時間が掛かると,リソースアダプタの開始コマンドが
タイムアウトすることがあります。
• DB ほか関連リソースにアクセスできないなど,Cosminexus RM が正常に開始完了
(非閉塞状態で開始し,KFRM01009-I メッセージが出力される)できない環境で
Cosminexus RM を開始すると,次のような現象が発生します。
表 6-2 Cosminexus RM を正常に開始完了できない環境で発生する現象
Cosminexus RM の開始時の環境
トランザクションサポー
トレベル
Cosminexus 再起動の延長の場合
Cosminexus 起動状態の場合
XATransaction
関連リソースに正常アクセスできるま
で,または RMStartTimeout で指定
した値に到達し開始処理のリトライが
タイムアウトするまで,Cosminexus
の開始処理が完了しません。
Cosminexus RM の開始処理が失
敗します。
LocalTransaction,
NoTransaction
関連リソースに正常アクセスできるま
で,または RMStartTimeout で指定
した値に到達し開始処理のリトライが
タイムアウトするまで,Cosminexus
の開始処理が完了しません。
関連リソースに正常アクセスでき
るまで,または RMStartTimeout
で指定した値に到達し開始処理の
リトライがタイムアウトするまで,
Cosminexus RM の開始処理が完
了しません。
Cosminexus または Cosminexus RM の開始を待っている状態で,開始処理を中断す
る場合は,cjstopsv コマンドに -f オプションを指定して J2EE サーバを強制停止して
ください。cjstopsv コマンドについては,マニュアル「Cosminexus リファレンス コ
マンド編」を参照してください。
このプロパティに false を指定した場合,タイミングによって次の現象が発生します。
• Cosminexus RM を利用するアプリケーションが JNDI ネーミングサービスから
キューをルックアップするときに,ルックアップに失敗します(ただし,
Message-driven Bean(MDB)を除きます)
。なお,次の二つの条件を満たしている
場合,アプリケーション開始時にキューのルックアップを実行します。
• Stateless Session Bean でインスタンスプールの最小値が 1 以上である
215
6. コンフィグレーションプロパティ
• ejbCreate() メソッド内でキューのルックアップ処理を実装,または EJB のアノ
テーション機能によってキューを定義している
これらの条件を満たしている場合にキューのルックアップに失敗したときは,アプリ
ケーションの開始が失敗しますので注意してください。
ルックアップについては,マニュアル「Cosminexus 機能解説」の JNDI 名前空間と
ルックアップについての記述を参照してください。
Stateless Session Bean については,マニュアル「Cosminexus 機能解説」を参照して
ください。
アノテーション機能については,マニュアル「Cosminexus 機能解説」を参照してく
ださい。
• Cosminexus RM を利用するアプリケーションを開始するときに,表示名に対応した
キュー名を正しく取得できずにエラーとなり,アプリケーションの開始に失敗します。
このプロパティは省略できます。
(7) RMStartTimeout = Cosminexus RM 開始処理のタイムアウト時間
∼<数字:java.lang.Integer > ((0 ∼ 600))《60》(単位:秒)
このプロパティを設定することで,Cosminexus RM の開始処理を待ち合わせる場合,タ
イムアウトが発生するまで待つことを避けることができます。
非永続版リソースアダプタの場合,開始処理でリトライするエラー要因がないため,こ
のプロパティは使用しません。
Cosminexus RM の開始時に非同期に実行する復元処理(DB に格納されているキュー情
報を読み込みキューを復元すること)が完了するまで Cosminexus RM の開始を待ち合
わせる場合,開始処理失敗時のリトライをタイムアウトする時間を指定します。このプ
ロパティは,RMWaitRestoration プロパティが true で,かつキュー定義ファイルを使
用しないときにだけ有効となります。それ以外のとき,このプロパティの設定値は無視
されタイムアウトしません。
このプロパティの値は,Cosminexus RM や Cosminexus RM を利用するアプリケーショ
ンを開始する場合,実行するコマンドなどがタイムアウトする時間よりも小さい値を指
定することをお勧めします。値に 0 を指定したとき,Cosminexus RM の開始処理はタイ
ムアウトしないため,開始処理が正常に完了する(非閉塞状態で開始し,KFRM01009-I
メッセージが出力される)まで待ち合わせます。
なお,実際にタイムアウトする時間は,指定した値よりも数秒遅れることがあります。
タイムアウト後,Cosminexus RM は開始処理のリトライを中止し,システム閉塞状態で
開始するため,Cosminexus RM 開始の待ち合わせは解除されます。この場合,
Cosminexus または Cosminexus RM を停止し,正しい設定・環境で再度 Cosminexus
RM を開始してください。
Cosminexus RM が開始処理に失敗しリトライするエラー要因を次の表に示します。
216
6. コンフィグレーションプロパティ
表 6-3 Cosminexus RM が開始処理に失敗しリトライするエラー要因
Cosminexus RM の開始時の環境
トランザクションサ
ポートレベル
Cosminexus 再起動の延長の場合
Cosminexus 起動状態の場合
XATransaction
• DB 停止しているなど一時的な障
害
• Cosminexus 再起動前と再起動後
で接続先 DB の IP アドレスが変更
されるような場合
リトライするエラー要因はありませ
ん
LocalTransaction,
NoTransaction
• DB 停止しているなど一時的な障
害
• DB 接続に関する設定の誤り
(ユーザ名・パスワードの不正な
ど)
• DB 停止しているなど一時的な障
害
• DB 接続に関する設定の誤り
(ユーザ名・パスワードの不正な
ど)
このプロパティは省略できます。
(8) RMAssociateJDBCFlag=DB Connector とのコネクション共有機能
の使用有無
∼< java.lang.Boolean > ((true | false))《true》
DB Connector とのコネクション共有機能を使用するかどうかを指定します。
DB Connector とのコネクション共有機能を使用する場合は true,使用しない場合は
false を指定します。このプロパティが true の場合,非永続キューだけを利用していて
も,DB に対してトランザクション命令を発行します。非永続キューだけを利用する場合
は false を指定します。ただし,このプロパティを false に設定すると,連携する DB
Connector のコネクションは取得できないため,注意してください。
また,このプロパティを false に設定して HiRDB を XATransaction モードで利用する
場合は,DB Connector のステートメントプールを利用しないでください。
(9) RMSweepTimerInterval = メッセージ削除処理の実行間隔
∼<数字:java.lang.Integer > ((60 ∼ 86400))《600》(単位:秒)
メッセージの削除処理を実行する間隔を指定します。
キューに登録されたメッセージをアプリケーションが読み出したときや,キュー上の
メッセージが有効期間に達したとき,その時点ではメッセージは削除されません。
RMSweepTimerInterval プロパティ指定値の間隔で実行されるメッセージ削除処理に
よって削除されます。
● 永続版リソースアダプタの場合
指定値が大き過ぎるとメモリ使用量や DB のエリア使用量が増加し,小さ過ぎると
DB アクセスが増加するので注意してください。また,転送キューを利用する場合,
217
6. コンフィグレーションプロパティ
転送に成功したメッセージはメッセージ削除処理によって削除されるまでキューに格
納されたままなので,指定値を大きくし過ぎないように注意してください。
● 非永続版リソースアダプタの場合
指定値が大き過ぎるとメモリ使用量が増加し,小さ過ぎると DB アクセス頻度に関係
なく CPU に負荷の掛かる頻度が高くなります。
このプロパティは省略できます。
(10)RMDeleteMessageImmediately = メッセージ即時削除の利用有無
∼< java.lang.Boolean > ((true | false))《false》
メッセージの取り出しで,キュー内のメッセージを配信済みの状態にしないで,すぐに
削除するかどうかを指定します。
非永続版リソースアダプタの場合,即時削除だけを使用できます。遅延削除は使用でき
ないためこのプロパティは使用しません。
メッセージをすぐに削除する場合は true を指定します。RMSweepTimerInterval プロ
パティで指定した間隔で定期的に削除する場合は false を指定します。
このプロパティが true の場合,取り出し時にメッセージを削除するため,永続キューの
スループットが低下するおそれがありますが,一時的なメモリ使用量を削減できます。
なお,有効期限切れのメッセージは RMSweepTimerInterval プロパティで指定した間隔
で定期的に削除されます。
次のメッセージがこのプロパティの対象になります。
• アプリケーションからローカルキューに登録されたメッセージ
• デッドメッセージキューに登録されたメッセージ
即時削除・遅延削除の詳細については,「2.3.4 メッセージの削除」を参照してくださ
い。
(11)RMPassByReference = メッセージ送受信時の参照渡し方式の利用
の有無
∼< java.lang.Boolean > ((true | false))《false》
メッセージの送受信時に,参照渡し方式を利用するかどうかを設定します。
メッセージの参照渡し方式を利用する場合は true を指定します。利用しない場合は
false を指定します。このプロパティが true の場合,アプリケーションが Cosminexus
RM と同じメッセージのインスタンスを参照するため,高速にメッセージを送受信でき
ます。
ただし,このプロパティを true に指定するとき,アプリケーション側でメッセージ送受
信後にメッセージオブジェクトに対する変更や再利用はできません。これらの動作を
218
6. コンフィグレーションプロパティ
行った場合,メッセージオブジェクトに対するメソッドの処理結果は保証できないため,
注意してください。詳細は「2.6.7(10) 参照渡し方式利用時の JMS メッセージの再利
用」を参照してください。
(12)RMMaxDeliveryNum = 配送回数の最大値
∼<数字:java.lang.Integer > ((0 ∼ 512))《10》
Cosminexus RM から受信側アプリケーションへのメッセージの配送回数の最大値を指定
します。0 を指定したときメッセージは無制限に再配送されます。
メッセージ配送中に QueueSession.recover() メソッドが発行されるかトランザクション
がロールバックされると,このプロパティの回数内でメッセージは再配送の対象となり
ます。
● 永続版リソースアダプタの場合
配送回数の最大値に達したとき,デッドメッセージキューがあればメッセージはデッ
ドメッセージキューに移動されます。ただし,次に示すとき,メッセージは元の
キューに戻されます。
• デッドメッセージキューがないとき
• デッドメッセージキューの最大メッセージ数を超えるとき
なお,メッセージの配送回数は DB によって永続化されないため,Cosminexus RM
を再度開始したときには 0 に戻ります。
● 非永続版リソースアダプタの場合
配送回数の最大値を超えて配送されたメッセージは,デッドメッセージキューに移動
されないで削除されます。
(13)RMMethodTraceLevel = メソッドトレースの出力レベル
∼<数字:java.lang.Integer > ((1 ∼ 5))《1》
Cosminexus RM が出力するメソッドトレースの出力レベルを指定します。範囲外の値を
指定した場合はデフォルト値が設定されます。
各レベルの出力情報については,
「9.1.3 メソッドトレース」を参照してください。
(14)RMLineTraceLevel = 回線トレースの出力レベル
∼<数字:java.lang.Integer > ((1 ∼ 5))《3》
Cosminexus RM が出力する回線トレースのトレースの出力レベルを指定します。範囲外
の値を指定した場合はデフォルト値が設定されます。
各レベルの出力情報については,
「9.1.5 回線トレース」を参照してください。
219
6. コンフィグレーションプロパティ
(15)RMLogTraceFileNum = トレースファイルの最大面数
∼<数字:java.lang.Integer > ((2 ∼ 16))《2》
Cosminexus RM が出力するトレースファイル共通の出力ファイルの最大面数を指定しま
す。範囲外の値を指定した場合はデフォルト値が設定されます。
(16)RMLogTraceFileSize = トレースファイルのファイルサイズ
∼<数字:java.lang.Integer > ((4096 ∼ 2147483647))《2097152》
(単位:バイト)
Cosminexus RM が出力するトレースファイル共通のファイル 1 面当たりの最大のファイ
ルサイズを指定します。範囲外の値を指定した場合はデフォルト値が設定されます。
(17)RMSHConnectFlag = 共用キューを使用して複数システム間でのア
プリケーション連携をする場合の受信用共用キューの有無
∼< java.lang.Boolean > ((true | false))《false》
共用キューを使用して複数システム間でのアプリケーション連携をする場合の受信用共
用キューの有無を指定します。
共用キューを使用して複数システム間でのアプリケーション連携をする場合に自システ
ムで受信用共用キューを使用するときは true,使用しないときは false を指定します。
Cosminexus RM が接続する DB の種別が Oracle の場合に true を指定すると,開始処理
に失敗します。
このプロパティに false を設定した場合,次に示す機能は使用できません。
• イベント受信機能
• リカバリスレッド機能
• 受信用共用キューに対するメッセージの登録および取り出し
• 受信用共用キューに対するメッセージの参照および削除
• 受信用共用キューからデッドメッセージキューに移動したメッセージの再登録
(18)RMSHPort = 共用キューを使用して複数システム間でのアプリケー
ション連携をする場合のイベント受信用ポート番号
∼<数字:java.lang.Integer > ((1024 ∼ 65535))《20351》
共用キューを使用して複数システム間でのアプリケーション連携をする場合のイベント
受信用のポート番号を指定します。
(19)RMSHRecoveryTimerInterval = 共用キューを使用して複数システム
間でのアプリケーション連携をする場合のリカバリスレッド監視間
隔
∼<数字:java.lang.Integer > ((5 ∼ 300))《60》(単位:秒)
220
6. コンフィグレーションプロパティ
共用キューを使用して複数システム間でのアプリケーション連携をする場合に動作する,
リカバリスレッドの監視間隔を指定します。リカバリスレッドについては,
「2.6.4 共用
キューでのメッセージ受信時の処理の流れ」を参照してください。
このプロパティの指定値が大き過ぎると未処理のメッセージが滞留することがあり,小
さ過ぎると DB アクセスが増加するので注意してください。
(20)RMTRConnectFlag= キュー間転送の使用有無
∼< java.lang.Boolean > ((true | false))《false》
キュー間転送を使用するかどうかを指定します。キュー間転送を使用する場合は true
を,使用しない場合は false を指定します。キュー間転送を使用したメッセージの送受信
を行う場合,true を指定してください。
このプロパティを true に設定して HiRDB を XATransaction モードで利用する場合は,
DB Connector のステートメントプールを利用しないでください。また,このプロパティ
に true を設定して Cosminexus RM を動作させる場合は,SOAP 通信基盤を標準モード
で動作させてください。
このプロパティに false を設定した場合,次に示す内容は実行できません。
• キュー間転送およびキュー間転送によるメッセージの受信
• 転送キューへのメッセージの登録
• このプロパティが true のときに転送キューから受信したメッセージの削除
• 転送キューからデッドメッセージキューに移動したメッセージの再登録
• 次に示すコマンドの実行(引数に転送キューを指定)
• hrmmkque(キューの作成)
• hrmdelque(キューの削除)
• hrmlsque(キュー情報の表示)
• hrmchgque(キューの属性変更)
• hrmlsmsg(メッセージの表示)
• hrmdelmsg(メッセージの削除)
• hrmstopque(キューの抑止)
• hrmstoptrs(送受信抑止)
• 次に示すコマンドの実行
• hrmmkaddr(あて先登録)
• hrmdeladdr(あて先削除)
• hrmlsaddr(あて先表示)
• hrmskipmsg(受信待ちメッセージのスキップ)
• hrmlstrs(通信状態表示)
221
6. コンフィグレーションプロパティ
(21)RMTRSendThreadNum= 送信スレッドの起動数
∼<数字:java.lang.Integer > ((1 ∼ 128))《1》
(単位:個)
キュー間転送で,メッセージの送信を行うために利用するスレッドの最大起動数を指定
します。このプロパティを省略した場合,何も指定しなかった場合,および範囲外の値
を指定した場合は,1 が指定されたものとして動作します。
一つのメッセージを送信する処理を一つのスレッドで行うため,このプロパティの値を
増やすことで同時に送信できるメッセージ数を増やすことができます。しかし,マシン
への負荷が増加しスループットが低下する場合があります。
(22)RMTRResendInterval1Num= 再送間隔 1 での再送回数
∼<数字:java.lang.Integer > ((1 ∼ 100))《6》
(単位:送信回数)
キュー間転送で,再送間隔 1 で再送する回数を指定します。メッセージの再送間隔をこ
のプロパティで切り替えることができます。切り替える前の再送間隔を再送間隔 1 に指
定し,切り替えたあとの再送間隔を再送間隔 2 に指定します。
このプロパティを省略した場合や,何も指定しなかった場合,範囲外の値を指定した場
合は,デフォルト値を指定したものとして動作します。
(23)RMTRResendInterval1= 再送間隔 1
∼<数字:java.lang.Integer > ((1 ∼ 86400))《10》
(単位:秒)
キュー間転送で,転送先からの応答が返ってこないメッセージを再び送信するまでの時
間を指定します。このプロパティは RMTRResendInterval1Num によって切り替える前
の再送間隔です。このプロパティを省略した場合や範囲外の値を指定した場合は,デ
フォルト値が指定されたものとして動作します。
(24)RMTRResendInterval2 = 再送間隔 2
∼<数字:java.lang.Integer > ((1 ∼ 86400))《600》(単位:秒)
キュー間転送で,転送先からの応答が返ってこないメッセージを再び送信するまでの時
間を指定します。このプロパティは RMTRResendInterval1Num によって切り替えたあ
との再送間隔です。このプロパティを省略した場合や範囲外の値を指定した場合は,デ
フォルト値が指定されたものとして動作します。
(25)RMTRResendTimerInterval = 再送タイマ監視間隔
∼<数字:java.lang.Integer > ((1 ∼ 3600))《10》
(単位:秒)
再送タイマ監視間隔を指定します。再送タイマ監視間隔とは,あるメッセージの前回の
送信時から経過した時間が,再送間隔を超えているかどうか監視を行う間隔です。
このプロパティを省略した場合や範囲外の値を指定した場合は,デフォルト値が指定さ
222
6. コンフィグレーションプロパティ
れたものとして動作します。
(26)RMTRPendingNotifyInterval = 滞留メッセージの監視時間
∼<数字:java.lang.Integer > ((1 ∼ 86400))《600》(単位:秒)
滞留メッセージを監視する時間を指定します。滞留メッセージを監視するタイミングは,
メッセージ削除処理と同じです。メッセージの監視中に,このプロパティに指定した時
間より長く滞留しているメッセージが存在する場合は,メッセージの滞留を通知する
KFRM13011-W(メッセージログの出力レベルに関係なく出力します)が出力されます。
このプロパティを省略した場合や範囲外の値を指定した場合は,デフォルト値が指定さ
れたものとして動作します。
(27)RMTRTransferControlDir = クライアント定義ファイルが格納されて
いるディレクトリのパス
∼<文字列:java.lang.String >
キュー間転送の動作制御内容を定義する,クライアント定義ファイルが格納されている
ディレクトリのパスを指定します。
同じサーバ上で Cosminexus RM を複数デプロイする場合は,このプロパティに,コ
ピーしたクライアント定義ファイルが格納されているディレクトリのパスを指定してく
ださい。クライアント定義ファイルの詳細については,
「3.4.13(1) SOAP 通信基盤の設
定」を参照してください。
このプロパティを省略した場合や空文字を指定した場合は,デフォルトのクライアント
定義ファイルのあるディレクトリのパス(%HRMDIR%¥conf)が指定されたものとして
動作します。
(28)RMAutoDeleteMessage = デッドメッセージキュー未使用時の無効
メッセージ自動削除の有無
∼< java.lang.Boolean > ((true | false))《false》
キュー間転送でデッドメッセージキューを使用しない場合,次の条件を満たすメッセー
ジを自動的に削除するかどうかを指定します。
1. 電文不正などによって転送できなかったメッセージ
2. 順序保証のグループが閉鎖した時点で,対象グループに属していた滞留メッセージ
true を指定すると 1.,2. のメッセージとも自動的に削除します。false を指定すると,1.
のメッセージはキュー内に残るため,削除する場合は手作業で hrmdelmsg(メッセージ
の削除)コマンドを起動します。2. のメッセージは滞留メッセージとして残り,通信層
のメッセージ有効期限切れになった時点で削除されます。
このプロパティの指定がない場合は false が指定されたものとして動作します。また,
223
6. コンフィグレーションプロパティ
デッドメッセージキューを使用する場合,このプロパティの指定は無視されます。
自動削除を行うと,転送できなかったメッセージは削除処理のタイミングで削除されま
す。
自動削除を行わない場合は,メッセージの削除コマンドを手作業で実行し,転送できな
かったメッセージを削除してください。転送できなかったメッセージを削除しなかった
ときは,転送キューに蓄積されます。転送キュー内のメッセージが格納できる最大数に
達すると,キュー間転送が行えなくなります。
このプロパティは省略できます。
224
6. コンフィグレーションプロパティ
6.3 DB Connector for Cosminexus RM のコン
フィグレーションプロパティの一覧
DB Connector for Cosminexus RM のコンフィグレーションプロパティは,リソースア
ダプタの属性を取得・編集するときに指定するプロパティです。プロパティを定義した
ら,サーバ管理コマンドを使用して,DB Connector for Cosminexus RM をインポート
します。そのあと,プロパティを設定します。プロパティ定義の詳細については,
「3.4.8
DB Connector for Cosminexus RM のプロパティ定義」を参照してください。
DB Connector for Cosminexus RM が提供するコンフィグレーションプロパティの一覧
について,データベースへの接続方法ごとに説明します。
(1) Cosminexus DABroker Library を使用して Oracle または HiRDB に
接続する場合
• DBConnector_DABJ_CP_Cosminexus_RM.rar
トランザクション管理をしない場合,またはローカルトランザクションを使用する場
合に使用します。
指定できるプロパティについては,表 6-4 を参照してください。
• DBConnector_DABJ_XA_Cosminexus_RM.rar
グローバルトランザクションを使用する場合に使用します。
指定できるプロパティについては,表 6-5 を参照してください。
なお,Cosminexus DABroker Library で使用する API については,マニュアル
「Cosminexus リファレンス API 編」を参照してください。
表 6-4 DBConnector_DABJ_CP_Cosminexus_RM.rar を使用する場合に指定できるプロ
パティ
プロパティ名
(config-property-name)
データ型
(config-property-type)
プロパティの値(config-property-value)
linkedResourceAdapterNa
me
java.lang.String
連携する Cosminexus RM リソースアダプ
タの表示名を指定します。
DBConnector_DABJ_CP_Cosminexus_RM.
rar を使用する場合に指定できます。
networkProtocol
java.lang.String
Cosminexus DABroker Library との接続種
別を設定します。設定された値は,
Cosminexus DABroker Library の
setNetworkProtocol メソッドに渡されます。
• "lib"
225
6. コンフィグレーションプロパティ
プロパティ名
(config-property-name)
データ型
(config-property-type)
プロパティの値(config-property-value)
description
java.lang.String
接続するデータベースに必要な接続付加情
報を設定します。設定された値は,
Cosminexus DABroker Library の
setDescription メソッドに渡されます。
• HIRDB の場合
HiRDB システムのポート番号,または
HiRDB クライアントの環境変数グループ
名を指定します。
• ORACLE の場合
SQL*Net の接続文字列を指定します。
DBHostName
java.lang.String
接続する HiRDB のホスト名を設定します。
設定された値は,Cosminexus DABroker
Library の setDBHostName メソッドに渡
されます。
loginTimeout
java.lang.Integer
データベースへの接続試行中に,データ
ソースが待機する最長時間(単位:秒)を
設定します。デフォルト値は 0 です。
serverName
java.lang.String
接続する Cosminexus DABroker Library の
ホスト名または IP アドレスを設定します。
設定された値は,Cosminexus DABroker
Library の setServerName メソッドに渡さ
れます。
portNumber
java.lang.Integer
接続する Cosminexus DABroker Library の
ポート番号を設定します。設定された値は,
Cosminexus DABroker Library の
setPortNumber メソッドに渡されます。デ
フォルト値は 40179 です。
databaseName
java.lang.String
接続するデータベースの種別を設定します。
設定された値は,Cosminexus DABroker
Library の setDatabaseName メソッドに渡
されます。
• HIRDB
HiRDB および XDM/RD E2 に接続する場
合に指定します。
• ORACLE,ORACLE8I
Oracle に接続する場合に指定します。
DBConnector_DABJ_CP_Cosminexus_RM.
rar の場合,デフォルト値は HIRDB です。
DBEnv
java.lang.String
Cosminexus DABroker Library の接続先
データベース定義情報を設定します。設定
された値は,Cosminexus DABroker
Library の setDBEnv メソッドに渡されま
す。
encodLang
java.lang.String
エンコード文字形態を設定します。設定さ
れた値は,Cosminexus DABroker Library
の setEncodLang メソッドに渡されます。
226
6. コンフィグレーションプロパティ
プロパティ名
(config-property-name)
JDBC_IF_TRC
データ型
(config-property-type)
java.lang.Boolean
プロパティの値(config-property-value)
JDBC インタフェースメソッドトレースの
取得の有無を設定します。設定された値は,
Cosminexus DABroker Library の
setJDBC_IF_TRC メソッドに渡されます。
• true を指定した場合
トレースを取得します。
• false を指定した場合
トレースを取得しません。
なお,true を指定した場合,Cosminexus
Driver が出力するトレースは,Cosminexus
Component Container からセットされる
PrintWriter と,ユーザがコネクションファ
クトリ(javax.sql.DataSource クラス)の
setLogWriter() メソッドで指定した
PrintWriter に出力します。デフォルト値は
false です。
SV_EVENT_TRC
java.lang.Boolean
Cosminexus DABroker Library とのイベン
トトレースの取得の有無を設定します。設
定された値は,Cosminexus DABroker
Library の setSV_EVENT_TRC メソッドに
渡されます。
• true を指定した場合
トレースを取得します。
• false を指定した場合
トレースを取得しません。
なお,true を指定した場合,Cosminexus
Driver が出力するトレースは,Cosminexus
Component Container からセットされる
PrintWriter と,ユーザがコネクションファ
クトリ(javax.sql.DataSource クラス)の
setLogWriter() メソッドで指定した
PrintWriter に出力します。デフォルト値は
false です。
TRC_NO
java.lang.Integer
トレースのエントリ数を,10 ∼ 1000 の範
囲で設定します。設定された値は,
Cosminexus DABroker Library の
setTRC_NO メソッドに渡されます。デフォ
ルト値は 500 です。
uapName
java.lang.String
アプリケーション名称を設定します。設定
された値は,Cosminexus DABroker
Library の setUapName メソッドに渡され
ます。
227
6. コンフィグレーションプロパティ
プロパティ名
(config-property-name)
データ型
(config-property-type)
プロパティの値(config-property-value)
bufSize
java.lang.Integer
Cosminexus DABroker Library からの受信
データのバッファ長を,1 ∼ 16000 の範囲
(単位:キロバイト)で設定します。設定さ
れた値は,Cosminexus DABroker Library
の setBufSize メソッドに渡されます。デ
フォルト値は 64 です。
rowSize
java.lang.Integer
Cosminexus DABroker Library が JDBC で
取り扱うバッファ長を,16 ∼ 512 の範囲
(単位:メガバイト)で設定します。設定さ
れた値は,Cosminexus DABroker Library
の setRowSize メソッドに渡されます。デ
フォルト値は 16 です。
OSAuthorize
java.lang.Boolean
OS 認証機能を使用してデータベースに接続
するかどうかを設定します。設定された値
は,Cosminexus DABroker Library の
setOSAuthorize メソッドに渡されます。
• true を指定した場合
OS 認証機能を使用します。
• false を指定した場合
OS 認証機能を使用しません。
デフォルト値は false です。
HiRDBCursorMode
java.lang.Boolean
HiRDB で検索時にカーソルが Commit,ま
たは Rollback にわたって有効かどうかを設
定します。設定された値は,Cosminexus
DABroker Library の
setHiRDBCursorMode メソッドに渡されま
す。
• true を指定した場合
カーソルは保持されます。アプリケー
ションは続けて Fetch することができま
す。
• false を指定した場合
カーソルはクローズされますが,ステー
トメントは有効です。アプリケーション
は,Prepare しないで,再度 Execute で
きます。
デフォルト値は false です。
228
6. コンフィグレーションプロパティ
プロパティ名
(config-property-name)
blockUpdate
データ型
(config-property-type)
java.lang.Boolean
プロパティの値(config-property-value)
接続データベースが HiRDB の場合,?パラ
メタを使用したデータベースの更新で,複
数のパラメタセットを一度に処理するかど
うかを設定します。設定された値は,
Cosminexus DABroker Library の
setBlockUpdate メソッドに渡されます。
• true を指定した場合
複数のパラメタセットを一度に処理しま
す。
• false を指定した場合
複数のパラメタセットを一つずつ分割し
て処理します。
デフォルト値は false です。
executeDirectMode
java.lang.Boolean
接続データベースが HiRDB の場合,
Statement クラスを使用した INSERT,
UPDATE,DELETE などのデータベースの
更新で,HiRDB の EXECUTE DIRECT 機
能を使用するかどうかを設定します。設定
された値は,Cosminexus DABroker
Library の setExecuteDirectMode メソッド
に渡されます。
• true を指定した場合
Execute Direct 機能を使用します。
• false を指定した場合
Execute Direct 機能を使用しません。
デフォルト値は false です。
SQLWarningIgnore
java.lang.Boolean
データベースから返される警告を
Connection クラスで保持するかどうかを設
定します。設定された値は,Cosminexus
DABroker Library の
setSQLWarningIgnore メソッドに渡されま
す。
• true を指定した場合
警告を保持しません。
• false を指定した場合
警告を保持します。
デフォルト値は false です。
LONGVARBINARY_Access
java.lang.String
LONGVARBINARY(列属性 BLOB,列属
性 BINARY)のデータベースアクセス方法
を設定します。設定された値は,
Cosminexus DABroker Library の
setLONGVARBINARY_Access メソッドに
渡されます。
• REAL
• LOCATOR
デフォルト値は REAL です。
229
6. コンフィグレーションプロパティ
プロパティ名
(config-property-name)
データ型
(config-property-type)
プロパティの値(config-property-value)
bufferPoolSize
java.lang.Integer
受信データのバッファをプールする最大数
を設定します。設定された値は,
Cosminexus DABroker Library の
setBufferPoolSize メソッドに渡されます。
デフォルト値は 0 です。
PreparedStatementPoolSiz
e
java.lang.Integer
コネクションプールに割り当てられるコネ
クションごとの PreparedStatement のプー
ルサイズを設定します。0 ∼ 1024 の整数で
指定します。デフォルト値は 10 です。ま
た,PreparedStatementPoolSize と
CallableStatementPoolSize の合計値は,
1024 以下に設定してください。有効範囲外
の値を指定した場合は,デフォルト値が設
定されます。
CallableStatementPoolSize
java.lang.Integer
コネクションプールに割り当てられるコネ
クションごとの CallableStatement のプー
ルサイズを設定します。0 ∼ 1024 の整数で
指定します。デフォルト値は 10 です。ま
た,PreparedStatementPoolSize と
CallableStatementPoolSize の合計値は,
1024 以下に設定してください。有効範囲外
の値を指定した場合は,デフォルト値が設
定されます。
CancelStatement
java.lang.Boolean
トランザクションタイムアウトや業務アプ
リケーション強制停止時に,Statement ク
ラス,CallableStatement クラスおよび
PreparedStatement クラスで実行中の SQL
をキャンセルするかどうかを指定します。
• true を指定した場合
実行中の SQL をキャンセルします。
• false を指定した場合
実行中の SQL をキャンセルしません。
デフォルト値は true です。
Oracle に接続する場合で,データベースの
サーバまたはクライアントのどちらかが
Windows プラットフォームで,専用サーバ
接続をする場合,false を設定してください。
XDM/RD に接続する場合,false を設定して
ください。
DBConnector_DABJ_CP.rar を使用する場
合に指定できます。
230
6. コンフィグレーションプロパティ
プロパティ名
(config-property-name)
ConnectionIDUpdate
データ型
(config-property-type)
java.lang.Boolean
プロパティの値(config-property-value)
コネクション ID を
DataSource#getConnection メソッドごとに
更新するかどうかを指定します。
• true を指定した場合
DataSource#getConnection メソッドのた
びにコネクション ID を生成します。
• false を指定した場合
最初の DataSource#getConnection メ
ソッドでコネクション ID を生成し,その
あとは更新しません。
デフォルト値は false です。
このプロパティは,接続するデータベース
が Oracle の場合に指定できます。
logLevel
java.lang.String
DB Connector が出力するログ・トレースの
レベルを指定します。
次の値が指定できます。
• 0 または ERROR
• 10 または WARNING
• 20 または INFORMATION
デフォルトは,0 または ERROR です。
表 6-5 DBConnector_DABJ_XA_Cosminexus_RM.rar を使用する場合に指定できるプロ
パティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
linkedResourceAdapte
rName
java.lang.String
連携する Cosminexus RM リソースアダプタの表
示名を指定します。
DBConnector_DABJ_XA_Cosminexus_RM.rar を
使用する場合に指定できます。
networkProtocol
java.lang.String
Cosminexus DABroker Library との接続種別を設
定します。設定された値は,Cosminexus
DABroker Library の setNetworkProtocol メソッ
ドに渡されます。
• "lib"
description
java.lang.String
接続するデータベースに必要な接続付加情報を設
定します。設定された値は,Cosminexus
DABroker Library の setDescription メソッドに
渡されます。
• HIRDB の場合
HiRDB クライアントの環境変数グループ名を指
定します。
• ORACLE の場合
SQL*Net の接続文字列を指定します。
231
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
DBHostName
java.lang.String
接続する HiRDB のホスト名を設定します。設定
された値は,Cosminexus DABroker Library の
setDBHostName メソッドに渡されます。
XAOpenString
java.lang.String
XA_OPEN 文字列を設定します。設定された値は,
Cosminexus DABroker Library の
setXAOpenString メソッドに渡されます。
loginTimeout
java.lang.Integer
データベースへの接続試行中に,データソースが
待機する最長時間(単位:秒)を設定します。デ
フォルト値は 0 です。
serverName
java.lang.String
接続する Cosminexus DABroker Library のホスト
名を設定します。設定された値は,Cosminexus
DABroker Library の setServerName メソッドに
渡されます。
portNumber
java.lang.Integer
接続する Cosminexus DABroker Library のポート
番号を設定します。設定された値は,Cosminexus
DABroker Library の setPortNumber メソッドに
渡されます。デフォルト値は 40179 です。
databaseName
java.lang.String
接続するデータベースの種別を設定します。設定
された値は,Cosminexus DABroker Library の
setDatabaseName メソッドに渡されます。
次の値が指定できます。
• HIRDB
HiRDB に接続する場合に指定します。
• ORACLE,ORACLE8I
Oracle に接続する場合に指定します。
DBConnector_DABJ_XA_Cosminexus_RM.rar の
場合,デフォルト値は HIRDB です。
DBEnv
java.lang.String
Cosminexus DABroker Library の接続先データ
ベース定義情報を設定します。設定された値は,
Cosminexus DABroker Library の setDBEnv メ
ソッドに渡されます。
encodLang
java.lang.String
エンコード文字形態を設定します。設定された値
は,Cosminexus DABroker Library の
setEncodLang メソッドに渡されます。
232
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
JDBC_IF_TRC
java.lang.Boolean
プロパティの値(config-property-value)
JDBC インタフェースメソッドトレースの取得の
有無を設定します。設定された値は,Cosminexus
DABroker Library の setJDBC_IF_TRC メソッド
に渡されます。
• true を指定した場合
トレースを取得します。
• false を指定した場合
トレースを取得しません。
なお,true を指定した場合,Cosminexus Driver
が出力するトレースは,Cosminexus Component
Container からセットされる PrintWriter と,
ユーザがコネクションファクトリ
(javax.sql.DataSource クラス)の setLogWriter()
メソッドで指定した PrintWriter に出力します。
デフォルト値は false です。
SV_EVENT_TRC
java.lang.Boolean
Cosminexus DABroker Library とのイベントト
レースの取得の有無を設定します。設定された値
は,Cosminexus DABroker Library の
setSV_EVENT_TRC メソッドに渡されます。
• true を指定した場合
トレースを取得します。
• false を指定した場合
トレースを取得しません。
なお,true を指定した場合,Cosminexus Driver
が出力するトレースは,Cosminexus Component
Container からセットされる PrintWriter と,
ユーザがコネクションファクトリ
(javax.sql.DataSource クラス)の setLogWriter()
メソッドで指定した PrintWriter に出力します。
デフォルト値は false です。
TRC_NO
java.lang.Integer
トレースのエントリ数を設定します。設定された
値は,Cosminexus DABroker Library の
setTRC_NO メソッドに渡されます。デフォルト値
は 500 です。
uapName
java.lang.String
アプリケーション名称を設定します。設定された
値は,Cosminexus DABroker Library の
setUapName メソッドに渡されます。
bufSize ※
java.lang.Integer
Cosminexus DABroker Library からの受信データ
のバッファ長を,1 ∼ 16000 の範囲(単位:キロ
バイト)で設定します。設定された値は,
Cosminexus DABroker Library の setBufSize メ
ソッドに渡されます。デフォルト値は 64 です。
rowSize
java.lang.Integer
Cosminexus DABroker Library が JDBC で取り扱
うバッファ長を,16 ∼ 512 の範囲(単位:メガバ
イト)で設定します。設定された値は,
Cosminexus DABroker Library の setRowSize メ
ソッドに渡されます。デフォルト値は 16 です。
233
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
OSAuthorize
java.lang.Boolean
プロパティの値(config-property-value)
OS 認証機能を使用してデータベースに接続するか
どうかを設定します。設定された値は,
Cosminexus DABroker Library の
setOSAuthorize メソッドに渡されます。
• true を指定した場合
OS 認証機能を使用します。
• false を指定した場合
OS 認証機能を使用しません。
デフォルト値は false です。
HiRDBCursorMode
java.lang.Boolean
HiRDB で検索時にカーソルが Commit,または
Rollback にわたって有効かどうかを設定します。
設定された値は,Cosminexus DABroker Library
の setHiRDBCursorMode メソッドに渡されます。
• true を指定した場合
カーソルは保持されます。アプリケーションは
続けて Fetch することができます。
• false を指定した場合
カーソルはクローズされますが,ステートメン
トは有効です。アプリケーションは,Prepare
しないで,再度 Execute できます。
デフォルト値は false です。
blockUpdate
java.lang.Boolean
接続データベースが HiRDB の場合,?パラメタ
を使用したデータベースの更新で,複数のパラメ
タセットを一度に処理するかどうかを設定します。
設定された値は,Cosminexus DABroker Library
の setBlockUpdate メソッドに渡されます。
• true を指定した場合
複数のパラメタセットを一度に処理します。
• false を指定した場合
複数のパラメタセットを一つずつ分割して処理
します。
デフォルト値は false です。
executeDirectMode
java.lang.Boolean
接続データベースが HiRDB の場合,Statement
クラスを使用した INSERT,UPDATE,DELETE
などのデータベースの更新で,HiRDB の
EXECUTE DIRECT 機能を使用するかどうかを設
定します。設定された値は,Cosminexus
DABroker Library の setExecuteDirectMode メ
ソッドに渡されます。
• true を指定した場合
Execute Direct 機能を使用します。
• false を指定した場合
Execute Direct 機能を使用しません。
デフォルト値は false です。
234
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
SQLWarningIgnore
java.lang.Boolean
プロパティの値(config-property-value)
データベースから返される警告を Connection クラ
スで保持するかどうかを設定します。設定された
値は,Cosminexus DABroker Library の
setSQLWarningIgnore メソッドに渡されます。
• true を指定した場合
警告を保持しません。
• false を指定した場合
警告を保持します。
デフォルト値は false です。
LONGVARBINARY_A
ccess
java.lang.String
LONGVARBINARY(列属性 BLOB,列属性
BINARY)のデータベースアクセス方法を設定し
ます。設定された値は,Cosminexus DABroker
Library の setLONGVARBINARY_Access メソッ
ドに渡されます。
• REAL
• LOCATOR
デフォルト値は REAL です。
bufferPoolSize
java.lang.Integer
受信データのバッファをプールする最大数を設定
します。設定された値は,Cosminexus DABroker
Library の setBufferPoolSize メソッドに渡されま
す。
デフォルト値は 0 です。
XACloseString
java.lang.String
XA_CLOSE 文字列を設定します。設定された値
は,Cosminexus DABroker Library の
setXACloseString メソッドに渡されます。
RMID
java.lang.Integer
リソースマネジャの識別子を,1 以上の正の整数で
設定します。設定された値は,Cosminexus
DABroker Library の setRMID メソッドに渡され
ます。デフォルト値は 1 です。
XAThreadMode
java.lang.Boolean
XA 使用時のスレッドモードを設定します。設定さ
れた値は,Cosminexus DABroker Library の
setXAThreadMode メソッドに渡されます。
• true を指定した場合
マルチスレッドモード
• false を指定した場合
シングルスレッドモード
デフォルト値は true です。
235
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
XALocalCommitMode
java.lang.Boolean
プロパティの値(config-property-value)
XA 使用時,トランザクションが分散トランザク
ションでないとき,データベースのオートコミッ
トモードを有効にするかどうかを設定します。設
定された値は Cosminexus DABroker Library の
setXALocalCommitMode メソッドに渡されます。
• true を指定した場合
データベースのオートコミットを有効にします。
• false を指定した場合
データベースのオートコミットを無効にします。
デフォルト値は true です。
PreparedStatementPo
olSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの PreparedStatement のプールサイズを設
定します。0 ∼ 1024 の整数で指定します。デフォ
ルト値は 10 です。また,
PreparedStatementPoolSize と
CallableStatementPoolSize の合計値は,1024 以
下に設定してください。有効範囲外の値を指定し
た場合は,デフォルト値が設定されます。
CallableStatementPoo
lSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの CallableStatement のプールサイズを設
定します。0 ∼ 1024 の整数で指定します。デフォ
ルト値は 10 です。また,
PreparedStatementPoolSize と
CallableStatementPoolSize の合計値は,1024 以
下に設定してください。有効範囲外の値を指定し
た場合は,デフォルト値が設定されます。
CancelStatement
java.lang.Boolean
トランザクションタイムアウトや業務アプリケー
ション強制停止時に,Statement クラス,
CallableStatement クラスおよび
PreparedStatement クラスで実行中の SQL を
キャンセルするかどうかを指定します。
• true を指定した場合
実行中の SQL をキャンセルします。
• false を指定した場合
実行中の SQL をキャンセルしません。
HiRDB に接続する場合は,false を指定してくだ
さい。
Oracle に接続する場合で,データベースのサーバ
またはクライアントのどちらかが Windows プラッ
トフォームで,専用サーバ接続をする場合,false
を設定してください。
DBConnector_DABJ_XA.rar を使用する場合に指
定できます。
236
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
ConnectionIDUpdate
java.lang.Boolean
プロパティの値(config-property-value)
コネクション ID を DataSource#getConnection メ
ソッドごとに更新するかどうかを指定します。
• true を指定した場合
DataSource#getConnection メソッドのたびに
コネクション ID を生成します。
• false を指定した場合
最初の DataSource#getConnection メソッドで
コネクション ID を生成し,そのあとは更新しま
せん。
デフォルト値は false です。
このプロパティは,接続するデータベースが
Oracle の場合に指定できます。
logLevel
java.lang.String
DB Connector が出力するログ・トレースのレベル
を指定します。
次の値が指定できます。
• 0 または ERROR
• 10 または WARNING
• 20 または INFORMATION
デフォルト値は,0 または ERROR です。
注※
bufSize プロパティに設定するバッファサイズを見積もるための計算式は次のとおり
です。
ローカルキューまたは転送キューを使用する場合
(5000 + N + M + L + S)/1024(小数点以下切り上げ)
(単位:キロバイト)
• N =ユーザが設定できる JMS ヘッダの設定サイズ
設定するヘッダによって次の値を加算します。
JMSReplyTo:シリアライズしたオブジェクトのサイズ
JMSCorrelationID:半角文字数+全角文字数× 3
JMSType:半角文字数+全角文字数× 3
• M = JMS 定義プロパティの設定サイズ
設定するプロパティによって次の値を加算します。
JMSXGroupID:半角文字数+全角文字数× 3
JMSXGroupSeq:100
• L=l+m
l:ユーザ定義プロパティ名のサイズ((半角文字数+全角文字数× 3)×プロ
パティ数)
m:ユーザ定義プロパティ値のサイズ
プロパティの型によって次の値を加算します。
java.lang.String:(半角文字数+全角文字数× 3)×プロパティ数
java.lang.String 以外:100 ×プロパティ数
237
6. コンフィグレーションプロパティ
• S = JMS メッセージのペイロード設定サイズ
メッセージのインタフェースによって次の値を加算します。
TextMessage:半角文字数+全角文字数× 3
BytesMessage:半角文字数+全角文字数× 2
ObjectMessage:シリアライズしたオブジェクトのサイズ
共用キューを使用する場合
(1000 + S)/1024(小数点以下切り上げ)
(単位:キロバイト)
• S = JMS メッセージのペイロード設定サイズ
メッセージのインタフェースによって次の値を加算します。
TextMessage:半角文字数+全角文字数× 3
BytesMessage:半角文字数+全角文字数× 2
ObjectMessage:シリアライズしたオブジェクトのサイズ
HiRDB を使用する場合で,サイズの大きいメッセージを送受信するときには,連携
先の DB Connector の bufSize プロパティをメッセージのサイズより十分大きく設
定してください。bufSize プロパティの値が小さいと,メッセージの受信に失敗する
場合があります。
(2) HiRDB Type4 JDBC Driver を使用して HiRDB に接続する場合
• DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar
トランザクション管理をしない場合,またはローカルトランザクションを使用する場
合に使用します。
指定できるプロパティについては,表 6-6 を参照してください。
• DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar
グローバルトランザクションを使用する場合に使用します。
指定できるプロパティについては,表 6-7 を参照してください。
表 6-6 DBConnector_HiRDB_Type4_CP_Cosminexus_RM.rar を使用する場合に指定で
きるプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
linkedResourceAdapte
rName
java.lang.String
連携する Cosminexus RM リソースアダプタの表
示名を指定します。
DBConnector_HiRDB_Type4_CP_Cosminexus_R
M.rar を使用する場合に指定できます。
description
java.lang.String
データベースへの接続に必要な接続付加情報を設
定します。設定された値は,HiRDB Type4 JDBC
Driver の setDescription メソッドに渡されます。
DBHostName
java.lang.String
接続する HiRDB のホスト名を設定します。設定
された値は,HiRDB Type4 JDBC Driver の
setDBHostName メソッドに渡されます。
238
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
environmentVariables
java.lang.String
HiRDB クライアント環境変数を指定します。設定
された値は,HiRDB Type4 JDBC Driver の
setEnvironmentVariables メソッドに渡されます。
loginTimeout
java.lang.Integer
getConnection メソッドで Connection オブジェク
トを取得する際の,HiRDB サーバとの物理接続確
立の最大待ち時間(秒)を指定します。
デフォルト値は 8 です。
encodeLang
java.lang.String
データ変換時の文字セット名称を設定します。設
定された値は,HiRDB Type4 JDBC Driver の
setEncodeLang メソッドに渡されます。
JDBC_IF_TRC
java.lang.Boolean
JDBC インタフェースメソッドトレースの取得の
有無を設定します。設定された値は,HiRDB
Type4 JDBC Driver の setJDBC_IF_TRACE メ
ソッドに渡されます。
デフォルト値は false です。
TRC_NO
java.lang.Integer
JDBC インタフェースメソッドトレースのエント
リ数を設定します。設定された値は,HiRDB
Type4 JDBC Driver の setTRC_NO メソッドに渡
されます。
デフォルト値は 500 です。
uapName
java.lang.String
アプリケーション名称を設定します。設定された
値は,HiRDB Type4 JDBC Driver の
setUapName メソッドに渡されます。
LONGVARBINARY_A
ccess
java.lang.String
JDBC SQL タイプ LONGVARBINARY(HiRDB
データ型である列属性 BLOB,列属性 BINARY)
のデータベースアクセス方法を指定します。設定
された値は,HiRDB Type4 JDBC Driver の
setLONGVARBINARY_Access メソッドに渡され
ます。
デフォルト値は REAL です。
SQLInNum
java.lang.Integer
実行する SQL の入力パラメタの最大数を指定しま
す。設定された値は,HiRDB Type4 JDBC Driver
の setSQLInNum メソッドに渡されます。
デフォルト値は 300 です。
SQLOutNum
java.lang.Integer
実行する SQL の検索項目の最大数を指定します。
設定された値は,HiRDB Type4 JDBC Driver の
setSQLOutNum メソッドに渡されます。
デフォルト値は 300 です。
239
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
SQLWarningLevel
java.lang.String
SQL 実行時に発生した警告保持レベルを指定しま
す。設定された値は,HiRDB Type4 JDBC Driver
の setSQLWarningLevel メソッドに渡されます。
デフォルト値は SQLWARN です。
DBConnector_HiRDB_Type4_CP_Cosminexus_R
M.rar を使用する場合,IGNORE は指定しないで
ください。指定した場合,Cosminexus RM の
キューから取り出すメッセージが破損するおそれ
があります。
SQLWarningIgnore
java.lang.Boolean
データベースから返される警告を Connection クラ
スで保持しないかどうかの情報を設定します。設
定された値は,HiRDB Type4 JDBC Driver の
setSQLWarningIgnore メソッドに渡されます。
デフォルト値は false です。
HiRDBCursorMode
java.lang.Boolean
HiRDB がコミットを行った場合に ResultSet クラ
スのオブジェクトを有効とするかを指定します。
設定された値は,HiRDB Type4 JDBC Driver の
setHiRDBCursorMode メソッドに渡されます。
デフォルト値は false です。
maxBinarySize ※
java.lang.Integer
JDBC SQL タイプ LONGVARBINARY 型データ
取得時のデータサイズの上限を設定します。設定
された値は,HiRDB Type4 JDBC Driver の
setMaxBinarySize メソッドに渡されます。
DBConnector_HiRDB_Type4_CP.rar を使用する
場合,デフォルト値は 0 です。
DBConnector_HiRDB_Type4_CP_Cosminexus_R
M.rar を使用する場合,デフォルト値は 64000 で
す。
DBConnector_HiRDB_Type4_CP_Cosminexus_R
M.rar を使用する場合,0 は指定しないでくださ
い。
LONGVARBINARY_A
ccessSize
java.lang.Integer
HiRDB サーバに対して一度に要求する JDBC
SQL タイプ LONGVARBIANRY 型データの長さ
を指定します。設定された値は,HiRDB Type4
JDBC Driver の
setLONGVARBINARY_AccessSize メソッドに渡
されます。
デフォルト値は 0 です。
PreparedStatementPo
olSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの PreparedStatement のプールサイズを設
定します。有効範囲は 0 ∼ 4095 です。
デフォルト値は 10 です。
CallableStatementPoo
lSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの CallableStatement のプールサイズを設
定します。有効範囲は 0 ∼ 4095 です。
デフォルト値は 10 です。
240
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
CancelStatement
java.lang.Boolean
プロパティの値(config-property-value)
トランザクションタイムアウトや UAP 強制停止時
にステートメントキャンセルを実行するかどうか
を設定します。
• true を指定した場合
実行中の SQL をキャンセルします。
• false を指定した場合
実行中の SQL をキャンセルしません。
デフォルト値は true です。
DBConnector_HiRDB_Type4_CP.rar を使用する
場合に指定できます。
logLevel
java.lang.String
DB Connector が出力するログトレースのレベルを
指定します。
• 0 または ERROR
• 10 または WARNING
• 20 または INFORMATION
デフォルト値は 0 または ERROR です。
注※
maxBinarySize プロパティに設定するデータサイズを見積もるための計算式は,bufSize プロ
パティに設定するバッファサイズを見積もるための計算式と同じです。ただし,
maxBinarySize プロパティと bufSize プロパティでは,データサイズの単位が異なります。そ
のため,見積もったデータサイズを設定する際は,単位に注意してください。
データサイズを見積もるための計算式の詳細は,「6.3(1) Cosminexus DABroker Library を使
用して Oracle または HiRDB に接続する場合」の表下の注釈を参照してください。
データサイズには,0 を指定しないでください。0 を指定した場合,メモリ不足が発生し,
J2EE サーバがダウンするおそれがあります。
HiRDB を使用する場合で,サイズの大きいメッセージを送受信するときには,連携先の
DB Connector の maxBinarySize プロパティをメッセージのサイズより十分大きく設定
してください。maxBinarySize プロパティの値が小さいと,メッセージの受信に失敗す
る場合があります。
表 6-7 DBConnector_HiRDB_Type4_XA_Cosminexus_RM.rar を使用する場合に指定で
きるプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
linkedResourceAdapte
rName
java.lang.String
連携する Cosminexus RM リソースアダプタの表
示名を指定します。
DBConnector_HiRDB_Type4_XA_Cosminexus_R
M.rar を使用する場合に指定できます。
description
java.lang.String
データベースへの接続に必要な接続付加情報を設
定します。設定された値は,HiRDB Type4 JDBC
Driver の setDescription メソッドに渡されます。
241
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
DBHostName
java.lang.String
接続する HiRDB のホスト名を設定します。設定
された値は,HiRDB Type4 JDBC Driver の
setDBHostName メソッドに渡されます。
environmentVariables
java.lang.String
HiRDB クライアント環境変数を指定します。設定
された値は,HiRDB Type4 JDBC Driver の
setEnvironmentVariables メソッドに渡されます。
XAOpenString
java.lang.String
XA_OPEN 文字列を設定します。設定された値は,
HiRDB Type4 JDBC Driver の setXAOpenString
メソッドに渡されます。
loginTimeout
java.lang.Integer
getConnection メソッドで Connection オブジェク
トを取得する際の,HiRDB サーバとの物理接続確
立の最大待ち時間(秒)を指定します。設定され
た値は,HiRDB Type4 JDBC Driver の
setLoginTimeout メソッドに渡されます。
デフォルト値は 8 です。
encodeLang
java.lang.String
データ変換時の文字セット名称を設定します。設
定された値は,HiRDB Type4 JDBC Driver の
setEncodeLang メソッドに渡されます。
JDBC_IF_TRC
java.lang.Boolean
JDBC インタフェースメソッドトレースの取得の
有無を設定します。設定された値は,HiRDB
Type4 JDBC Driver の setJDBC_IF_TRACE メ
ソッドに渡されます。
TRC_NO
java.lang.Integer
JDBC インタフェースメソッドトレースのエント
リ数を設定します。設定された値は,HiRDB
Type4 JDBC Driver の setTRC_NO メソッドに渡
されます。
デフォルト値は 500 です。
uapName
java.lang.String
アプリケーション名称を設定します。設定された
値は,HiRDB Type4 JDBC Driver の
setUapName メソッドに渡されます。
LONGVARBINARY_A
ccess
java.lang.String
JDBC SQL タイプ LONGVARBINARY(HiRDB
データ型である列属性 BLOB,列属性 BINARY)
のデータベースアクセス方法を指定します。設定
された値は,HiRDB Type4 JDBC Driver の
setLONGVARBINARY_Access メソッドに渡され
ます。
デフォルト値は REAL です。
SQLInNum
java.lang.Integer
実行する SQL の入力パラメタの最大数を指定しま
す。設定された値は,HiRDB Type4 JDBC Driver
の setSQLInNum メソッドに渡されます。
デフォルト値は 300 です。
SQLOutNum
java.lang.Integer
実行する SQL の検索項目の最大数を指定します。
設定された値は,HiRDB Type4 JDBC Driver の
setSQLOutNum メソッドに渡されます。
デフォルト値は 300 です。
242
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
SQLWarningLevel
java.lang.String
SQL 実行時に発生した警告保持レベルを指定しま
す。設定された値は,HiRDB Type4 JDBC Driver
の setSQLWarningLevel メソッドに渡されます。
デフォルト値は SQLWARN です。
DBConnector_HiRDB_Type4_XA_Cosminexus_R
M.rar を使用する場合,IGNORE は指定しないで
ください。指定した場合,Cosminexus RM の
キューから取り出すメッセージが破損するおそれ
があります。
SQLWarningIgnore
java.lang.Boolean
データベースから返される警告を Connection クラ
スで保持しないかどうかの情報を設定します。設
定された値は,HiRDB Type4 JDBC Driver の
setSQLWarningIgnore メソッドに渡されます。
デフォルト値は false です。
HiRDBCursorMode
java.lang.Boolean
HiRDB がコミットを行った場合に ResultSet クラ
スのオブジェクトを有効とするかを指定します。
設定された値は,HiRDB Type4 JDBC Driver の
setHiRDBCursorMode メソッドに渡されます。
デフォルト値は false です。
maxBinarySize ※
java.lang.Integer
JDBC SQL タイプ LONGVARBINARY 型データ
取得時のデータサイズの上限を設定します。設定
された値は,HiRDB Type4 JDBC Driver の
setMaxBinarySize メソッドに渡されます。
DBConnector_HiRDB_Type4_XA.rar を使用する
場合,デフォルト値は 0 です。
DBConnector_HiRDB_Type4_XA_Cosminexus_R
M.rar を使用する場合,デフォルト値は 64000 で
す。
DBConnector_HiRDB_Type4_XA_Cosminexus_R
M.rar を使用する場合,0 は指定しないでくださ
い。
LONGVARBINARY_A
ccessSize
java.lang.Integer
HiRDB サーバに対して一度に要求する JDBC
SQL タイプ LONGVARBIANRY 型データの長さ
を指定します。設定された値は,HiRDB Type4
JDBC Driver の
setLONGVARBINARY_AccessSize メソッドに渡
されます。
デフォルト値は 0 です。
XACloseString
java.lang.String
XA クローズ文字列を設定します。設定された値
は,HiRDB Type4 JDBC Driver の
setXACloseString メソッドに渡されます。
XALocalCommitMode
java.lang.Boolean
トランザクションがグローバルトランザクション
でない場合にオートコミット機能を有効にするか
を設定します。設定された値は HiRDB Type4
JDBC Driver の setXALocalCommitMode メソッ
ドに渡されます。
デフォルト値は true です。
243
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
PreparedStatementPo
olSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの PreparedStatement のプールサイズを設
定します。有効範囲は 0 ∼ 4095 です。
デフォルト値は 10 です。
CallableStatementPoo
lSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの CallableStatement のプールサイズを設
定します。有効範囲は 0 ∼ 4095 です。
デフォルト値は 10 です。
CancelStatement
java.lang.Boolean
トランザクションタイムアウトや UAP 強制停止時
にステートメントキャンセルを実行するかどうか
を設定します。
• true の場合
実行中の SQL をキャンセルします。
• false の場合
実行中の SQL をキャンセルしません。
デフォルト値は true です。
DBConnector_HiRDB_Type4_XA.rar を使用する
場合に指定できます。
logLevel
java.lang.String
DB Connector が出力するログトレースのレベルを
指定します。
• 0 または ERROR
• 10 または WARNING
• 20 または INFORMATION
デフォルト値は 0 または ERROR です。
注※
maxBinarySize プロパティに設定するデータサイズを見積もるための計算式は,bufSize プロ
パティに設定するバッファサイズを見積もるための計算式と同じです。ただし,
maxBinarySize プロパティと bufSize プロパティでは,データサイズの単位が異なります。そ
のため,見積もったデータサイズを設定する際は,単位に注意してください。
データサイズを見積もるための計算式の詳細は,
「6.3(1) Cosminexus DABroker Library を使
用して Oracle または HiRDB に接続する場合」の表下の注釈を参照してください。
データサイズには,0 を指定しないでください。0 を指定した場合,メモリ不足が発生し,
J2EE サーバがダウンするおそれがあります。
HiRDB を使用する場合で,サイズの大きいメッセージを送受信するときには,連携先の
DB Connector の maxBinarySize プロパティをメッセージのサイズより十分大きく設定
してください。maxBinarySize プロパティの値が小さいと,メッセージの受信に失敗す
る場合があります。
(3) Oracle JDBC Thin Driver を使用して Oracle に接続する場合
• DBConnector_Oracle_CP_Cosminexus_RM.rar
トランザクション管理をしない場合,またはローカルトランザクションを使用する場
合に使用します。
244
6. コンフィグレーションプロパティ
指定できるプロパティについては,表 6-8 を参照してください。
• DBConnector_Oracle_XA_Cosminexus_RM.rar
グローバルトランザクションを使用する場合に使用します。
指定できるプロパティについては,表 6-9 を参照してください。
なお,プロパティで設定可能な値については,Oracle のマニュアルを参照してください。
表 6-8 DBConnector_Oracle_CP_Cosminexus_RM.rar を使用する場合に指定できるプ
ロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
linkedResourceAdapte
rName
java.lang.String
連携する Cosminexus RM リソースアダプタの表
示名を指定します。
DBConnector_Oracle_CP_Cosminexus_RM.rar
を使用する場合に指定できます。
databaseName
java.lang.String
Oracle サーバ上の特定のデータベース名(SID)
を指定します。設定された値は,Oracle JDBC
Thin Driver の setDatabaseName メソッドに渡さ
れます
serverName
java.lang.String
Oracle サーバのホスト名または IP アドレスを指
定します。設定された値は,Oracle JDBC Thin
Driver の setServerName メソッドに渡されます。
portNumber
java.lang.Integer
Oracle のサーバが要求をリスニングするポート番
号を指定します。デフォルトは 1521 番ポートで
す。設定された値は,Oracle JDBC Thin Driver
の setPortNumber メソッドに渡されます。
url
java.lang.String
Oracle JDBC Thin Driver がデータベースに接続
するために必要な JDBC URL を指定します。
このプロパティに値が設定された場合,
databaseName,portNumber,serverName で指
定された値は無視されます。また,ユーザが url
で指定を行う場合は JDBC URL に thin ドライバ
を指定します。
(例)
jdbc:oracle:thin:@ServerA:1521:service1
loginTimeout
java.lang.Integer
データベースへの接続試行のタイムアウト(単位:
ミリ秒)を指定します。0 を指定するとタイムアウ
トは無限となり,接続が確立されるかエラーが発
生するまでブロックされます。デフォルト値は
8000 です。設定された値は Oracle JDBC Thin
Driver の setLoginTimeout メソッドに渡されま
す。Oracle JDBC Thin Driver 9.2.0.8 以降,
10.1.0.5 以降および 10.2 以降の場合は秒単位に切
り上げて setLoginTimeout メソッドに渡されま
す。
PreparedStatementPo
olSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの PreparedStatement のプールサイズを設
定します。デフォルトは 10 です。
245
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
CallableStatementPoo
lSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの CallableStatement のプールサイズを設
定します。デフォルトは 10 です。
CancelStatement
java.lang.Boolean
トランザクションタイムアウトや業務アプリケー
ション強制停止時に,Statement クラス,
CallableStatement クラスおよび
PreparedStatement クラスで実行中の SQL を
キャンセルするかどうかを指定します。
• true を指定した場合
実行中の SQL をキャンセルします。
• false を指定した場合
実行中の SQL をキャンセルしません。
デフォルト値は true です。
専用サーバ接続をする場合は,false を指定してく
ださい。
DBConnector_Oracle_CP.rar を使用する場合に,
指定できます。
ConnectionIDUpdate
java.lang.Boolean
コネクション ID を DataSource#getConnection メ
ソッドごとに更新するかどうかを指定します。
• true を指定した場合
DataSource#getConnection メソッドのたびに
コネクション ID を生成します。
• false を指定した場合
最初の DataSource#getConnection メソッドで
コネクション ID を生成し,そのあとは更新しま
せん。
デフォルト値は false です。
logLevel
java.lang.String
DB Connector が出力するログ・トレースのレベル
を指定します。
次の値が指定できます。
• 0 または ERROR
• 10 または WARNING
• 20 または INFORMATION
デフォルトは,0 または ERROR です。
表 6-9 DBConnector_Oracle_XA_Cosminexus_RM.rar を使用する場合に指定できるプ
ロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
linkedResourceAdapte
rName
246
java.lang.String
プロパティの値(config-property-value)
連携する Cosminexus RM リソースアダプタの表
示名を指定します。
DBConnector_Oracle_CP_Cosminexus_RM.rar
を使用する場合に指定できます。
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
プロパティの値(config-property-value)
databaseName
java.lang.String
Oracle サーバ上の特定のデータベース名(SID)
を指定します。設定された値は,Oracle JDBC
Thin Driver の setDatabaseName メソッドに渡さ
れます。
serverName
java.lang.String
Oracle サーバのホスト名または IP アドレスを指
定します。設定された値は,Oracle JDBC Thin
Driver の setServerName メソッドに渡されます。
portNumber
java.lang.Integer
Oracle のサーバが要求をリスニングするポート番
号を指定します。デフォルトは 1521 番ポート。設
定された値は,Oracle JDBC Thin Driver の
setPortNumber メソッドに渡されます。
url
java.lang.String
Oracle JDBC Thin Driver がデータベースに接続
するために必要な JDBC URL を指定します。
このプロパティに値が設定された場合,
databaseName,portNumber,serverName で指定
された値は無視されます。また,ユーザが url で
指定を行う場合は JDBC URL に thin ドライバを
指定します。
loginTimeout
java.lang.Integer
データベースへの接続試行のタイムアウト(単位:
ミリ秒)を指定します。0 を指定するとタイムアウ
トは無限となり,接続が確立されるかエラーが発
生するまでブロックされます。デフォルト値は
8000 です。設定された値は Oracle JDBC Thin
Driver の setLoginTimeout メソッドに渡されま
す。Oracle JDBC Thin Driver 9.2.0.8 以降,
10.1.0.5 以降および 10.2 以降の場合は秒単位に切
り上げて setLoginTimeout メソッドに渡されま
す。
sessionTimeout
java.lang.Integer
Oracle サーバでのセッションタイムアウト(トラ
ンザクションブランチがアクティブでない状態で
いられる最大時間)を秒単位で指定します。J2EE
サーバのトランザクションタイムアウトよりも長
い時間を指定する必要があります。デフォルト値
は 300 秒です。設定された値は Oracle JDBC
Thin Driver の
XAResource.setTransactionTimeout メソッドに
渡されます。
PreparedStatementPo
olSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの PreparedStatement のプールサイズを設
定します。デフォルト値は 10 です。
CallableStatementPoo
lSize
java.lang.Integer
コネクションプールに割り当てられるコネクショ
ンごとの CallableStatement のプールサイズを設
定します。デフォルト値は 10 です。
247
6. コンフィグレーションプロパティ
プロパティ名
データ型
(config-property-name) (config-property-type)
CancelStatement
java.lang.Boolean
プロパティの値(config-property-value)
トランザクションタイムアウトや業務アプリケー
ション強制停止時に,Statement クラス,
CallableStatement クラスおよび
PreparedStatement クラスで実行中の SQL を
キャンセルするかどうかを指定します。
• true を指定した場合
実行中の SQL をキャンセルします。
• false を指定した場合
実行中の SQL をキャンセルしません。
デフォルト値は true です。
専用サーバ接続をする場合は,false を指定してく
ださい。DBConnector_Oracle_XA.rar を使用する
場合に指定できます。
ConnectionIDUpdate
java.lang.Boolean
コネクション ID を DataSource#getConnection メ
ソッドごとに更新するかどうかを指定します。
• true を指定した場合
DataSource#getConnection メソッドのたびに
コネクション ID を生成します。
• false を指定した場合
最初の DataSource#getConnection メソッドで
コネクション ID を生成し,そのあとは更新しま
せん。
デフォルト値は false です。
logLevel
java.lang.String
DB Connector が出力するログ・トレースのレベル
を指定します。
次の値が指定できます。
• 0 または ERROR
• 10 または WARNING
• 20 または INFORMATION
デフォルト値は,0 または ERROR です。
248
7
インタフェース
Cosminexus RM のアプリケーションは,Cosminexus RM が
提供するインタフェースを使用して実装します。アプリケー
ションの実装については,「2.6 アプリケーションからのメッ
セージ操作」を参照してください。
この章では,Cosminexus RM が提供するインタフェースの種
類,インタフェースの種類別のクラス,メソッドの詳細および
アプリケーションの障害時に設定される障害コードについて説
明します。
7.1 インタフェースの種類
7.2 JMS インタフェースの一覧
7.3 JMS インタフェース継承図
7.4 JMS インタフェースの詳細
7.5 転送データ相互接続用インタフェースの一覧
7.6 転送データ相互接続用インタフェース継承図
7.7 転送データ相互接続用インタフェースの使い方
7.8 転送データ相互接続用インタフェースの詳細
7.9 障害コードの詳細
249
7. インタフェース
7.1 インタフェースの種類
7.1.1 Cosminexus RM が提供するインターフェースの種類
Cosminexus RM が提供するインタフェース用のパッケージには,次の 2 種類がありま
す。
● JMS インタフェース
Cosminexus RM がメッセージを送受信する際に使用するインターフェースです。永
続版リソースアダプタ,非永続版リソースアダプタの両方で使用します。
JMS インターフェースの詳細については,「7.2 JMS インタフェースの一覧」,
「7.3
JMS インタフェース継承図」,および「7.4 JMS インタフェースの詳細」を参照
してください。
● 転送データ相互接続用インタフェース
BytesContainer を使用して,Cosminexus RM 同士,または Cosminexus RM と他ベ
ンダのメッセージングシステムなどとの間でメッセージを送受信する際に使用するイ
ンターフェースです。非永続版リソースアダプタでは使用できません。
転送データ相互接続用インタフェースの詳細については,
「7.5 転送データ相互接続
用インタフェースの一覧」
,「7.6 転送データ相互接続用インタフェース継承図」,
「7.7 転送データ相互接続用インタフェースの使い方」,および「7.8 転送データ相
互接続用インタフェースの詳細」を参照してください。
7.1.2 非永続版リソースアダプタ使用時の注意事項
非永続版リソースアダプタの場合,永続版リソースアダプタと同様に JMS インタフェー
スを使用できます。ただし,転送データ相互接続用インターフェースは使用できません。
また,JMS インターフェース使用時には次の点に注意してください。
● BytesContainer を使用した処理はできません。
● ローカルキューに関するインターフェースだけを使用できます。そのほかの種類の
キューに関するインターフェースは使用できません。
● 非永続版リソースアダプタの場合,DB を使用しないため,DB や DB Connector に関
係するインターフェースは使用できません。
250
7. インタフェース
7.2 JMS インタフェースの一覧
Cosminexus RM の JMS インターフェースは,永続版リソースアダプタ,非永続版リ
ソースアダプタともに使用できます。
JMS インタフェースは,次に示すパッケージによって提供されます。
javax.jms
Cosminexus RM が提供する JMS インタフェースの一覧について,次の表に示します。
表 7-1 JMS インタフェースの一覧
項番
インタフェース名※
機能
1
BytesMessage
設定したデータをバイトストリームで保持します。提供する機
能は,ペイロードの設定と取得およびアクセスモードの変更で
す。
なお,Message インタフェースが提供する機能も含みます。
2
ConnectionMetaData
JMS の基本情報を提供します。提供する基本情報は,JMS
API のバージョン,JMS プロバイダのバージョン,JMS プロ
バイダ名および JMSX プロパティ名の列挙などです。
3
DeliveryMode
メッセージの永続化と非永続化を示す定数を提供します。
4
Message
BytesMessage,ObjectMessage および TextMessage のルート
インタフェースです。提供する機能は,ヘッダの設定と取得,
プロパティの設定,取得と初期化,ペイロードの初期化および
メッセージ受信の承認です。
5
ObjectMessage
設定したデータを java.io.Serializable 型で保持します。提供
する機能は,ペイロードの設定と取得です。
なお,Message インタフェースが提供する機能も含みます。
6
Queue
(Destination)
JMS プロバイダ特有のキュー名を保持します。提供する機能
は,キュー名の取得です。
7
QueueBrowser
JMS クライアントがキューからメッセージを削除しないで参
照するための機能を提供します。提供する機能は,現在の
キューにあるメッセージ一覧の取得,メッセージセレクタの取
得,QueueBrowser オブジェクトのクローズおよびキューの取
得です。
8
QueueConnection
(Connection)
アプリケーションが Cosminexus RM にアクセスするために使
用するアプリケーションレベルのハンドルを提供します。提供
する機能は,QueueSession オブジェクトの生成,配送の開始
と停止,ConnectionMetaData オブジェクトの取得,コネク
ションのクローズです。
9
QueueConnectionFactory
(ConnectionFactory)
コネクションを生成する機能を提供します。
251
7. インタフェース
インタフェース名※
項番
機能
10
QueueReceiver
(MessageConsumer)
JMS クライアントがキューからメッセージを取得するための
機能を提供します。提供する機能は,メッセージの受信,メッ
セージセレクタの取得,QueueReceiver オブジェクトのクロー
ズおよびキューの取得です。
11
QueueSender
(MessageProducer)
JMS クライアントがあて先にメッセージを送信するための機
能を提供します。提供する機能は,メッセージの送信,
QueueSender オブジェクトのクローズです。
12
QueueSession
(Session)
アプリケーションが論理的なコネクションハンドルとして利用
するインタフェースです。提供する機能は,Message,
BytesMessage,ObjectMessage,TextMessage,
QueueSender,QueueReceiver および QueueBrowser オブ
ジェクトの生成,ローカルトランザクションのコミットとロー
ルバック,セッションのクローズならびに配送するメッセージ
のリカバーです。
13
TextMessage
設定したデータを java.lang.String 型で保持します。提供する
機能は,ペイロードの設定と取得です。
なお,Message インタフェースが提供する機能も含みます。
注
Sun Microsystems Inc. が提供する JMS 1.0.2b と Cosminexus RM が提供する JMS インタ
フェースとの機能差については,「付録 A JMS 仕様との差異」を参照してください。
注※
丸括弧内は継承元となる親インタフェース名です。
JMS インタフェース使用時の例外クラスは,次に示すパッケージによって提供されま
す。
javax.jms
JMS インタフェース使用時の例外クラスの一覧について,次の表に示します。
表 7-2 JMS インタフェースの例外クラスの一覧
項番
例外クラス名
例外が発生する状況
1
IllegalStateException
メソッドが不正なタイミングや不適切なタイミングで発
行された場合,または JMS プロバイダが要求された操
作に対して適切な状態にない場合
2
InvalidClientIDException
JMS クライアントがコネクションの JMS クライアント
識別子を JMS プロバイダに拒否された値に設定しよう
とした場合
3
InvalidDestinationException
あて先が JMS プロバイダによって理解されない,つま
りあて先が有効でない場合
4
InvalidSelectorException
JMS クライアントが不正な構文のメッセージセレクタ
を JMS プロバイダに指定した場合
252
7. インタフェース
項番
例外クラス名
例外が発生する状況
5
JMSException
JMS API 例外が発生した場合。すべての JMS API 例外
のルートクラスであるため,特定のタイミングに該当し
ません。
6
JMSSecurityException
JMS クライアントが送信したユーザ名またはパスワー
ドが JMS プロバイダに拒否された場合
7
MessageEOFException
BytesMessage インタフェースの読み取り中に予期しな
いストリーム終端に達した場合
8
MessageFormatException
JMS クライアントがメッセージによってサポートされ
ていないデータタイプを使おうとした場合,またはメッ
セージデータを間違った型で読み取ろうとした場合
9
MessageNotReadableException
JMS クライアントが書き込み専用のメッセージを読み
取ろうとした場合
10
MessageNotWriteableException
JMS クライアントが読み取り専用のメッセージに書き
込もうとした場合
11
ResourceAllocationException
JMS プロバイダがメソッドによって要求されたリソー
スを割り当てられない場合
12
TransactionInProgressException
トランザクションが進行中であるために操作が無効であ
る場合
13
TransactionRolledBackException
Session.commit() メソッドの発行の結果が現在のトラン
ザクションのロールバックに帰着する場合
!
注意事項
Cosminexus RM を一つの J2EE サーバに複数デプロイして,一つのアプリケーションから
複数の Cosminexus RM を利用する場合,一つの Cosminexus RM 側で作成したオブジェク
トを他方の Cosminexus RM 側に渡すような操作はしないでください。
例えば,Cosminexus RM1 で作成したメッセージを Cosminexus RM2 の
javax.jms.QueueSender によって送信するなどの操作はしないでください。
253
7. インタフェース
7.3 JMS インタフェース継承図
Cosminexus RM が提供する JMS インタフェースおよび例外クラスには,それぞれ継承
関係があります。
JMS インタフェースの継承について,次の図に示します。
図 7-1 JMS インタフェースの継承
例外クラスの継承について,次の図に示します。
254
7. インタフェース
図 7-2 例外クラスの継承
255
7. インタフェース
7.4 JMS インタフェースの詳細
JMS インタフェースを名前のアルファベット順に説明します。
7.4.1 BytesMessage インタフェース
BytesMessage インタフェースはバイトストリームを含むメッセージを送受信するために
使用します。BytesMessage インタフェースは Message インタフェースを継承している
ため,Message インタフェースの機能を持っています。
(1) ペイロードの設定と取得
BytesMessage インタフェースを使用することによってペイロードを設定および取得でき
ます。このペイロードはバイトストリームです。JMS メッセージの各要素については,
「2.5.1 JMS メッセージの構成」を参照してください。
(2) 形式
public interface
{
public boolean
public byte
public int
public int
BytesMessage extends Message
readBoolean() throws JMSException;
readByte() throws JMSException;
readBytes(byte[] value) throws JMSException;
readBytes(byte[] value, int length)
throws JMSException;
public char
readChar() throws JMSException;
public double readDouble() throws JMSException;
public float
readFloat() throws JMSException;
public int
readInt() throws JMSException;
public long
readLong() throws JMSException;
public short
readShort() throws JMSException;
public int
readUnsignedByte() throws JMSException;
public int
readUnsignedShort() throws JMSException;
public java.lang.String
readUTF() throws JMSException;
public void
reset() throws JMSException;
public void
writeBoolean(boolean value) throws JMSException;
public void
writeByte(byte value) throws JMSException;
public void
writeBytes(byte[] value) throws JMSException;
public void
writeBytes(byte[] value, int offset, int length)
throws JMSException;
public void
writeChar(char value) throws JMSException;
public void
writeDouble(double value) throws JMSException;
public void
writeFloat(float value) throws JMSException;
public void
writeInt(int value) throws JMSException;
public void
writeLong(long value) throws JMSException;
public void
writeObject(java.lang.Object value)
throws JMSException;
public void
writeShort(short value) throws JMSException;
public void
writeUTF(java.lang.String value) throws
JMSException;
}
256
7. インタフェース
(3) フィールド
ありません。
(4) メソッド
「(2) 形式」に記載した順序で各メソッドを説明します。
(a) readBoolean メソッド
public boolean readBoolean() throws JMSException
バイトストリームから boolean 型の値を読み取ります。
● 引数
ありません。
● 戻り値
読み取られた boolean の値です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) readByte メソッド
public byte readByte() throws JMSException
バイトストリームから符号付き 8 ビット値を読み取ります。
● 引数
ありません。
● 戻り値
符号付き 8 ビットとみなされるバイトストリームの次のバイト。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
257
7. インタフェース
例外クラス
説明
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(c) readBytes メソッド
public int readBytes(byte[] value) throws JMSException
バイトストリームからバイト配列を読み取ります。バイトストリームの長さより配列
value の長さが短い場合,配列 value の長さまでのバイトストリームを読み取ることがで
きます。残りのバイトストリームも再度メソッドを発行することによって配列 value の
長さまで読み取ることができます。バイトストリームの長さより配列 value の長さが長
い場合,バイトストリームをすべて読み取ることができます。
このとき,読み取られる総バイト数を示す戻り値は,配列 value の長さよりも短くなり,
バイトストリームから読み取るバイトが残っていないことを表します。バイトストリー
ムからさらに読み取りを実行すると,-1 を返します。
● 引数
引数名
value
説明
データの読み取り先のバッファ
● 戻り値
バッファに読み取られるバイトの総数。ストリームの終端に達してデータがなくなっ
た場合は -1 です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(d) readBytes メソッド
public int readBytes(byte[] value, int length) throws JMSException
258
7. インタフェース
バイトストリームの一部を読み取ります。
● 引数
引数名
説明
value
データの読み取り先のバッファ
length
読み取るバイト数(value.length 以下)
● 戻り値
バッファに読み取られるバイトの総数。ストリームの終端に達してデータがなくなっ
た場合は -1 です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(e) readChar メソッド
public char readChar() throws JMSException
バイトストリームから Unicode 文字値を読み取ります。
● 引数
ありません。
● 戻り値
バイトストリームの次の 2 バイトで表される Unicode 文字。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
259
7. インタフェース
(f) readDouble メソッド
public double readDouble() throws JMSException
バイトストリームから double 値を読み取ります。
● 引数
ありません。
● 戻り値
バイトストリームの次の 8 バイトを double と解釈した値です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(g) readFloat メソッド
public float readFloat() throws JMSException
バイトストリームから float 値を読み取ります。
● 引数
ありません。
● 戻り値
バイトストリームの次の 4 バイトを float と解釈した値です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
260
7. インタフェース
(h) readInt メソッド
public int readInt() throws JMSException
バイトストリームから符号付き 32 ビット整数を読み取ります。
● 引数
ありません。
● 戻り値
バイトストリームの次の 4 バイトを int と解釈した値です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(i) readLong メソッド
public long readLong() throws JMSException
バイトストリームから符号付き 64 ビット整数を読み取ります。
● 引数
ありません。
● 戻り値
バイトストリームの次の 8 バイトを long と解釈した値です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
261
7. インタフェース
(j) readShort メソッド
public short readShort() throws JMSException
バイトストリームから符号付き 16 ビット数を読み取ります。
● 引数
ありません。
● 戻り値
バイトストリームの次の 2 バイトを符号付き 16 ビットと解釈した値です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(k) readUnsignedByte メソッド
public int readUnsignedByte() throws JMSException
バイトストリームから符号なし 8 ビット数を読み取ります。
● 引数
ありません。
● 戻り値
バイトストリームの次のバイトを符号なし 8 ビットと解釈した値です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
262
7. インタフェース
(l) readUnsignedShort メソッド
public int readUnsignedShort() throws JMSException
バイトストリームから符号なし 16 ビット数を読み取ります。
● 引数
ありません。
● 戻り値
バイトストリームの次の 2 バイトを符号なし 16 ビット整数と解釈した値です。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(m)readUTF メソッド
public java.lang.String readUTF() throws JMSException
修正 UTF-8 形式を使用してエンコードされた文字列をバイトストリームから読み取りま
す。一度の発行で読み取られる文字列は 65535 バイトまでです。
● 引数
ありません。
● 戻り値
バイトストリームから読み取られた Unicode 文字列。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの読み取りに
失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
263
7. インタフェース
「7.9 障害コードの詳細」を参照してください。
(n) reset メソッド
public void reset() throws JMSException
ペイロードを書き込み専用モードから読み取り専用モードに移行してから,バイトスト
リームを先頭に再配置します。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージのリセットに
失敗しました。
MessageFormatException
メッセージ形式不正が原因でメッセージのリセットに失敗しまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(o) writeBoolean メソッド
public void writeBoolean(boolean value) throws JMSException
boolean をバイトストリームに 1 バイト値として書き込みます。
● 引数
引数名
value
説明
書き込まれる boolean 値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
264
7. インタフェース
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(p) writeByte メソッド
public void writeByte(byte value) throws JMSException
byte をバイトストリームに 1 バイト値として書き込みます。
● 引数
引数名
value
説明
書き込まれる byte 値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(q) writeBytes メソッド
public void writeBytes(byte[] value) throws JMSException
バイト配列をバイトストリームに書き込みます。
● 引数
引数名
value
説明
書き込まれるバイト配列
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
265
7. インタフェース
例外クラス
MessageNotWriteableException
説明
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(r) writeBytes メソッド
public void writeBytes(byte[] value, int offset, int length)
throws JMSException
バイト配列の一部をバイトストリームに書き込みます。
● 引数
引数名
説明
value
書き込まれるバイト配列値
offset
バイト配列内の初期オフセット
length
書き込まれるバイト数
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(s) writeChar メソッド
public void writeChar(char value) throws JMSException
上位バイトを先頭とする 2 バイト値として,char 型引数をバイトストリームに書き込み
ます。
● 引数
引数名
value
266
説明
書き込まれる char 値
7. インタフェース
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(t) writeDouble メソッド
public void writeDouble(double value) throws JMSException
Double.doubleToLongBits() メソッドを使用して double 型引数を long に変換し,上位バ
イトを先頭とする 8 バイトとして,long 値をバイトストリームに書き込みます。
● 引数
引数名
value
説明
書き込まれる double 値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(u) writeFloat メソッド
public void writeFloat(float value) throws JMSException
Float.floatToIntBits() メソッドを使用して float 型引数を int に変換し,上位バイトを先
頭とする 4 バイトとして,int 値をバイトストリームに書き込みます。
267
7. インタフェース
● 引数
引数名
value
説明
書き込まれる float 値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(v) writeInt メソッド
public void writeInt(int value) throws JMSException
上位バイトを先頭とする 4 バイト値として,int 型引数をバイトストリームに書き込みま
す。
● 引数
引数名
value
説明
書き込まれる int 値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(w)writeLong メソッド
268
7. インタフェース
public void writeLong(long value) throws JMSException
上位バイトを先頭とする 8 バイト値として,long 型引数をバイトストリームに書き込み
ます。
● 引数
引数名
value
説明
書き込まれる long 値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(x) writeObject メソッド
public void writeObject(java.lang.Object value) throws JMSException
オブジェクトをバイトストリームに書き込みます。引数に設定できる型はオブジェクト
化されたプリミティブオブジェクト型(Integer,Double および Long など),String オ
ブジェクトおよびバイト配列だけです。
● 引数
引数名
value
説明
書き込まれる Java プログラミング言語のオブジェクト(Java オ
ブジェクト)
● 戻り値
ありません。
● 例外
例外クラス
java.lang.NullPointerException
説明
引数の値が null なので,ペイロードの書き込みに失敗しました。
269
7. インタフェース
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageFormatException
引数の型が無効なためペイロードの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(y) writeShort メソッド
public void writeShort(short value) throws JMSException
上位バイトを先頭とする 2 バイト値として,short 型引数をバイトストリームに書き込み
ます。
● 引数
引数名
value
説明
書き込まれる short 値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(z) writeUTF メソッド
public void writeUTF(java.lang.String value) throws JMSException
マシンに依存しない UTF-8 エンコーディング形式を使用して,文字列をバイトストリー
ムに書き込みます。一度の発行で書き込まれる文字列は 65535 バイトまでです。
● 引数
270
7. インタフェース
引数名
value
説明
書き込まれる String 型の値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがメッセージの書き込みに
失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
271
7. インタフェース
7.4.2 ConnectionMetaData インタフェース
ConnectionMetaData インタフェースは JMS の基本情報を提供します。
(1) JMS 基本情報の取得
次に示す JMS 基本情報を取得できます。
• JMS API のメジャーバージョン番号
• JMS API のマイナーバージョン番号
• JMS API のバージョン
• JMS プロバイダのメジャーバージョン番号
• JMS プロバイダのマイナーバージョン番号
• JMS プロバイダのバージョン
• JMS プロバイダ名
• JMSX プロパティ名の列挙
(2) 形式
public interface ConnectionMetaData
{
public int
getJMSMajorVersion() throws JMSException;
public int
getJMSMinorVersion() throws JMSException;
public java.lang.String
getJMSProviderName() throws JMSException;
public java.lang.String
getJMSVersion() throws JMSException;
public java.util.Enumeration
getJMSXPropertyNames() throws JMSException;
public int
getProviderMajorVersion() throws JMSException;
public int
getProviderMinorVersion() throws JMSException;
public java.lang.String
getProviderVersion() throws JMSException;
}
(3) フィールド
ありません。
(4) メソッド
「(2) 形式」に記載した順序で各メソッドを説明します。
(a) getJMSMajorVersion メソッド
public int getJMSMajorVersion() throws JMSException
JMS API のメジャーバージョン番号を示す整数である 1 を返します。
● 引数
ありません。
272
7. インタフェース
● 戻り値
JMS API のメジャーバージョン番号。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメタデータの取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) getJMSMinorVersion メソッド
public int getJMSMinorVersion() throws JMSException
JMS API のマイナーバージョン番号を示す整数である 0 を返します。
● 引数
ありません。
● 戻り値
JMS のマイナーバージョン番号。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメタデータの取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(c) getJMSProviderName メソッド
public java.lang.String getJMSProviderName() throws JMSException
JMS プロバイダ名を示す文字列である "Cosminexus Reliable Messaging" を返します。
● 引数
ありません。
● 戻り値
JMS プロバイダ名。
● 例外
273
7. インタフェース
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメタデータの取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(d) getJMSVersion メソッド
public java.lang.String getJMSVersion() throws JMSException
JMS API のバージョンを示す文字列である "1.0" を返します。
● 引数
ありません。
● 戻り値
JMS API のバージョン。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメタデータの取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(e) getJMSXPropertyNames メソッド
public java.util.Enumeration getJMSXPropertyNames() throws
JMSException
Cosminexus RM で使用できる JMS 定義 JMSX プロパティ名を示す文字列の列挙
("JMSXRcvTimestamp","JMSXDeliveryCount","JMSXGroupID" および
"JMSXGroupSeq")を返します。
● 引数
ありません。
● 戻り値
JMSX プロパティ名の列挙。
● 例外
274
7. インタフェース
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメタデータの取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(f) getProviderMajorVersion メソッド
public int getProviderMajorVersion() throws JMSException
JMS プロバイダのメジャーバージョン番号を返します。この値は,Cosminexus RM の
バージョンに対応します。例えば,Cosminexus RM 01-02 の場合,1 を返します。
● 引数
ありません。
● 戻り値
JMS プロバイダのメジャーバージョン番号。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメタデータの取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(g) getProviderMinorVersion メソッド
public int getProviderMinorVersion() throws JMSException
JMS プロバイダのマイナーバージョン番号を返します。この値は,Cosminexus RM の
リビジョンに対応します。例えば,Cosminexus RM 01-02 の場合,2 を返します。
● 引数
ありません。
● 戻り値
JMS プロバイダのマイナーバージョン番号。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメタデータの取得に失敗
しました。
275
7. インタフェース
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(h) getProviderVersion メソッド
public java.lang.String getProviderVersion() throws JMSException
JMS プロバイダのバージョンを示す文字列を返します。この文字列は,Cosminexus
RM のバージョンおよびリビジョンに対応します。ただし,限定コードは対象外です。
例えば,Cosminexus RM 01-02-01 の場合は,"1.2" を返します。
● 引数
ありません。
● 戻り値
JMS プロバイダのバージョン。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメタデータの取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
276
7. インタフェース
7.4.3 DeliveryMode インタフェース
DeliveryMode インタフェースは,JMS でサポートしているメッセージの管理形態を表
す定数を定義するインタフェースです。
(1) 形式
public interface DeliveryMode
{
public static final int NON_PERSISTENT;
public static final int PERSISTENT;
}
(2) フィールド
「(1) 形式」に記載した順序で各フィールドを説明します。
(a) NON_PERSISTENT フィールド
public static final int NON_PERSISTENT
非永続メッセージを表す定数です。メッセージの送受信で,メッセージを補助記憶装置
に記録しないで処理することを意味します。その代わり,PERSISTENT と比べてメッ
セージ送受信のオーバヘッドが小さくなります。非永続メッセージの管理形態について
は,「2.5.3(2) キュー作成時の指定値とメッセージのヘッダ」を参照してください。
(b) PERSISTENT フィールド
public static final int PERSISTENT
永続メッセージを表す定数です。メッセージの送受信で,メッセージを補助記憶装置に
記録して処理することを意味します。永続メッセージの管理形態については,
「2.5.3(2)
キュー作成時の指定値とメッセージのヘッダ」を参照してください。
(3) メソッド
ありません。
277
7. インタフェース
7.4.4 Message インタフェース
Message インタフェースはペイロードを持たないメッセージを送受信するために使用で
きます。Message インタフェースは,すべての JMS メッセージのルートインタフェース
です。
JMS メッセージはヘッダとプロパティとペイロード(メッセージ本体)の 3 要素から構
成されます。JMS メッセージ,構成要素およびアクセスモードについては,
「2.5 メッ
セージの構成」を参照してください。
(1) ヘッダの設定と取得
Message インタフェースを使用することでヘッダを設定および取得できます。
(2) プロパティの設定,取得および初期化
Message インタフェースを使用することでプロパティを設定,取得および初期化できま
す。また,プロパティの値は上書きできます。プロパティの初期化には
clearProperties() メソッドを使用します。
(3) ペイロードの初期化
clearBody() メソッドを発行してペイロードを初期化します。
(4) メッセージ受信の承認
acknowledge() メソッドを発行して,メッセージの受信を承認します。
(5) 形式
public interface Message
{
public static final int
DEFAULT_DELIVERY_MODE;
public static final int
DEFAULT_PRIORITY;
public static final long DEFAULT_TIME_TO_LIVE;
public void
acknowledge() throws JMSException;
public void
clearBody() throws JMSException;
public void
clearProperties() throws JMSException;
public boolean getBooleanProperty(java.lang.String name)
throws JMSException;
public byte
getByteProperty(java.lang.String name)
throws JMSException;
public double
getDoubleProperty(java.lang.String name)
throws JMSException;
public float
getFloatProperty(java.lang.String name)
throws JMSException;
public int
getIntProperty(java.lang.String name)
throws JMSException;
public java.lang.String
getJMSCorrelationID() throws JMSException;
public byte[]
getJMSCorrelationIDAsBytes() throws JMSException;
public int
getJMSDeliveryMode() throws JMSException;
public Destination
getJMSDestination() throws JMSException;
public long
getJMSExpiration() throws JMSException;
278
7. インタフェース
public java.lang.String
getJMSMessageID() throws JMSException;
public int
getJMSPriority() throws JMSException;
public boolean getJMSRedelivered() throws JMSException;
public Destination
getJMSReplyTo() throws JMSException;
public long
getJMSTimestamp() throws JMSException;
public java.lang.String
getJMSType() throws JMSException;
public long
getLongProperty(java.lang.String name)
throws JMSException;
public java.lang.Object
getObjectProperty(java.lang.String name)
throws JMSException;
public java.util.Enumeration
getPropertyNames() throws JMSException;
public short
getShortProperty(java.lang.String name)
throws JMSException;
public java.lang.String
getStringProperty(java.lang.String name)
throws JMSException;
public boolean propertyExists(java.lang.String name)
throws JMSException;
public void
setBooleanProperty(java.lang.String name,
boolean value) throws JMSException;
public void
setByteProperty(java.lang.String name, byte value)
throws JMSException;
public void
setDoubleProperty(java.lang.String name,
double value) throws JMSException;
public void
setFloatProperty(java.lang.String name, float
value)
throws JMSException;
public void
setIntProperty(java.lang.String name, int value)
throws JMSException;
public void
setJMSCorrelationID(java.lang.String
correlationID)
throws JMSException;
public void
setJMSCorrelationIDAsBytes(byte[] correlationID)
throws JMSException;
public void
setJMSDeliveryMode(int deliveryMode)
throws JMSException;
public void
setJMSDestination(Destination destination)
throws JMSException;
public void
setJMSExpiration(long expiration)
throws JMSException;
public void
setJMSMessageID(java.lang.String id)
throws JMSException;
public void
setJMSPriority(int priority) throws JMSException;
public void
setJMSRedelivered(boolean redelivered)
throws JMSException;
public void
setJMSReplyTo(Destination replyTo)
throws JMSException;
public void
setJMSTimestamp(long timestamp) throws
JMSException;
public void
setJMSType(java.lang.String type)
throws JMSException;
public void
setLongProperty(java.lang.String name, long value)
throws JMSException;
public void
setObjectProperty(java.lang.String name,
java.lang.Object value) throws JMSException;
public void
setShortProperty(java.lang.String name, short
value)
throws JMSException;
public void
setStringProperty(java.lang.String name,
java.lang.String value) throws JMSException;
279
7. インタフェース
}
(6) フィールド
「(5) 形式」に記載した順序で各フィールドを説明します。
(a) DEFAULT_DELIVERY_MODE フィールド
public static final int DEFAULT_DELIVERY_MODE
メッセージの属性を示す値のデフォルト値を保持しています。デフォルト値は
DeliveryMode.PERSISTENT(永続)です。
(b) DEFAULT_PRIORITY フィールド
public static final int DEFAULT_PRIORITY
メッセージの優先度を示す値のデフォルト値を保持しています。デフォルト値は 4 です。
(c) DEFAULT_TIME_TO_LIVE フィールド
public static final long DEFAULT_TIME_TO_LIVE
メッセージの保持時間を示す値のデフォルト値を保持しています。デフォルト値は 0 で
す。
(7) メソッド
「(5) 形式」に記載した順序で各メソッドを説明します。
(a) acknowledge メソッド
public void acknowledge() throws JMSException
現在のメッセージおよび同じセッションで以前に受信し,かつ以前に承認していないす
べてのメッセージに対して,メッセージの受信を承認します。メソッドが正常に終了し
た場合,受信側は承認したメッセージを何度も受信しないで済みます。
メソッドを発行できる条件を次に示します。条件外でメソッドを発行した場合は
JMSException が発生します。
• メッセージを同期受信で取得しました。
• メッセージは,トランザクション設定が false かつメッセージ承認モードが
CLIENT_ACKNOWLEDGE の QueueSession オブジェクトによって生成されまし
た。
• メッセージが関連づけられているコネクションおよびセッションがクローズされてい
ません。
• トランザクションがトランザクションマネジャによって制御されていません。
280
7. インタフェース
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
IllegalStateException
説明
トランザクションマネジャでのトランザクションが開始してい
るときに,メソッドが発行されました。
クローズされたセッションに対して,メソッドが発行されまし
た。
JMSException
トランザクション設定が true のときに,メソッドが発行されま
した。
トランザクション設定が false かつメッセージ承認モードが
AUTO_ACKNOWLEDGE のときに,メソッドが発行されまし
た。
トランザクション設定が false かつメッセージ承認モードが
DUPS_OK_ACKNOWLEDGE のときに,メソッドが発行され
ました。
非同期受信でメッセージを受信したときに,メソッドが発行さ
れました。
キューブラウザで取得した閲覧用のメッセージに対して,メ
ソッドが発行されました。
内部エラーのためにメソッドの実行に失敗し,Session.recover()
メソッドが正常に終了した際と同じ状態になりました。
内部エラーのために JMS プロバイダがメッセージの承認に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) clearBody メソッド
public void clearBody() throws JMSException
BytesMessage,ObjectMessage および TextMessage オブジェクトでメソッドを発行し
た場合,JMS メッセージのペイロード(メッセージ本体)が初期化されます。初期化さ
れたペイロードの値は,メッセージ生成直後のペイロードの値と同じです。Message オ
ブジェクトでメソッドを発行した場合は無視されます。なお,メソッドを発行しても
ヘッダとプロパティは初期化されません。
ペイロードが読み取り専用モードの際にメソッドを発行した場合,ペイロードが初期化
されるとともにペイロードの書き込みができるようになります。
● 引数
281
7. インタフェース
ありません。
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージ本体の初期化
に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(c) clearProperties メソッド
public void clearProperties() throws JMSException
メッセージのプロパティを初期化します。初期化されたプロパティの値はメッセージ生
成直後のプロパティの値と同じです。なお,メソッドを実行してもヘッダとペイロード
は初期化されません。
プロパティが読み取り専用モードの際にメソッドを発行した場合,プロパティが初期化
されるとともにプロパティの読み取りと書き込みの両方ができるようになります。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがプロパティの初期化に失
敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(d) getBooleanProperty メソッド
public boolean getBooleanProperty(java.lang.String name)
throws JMSException
boolean 型のプロパティの値を返します。
● 引数
282
7. インタフェース
引数名
name
説明
boolean 型のプロパティの名前
● 戻り値
boolean 型のプロパティの値です。指定された name 引数に対応するプロパティ値が
ない場合,false を返します。
● 例外
例外クラス
説明
JMSException
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageFormatException
メッセージ形式不正が原因でプロパティの型変換に失敗しま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(e) getByteProperty メソッド
public byte getByteProperty(java.lang.String name) throws
JMSException
byte 型のプロパティの値を返します。
● 引数
引数名
name
説明
byte 型のプロパティの名前
● 戻り値
byte 型のプロパティの値です。
● 例外
例外クラス
説明
java.lang.NumberFormatException
指定された name 引数に対応するプロパティ値がありませ
ん。
JMSException
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageFormatException
メッセージ形式不正が原因でプロパティの型変換に失敗しま
した。
283
7. インタフェース
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(f) getDoubleProperty メソッド
public double getDoubleProperty(java.lang.String name)
throws JMSException
double 型のプロパティの値を返します。
● 引数
引数名
name
説明
double 型のプロパティの名前
● 戻り値
double 型のプロパティの値です。
● 例外
例外クラス
説明
java.lang.NumberFormatException
指定された name 引数に対応するプロパティ値がありませ
ん。
JMSException
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageFormatException
メッセージ形式不正が原因でプロパティの型変換に失敗しま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(g) getFloatProperty メソッド
public float getFloatProperty(java.lang.String name)
throws JMSException
float 型のプロパティの値を返します。
● 引数
引数名
name
説明
float 型のプロパティの名前
● 戻り値
float 型のプロパティの値です。
284
7. インタフェース
● 例外
例外クラス
説明
java.lang.NumberFormatException
指定された name 引数に対応するプロパティ値がありませ
ん。
JMSException
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageFormatException
メッセージ形式不正が原因でプロパティの型変換に失敗しま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(h) getIntProperty メソッド
public int getIntProperty(java.lang.String name) throws
JMSException
int 型のプロパティの値を返します。
● 引数
引数名
name
説明
int 型のプロパティの名前
● 戻り値
int 型のプロパティの値です。
● 例外
例外クラス
説明
java.lang.NumberFormatException
指定された name 引数に対応するプロパティ値がありませ
ん。
JMSException
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageFormatException
メッセージ形式不正が原因でプロパティの型変換に失敗しま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(i) getJMSCorrelationID メソッド
public java.lang.String getJMSCorrelationID() throws JMSException
285
7. インタフェース
メッセージに設定された JMSCorrelationID ヘッダの値を String 型で取得します。
JMSCorrelationID ヘッダが設定されていない場合,null を返します。
● 引数
ありません。
● 戻り値
メッセージの相関識別子。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダが相関識別子の取得に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(j) getJMSCorrelationIDAsBytes メソッド
public byte[] getJMSCorrelationIDAsBytes() throws JMSException
メッセージに設定された JMSCorrelationID ヘッダの値を byte[] で取得します。
JMSCorrelationID ヘッダが設定されていない場合,null を返します。
● 引数
ありません。
● 戻り値
メッセージの相関識別子。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダが相関識別子の取得に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(k) getJMSDeliveryMode メソッド
public int getJMSDeliveryMode() throws JMSException
メッセージに設定された JMSDeliveryMode ヘッダの値を返します。JMSDeliveryMode
ヘッダが設定されていない場合,DeliveryMode.PERSISTENT を返します。
286
7. インタフェース
● 引数
ありません。
● 戻り値
メッセージの管理形態として,次に示すどちらかの値を返します。
• DeliveryMode.NON_PERSISTENT
• DeliveryMode.PERSISTENT
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージの管理形
態の取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(l) getJMSDestination メソッド
public Destination getJMSDestination() throws JMSException
メッセージに設定された JMSDestination ヘッダの値を返します。JMSDestination
ヘッダが設定されていない場合,null を返します。
● 引数
ありません。
● 戻り値
メッセージに設定された JMSDestination ヘッダの値を返します。JMSDestination
ヘッダが設定されていない場合,null を返します。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがあて先の取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(m)getJMSExpiration メソッド
public long getJMSExpiration() throws JMSException
メッセージに設定された JMSExpiration ヘッダの値を返します。JMSExpiration ヘッ
ダが設定されていない場合,0 を返します。
● 引数
287
7. インタフェース
ありません。
● 戻り値
メッセージの有効期間値。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージの有効期
間の取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(n) getJMSMessageID メソッド
public java.lang.String getJMSMessageID() throws JMSException
メッセージに設定された JMSMessageID ヘッダの値を返します。JMSMessageID ヘッ
ダが設定されていない場合,null を返します。
● 引数
ありません。
● 戻り値
メッセージ識別子。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージ識別子の
取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(o) getJMSPriority メソッド
public int getJMSPriority() throws JMSException
メッセージに設定された JMSPriority ヘッダの値を返します。JMSPriority ヘッダが設
定されていない場合,javax.jms.Messge.DEFAULT_PRIORITY を返します。
● 引数
ありません。
● 戻り値
メッセージの優先度。
288
7. インタフェース
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージ優先度の
取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(p) getJMSRedelivered メソッド
public boolean getJMSRedelivered() throws JMSException
メッセージに設定された JMSRedelivered ヘッダの値を返します。JMSRedelivered
ヘッダが設定されていない場合,false を返します。
● 引数
ありません。
● 戻り値
メッセージが再配送中の場合は true です。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダが再配送状態の取得に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(q) getJMSReplyTo メソッド
public Destination getJMSReplyTo() throws JMSException
メッセージに設定された JMSReplyTo ヘッダの値を返します。JMSReplyTo ヘッダが設
定されていない場合,null を返します。
● 引数
ありません。
● 戻り値
メッセージへの応答の送信先である Destination オブジェクト。
● 例外
289
7. インタフェース
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダが JMSReplyTo ヘッダ
の取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(r) getJMSTimestamp メソッド
public long getJMSTimestamp() throws JMSException
メッセージに設定された JMSTimestamp ヘッダの値を返します。JMSTimestamp ヘッ
ダが設定されていない場合,0 を返します。
● 引数
ありません。
● 戻り値
メッセージのタイムスタンプ。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがタイムスタンプの取
得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(s) getJMSType メソッド
public java.lang.String getJMSType() throws JMSException
メッセージに設定された JMSType ヘッダの値を返します。JMSType ヘッダが設定され
ていない場合,null を返します。
● 引数
ありません。
● 戻り値
メッセージ型。
● 例外
例外クラス
JMSException
290
説明
内部エラーのために JMS プロバイダがメッセージ型の取得
に失敗しました。
7. インタフェース
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(t) getLongProperty メソッド
public long getLongProperty(java.lang.String name) throws
JMSException
long 型のプロパティの値を返します。
● 引数
引数名
name
説明
long 型のプロパティの名前
● 戻り値
指定された名前の long 型のプロパティ値です。
● 例外
例外クラス
説明
java.lang.NumberFormatException
指定された name 引数に対応するプロパティ値がありませ
ん。
JMSException
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageFormatException
メッセージ形式不正が原因でプロパティの型変換に失敗しま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(u) getObjectProperty メソッド
public java.lang.Object getObjectProperty(java.lang.String name)
throws JMSException
Object 型のプロパティの値を返します。指定された名前に対応するプロパティ値がない
場合,null を返します。
メソッドは Boolean,Byte,Short,Integer,Long,Float,Double および String クラ
スの値だけを返します。
● 引数
引数名
name
説明
Java オブジェクトプロパティの名前
291
7. インタフェース
● 戻り値
指定された名前の Java オブジェクトプロパティ値のオブジェクト化形式。例えば,
プロパティが int として設定された場合は Integer を返します。
● 例外
例外クラス
説明
JMSException
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(v) getPropertyNames メソッド
public java.util.Enumeration getPropertyNames() throws JMSException
すべてのプロパティの名前を返します。プロパティがない場合,null を返します。
メソッドで取得するプロパティ名の順序は保証されません。
● 引数
ありません。
● 戻り値
プロパティ値のすべての名前についての列挙。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(w)getShortProperty メソッド
public short getShortProperty(java.lang.String name)
throws JMSException
short 型のプロパティの値を返します。
● 引数
引数名
name
292
説明
short 型のプロパティの名前
7. インタフェース
● 戻り値
指定された名前の short 型のプロパティ値です。
● 例外
例外クラス
説明
java.lang.NumberFormatException
指定された name 引数に対応するプロパティ値がありませ
ん。
JMSException
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageFormatException
メッセージ形式不正が原因でプロパティの型変換に失敗しま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(x) getStringProperty メソッド
public java.lang.String getStringProperty(java.lang.String name)
throws JMSException
String 型のプロパティの値を返します。指定された名前に対応するプロパティ値がない
場合,null を返します。
● 引数
引数名
name
説明
String 型のプロパティの名前
● 戻り値
指定された名前の String 型のプロパティ値。
● 例外
例外クラス
JMSException
説明
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageFormatException
メッセージ形式不正が原因でプロパティの型変換に失敗しま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
293
7. インタフェース
(y) propertyExists メソッド
public boolean propertyExists(java.lang.String name)
throws JMSException
指定されたプロパティ名に対応するプロパティがあれば true を返し,なければ false を
返します。
● 引数
引数名
name
説明
存在を判定するプロパティの名前
● 戻り値
プロパティがある場合は true,ない場合は false を返します。
● 例外
例外クラス
JMSException
説明
name 引数に null が指定されました。
内部エラーのために JMS プロバイダがプロパティの存在確
認に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(z) setBooleanProperty メソッド
public void setBooleanProperty(java.lang.String name, boolean
value)
throws JMSException
boolean 型のプロパティの値を設定します。
プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
説明
name
boolean 型のプロパティの名前(64 文字以下)
value
設定する boolean 型のプロパティ値
● 戻り値
ありません。
● 例外
294
7. インタフェース
例外クラス
説明
JMSException
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(aa)setByteProperty メソッド
public void setByteProperty(java.lang.String name, byte value)
throws JMSException
byte 型のプロパティの値を設定します。
プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
説明
name
byte 型のプロパティの名前(64 文字以下)
value
設定する byte 型のプロパティ値
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(ab)setDoubleProperty メソッド
public void setDoubleProperty(java.lang.String name, double value)
295
7. インタフェース
throws JMSException
double 型のプロパティの値を設定します。
プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
説明
name
double 型のプロパティの名前(64 文字以下)
value
設定する double 型のプロパティ値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(ac)setFloatProperty メソッド
public void setFloatProperty(java.lang.String name, float value)
throws JMSException
float 型のプロパティの値を設定します。
プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
説明
name
float 型のプロパティの名前(64 文字以下)
value
設定する float 型のプロパティ値
● 戻り値
ありません。
● 例外
296
7. インタフェース
例外クラス
説明
JMSException
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(ad)setIntProperty メソッド
public void setIntProperty(java.lang.String name, int value)
throws JMSException
int 型のプロパティの値を設定します。
プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
説明
name
int 型のプロパティの名前(64 文字以下)
value
設定する int 型のプロパティ値
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがプロパティ値の取得
に失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(ae)setJMSCorrelationID メソッド
public void setJMSCorrelationID(java.lang.String correlationID)
297
7. インタフェース
throws JMSException
メッセージの JMSCorrelationID ヘッダを String 型で設定します。
ヘッダ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
correlationID
説明
相関識別子(512 文字以下)
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
correlationID 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダが相関識別子の設定に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(af)setJMSCorrelationIDAsBytes メソッド
public void setJMSCorrelationIDAsBytes(byte[] correlationID)
throws JMSException
メッセージの JMSCorrelationID ヘッダを byte[] で設定します。
ヘッダ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
correlationID
説明
相関識別子(バイト配列)
(512 文字以下)
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
correlationID 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダが相関識別子の設定に
失敗しました。
298
7. インタフェース
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(ag)setJMSDeliveryMode メソッド
public void setJMSDeliveryMode(int deliveryMode) throws
JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
deliveryMode
説明
メッセージの管理形態として,次に示すどちらかの値を指定できま
す。
• DeliveryMode.NON_PERSISTENT:非永続
• DeliveryMode.PERSISTENT:永続
● 戻り値
ありません。
● 例外
ありません。
(ah)setJMSDestination メソッド
public void setJMSDestination(Destination destination)
throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
destination
説明
メッセージの送信先
● 戻り値
ありません。
● 例外
ありません。
(ai)setJMSExpiration メソッド
public void setJMSExpiration(long expiration) throws JMSException
299
7. インタフェース
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
expiration
説明
メッセージの有効期間
● 戻り値
ありません。
● 例外
ありません。
(aj)setJMSMessageID メソッド
public void setJMSMessageID(java.lang.String id) throws
JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
id
説明
メッセージ識別子
● 戻り値
ありません。
● 例外
ありません。
(ak)setJMSPriority メソッド
public void setJMSPriority(int priority) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
priority
● 戻り値
ありません。
300
説明
メッセージの優先度
7. インタフェース
● 例外
ありません。
(al)setJMSRedelivered メソッド
public void setJMSRedelivered(boolean redelivered) throws
JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
redelivered
説明
メッセージが再配送中であるかどうかを示す値です。値が true の
場合,再配送中であることを示します。
● 戻り値
ありません。
● 例外
ありません。
(am)
setJMSReplyTo メソッド
public void setJMSReplyTo(Destination replyTo) throws JMSException
メッセージの JMSReplyTo ヘッダを Destination 型で設定します。
ヘッダ値は上書きできます。
● 引数
引数名
replyTo
説明
メッセージへの応答の送信先
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダが JMSReplyTo ヘッダ
の設定に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
301
7. インタフェース
(an)setJMSTimestamp メソッド
public void setJMSTimestamp(long timestamp) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
timestamp
説明
メッセージのタイムスタンプ
● 戻り値
ありません。
● 例外
ありません。
(ao)setJMSType メソッド
public void setJMSType(java.lang.String type) throws JMSException
メッセージの JMSType ヘッダを String で設定します。
ヘッダ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
type
説明
メッセージ型(512 文字以下)
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
type 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがメッセージ型の設定
に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(ap)setLongProperty メソッド
public void setLongProperty(java.lang.String name, long value)
throws JMSException
302
7. インタフェース
long 型のプロパティの値を設定します。
プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
説明
name
long 型のプロパティの名前(64 文字以下)
value
設定する long 型のプロパティ値
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがプロパティ値の設定
に失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(aq)setObjectProperty メソッド
public void setObjectProperty(java.lang.String name,
java.lang.Object value) throws JMSException
Object 型のプロパティの値を設定します。
• メソッドは Boolean,Byte,Short,Integer,Long,Float,Double および String
クラスの値を受け付けます。そのほかのクラスを使用すると,JMSException が発生
します。
• プロパティ値には null を指定できます。
• 引数の文字数制限は半角全角を問いません。
• プロパティ値は上書きできます。
● 引数
引数名
name
説明
Java オブジェクトプロパティの名前(64 文字以下)
303
7. インタフェース
引数名
value
説明
設定する Java オブジェクトプロパティ値(String 型のプロパティ
値の場合は 512 文字以下)
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
value 引数に String 型のクラスを指定し,その文字数が制限
値を超えました。
内部エラーのために JMS プロバイダがプロパティ値の設定
に失敗しました。
MessageFormatException
引数 value の形式不正が原因でプロパティの型変換に失敗し
ました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(ar)setShortProperty メソッド
public void setShortProperty(java.lang.String name, short value)
throws JMSException
short 型のプロパティの値を設定します。
プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。
● 引数
引数名
説明
name
short 型のプロパティの名前(64 文字以下)
value
設定する short 型のプロパティ値
● 戻り値
ありません。
● 例外
304
7. インタフェース
例外クラス
説明
JMSException
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがプロパティの設定に
失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(as)setStringProperty メソッド
public void setStringProperty(java.lang.String name,
java.lang.String value) throws JMSException
String 型のプロパティの値を設定します。
• プロパティ値には null を指定できます。
• 引数の文字数制限は半角全角を問いません。
• プロパティ値は上書きできます。
● 引数
引数名
説明
name
String 型のプロパティの名前(64 文字以下)
value
設定する String 型のプロパティ値(512 文字以下)
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
name 引数に null が指定されました。
name 引数の文字数が制限値を超えました。
value 引数の文字数が制限値を超えました。
内部エラーのために JMS プロバイダがプロパティ値の設定
に失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
305
7. インタフェース
7.4.5 ObjectMessage インタフェース
ObjectMessage インタフェースはシリアライズできる Java オブジェクトを含むメッ
セージを送受信するために使用します。ObjectMessage インタフェースは Message イン
タフェースを継承しているため,Message インタフェースの機能を持っています。
(1) ペイロードの設定と取得
ObjectMessage インタフェースを使用することでペイロードを設定および取得できます。
このペイロードはシリアライズできる Java オブジェクトです。JMS メッセージの各要
素については,「2.5.1 JMS メッセージの構成」を参照してください。
(2) 形式
public interface ObjectMessage extends Message
{
public java.io.Serializable
getObject() throws JMSException;
public void setObject(java.io.Serializable object)
throws JMSException;
}
(3) フィールド
ありません。
(4) メソッド
「(2) 形式」に記載した順序で各メソッドを説明します。
(a) getObject メソッド
public java.io.Serializable getObject() throws JMSException
直列化できるメッセージ本体データを返します。メッセージ本体が設定されていない場
合はデフォルト値である null を返します。
● 引数
ありません。
● 戻り値
メッセージのデータを含む直列化できるオブジェクト。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがオブジェクトの取得
に失敗しました。
MessageFormatException
ペイロードの型が無効なため直列化されたオブジェクトの復
元が失敗しました。
306
7. インタフェース
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) setObject メソッド
public void setObject(java.io.Serializable object) throws
JMSException
メッセージのデータを含む直列化できるオブジェクトを設定します。
setObject メソッドの内部では引数オブジェクトのコピーを生成し,そのコピーを
ObjectMessage オブジェクトのペイロードに設定します。そのため,そのあと引数オブ
ジェクトを変更しても ObjectMessage オブジェクトのペイロードに影響しなくなりま
す。
注意
ユーザが定義したクラスのオブジェクトを ObjectMessage オブジェクトのペイロー
ドに設定する場合は,ユーザが定義したクラスまたはクラスが含まれる JAR ファイ
ルのクラスパスを,コンテナ拡張ライブラリとして Cosminexus の J2EE サーバ用
オプション定義ファイルに指定してください。J2EE サーバ用オプション定義ファ
イルについては,マニュアル「Cosminexus リファレンス 定義編」を参照してくだ
さい。
クラスパスが指定されていない状態で,ObjectMessage オブジェクトのペイロード
にユーザが定義したクラスのオブジェクトを設定しようとすると,JMSException
が発生します。
● 引数
引数名
object
説明
メッセージのデータ
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
object 引数に null が指定されました。
内部エラーのために JMS プロバイダがオブジェクトの設定
に失敗しました。
MessageFormatException
引数の型が無効なためオブジェクトの直列化が失敗しました。
MessageNotWriteableException
読み取り専用モードのプロパティに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
307
7. インタフェース
「7.9 障害コードの詳細」を参照してください。
308
7. インタフェース
7.4.6 Queue(Destination)インタフェース
Queue(Destination)インタフェースは,送受信するメッセージのあて先を指定するた
めの JMS 管理オブジェクトです。Queue(Destination)インタフェースは,メッセー
ジのあて先となるキューをカプセル化したものです。
(1) キュー名の取得
キュー名の取得を行います。
(2) 形式
public interface Destination
{ }
public interface Queue extends Destination
{
public java.lang.String
getQueueName() throws JMSException;
public java.lang.String
toString();
}
(3) フィールド
ありません。
(4) メソッド
「(2) 形式」に記載した順序で各メソッドを説明します。
(a) getQueueName メソッド
public java.lang.String getQueueName() throws JMSException
キュー名を返します。名前に依存した JMS クライアントにはポータビリティが保証され
ません。
● 引数
ありません。
● 戻り値
キュー名。
● 例外
例外クラス
JMSException
説明
内部エラーのために Queue オブジェクトの JMS プロバイダ
実装がキュー名を返すことに失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
309
7. インタフェース
「7.9 障害コードの詳細」を参照してください。
(b) toString メソッド
public java.lang.String toString()
キュー名を特定するための文字列を返します。java.lang.Object の toString() メソッドを
オーバライドします。
● 引数
ありません。
● 戻り値
JMS プロバイダがキューを特定する識別用の値です。
● 例外
ありません。
310
7. インタフェース
7.4.7 QueueBrowser インタフェース
QueueBrowser インタフェースは,JMS クライアントがキューからメッセージを削除し
ないで参照するために使用します。
(1) 現在のキューにあるメッセージ一覧の取得
現在のキューにあるメッセージの一覧を取得します。メッセージセレクタを設定して
QueueBrowser オブジェクトが生成されている場合は,メッセージセレクタに応じた
メッセージだけを参照できます。
(2) メッセージセレクタの取得
QueueBrowser オブジェクトを生成する際に設定されたメッセージセレクタを取得しま
す。メッセージセレクタについては,
「2.6.2 メッセージセレクタ」を参照してくださ
い。
(3) キューブラウザのクローズ
QueueBrowser オブジェクトをクローズできます。クローズによって,QueueBrowser
オブジェクトに関連づけられたすべてのリソースを解放します。
QueueBrowser インタフェースのメソッドは,複数スレッドからの同時発行を JMS で禁
止されています。ただし,close() メソッドだけは複数スレッドから同時発行してパラレ
ルに実行できます。
(4) キューの取得
キューブラウザを生成する際に設定されたキューを取得します。
(5) 形式
public interface QueueBrowser
{
public void
close() throws JMSException;
public java.util.Enumeration
getEnumeration() throws JMSException;
public java.lang.String
getMessageSelector() throws JMSException;
public Queue
getQueue() throws JMSException;
}
(6) フィールド
ありません。
(7) メソッド
「(5) 形式」に記載した順序で各メソッドを説明します。
311
7. インタフェース
(a) close メソッド
public void close() throws JMSException
キューブラウザをクローズします。キューブラウザには幾つかのリソースが割り当てら
れている場合があるため,リソースが不要になった場合はキューブラウザをクローズし
てください。
• クローズされているキューブラウザをクローズしても例外は発生しません。
• このメソッドは QueueBrowser インタフェースでは唯一,複数スレッドから同時に発
行できます。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがキューブラウザをク
ローズする処理に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) getEnumeration メソッド
public java.util.Enumeration getEnumeration() throws JMSException
現在のキューにあるメッセージの列挙を取得します。
• 一覧を取得したあとにメッセージを閲覧する場合,メッセージがすでに削除または消
失していることがあります。
• キューブラウザが close 状態の場合,Enumeration.hasMoreElements() メソッドの戻
り値は false です。
• キューブラウザが close 状態の場合,Enumeration.nextElement() メソッドを発行す
ると NoSuchElementException が発生します。
• 送信用共用キューおよび転送キューに getEnumeration() メソッドを発行した場合は
空のリストを返します。
● 引数
ありません。
● 戻り値
表示用メッセージの一覧。
● 例外
312
7. インタフェース
例外クラス
JMSException
説明
セッション,コネクションまたはキューブラウザをクローズ
している状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが QueueBrowser オブ
ジェクトのメッセージ一覧の取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(c) getMessageSelector メソッド
public java.lang.String getMessageSelector() throws JMSException
キューブラウザのメッセージセレクタ構文を返します。
● 引数
ありません。
● 戻り値
キューブラウザのメッセージセレクタ構文。
● 例外
例外クラス
JMSException
説明
セッション,コネクションまたはキューブラウザをクローズ
している状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが QueueBrowser オブ
ジェクトのメッセージセレクタの取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(d) getQueue メソッド
public Queue getQueue() throws JMSException
キューブラウザに関連づけられたキューを返します。
● 引数
ありません。
● 戻り値
キューブラウザの Queue オブジェクト。
● 例外
313
7. インタフェース
例外クラス
JMSException
説明
セッション,コネクションまたはキューブラウザをクローズ
している状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが QueueBrowser オブ
ジェクトに関連づけられたキューの取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
314
7. インタフェース
7.4.8 QueueConnection(Connection)インタフェース
QueueConnection インタフェースは,アプリケーションが Cosminexus RM にアクセス
するために使用するアプリケーションレベルのハンドルを提供します。
QueueConnection オブジェクトを取得するには,
QueueConnectionFactory.createQueueConnection() メソッドを使用します。
(1) キューセッションの生成
createQueueSession() メソッドを発行することで QueueSession オブジェクトを生成し
ます。また,createQueueSession() メソッドの transacted 引数によってトランザクショ
ン設定を指定し,acknowledgeMode 引数を指定することでメッセージ承認モードを指定
できます。
各引数を指定したときのトランザクションとメッセージ送受信の関係については,
「2.6.6
トランザクション制御」を参照してください。
(2) 配送の開始と停止
start() および stop() メソッドを発行することで配送の開始と停止を制御できます。
QueueConnection オブジェクトは生成時に配送停止状態に設定されています。
(3) コネクションメタデータの取得
Cosminexus RM の製品名やバージョン,JMS API のバージョンを保持する
ConnectionMetaData オブジェクトを取得できます。
(4) キューコネクションのクローズ
QueueConnection オブジェクトをクローズできます。クローズによって,
QueueConnection オブジェクトに関連づけられたすべてのセッションをクローズし,
QueueConnection オブジェクトに関連づけられたすべてのリソースを解放します。
(5) 形式
public interface Connection
{
public void
close() throws JMSException;
public java.lang.String
getClientID() throws JMSException;
public ExceptionListener
getExceptionListener() throws JMSException;
public ConnectionMetaData
getMetaData() throws JMSException;
public void
setClientID(java.lang.String clientID)
throws JMSException;
public void
setExceptionListener(ExceptionListener listener)
throws JMSException;
public void
start() throws JMSException;
public void
stop() throws JMSException;
}
315
7. インタフェース
public interface QueueConnection extends javax.jms.Connection
{
public ConnectionConsumer
createConnectionConsumer(Queue queue,
java.lang.String messageSelector,
ServerSessionPool sessionPool, int maxMessages)
throws JMSException;
public QueueSession
createQueueSession(boolean transacted,
int acknowledgeMode) throws JMSException;
}
(6) フィールド
ありません。
(7) メソッド
「(5) 形式」に記載した順序で各メソッドを説明します。
(a) close メソッド
public void close() throws JMSException
コネクションをクローズします。メソッドを発行すると,コネクションに関連づけられ
ているすべてのセッションがクローズされます。コネクションに代わって JavaVM 外部
リソースが割り当てられているので,これらのリソースが不要になった場合はコネク
ションをクローズしてください。メソッドを発行すると次に示すとおり動作します。
• メッセージ処理が適切な方法で終了されるまで,メソッドは復帰しません。
• コネクションに関連づけられているすべてのセッションのトランザクションはロール
バックされます。
• コネクションに関連づけられているすべてのセッションがクローズします。
• コネクションに関連づけられているすべてのセッションでのすべての未承認メッセー
ジは,QueueSession.recover() メソッドが正常終了した場合と同じ状態になります。
• クローズされているコネクションをクローズしても例外は発生しません。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがコネクションのク
ローズに失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
316
7. インタフェース
「7.9 障害コードの詳細」を参照してください。
(b) getClientID メソッド
public java.lang.String getClientID() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,null を返します。
● 引数
ありません。
● 戻り値
一意の JMS クライアント識別子。
● 例外
ありません。
(c) getExceptionListener メソッド
public ExceptionListener getExceptionListener() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,null を返します。
● 引数
ありません。
● 戻り値
例外リスナ。
● 例外
ありません。
(d) getMetaData メソッド
public ConnectionMetaData getMetaData() throws JMSException
コネクションのメタデータを返します。
● 引数
ありません。
● 戻り値
コネクションメタデータ。
● 例外
317
7. インタフェース
例外クラス
JMSException
説明
コネクションがクローズしている状態で,メソッドを発行し
ました。
内部エラーのために JMS プロバイダがコネクション用のメ
タデータ取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(e) setClientID メソッド
public void setClientID(java.lang.String clientID) throws
JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
java.lang.String
説明
一意の JMS クライアント識別子
● 戻り値
ありません。
● 例外
ありません。
(f) setExceptionListener メソッド
public void setExceptionListener(ExceptionListener listener)
throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
listener
例外リスナ
● 戻り値
ありません。
● 例外
ありません。
318
説明
7. インタフェース
(g) start メソッド
public void start() throws JMSException
コネクションを開始することによって,コネクションに関連づけられているすべての
セッションで,メッセージの配送を開始(または再度開始)します。stop() メソッド発行
後や生成後のコネクションは配送が禁止された状態であり,start() メソッドを発行する
までコネクションでは配送が開始されません。開始しているコネクションに対する
start() メソッドの発行は無視されます。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
コネクションがクローズしている状態で,メソッドを発行し
ました。
内部エラーのために JMS プロバイダがメッセージ配送の開
始に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(h) stop メソッド
public void stop() throws JMSException
コネクションでのメッセージの配送を一時的に停止します。コネクションを停止すると,
コネクションに関連づけられているすべてのセッションで配送が禁止されます。停止し
ているコネクションに対する stop() メソッドの発行は無視されます。
メッセージの配送が停止するまで,stop() メソッドの発行は復帰しません。これは,コネ
クションが再度開始されるまで,receive() メソッドの復帰を待つすべてのスレッドが
メッセージを保持して復帰しないことを意味します。停止したコネクションの
QueueReceiver.receive() メソッドのタイマは進行し続けるため,コネクション停止中に
receive() メソッドの処理がタイムアウトすることがあります。
なお,コネクションが停止している間もメッセージは送信できます。
● 引数
ありません。
● 戻り値
ありません。
319
7. インタフェース
● 例外
例外クラス
説明
JMSException
コネクションがクローズしている状態で,メソッドを発行し
ました。
内部エラーのために JMS プロバイダがメッセージ配送の停
止に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(i) createConnectionConsumer メソッド
public ConnectionConsumer createConnectionConsumer(Queue queue,
java.lang.String messageSelector, ServerSessionPool sessionPool,
int maxMessages) throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,JMSException が発生します。
● 引数
引数名
説明
queue
アクセス対象のキュー
messageSelector
メッセージセレクタ構文に一致するプロパティを保持するメッセー
ジだけが配送されます。
sessionPool
接続コンシューマに関連づけるサーバセッションプール
maxMessages
一度にサーバセッションに割り当てできる最大メッセージ数
● 戻り値
コネクションコンシューマ。
● 例外
例外クラス
JMSException
説明
メソッドが未サポートであることを示します。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(j) createQueueSession メソッド
public QueueSession createQueueSession(boolean transacted,
int acknowledgeMode) throws JMSException
QueueSession オブジェクトを生成します。
320
7. インタフェース
● 引数
引数名
説明
transacted
トランザクション設定を指定する引数です。セッションがトランザ
クション処理されるかどうかを示します。有効な値を次に示しま
す。
• true:トランザクション管理されます。
• false:トランザクション管理されません。
acknowledgeMode
メッセージ承認モードを指定する引数です。JMS クライアントが
受信するメッセージをどのように承認するかを示します。
transacted 引数が true の場合は無視されます。有効な値を次に示
します。
• Session.AUTO_ACKNOWLEDGE
• Session.DUPS_OK_ACKNOWLEDGE
• Session.CLIENT_ACKNOWLEDGE
● 戻り値
新しく作成されたキューセッション。
● 例外
例外クラス
JMSException
説明
コネクションがクローズしている状態で,メソッドを発行し
ました。
内部エラーまたはトランザクションおよびメッセージ承認
モードのサポートが不足しているために,QueueConnection
オブジェクトがセッションの作成に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
321
7. インタフェース
7.4.9 QueueConnectionFactory(ConnectionFactory)イン
タフェース
QueueConnectionFactory(ConnectionFactory)インタフェースは,QueueConnection
オブジェクトを生成するためのファクトリです。JNDI に登録されている
QueueConnectionFactory の JNDI 登録名をアプリケーションが lookup することによっ
て QueueConnectionFactory オブジェクトを取得します。
(1) キューコネクションの生成
createQueueConnection() メソッドを発行することによって QueueConnection オブジェ
クトを生成します。
(2) 形式
public interface ConnectionFactory
{ }
public interface QueueConnectionFactory
extends ConnectionFactory
{
public QueueConnection
createQueueConnection() throws JMSException;
public QueueConnection
createQueueConnection(java.lang.String userName,
java.lang.String password) throws JMSException;
}
(3) フィールド
ありません。
(4) メソッド
「(2) 形式」に記載した順序で各メソッドを説明します。
(a) createQueueConnection メソッド
public QueueConnection createQueueConnection()
throws JMSException
キューコネクションを作成します。QueueConnection.start() メソッドが明示的に発行さ
れるまで,メッセージは配送されません。
● 引数
ありません。
● 戻り値
新規に作成されたキューコネクション。
● 例外
322
7. インタフェース
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがキューコネクション
の作成に失敗しました。
JMSSecurityException
無効なユーザ名またはパスワードが指定されたために,JMS
クライアント認証が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) createQueueConnection メソッド
public QueueConnection createQueueConnection(
java.lang.String userName, java.lang.String password)
throws JMSException
デフォルトのユーザ識別情報を使用してキューコネクションを作成します。
QueueConnection.start() メソッドが明示的に発行されるまで,メッセージは配送されま
せん。
● 引数
引数名
説明
userName
呼び出し側のユーザ名
password
呼び出し側のパスワード
● 戻り値
新規に作成されたキューコネクション。
● 例外
例外クラス
説明
JMSException
内部エラーのために JMS プロバイダがキューコネクション
の作成に失敗しました。
JMSSecurityException
無効なユーザ名またはパスワードが指定されたために,JMS
クライアント認証が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
323
7. インタフェース
7.4.10 QueueReceiver(MessageConsumer)インタフェー
ス
QueueReceiver(MessageConsumer)インタフェースは,JMS クライアントがキュー
からメッセージを受信するために使用します。
(1) メッセージの受信
メッセージを受信できます。メッセージセレクタを設定して QueueReceiver オブジェク
トが生成されている場合は,メッセージセレクタに応じたメッセージだけを受信できま
す。
また,メッセージの受信処理には,次に示す種類があります。
• 通常のメッセージ受信処理
• 次メッセージがすぐに利用できるならそのメッセージを受信する処理
• タイムアウト間隔内に到着する次メッセージを受信する処理
(2) メッセージセレクタの取得
QueueReceiver オブジェクトを生成する際に設定されたメッセージセレクタを取得しま
す。メッセージセレクタについては,「2.6.2 メッセージセレクタ」を参照してくださ
い。
(3) キューレシーバのクローズ
QueueReceiver オブジェクトをクローズできます。クローズによって,QueueReceiver
オブジェクトに関連づけられたすべてのリソースを解放します。QueueReceiver
(MessageConsumer)インタフェースのメソッドは,複数スレッドからの同時発行を
JMS で禁止されています。ただし,close() メソッドだけは複数スレッドから同時発行し
てパラレルに実行できます。
(4) キューの取得
QueueReceiver オブジェクトを生成する際に設定されたキューを取得します。
(5) 形式
public interface MessageConsumer
{
public void
close() throws JMSException;
public MessageListener
getMessageListener() throws JMSException;
public java.lang.String
getMessageSelector() throws JMSException;
public Message receive() throws JMSException;
public Message receive(long timeout) throws JMSException;
public Message receiveNoWait() throws JMSException;
public void
setMessageListener(MessageListener listener)
throws JMSException;
}
324
7. インタフェース
public interface QueueReceiver extends MessageConsumer
{
public Queue
getQueue() throws JMSException;
}
(6) フィールド
ありません。
(7) メソッド
「(5) 形式」に記載した順序で各メソッドを説明します。
(a) close メソッド
public void close() throws JMSException
メッセージコンシューマをクローズします。メッセージコンシューマには幾つかのリ
ソースが割り当てられている場合があるため,リソースが不要になった場合はメッセー
ジコンシューマをクローズしてください。
• クローズされているメッセージコンシューマをクローズしても例外は発生しません。
• このメソッドは MessageConsumer インタフェースでは唯一,複数スレッドから同時
に発行できます。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージコン
シューマをクローズする処理に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) getMessageListener メソッド
public MessageListener getMessageListener() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,null を返します。
● 引数
325
7. インタフェース
ありません。
● 戻り値
メッセージコンシューマのリスナまたは null(リスナが設定されていない場合)。
● 例外
ありません。
(c) getMessageSelector メソッド
public java.lang.String getMessageSelector() throws JMSException
メッセージコンシューマのメッセージセレクタ構文を返します。
● 引数
ありません。
● 戻り値
メッセージコンシューマのメッセージセレクタ。
● 例外
例外クラス
JMSException
説明
セッション,コネクションまたはメッセージコンシューマを
クローズしている状態でメソッドを発行しました。
内部エラーのために JMS プロバイダがメッセージセレクタ
の取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(d) receive メソッド
public Message receive() throws JMSException
メッセージコンシューマ用に生成された次のメッセージを受信します。
メソッドの発行時に,メッセージコンシューマの生成元であるコネクションが stop 状態
の場合は null を返します。メソッドの実行中にコネクションが stop 状態になった場合は
受信待ち状態でメソッドの処理を続行します。
● 引数
ありません。
● 戻り値
メッセージコンシューマ用に生成される次のメッセージ,または null(メッセージコ
ンシューマが同時にクローズされる場合)
。
● 例外
326
7. インタフェース
例外クラス
JMSException
説明
セッション,コネクションまたはメッセージコンシューマを
クローズしている状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが次のメッセージの受
信に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(e) receive メソッド
public Message receive(long timeout) throws JMSException
指定されたタイムアウト間隔内に到着する次のメッセージを受信します。メッセージが
到着するか,タイムアウトになるか,またはメッセージコンシューマがクローズされる
場合,このメソッドは終了します。timeout 引数に 0 を指定するとタイムアウトになり
ません。
メッセージの発行時にメッセージコンシューマの生成元のコネクションが stop 状態の場
合は null を返します。メソッドの実行中にコネクションが stop 状態になった場合は受信
を一時的に中断した状態でタイムアウトするまでメソッドの処理を続行します。
なお,receive() 発行時に該当キュー内にメッセージがなかった場合は,その後 1 秒ごと
のポーリングによってキュー内のメッセージの有無をチェックします。
● 引数
引数名
timeout
説明
タイムアウト値(ミリ秒)
● 戻り値
メッセージコンシューマ用に生成される次のメッセージ,または null(タイムアウト
になるか,メッセージコンシューマが同時にクローズされる場合)。
● 例外
例外クラス
JMSException
説明
セッション,コネクションまたはメッセージコンシューマを
クローズしている状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが次のメッセージの受
信に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
327
7. インタフェース
(f) receiveNoWait メソッド
public Message receiveNoWait() throws JMSException
次のメッセージがすぐに利用できる場合,そのメッセージを受信します。
メッセージの発行時にメッセージコンシューマの生成元のコネクションが stop 状態の場
合は null を返します。
● 引数
ありません。
● 戻り値
メッセージコンシューマ用に生成された次のメッセージ,または null(受信できる次
のメッセージがない場合)
。
● 例外
例外クラス
JMSException
説明
セッション,コネクションまたはメッセージコンシューマを
クローズしている状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが次のメッセージの受
信に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(g) setMessageListener メソッド
public void setMessageListener(MessageListener listener)
throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
listener
● 戻り値
ありません。
● 例外
ありません。
(h) getQueue メソッド
328
説明
メッセージ配送先のリスナ
7. インタフェース
public Queue getQueue() throws JMSException
キューレシーバに関連した Queue オブジェクトを返します。
● 引数
ありません。
● 戻り値
レシーバの Queue オブジェクト。
● 例外
例外クラス
JMSException
説明
セッション,コネクションまたはメッセージコンシューマを
クローズしている状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが QueueReceiver オブ
ジェクトに関連づけられたキューの取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
329
7. インタフェース
7.4.11 QueueSender(MessageProducer)インタフェース
QueueSender(MessageProducer)インタフェースは,JMS クライアントがあて先に
メッセージを送信するために使用します。
(1) メッセージの送信
指定したあて先にメッセージを送信できます。send() メソッドの実行中に,JMS クライ
アント内の他スレッドがメッセージを変更してはいけません。メッセージが変更された
場合の send() メソッドの結果は保証されません。JMSPriority ヘッダの設定は,メッ
セージの送信処理の一部として実行されます。
(2) キューセンダのクローズ
QueueSender オブジェクトをクローズできます。クローズによって,QueueSender オ
ブジェクトに関連づけられたすべてのリソースを解放します。QueueSender
(MessageProducer)インタフェースのメソッドは,複数スレッドからの同時呼び出しを
JMS で禁止されています。ただし,close() メソッドだけは,複数スレッドからの同時発
行に対してパラレルに実行できます。
(3) 形式
public interface MessageProducer
{
public void
close() throws JMSException;
public int
getDeliveryMode() throws JMSException;
public boolean getDisableMessageID() throws JMSException;
public boolean getDisableMessageTimestamp() throws JMSException;
public int
getPriority() throws JMSException;
public long
getTimeToLive() throws JMSException;
public void
setDeliveryMode(int deliveryMode)
throws JMSException;
public void
setDisableMessageID(boolean value)
throws JMSException;
public void
setDisableMessageTimestamp(boolean value)
throws JMSException;
public void
setPriority(int defaultPriority)
throws JMSException;
public void
setTimeToLive(long timeToLive) throws JMSException;
}
public interface QueueSender extends MessageProducer
{
public Queue
getQueue() throws JMSException;
public void
send(Message message) throws JMSException;
public void
send(Message message, int deliveryMode, int
priority,
long timeToLive) throws JMSException;
public void
send(Queue queue, Message message)
throws JMSException;
public void
send(Queue queue, Message message, int
deliveryMode,
int priority, long timeToLive) throws JMSException;
}
330
7. インタフェース
(4) フィールド
ありません。
(5) メソッド
「(3) 形式」に記載した順序で各メソッドを説明します。
(a) close メソッド
public void close() throws JMSException
メッセージプロデューサをクローズします。メッセージプロデューサには幾つかのリ
ソースが割り当てられている場合があるため,リソースが不要になった場合はメッセー
ジプロデューサをクローズしてください。
• クローズされているメッセージプロデューサをクローズしても例外は発生しません。
• このメソッドは MessageProducer インタフェースでは唯一,複数スレッドから同時
に発行できます。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがメッセージプロ
デューサをクローズする処理に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) getDeliveryMode メソッド
public int getDeliveryMode() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,0 を返します。
● 引数
ありません。
● 戻り値
メッセージプロデューサ用のメッセージ管理形態。次に示すどちらかの値を返します。
• DeliveryMode.NON_PERSISTENT:非永続
• DeliveryMode.PERSISTENT:永続
331
7. インタフェース
● 例外
ありません。
(c) getDisableMessageID メソッド
public boolean getDisableMessageID() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,false を返します。
● 引数
ありません。
● 戻り値
メッセージ識別子が無効かどうかを示す値です。
● 例外
ありません。
(d) getDisableMessageTimestamp メソッド
public boolean getDisableMessageTimestamp() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,false を返します。
● 引数
ありません。
● 戻り値
メッセージのタイムスタンプが無効かどうかを示す値です。次に示すどちらかを返し
ます。
• true:メッセージ識別子は使用できません。
• false:メッセージ識別子は使用できます。
● 例外
ありません。
(e) getPriority メソッド
public int getPriority() throws JMSException
メッセージプロデューサに指定された優先度を返します。なお,この値はメッセージに
設定された JMSPriority ヘッダの値と同じです。
● 引数
ありません。
● 戻り値
332
7. インタフェース
メッセージプロデューサ用のメッセージ優先度。
● 例外
例外クラス
説明
JMSException
セッション,コネクションまたはメッセージプロデューサを
クローズしている状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが優先度の取得に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(f) getTimeToLive メソッド
public long getTimeToLive() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,0 を返します。
● 引数
ありません。
● 戻り値
メッセージの有効期間(ミリ秒単位)。ゼロは無制限を示します。
● 例外
ありません。
(g) setDeliveryMode メソッド
public void setDeliveryMode(int deliveryMode) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
deliveryMode
説明
メッセージプロデューサのメッセージの管理形態。次に示すどちら
かの値を指定します。
• DeliveryMode.NON_PERSISTENT:非永続
• DeliveryMode.PERSISTENT:永続
● 戻り値
ありません。
● 例外
333
7. インタフェース
ありません。
(h) setDisableMessageID メソッド
public void setDisableMessageID(boolean value) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
value
説明
メッセージ識別子が無効かどうかを示す値
● 戻り値
ありません。
● 例外
ありません。
(i) setDisableMessageTimestamp メソッド
public void setDisableMessageTimestamp(boolean value)
throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
value
説明
メッセージ識別子が無効かどうかを示す値
● 戻り値
ありません。
● 例外
ありません。
(j) setPriority メソッド
public void setPriority(int defaultPriority) throws JMSException
プロデューサのデフォルトの優先度を指定します。0(最低)∼ 9(最高)の範囲の値を
指定します。デフォルト値は javax.jms.Message.DEFAULT_PRIORITY です。範囲以
外の値を指定した場合,JMSException が発生します。
● 引数
334
7. インタフェース
引数名
defaultPriority
説明
メッセージプロデューサ用のメッセージ優先度。0 ∼ 9 の範囲で値
を指定します。
● 戻り値
ありません。
● 例外
例外クラス
説明
JMSException
セッション,コネクションまたはメッセージプロデューサを
クローズしている状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが優先度の設定に失敗
しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(k) setTimeToLive メソッド
public void setTimeToLive(long timeToLive) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
timeToLive
説明
メッセージの有効期間(ミリ秒単位)。ゼロは無制限を示します。
● 戻り値
ありません。
● 例外
ありません。
(l) getQueue メソッド
public Queue getQueue() throws JMSException
キューセンダに関連づけられたキューを返します。
● 引数
ありません。
● 戻り値
送信側のキュー。
335
7. インタフェース
● 例外
例外クラス
JMSException
説明
セッション,コネクションまたはメッセージプロデューサを
クローズしている状態でメソッドを発行しました。
内部エラーのために JMS プロバイダが QueueSender オブ
ジェクトに関連づけられたキューの取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(m)send メソッド
public void send(Message message) throws JMSException
メッセージをキューに送信します。キューセンダで設定した優先度が使用されます。
送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。
● 引数
引数名
message
説明
送信するメッセージ
● 戻り値
ありません。
● 例外
例外クラス
説明
InvalidDestinationException
JMS クライアントがメソッドを使用する際,キューセンダに
無効なキューを指定しました。
JMSException
セッション,コネクションまたはメッセージプロデューサを
クローズしている状態でメソッドを発行しました。
message 引数に null が指定されました。
内部エラーのために JMS プロバイダがメッセージの送信に
失敗しました。
MessageFormatException
無効なメッセージが指定されました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(n) send メソッド
public void send(Message message, int deliveryMode, int priority,
long timeToLive) throws JMSException
336
7. インタフェース
メッセージをキューに送信します。
• 送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。
• このメソッドを発行した場合,deliveryMode 引数と timeToLive 引数を無視して実行
します。
● 引数
引数名
説明
message
送信するメッセージ
deliveryMode
使用するメッセージの管理形態。次に示すどちらかの値を指定しま
す。
• DeliveryMode.NON_PERSISTENT:非永続
• DeliveryMode.PERSISTENT:永続
priority
メッセージの優先度。0(最低)∼ 9(最高)の範囲で値を指定し
ます。
timeToLive
メッセージの有効期間(ミリ秒)
● 戻り値
ありません。
● 例外
例外クラス
説明
InvalidDestinationException
JMS クライアントがメソッドを使用する際,キューセンダに
無効なキューを指定しました。
JMSException
セッション,コネクションまたはメッセージプロデューサを
クローズしている状態でメソッドを発行しました。
message 引数に null が指定されました。
内部エラーのために JMS プロバイダがメッセージの送信に
失敗しました。
MessageFormatException
無効なメッセージが指定されました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(o) send メソッド
public void send(Queue queue, Message message) throws JMSException
メッセージをキューに送信します。キューセンダで設定した優先度が使用されます。
queue 引数に null が指定された場合,Session.createSender() メソッドの queue 引数に
指定されたキューにメッセージを送信します。
送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。
337
7. インタフェース
● 引数
引数名
説明
queue
メッセージのあて先キュー
message
送信するメッセージ
● 戻り値
ありません。
● 例外
例外クラス
説明
InvalidDestinationException
JMS クライアントがメソッドを使用する際,キューセンダに
無効なキューを指定しました。
JMSException
セッション,コネクションまたはメッセージプロデューサを
クローズしている状態でメソッドを発行しました。
message 引数に null が指定されました。
内部エラーのために JMS プロバイダがメッセージの送信に
失敗しました。
MessageFormatException
無効なメッセージが指定されました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(p) send メソッド
public void send(Queue queue, Message message, int deliveryMode,
int priority, long timeToLive) throws JMSException
メッセージをキューに送信します。
queue 引数に null が指定された場合,Session.createSender() メソッドの queue 引数に
指定されたキューにメッセージを送信します。
• 送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。
• このメソッドを発行した場合,deliveryMode 引数と timeToLive 引数を無視して実行
します。
● 引数
引数名
説明
queue
メッセージのあて先キュー
message
送信するメッセージ
338
7. インタフェース
引数名
説明
deliveryMode
使用するメッセージの管理形態。次に示すどちらかの値を指定しま
す。
• DeliveryMode.NON_PERSISTENT:非永続
• DeliveryMode.PERSISTENT:永続
priority
メッセージの優先度。0(最低)∼ 9(最高)の範囲で値を指定し
ます。
timeToLive
メッセージの有効期間(ミリ秒)
● 戻り値
ありません。
● 例外
例外クラス
説明
InvalidDestinationException
JMS クライアントがメソッドを使用する際,キューセンダに
無効なキューを指定しました。
JMSException
セッション,コネクションまたはメッセージプロデューサを
クローズしている状態でメソッドを発行しました。
message 引数に null が指定されました。
priority 引数に 0 ∼ 9 の範囲外の値が指定されました。
内部エラーのために JMS プロバイダがメッセージの送信に
失敗しました。
MessageFormatException
無効なメッセージが指定されました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
339
7. インタフェース
7.4.12 QueueSession(Session)インタフェース
QueueSession(Session)インタフェースはアプリケーションが使用する論理的なコネ
クションハンドルです。
(1) メッセージオブジェクトの生成
メッセージオブジェクト(Message,BytesMessage,ObjectMessage または
TextMessage オブジェクト)を生成します。
(2) キューセンダの生成
QueueSender オブジェクトを生成します。QueueSender オブジェクトを生成する際,
メッセージのあて先を createSender() メソッドの引数に指定します。
(3) キューレシーバの生成
QueueReceiver オブジェクトを生成します。QueueReceiver オブジェクトを生成する
際,メッセージセレクタを設定できます。
(4) キューブラウザの生成
QueueBrowser オブジェクトを生成します。QueueBrowser オブジェクトを生成する際,
メッセージセレクタを設定できます。
(5) ローカルトランザクションのコミットとロールバック
キューセンダとキューレシーバにわたるローカルトランザクションの開始,コミットお
よびロールバックを実行します。ローカルトランザクションについては,「2.6.6(1) ローカルトランザクションの利用」を参照してください。
(6) キューセッションのクローズ
QueueSession オブジェクトをクローズできます。クローズによって,QueueSession オ
ブジェクトに関連づけられたすべての QueueSender,QueueReceiver および
QueueBrowser オブジェクトをクローズし,QueueSession オブジェクトに関連づけられ
たすべてのリソースを解放します。
QueueSession(Session)インタフェースのメソッドは,複数スレッドからの同時発行
を JMS で禁止されています。ただし,close() メソッドだけは複数スレッドから同時発行
してパラレルに実行できます。また,クローズされた QueueSession オブジェクトに関
連するインタフェースのメソッドを実行すると IllegalStateException が発生しますが,
close() メソッドでは発生しません。
(7) 配送メッセージのリカバー
一度配送されたメッセージを再び配送できるようにします。recover() メソッドの動作に
340
7. インタフェース
ついては,「2.6.6(4) トランザクションとメッセージ受信」を参照してください。
(8) 形式
public interface Session extends java.lang.Runnable
{
public static final int AUTO_ACKNOWLEDGE;
public static final int CLIENT_ACKNOWLEDGE;
public static final int DUPS_OK_ACKNOWLEDGE;
public void
close() throws JMSException;
public void
commit() throws JMSException;
public BytesMessage
createBytesMessage() throws JMSException;
public MapMessage
createMapMessage() throws JMSException;
public Message createMessage() throws JMSException;
public ObjectMessage
createObjectMessage() throws JMSException;
public ObjectMessage
createObjectMessage(java.io.Serializable object)
throws JMSException;
public StreamMessage
createStreamMessage() throws JMSException;
public TextMessage
createTextMessage() throws JMSException;
public TextMessage
createTextMessage(java.lang.String text)
throws JMSException;
public MessageListener
getMessageListener() throws JMSException;
public boolean getTransacted() throws JMSException;
public void
recover() throws JMSException;
public void
rollback() throws JMSException;
public void
run();
public void
setMessageListener(MessageListener listener)
throws JMSException;
}
public interface QueueSession extends Session
{
public QueueBrowser
createBrowser(Queue queue) throws JMSException;
public QueueBrowser
createBrowser(Queue queue,
java.lang.String messageSelector)
throws JMSException;
public Queue
createQueue(java.lang.String queueName)
throws JMSException;
public QueueReceiver
createReceiver(Queue queue) throws JMSException;
public QueueReceiver
createReceiver(Queue queue,
java.lang.String messageSelector)
throws JMSException;
public QueueSender
createSender(Queue queue) throws JMSException;
public TemporaryQueue
createTemporaryQueue() throws JMSException;
}
341
7. インタフェース
(9) フィールド
「(8) 形式」に記載した順序で各フィールドを説明します。
(a) AUTO_ACKNOWLEDGE フィールド
public static final int AUTO_ACKNOWLEDGE
このメッセージ承認モードでは,次に示す場合にセッションが JMS クライアントのメッ
セージ受信を自動的に確認応答します。
• セッションが receive() メソッドの発行からの復帰に成功した場合
• メッセージを処理するためにセッションが発行したメッセージリスナが復帰に成功し
た場合
(b) CLIENT_ACKNOWLEDGE フィールド
public static final int CLIENT_ACKNOWLEDGE
このメッセージ承認モードでは,JMS クライアントがメッセージの acknowledge() メ
ソッドを発行して処理済みのメッセージを確認応答します。
(c) DUPS_OK_ACKNOWLEDGE フィールド
public static final int DUPS_OK_ACKNOWLEDGE
このメッセージ承認モードは AUTO_ACKNOWLEDGE と同じ動作です。
(10)メソッド
「(8) 形式」に記載した順序で各メソッドを説明します。
(a) close メソッド
public void close() throws JMSException
セッションをクローズします。セッションには幾つかのリソースが割り当てられている
場合があるため,リソースが不要になった場合はセッションをクローズしてください。
メソッドを発行すると次に示すとおり動作します。
• セッションのトランザクションはロールバックされます。
• セッションに関連づけられているすべての QueueSender,QueueReceiver および
QueueBrowser オブジェクトがクローズされます。
• メッセージ処理が適切な方法で終了されるまで,メソッドは復帰しません。
• セッションのすべての未承認メッセージは QueueSession.recover() メソッドが正常終
了したときと同じ状態になります。
なお,クローズされているセッションをクローズしても例外は発生しません。
342
7. インタフェース
複数スレッドから同時に発行できるメソッドは,QueueSession インタフェースではこの
メソッドだけです。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがセッションをクロー
ズする処理に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) commit メソッド
public void commit() throws JMSException
トランザクションで実行されたメッセージをすべてコミットし,設定中のロックをすべ
て解放します。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
IllegalStateException
説明
セッションのトランザクションが開始していない状態で,メ
ソッドが発行されました。
トランザクションマネジャでのトランザクションが進行中
(例えば,分散トランザクションが JTA によって制御されて
いる)であるため,コミットに失敗しました。
トランザクションマネジャでのトランザクションがサスペン
ド中であるため,コミットに失敗しました。
セッションまたはコネクションがクローズしている状態で,
メソッドが発行されました。
JMSException
内部エラーのために JMS プロバイダがトランザクションの
コミットに失敗しました。
TransactionRolledBackException
コミット時に内部エラーのためにトランザクションがロール
バックされました。
343
7. インタフェース
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(c) createBytesMessage メソッド
public BytesMessage createBytesMessage() throws JMSException
BytesMessage オブジェクトを作成します。
● 引数
ありません。
● 戻り値
BytesMessage オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがメッセージの作成に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(d) createMapMessage メソッド
public MapMessage createMapMessage() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,JMSException が発生します。
● 引数
ありません。
● 戻り値
MapMessage オブジェクト。
● 例外
例外クラス
JMSException
説明
メソッドが未サポートであることを示します。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
344
7. インタフェース
(e) createMessage メソッド
public Message createMessage() throws JMSException
Message オブジェクトを作成します。
● 引数
ありません。
● 戻り値
Message オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがメッセージの作成に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(f) createObjectMessage メソッド
public ObjectMessage createObjectMessage() throws JMSException
ObjectMessage オブジェクトを作成します。
● 引数
ありません。
● 戻り値
ObjectMessage オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがメッセージの作成に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(g) createObjectMessage メソッド
public ObjectMessage createObjectMessage(java.io.Serializable
345
7. インタフェース
object)
throws JMSException
ペイロードを設定済みの ObjectMessage オブジェクトを,object 引数を基に作成しま
す。
● 引数
引数名
object
説明
メッセージの初期化に使用するオブジェクト
● 戻り値
ペイロードを設定済みの ObjectMessage オブジェクトを,object 引数を基に作成しま
す。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがメッセージの作成に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(h) createStreamMessage メソッド
public StreamMessage createStreamMessage() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,JMSException が発生します。
● 引数
ありません。
● 戻り値
StreamMessage オブジェクト。
● 例外
例外クラス
JMSException
説明
メソッドが未サポートであることを示します。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
346
7. インタフェース
(i) createTextMessage メソッド
public TextMessage createTextMessage() throws JMSException
TextMessage オブジェクトを作成します。
● 引数
ありません。
● 戻り値
TextMessage オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがメッセージの作成に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(j) createTextMessage メソッド
public TextMessage createTextMessage(java.lang.String text)
throws JMSException
ペイロードを設定済みの TextMessage オブジェクトを,text 引数を基に作成します。
● 引数
引数名
text
説明
メッセージの初期化に使用する文字列
● 戻り値
ペイロードを設定済みの TextMessage オブジェクトを,text 引数を基に作成します。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがメッセージの作成に
失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
347
7. インタフェース
(k) getMessageListener メソッド
public MessageListener getMessageListener() throws JMSException
このメソッドは未サポートです。
メソッドを発行した場合,null を返します。
● 引数
ありません。
● 戻り値
セッションに関連づけられたメッセージリスナ。
● 例外
ありません。
(l) getTransacted メソッド
public boolean getTransacted() throws JMSException
セッションがトランザクションモードであるかどうかを示します。
● 引数
ありません。
● 戻り値
セッションがトランザクションモードである場合は true,そうでない場合は false を
返します。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがトランザクション
モード値の取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(m)recover メソッド
public void recover() throws JMSException
メソッドを発行すると次に示すとおり動作します。
• メッセージ配送を停止します。
• 今までセッションを介して配送されたメッセージに再配送マークを付けて,再配送で
きるようにします。
348
7. インタフェース
• すべての配送済みの未承認メッセージを含む配送シーケンスを再開します。ただし,
元の配送順序と同じ順序でメッセージが再配送されることは保証しません。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
IllegalStateException
説明
トランザクションマネジャでのトランザクションが開始して
いるセッションで,メソッドが発行されました。
トランザクションマネジャでのトランザクションが開始して
いることによって,メソッドが失敗しました。
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがメッセージ配送の停
止および再開に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(n) rollback メソッド
public void rollback() throws JMSException
トランザクションで実行されたメッセージをすべてロールバックし,設定中のロックを
すべて解放します。
● 引数
ありません。
● 戻り値
ありません。
● 例外
例外クラス
IllegalStateException
説明
セッションのトランザクションが開始していない状態で,メ
ソッドが発行されました。
トランザクションマネジャでのトランザクションが進行中
(例えば,分散トランザクションが JTA によって制御されて
いる)であるため,ロールバックに失敗しました。
トランザクションマネジャでのトランザクションがサスペン
ド中であるため,ロールバックに失敗しました。
349
7. インタフェース
例外クラス
説明
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのために JMS プロバイダがトランザクションの
ロールバックに失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(o) run メソッド
public void run()
このメソッドは未サポートです。
このメソッドを発行した場合,実質的な処理は行われません。
● 引数
ありません。
● 戻り値
ありません。
● 例外
ありません。
(p) setMessageListener メソッド
public void setMessageListener(MessageListener listener)
throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
● 引数
引数名
listener
説明
セッションに関連づけるメッセージリスナ
● 戻り値
ありません。
● 例外
ありません。
(q) createBrowser メソッド
public QueueBrowser createBrowser(Queue queue) throws JMSException
350
7. インタフェース
QueueBrowser オブジェクトを作成して,指定されたキューのメッセージを調べます。
● 引数
引数名
queue
説明
アクセス対象のキュー
● 戻り値
QueueBrowser オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
InvalidDestinationException
無効なキューが指定されたために QueueBrowser オブジェク
トの生成に失敗しました。
JMSException
内部エラーのためにセッションが QueueBrowser オブジェク
トの作成に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(r) createBrowser メソッド
public QueueBrowser createBrowser(Queue queue,
java.lang.String messageSelector) throws JMSException
QueueBrowser オブジェクトを作成し,メッセージセレクタを使用して指定された
キューのメッセージを調べます。
● 引数
引数名
説明
queue
アクセス対象のキュー
messageSelector
メッセージセレクタ構文
● 戻り値
QueueBrowser オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
InvalidDestinationException
無効なキューが指定されたために QueueBrowser オブジェク
トの生成に失敗しました。
351
7. インタフェース
例外クラス
説明
InvalidSelectorException
無効なメッセージセレクタを設定しました。
JMSException
内部エラーのためにセッションが QueueBrowser オブジェク
トの作成に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(s) createQueue メソッド
public Queue createQueue(java.lang.String queueName)
throws JMSException
キューの名前を指定して,キューの識別情報を作成します。
queueName 引数には hrmmkque コマンドに指定したキュー名を指定します。
● 引数
引数名
queueName
説明
キューの名前
● 戻り値
指定された名前の Queue オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
JMSException
内部エラーのためにセッションがキューの作成に失敗しまし
た。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(t) createReceiver メソッド
public QueueReceiver createReceiver(Queue queue) throws
JMSException
QueueReceiver オブジェクトを作成して,指定されたキューからメッセージを受信しま
す。
● 引数
352
7. インタフェース
引数名
queue
説明
アクセス対象のキュー
● 戻り値
QueueReceiver オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
InvalidDestinationException
無効なキューが指定されたために QueueReceiver オブジェク
トの生成に失敗しました。
JMSException
内部エラーのためにセッションが QueueReceiver オブジェク
トの作成に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(u) createReceiver メソッド
public QueueReceiver createReceiver(Queue queue,
java.lang.String messageSelector) throws JMSException
QueueReceiver オブジェクトを作成し,メッセージセレクタを使用して指定された
キューからメッセージを受信します。
● 引数
引数名
説明
queue
アクセス対象のキュー。
messageSelector
メッセージセレクタ。メッセージセレクタ構文に一致するプロパ
ティを保持するメッセージだけが配送されます。
● 戻り値
QueueReceiver オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
InvalidDestinationException
無効なキューが指定されたために QueueReceiver オブジェク
トの生成に失敗しました。
InvalidSelectorException
無効なメッセージセレクタを設定しました。
353
7. インタフェース
例外クラス
JMSException
説明
内部エラーのためにセッションが QueueReceiver オブジェク
トの作成に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(v) createSender メソッド
public QueueSender createSender(Queue queue) throws JMSException
QueueSender オブジェクトを作成して,指定されたキューにメッセージを送信します。
● 引数
引数名
queue
説明
アクセス対象のキュー
● 戻り値
QueueSender オブジェクト。
● 例外
例外クラス
説明
IllegalStateException
セッションまたはコネクションがクローズしている状態で,
メソッドを発行しました。
InvalidDestinationException
無効なキューが指定されたために QueueSender オブジェク
トの生成に失敗しました。
JMSException
内部エラーのためにセッションが QueueSender オブジェク
トの作成に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(w)createTemporaryQueue メソッド
public TemporaryQueue createTemporaryQueue() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,JMSException が発生します。
● 引数
ありません。
● 戻り値
TemporaryQueue オブジェクト。
354
7. インタフェース
● 例外
例外クラス
JMSException
説明
メソッドが未サポートであることを示します。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
355
7. インタフェース
7.4.13 TextMessage インタフェース
TextMessage インタフェースは java.lang.String 型のデータを含むメッセージを送受信
するために使用します。TextMessage インタフェースは Message インタフェースを継承
しているため,Message インタフェースの機能を持っています。
(1) ペイロードの設定と取得
TextMessage インタフェースを使用することでペイロードを設定および取得できます。
このペイロードは java.lang.String 型のデータです。JMS メッセージの各要素について
は,「2.5.1 JMS メッセージの構成」を参照してください。
(2) 形式
public interface TextMessage extends Message
{
public java.lang.String
getText() throws JMSException;
public void
setText(java.lang.String string) throws
JMSException;
}
(3) フィールド
ありません。
(4) メソッド
「(2) 形式」に記載した順序で各メソッドを説明します。
(a) getText メソッド
public java.lang.String getText() throws JMSException
メッセージのデータを含む文字列を返します。メッセージ本体が設定されていない場合
はデフォルト値である null を返します。
● 引数
ありません。
● 戻り値
メッセージのデータを含む String オブジェクト。
● 例外
例外クラス
JMSException
説明
内部エラーのために JMS プロバイダがテキストの取得に失
敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
356
7. インタフェース
「7.9 障害コードの詳細」を参照してください。
(b) setText メソッド
public void setText(java.lang.String string) throws JMSException
メッセージのデータを含む文字列を設定します。
● 引数
引数名
string
説明
メッセージのデータを含む String オブジェクト
● 戻り値
ありません。
● 例外
例外クラス
JMSException
説明
string 引数に null が指定されました。
内部エラーのために JMS プロバイダがテキストの設定に失
敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしま
した。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
357
7. インタフェース
7.5 転送データ相互接続用インタフェースの一
覧
Cosminexus RM の転送データ相互接続用インターフェースは永続版リソースアダプタだ
けが使用できます。非永続版リソースアダプタでは使用できません。
転送データ相互接続用インタフェースは,次に示すパッケージによって提供されます。
jp.co.Hitachi.soft.reliablemessaging.api
Cosminexus RM が提供する転送データ相互接続用インタフェースの一覧について,次の
表に示します。
表 7-3 転送データ相互接続用インタフェースの一覧
項番
インタフェース名
機能
1
BytesContainerFactory
BytesContainer を生成します。
2
BytesContainer
設定したデータをバイト配列で保持します。提供する機能は,
次のとおりです。
• バイト配列およびバイト配列のデータ型の設定
• バイト配列およびバイト配列のデータ型の取得
• 保持するバイト配列数の取得
• 保持する全データの消去
転送データ相互接続用インタフェース使用時の例外クラスは,次に示すパッケージに
よって提供されます。
jp.co.Hitachi.soft.reliablemessaging.api
転送データ相互接続用インタフェース使用時の例外クラスの一覧について,次の表に示
します。
表 7-4 転送データ相互接続用インタフェースの例外クラスの一覧
項番
例外クラス名
例外が発生する状況
1
HRMException
すべての転送データ相互接続用 API 例外のルートクラ
スであるため,特定のタイミングに該当しません。
2
HRMIllegalArgumentException
メソッドの呼び出しで不正な引数を指定した場合
転送データ相互接続用インタフェースおよび例外のクラスは,次に示すライブラリで提
供されます。
%HRMDIR%¥lib¥reliablemessaging-api.jar
358
7. インタフェース
転送データ相互接続用インタフェースを使用するアプリケーションのコンパイル時には,
上に示すライブラリをクラスパスに含めてください。
359
7. インタフェース
7.6 転送データ相互接続用インタフェース継承
図
Cosminexus RM の転送データ相互接続用インタフェース BytesContainerFactory およ
び BytesContainer には,継承関係はありません。
一方,例外クラスには継承関係があります。例外クラスの継承について,次の図に示し
ます。
図 7-3 転送データ相互接続用例外クラスの継承
360
7. インタフェース
7.7 転送データ相互接続用インタフェースの使
い方
JMS インタフェースを使用してメッセージを送受信する際,送信メッセージに
BytesContainer を設定する方法と,受信したメッセージから BytesContainer を取得す
る方法を次の表に示します。
表 7-5 BytesContainer の使用方法
項番
処理内容
BytesContainer の使用方法
1
送信処理
javax.jms.ObjectMessage オブジェクトの setObject メソッドで
BytesContainer オブジェクトを設定してメッセージを送信します。
2
受信処理
受信処理で取得した javax.jms.ObjectMessage オブジェクトの getObject メ
ソッドを使用して BytesContainer オブジェクトを取得します。
Cosminexus RM 同士の通信での BytesContainer の使用方法の概要を次の図に示しま
す。
361
7. インタフェース
図 7-4 Cosminexus RM 同士の通信での BytesContainer 使用方法の概要
他システムとの通信での BytesContainer 使用方法の概要を次の図に示します。
362
7. インタフェース
図 7-5 Cosminexus RM が送信側の場合の他システムとの通信
363
7. インタフェース
図 7-6 Cosminexus RM が受信側の場合の他システムとの通信
364
7. インタフェース
7.8 転送データ相互接続用インタフェースの詳
細
転送データ相互接続用インタフェースを,BytesContainerFactory インタフェース,
BytesContainer インタフェース,HRMException クラス,
HRMIllegalArgumentException クラスの順に説明します。
7.8.1 BytesContainerFactory インタフェース
BytesContainerFactory インタフェースは BytesContainer を生成します。
アプリケーションでは,QueueConnection オブジェクトの createQueueSession メソッ
ドで取得した QueueSession オブジェクトに対して BytesContainerFactory をキャスト
することによって,BytesContainerFactory オブジェクトを取得できます。
(1) BytesContainer の生成
createBytesContainer メソッドを呼び出すことで BytesContainer を生成します。
(2) 形式
public interface BytesContainerFactory
{
public BytesContainer createBytesContainer();
}
(3) フィールド
ありません。
(4) メソッド
「(2) 形式」に記載した順序で各メソッドを説明します。
(a) createBytesContainer メソッド
public BytesContainer createBytesContainer()
BytesContainer を作成します。
● 引数
ありません。
● 戻り値
新たに作成された BytesContainer。
365
7. インタフェース
7.8.2 BytesContainer インタフェース
BytesContainer インタフェースはバイト配列を含むメッセージを送受信するために使用
します。Cosminexus RM 同士だけでなく,WS-Reliability1.1 に準拠する他システムと
データをやり取りする際に使用できます。
(1) BytesContainer インタフェースの仕様
BytesContainer インタフェースは,バイト配列およびバイト配列のデータ型を示す値の
組を 1 個だけ含むインタフェースです。
BytesContainer インタフェースは,次の二つの要素で構成されます。
● バイト配列
プリミティブなバイト配列です。
● バイト配列のデータ型
バイト配列のデータ型を示す値が入ります。
BytesContainer インタフェースの構成を次の図に示します。
図 7-7 BytesContainer インタフェースの構成
(2) BytesContainer インタフェースのデータ型
BytesContainer インタフェースに含まれるバイト配列のデータ型の一覧を次の表に示し
ます。
表 7-6 バイト配列のデータ型一覧
項番
データ型の種類
バイト配列のデータ型の内容
1
HTML 型
拡張子が html,htm のファイルの内容をバイト配列化した
データ
2
TEXT 型
拡張子が txt,text のファイルの内容をバイト配列化したデー
タ※
3
IEF 型
拡張子が ief のファイルの内容をバイト配列化したデータ
4
TIFF 型
拡張子が tiff, tif のファイルの内容をバイト配列化したデータ
5
XWD 型
拡張子が xwd のファイルの内容をバイト配列化したデータ
6
POSTSCRIPT 型
拡張子が ai, eps, ps のファイルの内容をバイト配列化したデー
タ
7
RTF 型
拡張子が rtf のファイルの内容をバイト配列化したデータ
366
7. インタフェース
項番
データ型の種類
バイト配列のデータ型の内容
8
TEX 型
拡張子が tex のファイルの内容をバイト配列化したデータ
9
TEXINFO 型
拡張子が texinfo,texi のファイルの内容をバイト配列化した
データ
10
ROFF 型
拡張子が t,tr,roff のファイルの内容をバイト配列化した
データ
11
AU 型
拡張子が au のファイルの内容をバイト配列化したデータ
12
MIDI 型
拡張子が midi,mid のファイルの内容をバイト配列化した
データ
13
AIFC 型
拡張子が aifc のファイルの内容をバイト配列化したデータ
14
AIF 型
拡張子が aif,aiff のファイルの内容をバイト配列化したデータ
15
WAV 型
拡張子が wav のファイルの内容をバイト配列化したデータ
16
MPEG 型
拡張子が mpeg,mpg,mpe のファイルの内容をバイト配列化
したデータ
17
QT 型
拡張子が qt,mov のファイルの内容をバイト配列化したデー
タ
18
AVI 型
拡張子が avi のファイルの内容をバイト配列化したデータ
19
上に示す以外の型
上に示す以外の内容をバイト配列化したデータ
注※
データ型が TEXT 型の場合,文字コード(charset)を UTF-8 に指定して転送します。
(3) バイト配列数の取得
BytesContainer インタフェースが保持するバイト配列の数を取得する機能を提供しま
す。
(4) 保持する全データの消去
BytesContainer インタフェースが保持するデータ(バイト配列およびバイト配列のデー
タ型)をすべて消去する機能を提供します。
(5) 形式
public interface BytesContainer
{
public static final String TEXT_HTML;
public static final String TEXT_PLAIN;
public static final String IMAGE_IEF;
public static final String IMAGE_TIFF;
public static final String IMAGE_X_XWINDOWDUMP;
public static final String APPLICATION_POSTSCRIPT;
public static final String APPLICATION_RTF;
public static final String APPLICATION_X_TEX;
public static final String APPLICATION_X_TEXINFO;
public static final String APPLICATION_X_TROFF;
public static final String AUDIO_BASIC;
367
7. インタフェース
public
public
public
public
public
public
public
public
static
static
static
static
static
static
static
static
final
final
final
final
final
final
final
final
String
String
String
String
String
String
String
String
AUDIO_MIDI;
AUDIO_X_AIFC;
AUDIO_X_AIFF;
AUDIO_X_WAV;
VIDEO_MPEG ;
VIDEO_QUICKTIME;
VIDEO_X_MSVIDEO;
APPLICATION_OCTET_STREAM;
public void addPayload(byte[] payload) throws HRMException;
public void addPayload(byte[] payload, String contentType) throws
HRMException;
public int size();
public byte[] getPayload(int number) throws HRMException;
public String getContentType(int number) throws HRMException;
public void clear();
}
(6) フィールド
「(5) 形式」に記載した順序で各フィールドを説明します。
(a) TEXT_HTML フィールド
public static final String TEXT_HTML
バイト配列のデータが HTML 型であることを示す値です。
(b) TEXT_PLAIN フィールド
public static final String TEXT_PLAIN
バイト配列のデータが TEXT 型であることを示す値です。
(c) IMAGE_IEF フィールド
public static final String IMAGE_IEF
バイト配列のデータが IEF 型であることを示す値です。
(d) IMAGE_TIFF フィールド
public static final String IMAGE_TIFF
バイト配列のデータが TIFF 型であることを示す値です。
(e) IMAGE_X_XWINDOWDUMP フィールド
public static final String IMAGE_X_XWINDOWDUMP
バイト配列のデータが XWD 型であることを示す値です。
368
7. インタフェース
(f) APPLICATION_POSTSCRIPT フィールド
public static final String APPLICATION_POSTSCRIPT
バイト配列のデータが POSTSCRIPT 型であることを示す値です。
(g) APPLICATION_RTF フィールド
public static final String APPLICATION_RTF
バイト配列のデータが RTF 型であることを示す値です。
(h) APPLICATION_X_TEX フィールド
public static final String APPLICATION_X_TEX
バイト配列のデータが TEX 型であることを示す値です。
(i) APPLICATION_X_TEXINFO フィールド
public static final String APPLICATION_X_TEXINFO
バイト配列のデータが TEXINFO 型であることを示す値です。
(j) APPLICATION_X_TROFF フィールド
public static final String APPLICATION_X_TROFF
バイト配列のデータが ROFF 型であることを示す値です。
(k) AUDIO_BASIC フィールド
public static final String AUDIO_BASIC
バイト配列のデータが AU 型であることを示す値です。
(l) AUDIO_MIDI フィールド
public static final String AUDIO_MIDI
バイト配列のデータが MIDI 型であることを示す値です。
(m) AUDIO_X_AIFC フィールド
public static final String AUDIO_X_AIFC
バイト配列のデータが AIFC 型であることを示す値です。
369
7. インタフェース
(n) AUDIO_X_AIFF フィールド
public static final String AUDIO_X_AIFF
バイト配列のデータが AIF 型であることを示す値です。
(o) AUDIO_X_WAV フィールド
public static final String AUDIO_X_WAV
バイト配列のデータが WAV 型であることを示す値です。
(p) VIDEO_MPEG フィールド
public static final String VIDEO_MPEG
バイト配列のデータが MPEG 型であることを示す値です。
(q) VIDEO_QUICKTIME フィールド
public static final String VIDEO_QUICKTIME
バイト配列のデータが QT 型であることを示す値です。
(r) VIDEO_X_MSVIDEO フィールド
public static final String VIDEO_X_MSVIDEO
バイト配列のデータが AVI 型であることを示す値です。
(s) APPLICATION_OCTET_STREAM フィールド
public static final String APPLICATION_OCTET_STREAM
バイト配列のデータが,ほかのフィールドで示したデータ型以外であることを示す値で
す。
(7) メソッド
「(5) 形式」に記載した順序で各メソッドを説明します。
(a) addPayload メソッド
public void addPayload(byte[] payload) throws HRMException
メッセージのデータを含む byte[] を設定します。payload のデータ型を示す値は
APPLICATION_OCTET_STREAM になります。
370
7. インタフェース
BytesContainer に設定できるバイト配列の制限数は 1 です。
● 引数
引数名
payload
説明
メッセージのデータを含む byte[]
● 戻り値
ありません。
● 例外
例外クラス
説明
HRMIllegalArgumentException
引数 payload に null を指定しました。
HRMException
制限数より多くのバイト配列を設定しました。または,内部エ
ラーのためにメソッドの処理が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(b) addPayload メソッド
public void addPayload(byte[] payload, String contentType) throws
HRMException
メッセージのデータを含む byte[] を設定します。
BytesContainer に設定できるバイト配列の制限数は 1 です。
引数 contentType に TEXT_PLAIN を指定した場合,引数 payload に指定する値は,
UTF-8 の文字コードの値として扱います。文字コードが UTF-8 以外の値を指定して
キュー間転送をした場合,受信側で同じ値を取得できません。
● 引数
引数名
説明
payload
メッセージのデータを含む byte[]
contentType
payload のデータ型を示す値
● 戻り値
ありません。
● 例外
371
7. インタフェース
例外クラス
説明
HRMIllegalArgumentException
次のうちのどれかの状態になりました。
• 引数 payload に null を指定した
• 引数 contentType に null を指定した
• 引数 contentType に BytesContainer のフィールドで定義した
値以外を設定した
HRMException
制限数より多くのバイト配列を設定しました。または,内部エ
ラーのためにメソッドの処理が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(c) size メソッド
public int size()
BytesContainer インタフェースが保持するバイト配列の数を返します。
● 引数
ありません。
● 戻り値
BytesContainer が保持するバイト配列の数を示す値です。
● 例外
ありません。
(d) getPayload メソッド
public byte[] getPayload(int number) throws HRMException
引数 number で指定されたバイト配列を返します。この引数 number と同じ値を
getContentType メソッドの引数に指定して発行した場合の値が,TEXT_PLAIN だった
とき,このメソッドで取得するデータは UTF-8 の文字コードで変換された値です。
● 引数
引数名
number
説明
取得するバイト配列の番号を示す値です。制限数は 0 です。
● 戻り値
メッセージのデータを含む byte[]。
● 例外
372
7. インタフェース
例外クラス
説明
HRMIllegalArgumentException
引数 number が制限数の範囲外です。または,BytesContainer
が保持するバイト配列数を超える値を引数 number に指定しまし
た。
HRMException
内部エラーのためにメソッドの処理が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(e) getContentType メソッド
public String getContentType(int number) throws HRMException
引数 number で指定されたバイト配列のデータ型を返します。
● 引数
引数名
number
説明
取得するバイト配列の番号を示す値です。制限数は 0 です。
● 戻り値
payload のデータ型を示す値です。
● 例外
例外クラス
説明
HRMIllegalArgumentException
引数 number が制限数の範囲外です。または,BytesContainer
が保持するバイト配列数を超える値を引数 number に指定しまし
た。
HRMException
内部エラーのためにメソッドの処理が失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,
「7.9 障害コードの詳細」を参照してください。
(f) clear メソッド
public void clear()
BytesContainer インタフェースが保持するデータ(バイト配列およびバイト配列のデー
タ型)をすべて消去します。
● 引数
ありません。
● 戻り値
ありません。
373
7. インタフェース
● 例外
ありません。
374
7. インタフェース
7.8.3 HRMException クラス
このクラスは転送データ相互接続用 API 例外のルートクラスです。なお,
java.lang.Exception の親クラスである java.lang.Throwable クラスから継承したメソッ
ドに関する説明(形式,コンストラクタ,メソッド)は省略します。
(1) 形式
public class HRMException extends java.lang.Exception
{
public HRMException(String errorMessage, String errorCode){}
public String getErrorCode(){}
public String getErrorMessage(){}
public Exception getLinkedException() {}
}
(2) コンストラクタ
「(1) 形式」に記載した順序でコンストラクタを説明します。
(a) HRMException コンストラクタ
public HRMException(String errorMessage, String errorCode)
HRMException を生成する際に,障害文字列と障害コードを設定します。
● 引数
引数名
説明
errorMessage
障害発生要因を示す障害文字列
errorCode
障害発生要因を示す障害コード
● 戻り値
ありません。
● 例外
ありません。
(3) メソッド
「(1) 形式」に記載した順序で各メソッドを説明します。
(a) getErrorCode メソッド
public java.lang.String getErrorCode()
障害発生要因を示す障害コードを返します。
● 引数
ありません。
375
7. インタフェース
● 戻り値
障害発生要因を示す障害コードです。
● 例外
ありません。
(b) getErrorMessage メソッド
public java.lang.String getErrorMessage()
障害発生要因を示す障害文字列を返します。
● 引数
ありません。
● 戻り値
障害発生要因を示す障害文字列です。
● 例外
ありません。
(c) getLinkedException メソッド
public java.lang.Exception getLinkedException()
このクラスにリンクされた例外を取得します。
● 引数
ありません。
● 戻り値
リンクされた例外です。
● 例外
ありません。
376
7. インタフェース
7.8.4 HRMIllegalArgumentException クラス
このクラスは,メソッドの呼び出しで不正な引数を指定したことを示す例外クラスです。
なお,java.lang.Exception の親クラスである java.lang.Throwable クラスから継承した
メソッドに関する説明(形式,コンストラクタ,メソッド)は省略します。
(1) 形式
public class HRMIllegalArgumentException extends HRMException
{
public HRMIllegalArgumentException(
String errorMessage, String errorCode) {}
public String getErrorCode() {}
public String getErrorMessage() {}
public Exception getLinkedException() {}
}
(2) コンストラクタ
HRMException クラスと同じ内容です。「7.8.3 HRMException クラス」を参照してく
ださい。
(3) メソッド
HRMException クラスと同じ内容です。「7.8.3 HRMException クラス」を参照してく
ださい。
377
7. インタフェース
7.9 障害コードの詳細
アプリケーションでは,例外クラスの getErrorCode() メソッドを発行することによって
障害コードを取得できます。また,getMessage() メソッドを発行することによって障害
文字列を取得できます。障害コードおよび障害文字列を参照して,障害に対処してくだ
さい。
障害コードの一覧を,次の表に示します。
表 7-7 障害コードの一覧
項
番
障害コード
障害文字列
発生要因
対処
1
HRM-00001
Null has been
specified for the
argument.
引数に null を指
定しています。
引数には null 以外を指
定してください。
2
HRM-00002
The value set for the
argument (number)
is outside the valid
range.
引数の number
に制限範囲外の
値を設定しまし
た。
引数の number には制
限範囲内の値を設定し
てください。
3
HRM-00003
More bytes than the
limit have been set
for BytesContainer.
BytesContainer
に対して制限よ
り多くのバイト
配列を設定しま
した。
BytesContainer に設定
するバイト配列の数が
制限を超えないように
してください。
4
HRM-00004
A value other than
that defined in the
BytesContainer field
has been set for the
contentType
argument.
引数の
contentType に
BytesContainer
のフィールドで
定義した値以外
を設定しました。
引数の contentType に
は BytesContainer の
フィールドで定義した
値を設定してください。
5
HRM-00005
An element
corresponding to the
value for the
argument (number)
was not found.
引数の number
の値に対応する
要素が見つかり
ません。
対応する要素が存在す
る値を引数の number
に設定してください。
6
HRM-00006
The destination is
invalid. There is no
message in this
destination.
デスティネー
ションは不正で
す。このデス
ティネーション
にはメッセージ
はありません。
指定したキューを見直
してください。送信用
共用キューからメッ
セージ数を取得しよう
としていると考えられ
ます。
7
HRM-00103
The destination does
not exist.
デスティネー
ションがありま
せん。
指定したキュー名を見
直してください。
378
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
8
HRM-00203
The destination is
invalid. It is not
possible to send to
this destination.
デスティネー
ションは,送信
できるあて先で
はありません。
指定したキュー名を見
直してください。次の
場合が考えられます。
デッドメッセージ
キューに送信していま
す。
9
HRM-00204
The destination is
invalid. It is not
possible to receive
from this
destination.
デスティネー
ションは,受信
できるあて先で
はありません。
受信できないキューを
見直してください。次
の場合が考えられます。
送信用共用キューから
受信しています。
10
HRM-00205
This message cannot
be sent to a shared
queue.
このメッセージ
は共用キューに
送信できません。
共用キューに送信する
場合は,BytesMessage
インタフェースを使用
して送信してください。
11
HRM-00206
The size of this
message exceeds the
maximum length
defined for the
queue.
このメッセージ
の本体のサイズ
はキューで定義
された最大メッ
セージ長をオー
バしています。
メッセージの本体の長
さを見直してください。
12
HRM-00207
The system
definition
information conflicts
with the queue
attribute
information.
システムの定義
情報とキューの
属性情報が不一
致です。
キューの属性情報,ま
たはシステムの定義情
報を見直してください。
次に示す状況が考えら
れます。
RMSHConnectFlag プ
ロパティ指定値が false
のときに受信用共用
キューを利用しようし
ています。
13
HRM-00208
Registration of
messages into the
queue is suppressed.
キューへのメッ
セージの登録は
抑止されていま
す。
キューへのメッセージ
の登録の抑止を解除し
てください。
14
HRM-00209
Retrieval of
messages from the
queue is suppressed.
キューからの
メッセージの取
り出しは抑止さ
れています。
キューからのメッセー
ジの取り出しの抑止を
解除してください。
15
HRM-00210
The queue is being
deleted.
キューの削除中
のため,キュー
に対する処理が
失敗しました。
別のキューを利用する
か,またはこのキュー
が削除されてないか確
認して再度処理を実行
してください。
16
HRM-00301
uCosminexus
Reliable Messaging
is not in an
executable state.
Cosminexus RM
が実行状態では
ありません。
Cosminexus RM を実行
状態に移行してくださ
い。
379
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
17
HRM-00302
uCosminexus
Reliable Messaging
has not been
initialized.
Cosminexus RM
が初期化されて
いません。
Cosminexus RM を管理
状態または実行状態に
移行してください。
18
HRM-00303
The queue is in a
blocked state.
キューは閉塞状
態です。
キューを使用できない
ので,異なるキューを
使用してください。
19
HRM-00304
RMConnection has
already closed.
RMConnection
は close 済みで
す。
発行手順を見直してく
ださい。
20
HRM-00306
RMConnection is
already in a
transaction-executin
g state.
RMConnection
はすでにトラン
ザクション実行
状態です。
トランザクションを決
着してから処理してく
ださい。
21
HRM-00307
RMConnection is in
a
transaction-not-exec
uting state.
RMConnection
はトランザク
ションが実行さ
れていない状態
です。
トランザクションを開
始してから処理してく
ださい。
22
HRM-00308
The table
management
information of the
shared queue is
invalid. The shared
queue status
changed to a blocked
status.
共用キューの
テーブル管理情
報が不正です。
共用キューは閉
塞状態になりま
した。
次に示す項目を確認し
てください。
• キュー名
• ライト通番
• ライト通番のラップ
カウンタ
• ライト通番の最大値
• リード通番
• リード通番のラップ
カウンタ
23
HRM-00401
The number of
messages or queue
capacity has
exceeded the
maximum.
キューの容量や
メッセージ数の
上限値を超えま
した。
キューの容量を増やす
か,メッセージを削除
してください。
24
HRM-00407
A memory shortage
occurred.
メモリ不足が発
生しました。
利用できるメモリを増
やし,処理を再度実行
してください。
380
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
25
HRM-00408
The maximum value
of the message
length who can
register with queue
was exceeded.
キューに登録で
きるメッセージ
長の上限値を超
過しました。
登録先のキューがロー
カルキューの場合,
メッセージのペイロー
ド,プロパティおよび
ヘッダの指定値を見直
し,メッセージのサイ
ズを小さくしてくださ
い。
送信用共用キューの場
合,メッセージのペイ
ロードのサイズを小さ
くするか,または登録
先キューとなる受信用
共用キューの最大メッ
セージ長を増やしてく
ださい。
26
HRM-00409
The end of the
stream was
unexpectedly
reached while
reading the message.
メッセージ読み
取り中に予期し
ないストリーム
の終端に達しま
した。
DABroker 対応の DB
Connector を使用して
いる場合は,
Cosminexus DABroker
Library の環境設定の
[リモートアクセス設
定]タブで[BLOB/
LONG/CLOB 型データ
受取バッファサイズ]
に DBConnectore の
bufSize プロパティ指定
値より大きな値を設定
し,J2EE サーバを再
度開始してください。
HiRDB Type4 JDBC ド
ライバ対応の DB
Connector を使用して
いる場合は,DB
Connector の
maxBinarySize プロパ
ティに指定値より大き
な値を設定して,
Cosminexus RM と DB
Connector を再開始し
てください。
27
HRM-00410
The destination
queue has been
deleted.
送信先の受信用
共用キューが削
除されています。
送信用共用キューは閉
塞するので,削除して
ください。
28
HRM-00411
Registration in the
destination queue is
suppressed.
送信先の受信用
共用キューは登
録を抑止されて
います。
送信先の受信用共用
キューの抑止が解除さ
れるのを待ってくださ
い。
381
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
29
HRM-00502
An attempt to access
the database has
failed.
DB アクセスに失
敗しました。
メッセージの詳細から
DB の障害を回復してく
ださい。
30
HRM-00503
An attempt to access
the queue has failed.
キューアクセス
に失敗しました。
メッセージの詳細から
DB の障害を回復してく
ださい。
31
HRM-00504
The number of
database
connections exceeded
the maximum.
DB コネクション
数が最大値を超
過しました。
Cosminexus RM の DB
コネクション数を増や
す場合は,DB のコネク
ション関連定義を見直
してください。
32
HRM-00505
An error occurred
during a begin or
commit or rollback of
the local transaction.
ローカルトラン
ザクションのコ
ミットまたは
ロールバックに
失敗しました。
メッセージの詳細から
DB の障害を回復してく
ださい。
33
HRM-00506
An attempt to
acquire a connection
to the database has
failed.
DB へのコネク
ションの取得に
失敗しました。
メッセージの詳細から
DB の障害を回復してく
ださい。
34
HRM-00601
uCosminexus
Reliable Messaging
is in a blocked state.
Cosminexus RM
は閉塞状態です。
Cosminexus RM を再度
開始してください。
35
HRM-00701
ManagedConnection
has already been
destroyed.
ManagedConnec
tion はすでにデ
ストロイされて
います。
メソッドの発行手順を
見直してください。
36
HRM-00702
ManagedConnection
has already been
cleaned up.
ManagedConnec
tion はすでにク
リーンアップさ
れています。
メソッドの発行手順を
見直してください。
37
HRM-00703
The session
transaction is
already running.
セッションのト
ランザクション
がすでに開始し
ています。
メソッドの発行手順を
見直してください。
38
HRM-00704
The session
transaction is not
running.
セッションのト
ランザクション
は開始していま
せん。
メソッドの発行手順を
見直してください。
39
HRM-00705
An attempt was
made to generate
QueueSession
without the attribute
that enables sharing
of QueueSession.
生成しようとし
た QueueSession
オブジェクトは
シェアリングで
きる属性ではあ
りません。
指定した QueueSession
オブジェクトの属性を
見直してください。
382
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
40
HRM-00706
The already
generated
QueueSession does
not have the
attribute that
enables sharing of
QueueSession.
生成済みの
QueueSession オ
ブジェクトは
シェアリングで
きる属性ではあ
りません。
シェアリングする際は
trasacted 引数が false
で,かつ
AUTO_ACKNOWLED
GE モードの
QueueSession オブジェ
クトを使用してくださ
い。
41
HRM-00801
An unsupported
method was
executed.
サポートされて
いないメソッド
を実行しました。
発行するメソッドを見
直してください。
42
HRM-00802
The method
execution failed
because the
QueueConnection
was in a closed state.
QueueConnectio
n オブジェクト
が close 状態だっ
たため,メソッ
ドの実行に失敗
しました。
メソッドの発行手順を
見直してください。
43
HRM-00803
The method
execution failed
because the
QueueSession was in
a closed state.
QueueSession オ
ブジェクトが
close 状態だった
ため,メソッド
の実行に失敗し
ました。
メソッドの発行手順を
見直してください。
44
HRM-00804
The method
execution failed
because the
QueueSender was in
a closed state.
QueueSender オ
ブジェクトが
close 状態だった
ため,メソッド
の実行に失敗し
ました。
メソッドの発行手順を
見直してください。
45
HRM-00805
The method
execution failed
because the
QueueReceiver was
in a closed state.
QueueReceiver
オブジェクトが
close 状態だった
ため,メソッド
の実行に失敗し
ました。
メソッドの発行手順を
見直してください。
46
HRM-00806
The method
execution failed
because the
QueueBrowser was
in a closed state.
QueueBrowser
オブジェクトが
close 状態だった
ため,メソッド
の実行に失敗し
ました。
メソッドの発行手順を
見直してください。
47
HRM-00807
The method's
parameter value is
null.
メソッドの引数
の値が null で
す。
引数を見直してくださ
い。
48
HRM-00808
The method's
parameter value is
invalid.
メソッドの引数
の値が不正です。
引数を見直してくださ
い。
383
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
49
HRM-00809
The length of the
method's parameter
exceeds the
restriction value.
メソッドの引数
の長さが制限値
を超えていまし
た。
引数の長さを見直して
ください。
50
HRM-00810
An attempt to read
the message has
failed.
メッセージの読
み取りに失敗し
ました。
引数を見直してくださ
い。
51
HRM-00811
An attempt to write
the message has
failed.
メッセージの書
き込みに失敗し
ました。
引数を見直してくださ
い。
52
HRM-00812
The method
execution failed
because the message
has been in the
acknowledge
impossible state.
メッセージが
acknowledge で
きない状態だっ
たため,メソッ
ドの実行に失敗
しました。
発行手順を見直してく
ださい。
53
HRM-00813
The method
execution failed
because the end of an
unexpected bytes
stream has been
reached.
予期しないバイ
トストリームの
終端に達しまし
た。
メッセージの読み取り
手順を見直してくださ
い。
54
HRM-00814
The method
execution failed
because the type
conversion was
invalid.
型変換が無効で
あったため,メ
ソッドの実行に
失敗しました。
メッセージに格納した
プロパティまたはペイ
ロードの型を見直して
ください。
ObjectMessage オブ
ジェクトに格納するオ
ブジェクトがユーザの
定義したクラスの場合,
次の内容を確認してく
ださい。
• クラスがシリアライ
ズできるかどうか
• アプリケーションが
クラスを保持してい
るかどうか
• クラスパスが
Cosminexus の J2EE
サーバ用オプション
定義ファイルに指定
されているかどうか
BytesMessage オブ
ジェクト以外の種類の
メッセージを共用
キューに送信しようと
していないか見直して
ください。
384
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
55
HRM-00816
The writing of
property failed
because the property
has been read-only
mode.
プロパティが読
み取り専用モー
ドであったため,
書き込みに失敗
しました。
メッセージの書き込み
手順を見直してくださ
い。
56
HRM-00817
The reading of
payload failed
because the payload
has been write-only
mode.
ペイロードが書
き込み専用モー
ドであったため,
読み取りに失敗
しました。
メッセージの読み取り
手順を見直してくださ
い。
57
HRM-00818
The writing of
payload failed
because the payload
has been read-only
mode.
ペイロードが読
み取り専用モー
ドであったため,
書き込みに失敗
しました。
メッセージの書き込み
手順を見直してくださ
い。
58
HRM-00819
An invalid queue
was specified.
無効なキューが
指定されました。
引数を見直してくださ
い。
59
HRM-00820
An invalid message
selector was
specified.
無効なメッセー
ジセレクタが指
定されました。
メッセージセレクタの
値を見直し,正常な
メッセージセレクタを
設定し直してください。
60
HRM-00822
An internal error
occurred.
内部エラーが発
生しました。
この障害の発生前後に
出力されたメッセージ
を参照し,該当する障
害要因を取り除いてく
ださい。障害要因を取
り除けない場合は,
メッセージログおよび
トレースを採取し,保
守員に連絡してくださ
い。
61
HRM-00823
The method was
executed in an
inappropriate state.
不適切な状態で
メソッドを実行
しました。
メソッドの発行手順を
見直してください。
62
HRM-00824
The session
transaction is in a
non-running state.
セッションのト
ランザクション
が開始していな
い状態です。
メソッドの発行手順を
見直してください。
63
HRM-00825
The session
transaction was in a
running state.
セッションのト
ランザクション
が開始している
状態です。
メソッドの発行手順を
見直してください。
64
HRM-00826
The transaction was
in a running state,
due to the TM.
トランザクショ
ンマネジャでの
トランザクショ
ンが開始してい
る状態です。
メソッドの発行手順を
見直してください。
385
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
65
HRM-00827
The transaction was
in a suspended state,
due to the TM.
トランザクショ
ンマネジャでの
トランザクショ
ンがサスペンド
している状態で
す。
メソッドの発行手順を
見直してください。
66
HRM-00828
A memory shortage
occurred.
メモリ不足が発
生しました。
利用できるメモリを増
やし,処理を再度実行
してください。
67
HRM-00829
An invalid message
selector was
specified.
無効なメッセー
ジセレクタが指
定されました。
メッセージセレクタの
値を見直し,正常な
メッセージセレクタを
設定し直してください。
68
HRM-00830
Invalid ContentType
is set to
BytesContainer.
BytesContainer
が保持する
ContentType の
値が不適切だっ
たため,メソッ
ドの実行に失敗
しました。
BytesContainer が保持
する ContentType の値
が,この製品でサポー
トしている値かどうか
を見直してください。
69
HRM-00831
The combination of
payload and
ContentType set to
BytesContainer is
illegal.
BytesContainer
が保持する
ContentType と
ペイロード内容
の組み合わせが
不正だったため,
メソッドの実行
に失敗しました。
BytesContainer が保持
する ContentType とペ
イロード内容を適切な
組み合わせにしてくだ
さい。
70
HRM-00832
The method failed
because an attempt
was made to re-use a
message that was
passed by reference.
参照渡しのメッ
セージを再利用
しようとしたた
め,メソッドの
実行に失敗しま
した。
メソッドの発行手順を
見直してください。
71
HRM-00833
An attempt to
acquire a connection
has failed.
コネクションの
取得に失敗しま
した。
この障害の発生前後に
出力されたメッセージ
やコネクション取得に
関する設定情報を参照
し,障害要因を取り除
いてください。
72
HRM-00901
An I/O exception
occurred.
IOException が
発生しました。
入出力エラーの障害要
因を取り除いてくださ
い。
73
HRM-00902
The value of the
configuration
property for
database connection
is invalid.
DB に接続するた
めのコンフィグ
レーションプロ
パティの値が不
正です。
コンフィグレーション
プロパティを修正して
ください。
386
7. インタフェース
項
番
障害コード
障害文字列
発生要因
対処
74
HRM-00903
An attempt to
register queue
information has
failed.
キュー情報の登
録に失敗しまし
た。
メッセージの詳細から
DB の障害を回復してく
ださい。
75
HRM-00904
Table creation failed.
テーブルの作成
に失敗しました。
メッセージの詳細から
DB の障害を回復してく
ださい。
76
HRM-00905
An attempt to
register FIFO
information has
failed.
FIFO 情報の登録
に失敗しました。
メッセージの詳細から
DB の障害を回復してく
ださい。
77
HRM-00906
Table initialization
failed.
テーブルの初期
化に失敗しまし
た。
メッセージの詳細から
DB の障害を回復してく
ださい。
78
HRM-00907
An attempt to delete
queue information
has failed.
キュー情報の削
除に失敗しまし
た。
メッセージの詳細から
DB の障害を回復してく
ださい。
79
HRM-00908
An attempt to delete
FIFO information
has failed.
FIFO 情報の削除
に失敗しました。
メッセージの詳細から
DB の障害を回復してく
ださい。
80
HRM-00909
An attempt to delete
a table has failed.
テーブルの削除
に失敗しました。
メッセージの詳細から
DB の障害を回復してく
ださい。
81
HRM-00910
An attempt to lock a
table has failed.
テーブルのロッ
クに失敗しまし
た。
メッセージの詳細から
DB の障害を回復してく
ださい。
82
HRM-00912
You do not have
access permission.
アクセス権限が
ありません。
policy ファイルを見直
してください。次に示
す状況が考えられます。
スレッドまたはソケッ
トに関するアクセス権
限を設定していません。
83
HRM-00913
An attempt to
acquire system
management
information has
failed.
システム管理情
報の取得に失敗
しました。
SQL ファイルの実行が
失敗していないかどう
かを確認し,必要に応
じて SQL ファイルを再
度実行してください。
84
HRM-00914
An attempt to
acquire the IP
address used for the
group ID has failed.
グループ ID に使
用する IP アドレ
スの取得に失敗
しました。
マシンに IP アドレスが
指定されているか確認
します。
85
HRM-01001
An attempt was
made to create a
shared queue in
Oracle.
共用キューを
Oracle に作成し
ようとしました。
接続先の DB を HiRDB
に変更してください。
または,ローカル
キューを作成してくだ
さい。
387
7. インタフェース
項
番
86
388
障害コード
HRM-01101
障害文字列
Failed to check
content in
BytesContainer.
発生要因
BytesContainer
が保持する
ContentType と
Content の組み
合わせチェック
処理に失敗しま
した。
対処
メッセージログおよび
トレースを採取し,保
守員に連絡してくださ
い。
8
コマンドリファレンス
ユーザはコマンドを入力することによって Cosminexus RM を
運用します。
この章では,Cosminexus RM が提供するコマンドについて説
明します。
8.1 コマンドの概要
8.2 コマンドの一覧
8.3 コマンドの詳細
389
8. コマンドリファレンス
8.1 コマンドの概要
Cosminexus RM はシステムを運用するためにコマンドを提供します。
コマンドを実行するための前提条件や複数の Cosminexus RM を動作させる場合のシス
テム名の設定などについて説明します。
8.1.1 コマンド実行の前提条件
Cosminexus RM のコマンドを実行する場合,HRMDIR,HRM_SYSTEM_NAME,
HRM_CMD_PORT および PATH 環境変数を設定する必要があります。各環境変数につ
いては,「3.3.2 環境変数の設定」を参照してください。
また,Cosminexus RM の開始が完了している必要があります。Cosminexus RM の開始
については,「4.1.1 Cosminexus RM の開始(永続版リソースアダプタの場合)」
,また
は「5.1.1 Cosminexus RM の開始(非永続版リソースアダプタの場合)
」を参照してく
ださい。
なお,UNIX の場合は,Cosminexus RM のコマンドを実行するには,root または
Cosminexus Component Container 管理ユーザの権限が必要となります。
8.1.2 コマンドの有効範囲
Cosminexus RM のコマンドは,自システムの Cosminexus RM にだけ有効です。対象と
なる Cosminexus RM と異なるマシンでコマンドを入力する運用はできません。
8.1.3 コマンドの同時実行
複数のコマンドを同時に実行することはできません。同時に実行した場合は,先に実行
したコマンドが完了するまで待ち合わせます。
8.1.4 システム名の設定
自システムで複数の Cosminexus RM を動作させる場合は,コマンドの対象となる
Cosminexus RM のシステム名を次に示すどちらかの方法で指定します。
● コマンド引数での指定
コマンドを入力するときに,コマンド引数にシステム名を指定する方法です。
● 環境変数での指定
コマンドの入力画面で HRM_SYSTEM_NAME 環境変数にシステム名を指定する方法
です。指定例を次に示します。
Windows の場合
390
8. コマンドリファレンス
prompt>set HRM_SYSTEM_NAME=HRM
UNIX(csh)の場合
prompt>setenv HRM_SYSTEM_NAME HRM
UNIX(sh)の場合
prompt>HRM_SYSTEM_NAME=HRM
prompt>export HRM_SYSTEM_NAME
コマンド引数と環境変数の両方にシステム名を指定する場合は,コマンド引数に指定し
たシステム名が有効になります。システム名は RMSystemName プロパティ指定値です。
8.1.5 コマンドの記述形式
Cosminexus RM が提供するコマンドの記述形式について,次に示します。
コマンド名
オプション
コマンド引数
● コマンド名
コマンド名は,実行するコマンドのファイル名称です。
Cosminexus RM が提供するコマンドは %HRMDIR%¥bin にありますので,PATH 環
境変数に %HRMDIR%¥bin を追加してください。
● オプション
次の説明中に使用する「>」はコマンドプロンプト,「cmd」はコマンド名称です。
1. オプションはマイナス記号(-)で始まる文字列で,フラグ引数を取らないか,または
1 個のフラグ引数を取ります。
オプションの記述形式を次に示します。
-オプションフラグ
または
-オプションフラグ
フラグ引数
オプションフラグは,1 文字の英数字(英大文字と英小文字は区別されます)です。
フラグ引数はオプションフラグに対する引数です。
2. フラグ引数を取らないオプションフラグは,一つのマイナス記号(-)の後ろにまとめ
て指定できます。
(例)次の二つは同じ意味です。
> cmd -a -b -c
> cmd -abc
3. フラグ引数を必要とするオプションフラグのフラグ引数は,省略できません。
391
8. コマンドリファレンス
4. オプションの指定順序はありません。
5. コマンド名,オプション,コマンド引数の間には一つ以上のスペースを挿入してくだ
さい。
6. 同じオプションフラグを 2 回以上指定すると,最後に指定したものが有効になりま
す。
(例)
次に示すとおり入力すると,フラグ引数として 2 が有効になります。
> cmd -a 1 -a 2
無効 有効
7. オプションは,コマンド引数より前に指定しなければなりません。
(例)
オプションフラグ a がフラグ引数を取らない場合,次に示すとおり入力すると,file
と -b は,コマンド引数とみなされます。
> cmd -a file -b
8. 二つのマイナス記号(-)は,オプションの終わりを示します。
(例)
次に示すとおり入力すると,-b はコマンド引数とみなされます。
> cmd -a -- -b
9. マイナス記号(-)だけのオプションは入力できません。
(例)
次に示すとおり入力すると,- はコマンド引数とみなされます。
> cmd ● コマンド引数
コマンド引数は,コマンド操作の対象になるものを指定します。複数のコマンド引数
がある場合は,各コマンドの指定形式に示される順序に従ってください。
8.1.6 リクエストタイムアウト値の変更
ユーザによって実行されたコマンドは,Cosminexus RM にリクエストを送信し,応答を
待ちます。コマンドが応答を受け取れないときのリクエストタイムアウト値(単位:秒)
について,ユーザは独自の値を設定できます。
Cosminexus RM のコマンドごとに,%HRMDIR%¥bin ディレクトリにバッチファイル
(Windows の場合)またはシェルスクリプト(UNIX の場合)が提供されています。設
定を変更する場合は,各コマンドのバッチファイルまたはシェルスクリプトを編集して
次に示す行の右辺の数値を変更してください。
392
8. コマンドリファレンス
Windows の場合
set PROPS=%PROPS% -Dejbserver.rmi.request.timeout=0
UNIX の場合
set PROPS="${PROPS} -Dejbserver.rmi.request.timeout=0"
0 ∼ 86400(単位:秒)の値を指定できます。デフォルトでは 0 が設定されています。
値を設定するときは,次に示す点に注意してください。
● 値が小さいとコマンド入力直後にリクエストタイムアウトとなり,コマンドを正常に
実行できないことがあります。
● 0 を指定するとタイムアウトしなくなります。コマンド実行時に長時間レスポンスが
ない場合は,強制的にコマンド処理を中断してください。Ctrl キーと C キーを同時に
押します。
● Cosminexus RM のバージョンアップや修正パッチを適用した場合,リクエストタイ
ムアウト値は 0 で上書きされます。リクエストタイムアウト値を変更している場合は,
値を設定し直してください。
8.1.7 コマンド実行時に出力されるログ
Cosminexus RM のコマンドは,Cosminexus の JNDI を利用するため,コマンドを実行
すると,%HRMDIR%¥logs¥cmd 以下に Cosminexus のクライアントのログと
Cosminexus TPBroker の通信トレースファイルを出力します。
8.1.8 UNIX でコマンドを実行する場合の注意事項
UNIX の場合は,次のどちらかの作業を実施してから Cosminexus RM のコマンドを実
行するようにしてください。
• umask を 0 に設定する
• $HRMDIR/logs 以下のファイルおよびディレクトリのアクセス権を,グループやほか
のすべてのユーザに対して書き込みを許可するように設定する(root でコマンドを実
行したあとに,Cosminexus Component Container 管理ユーザでコマンドを実行する
場合)
どちらの作業も実施しないまま,別のユーザがコマンドを実行すると,コマンドの実行
がエラーになったり,コマンドのログが不正に残ったりする場合があります。
393
8. コマンドリファレンス
8.2 コマンドの一覧
Cosminexus RM が提供するコマンドの一覧について,次の表に示します。
表 8-1 コマンドの一覧
項番
コマンド名
称
機能
開始中状態で実行
実行状態で
実行
永続版
非永続
版
永続版
非永続
版
管理状
態で実
行
閉塞状
態で実
行
永続版
1
hrmchgadd
r
あて先変更
×
×
×
×
○
×
2
hrmchgque
• ローカル
キューの属
性変更
• 受信用共用
キューの属
性変更
• 送信用共用
キューの属
性変更
• 転送キュー
の属性変更
×
×
×
×
○※
×
3
hrmdeladdr
あて先削除
×
×
×
×
○
×
4
hrmdelmsg
メッセージの
削除
×
×
○
(-f オ
プショ
ン指定
時)
○
○
×
5
hrmdelque
キューの削除
×
×
×
×
○※
×
6
hrmlsaddr
あて先表示
×
×
○
×
○
×
7
hrmlsdmsg
デッドメッ
セージの参照
×
×
○
×
○
×
8
hrmlsmsg
メッセージの
表示
×
×
○
○
○
×
9
hrmlsque
キュー情報の
表示
×
×
○
○
○
×
10
hrmlsstat
システム状態
の表示
○
○
○
○
○
○
11
hrmlstrn
トランザク
ション状態の
表示
×
×
○
○
×
×
12
hrmlstrs
通信状態表示
×
×
○
×
○
×
13
hrmmkadd
r
あて先登録
×
×
×
×
○
×
394
8. コマンドリファレンス
項番
コマンド名
称
機能
開始中状態で実行
実行状態で
実行
永続版
非永続
版
永続版
非永続
版
管理状
態で実
行
閉塞状
態で実
行
永続版
14
hrmmkque
• ローカル
キューの作
成
• 受信用共用
キューの作
成
• 送信用共用
キューの作
成
• 転送キュー
の作成
×
×
×
×
○
×
15
hrmregdms
g
デッドメッ
セージの再登
録
×
×
○
×
○
×
16
hrmskipms
g
受信待ちメッ
セージのス
キップ
×
×
○
×
○
×
17
hrmstart
実行状態への
移行
×
×
×
×
○
×
18
hrmstartqu
e
キューの抑止
解除
×
×
○
○
○
×
19
hrmstarttrs
送受信抑止解
除
×
×
○
×
○
×
20
hrmstop
管理状態への
移行
×
×
○
×
×
×
21
hrmstopqu
e
キューの抑止
×
×
○
○
○
×
22
hrmstoptrs
送受信抑止
×
×
○
×
○
×
(凡例)
○:実行できます。
×:実行できません。
注※
初回開始時の場合,または管理状態からの再開始後に実行状態に移行していない管理状態の場
合だけ実行できます。
395
8. コマンドリファレンス
8.3 コマンドの詳細
Cosminexus RM が提供するコマンドの詳細を名前のアルファベット順に説明します。
8.3.1 hrmchgaddr(あて先変更)
(1) 形式
hrmchgaddr 〔-u あて先アドレス〕 〔-i ユーザID -p パスワード〕
〔-S システム名〕 あて先名
(2) 機能
あて先情報テーブルに登録したあて先情報を変更します。
(3) オプション
-u あて先アドレス
∼< 1 ∼ 512 文字の文字列>
メッセージを転送するあて先アドレスを指定します。
-i ユーザ ID
∼< 1 ∼ 16 文字の英数字>
BASIC 認証のためのユーザ ID を指定します。
このオプションは -p オプションと同時に指定してください。このオプションを指定
して -p オプションを指定していない場合は,エラーが発生します。
-p パスワード
∼< 1 ∼ 16 文字の英数字>
BASIC 認証のためのパスワードを指定します。
このオプションは -i オプションと同時に指定してください。このオプションを指定
して -i オプションを指定していない場合は,エラーが発生します。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンド操作対象となるシステムのシステム名(プロパティの RMSystemName)
を指定します。
指定を省略した場合は,環境変数に設定されたシステム名を指定したものとみなし
ます。
環境変数にもシステム名が設定されていない場合はエラーが発生します。
(4) コマンド引数
あて先名
396
8. コマンドリファレンス
∼< 1 ∼ 32 文字の文字列>
あて先情報に対応する論理名を指定します。
指定したあて先名が存在しない場合はエラーが発生します。また,キューにあて先
名が指定されている場合は,そのキュー内のメッセージが転送される前だけ変更で
きます。
(5) 注意事項
● 各オプションを省略した場合,その情報は変更しないものとみなされます。すべての
オプションを省略した場合,情報の変更は行わないで,そのままコマンド処理が終了
します。
● あて先アドレスは,URL の記載ミスなどで存在しないあて先アドレスを指定した場合
にかぎり,変更できます。実在するあて先アドレスを指定していてほかのあて先アド
レスに変更した場合,メッセージが消滅するおそれがあります。
● ユーザ ID およびパスワードを削除する変更はできません。ユーザ ID およびパスワー
ドを削除したい場合は,hrmdeladdr コマンドであて先を削除し,hrmmkaddr コマン
ドでユーザ ID およびパスワードを指定しないで,再度あて先を登録してください。
● -u オプションで,自システムのキュー間転送用 Web アプリケーションの URL を指定
しないでください。
397
8. コマンドリファレンス
8.3.2 hrmchgque(ローカルキューの属性変更)
(1) 形式
hrmchgque 〔-d
〔-c
〔-w
〔-S
{serial|parallel}〕 〔-n 最大メッセージ数〕
キャッシュメッセージ数〕 〔-e メッセージ有効期間〕
{sender|receiver}〕 〔-x 表示名〕
システム名〕 キュー名
(2) 機能
作成済みのローカルキューの属性を変更します。
非永続版リソースアダプタの場合,キューの属性はキュー作成ファイルの定義によって
変更されます。詳細については,「3.5.1 キュー作成ファイルの作成」を参照してくださ
い。
(3) オプション
-d {serial | parallel}
ローカルキューのメッセージ取り出しモードを指定します。
• serial:シリアル取り出し属性
• parallel:パラレル取り出し属性
各属性を指定したときのメッセージの処理については,
「2.3.2 メッセージ取り出し
モード」を参照してください。
-n 最大メッセージ数
∼<数字> ((1 ∼ 65535))
ローカルキューに格納するメッセージの最大数を指定します。
-c キャッシュメッセージ数
∼<数字> ((0 ∼ 65535))
キャッシュに格納するメッセージの数を指定します。
-e メッセージ有効期間
∼<数字> ((0 ∼ 2592000))(単位:秒)
ローカルキューに格納するメッセージの有効期間を指定します。
0 を指定する場合,メッセージの有効期間は無限です。
有効期間を指定するときのメッセージの処理については,
「2.3.5 メッセージの有効
期間」を参照してください。
-w {sender | receiver}
転送キューからメッセージを受信する場合,メッセージの有効期間については,送
信側の有効期間を使用するのか,または受信側で更新するのかを選択します。転送
キューの詳細については,
「8.3.20 hrmmkque(転送キューの作成)」を参照して
ください。
398
8. コマンドリファレンス
• sender:送信側の有効期間
• receiver:受信側の有効期間
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
-x 表示名
∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミング
サービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合はコマンド引数で指定したキュー名と同じ名称を指定したもの
とみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなり
ます。詳細は「(5) 注意事項」を参照してください。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
属性を変更するローカルキューの名前を指定します。
指定したローカルキューがない場合はエラーが発生します。
(5) 注意事項
● 各オプションを省略する場合,その属性は変更されません。キュー名だけを指定した
場合,属性は変更されないでそのままコマンド処理が終了します。
● 最大メッセージ数,キャッシュメッセージ数,メッセージ有効期間を変更できるのは,
ローカルキューにメッセージがない場合だけです。メッセージがある場合はエラーが
発生します。
● Cosminexus RM 初回開始時の管理状態の場合,または管理状態からの再開始後に実
行状態に移行していない管理状態の場合だけ実行できます。それ以外の場合はエラー
が発生します。ただし,Cosminexus RM 起動直後の管理状態でも,相手システムが
起動中の場合,エラーが発生するおそれがあります。
● キュー定義ファイルを使用しない場合,変更前の表示名で JNDI ネーミングサービス
に登録されていたオブジェクトは削除され,-x オプションで指定した変更後の表示名
で JNDI ネーミングサービスに登録されます。このコマンド実行時に,アプリケー
ションが JNDI ネーミングサービスから該当するキューに対応する値
(javax.jms.Queue 型のオブジェクト)を取得しているかどうかは,このコマンドの実
399
8. コマンドリファレンス
行結果に影響しません。
400
8. コマンドリファレンス
8.3.3 hrmchgque(受信用共用キューの属性変更)
(1) 形式
hrmchgque 〔-c キャッシュメッセージ数〕 〔-x 表示名〕
〔-S システム名〕 キュー名
(2) 機能
作成済みの受信用共用キューの属性を変更します。
(3) オプション
-c キャッシュメッセージ数
∼<数字> ((0 ∼ 65535))
キャッシュに格納するメッセージの数を指定します。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
-x 表示名
∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミング
サービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合はコマンド引数で指定したキュー名と同じ名称を指定したもの
とみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなり
ます。詳細は「(5) 注意事項」を参照してください。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
属性を変更する受信用共用キューの名前を指定します。
指定した受信用共用キューがない場合はエラーが発生します。
(5) 注意事項
● 各オプションを省略する場合,その属性は変更されません。キュー名だけを指定した
場合,属性は変更されないでそのままコマンド処理が終了します。
● キャッシュメッセージ数を変更できるのは,受信用共用キューにメッセージがない場
401
8. コマンドリファレンス
合だけです。メッセージがある場合はエラーが発生します。
● 受信用共用キューの最大メッセージ長または最大メッセージ数を変更する場合は,
hrmlsque コマンドでキュー情報を確認してからキューを削除して作成し直してくだ
さい。または,異なるキューを作成してください。
● Cosminexus RM 初回開始時の管理状態の場合,または管理状態からの再開始後に実
行状態に移行していない管理状態の場合だけ実行できます。それ以外の場合はエラー
が発生します。ただし,Cosminexus RM 起動直後の管理状態でも,相手システムが
起動中の場合,エラーが発生するおそれがあります。
● キュー定義ファイルを使用していない場合,変更前の表示名で JNDI ネーミングサー
ビスに登録されていたオブジェクトは削除され,-x オプションで指定した変更後の表
示名で JNDI ネーミングサービスに登録されます。このコマンド実行時に,アプリ
ケーションが JNDI ネーミングサービスから該当するキューに対応する値
(javax.jms.Queue 型のオブジェクト)を取得しているかどうかは,このコマンドの実
行結果に影響しません。
402
8. コマンドリファレンス
8.3.4 hrmchgque(送信用共用キューの属性変更)
(1) 形式
hrmchgque
〔-x 表示名〕 〔-S システム名〕 キュー名
(2) 機能
作成済みの送信用共用キューの属性を変更します。
(3) オプション
-x 表示名
∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミング
サービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合はコマンド引数で指定したキュー名と同じ名称を指定したもの
とみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなり
ます。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
属性を変更する送信用共用キューの名前を指定します。
指定した送信用共用キューがない場合はエラーが発生します。
(5) 注意事項
● 各オプションを省略する場合,その属性は変更されません。キュー名だけを指定した
場合,属性は変更されないでそのままコマンド処理が終了します。
● Cosminexus RM 初回開始時の管理状態の場合,または管理状態からの再開始後に実
行状態に移行していない管理状態の場合だけ実行できます。それ以外のときはエラー
が発生します。ただし,Cosminexus RM 起動直後の管理状態でも,相手システムが
起動中の場合,エラーが発生するおそれがあります。
403
8. コマンドリファレンス
● キュー定義ファイルを使用していない場合,変更前の表示名で JNDI ネーミングサー
ビスに登録されていたオブジェクトは削除され,-x オプションで指定した変更後の表
示名で JNDI ネーミングサービスに登録されます。このコマンド実行時に,アプリ
ケーションが JNDI ネーミングサービスから該当するキューに対応する値
(javax.jms.Queue 型のオブジェクト)を取得しているかどうかは,このコマンドの実
行結果に影響しません。
404
8. コマンドリファレンス
8.3.5 hrmchgque(転送キューの属性変更)
(1) 形式
hrmchgque 〔-n
〔-e
〔-v
〔-j
〔-g
〔-x
最大メッセージ数〕 〔-c キャッシュメッセージ数〕
メッセージ有効期間〕 〔-a あて先名〕
転送先キュー名|-y〕 〔-i {normal | compatible}〕
{exactly_once|in_order}〕
通信層のグループ有効期間〕 〔-s 通信層のメッセージ有効期間〕
表示名〕 〔-S システム名〕 キュー名
(2) 機能
作成済みの転送キューの属性を変更します。
(3) オプション
-n 最大メッセージ数
∼<数字> ((1 ∼ 65535))
転送キューに格納するメッセージの最大数を指定します。
-c キャッシュメッセージ数
∼<数字> ((0 ∼ 65535))
キャッシュに格納するメッセージの数を指定します。
-e メッセージ有効期間
∼<数字> ((1 ∼ 2592000))(単位:秒)
転送キューに格納するメッセージの有効期間を指定します。
有効期間を指定するときのメッセージの処理については,「2.3.5 メッセージの有効
期間」を参照してください。
-a あて先名
∼< 1 ∼ 32 文字の文字列>
メッセージを転送するあて先のあて先名を指定します。hrmmkaddr コマンドで,
事前にあて先名を登録する必要があります。登録されていないあて先名を指定する
とエラーが発生します。
-v 転送先キュー名
∼< 1 ∼ 20 文字の識別子>
メッセージを転送する場合,転送したメッセージを登録する転送キューのキュー名
を指定します。転送キューの詳細については,「8.3.20 hrmmkque(転送キューの
作成)」を参照してください。
-y
-v オプションを省略して,-a オプションで指定したあて先名に対応するあて先アド
レスだけを送信アドレスとする場合に指定します。転送キューの詳細については,
405
8. コマンドリファレンス
「8.3.20 hrmmkque(転送キューの作成)」を参照してください。
-i {normal | compatible}
作成するキューの転送モードを指定します。
• normal:通常モード
• compatible:互換モード
転送先の Cosminexus RM のバージョンが 01-03 の場合は normal を指定します。
バージョンが 01-02 以前の場合は compatible を指定します。
normal を指定して作成した転送キューを使用して,01-02 以前の Cosminexus RM
にメッセージを転送した場合,ペイロードが空のメッセージとして受信されること
がありますので,注意してください。
-j {exactly_once | in_order}
転送に使用する QoS(通信品質)の種別を指定します。
• exactly_once:配送保証および重複防止
• in_order:順序保証
このオプションを in_order に変更する場合,キューモードは永続キューだけ有効と
なります。それ以外を指定した場合はエラーが発生します。
-g 通信層のグループ有効期間
∼<数字> ((10 ∼ 2592000))(単位:秒)
通信層のグループの有効期間を指定します。
転送キューの詳細については,
「8.3.20 hrmmkque(転送キューの作成)」を参照
してください。
-s 通信層のメッセージ有効期間
∼<数字> ((10 ∼ 2592000))(単位:秒)
通信層のメッセージの有効期間を指定します。
転送キューの詳細については,
「8.3.20 hrmmkque(転送キューの作成)」を参照
してください。
-x 表示名
∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミング
サービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合はコマンド引数で指定したキュー名と同じ名称を指定したもの
とみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなり
ます。詳細は「(5) 注意事項」を参照してください。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
406
8. コマンドリファレンス
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
属性を変更する転送キューの名前を指定します。
指定した転送キューがない場合はエラーが発生します。
(5) 注意事項
● 各オプションを省略する場合,その属性は変更されません。キュー名だけを指定した
場合,属性は変更されないでそのままコマンド処理が終了します。
● 最大メッセージ数,キャッシュメッセージ数,メッセージ有効期間,あて先名,
キューの転送モード,QoS,通信層のグループ有効期間,および通信層のメッセージ
有効期間を変更できるのは,転送キューにメッセージがない場合だけです。メッセー
ジがある場合はエラーが発生します。
● 転送先キュー名または -y オプションの指定内容は,次のうちどちらかの状態のときだ
け変更できます。
• キューにメッセージがない状態
• キューに現存するメッセージが転送される前の状態
転送済みのメッセージが存在する場合はエラーが発生します。
● Cosminexus RM 初回開始時の管理状態の場合,または管理状態からの再開始後に実
行状態に移行していない管理状態の場合だけ実行できます。それ以外の場合はエラー
が発生します。ただし,Cosminexus RM 起動直後の管理状態でも,相手システムが
起動中の場合,エラーが発生するおそれがあります。
● キュー定義ファイルを使用していない場合,変更前の表示名で JNDI ネーミングサー
ビスに登録されていたオブジェクトは削除され,-x オプションで指定した変更後の表
示名で JNDI ネーミングサービスに登録されます。このコマンド実行時に,アプリ
ケーションが JNDI ネーミングサービスから該当するキューに対応する値
(javax.jms.Queue 型のオブジェクト)を取得しているかどうかは,このコマンドの実
行結果に影響しません。
407
8. コマンドリファレンス
8.3.6 hrmdeladdr(あて先削除)
(1) 形式
hrmdeladdr 〔-S システム名〕 あて先名
(2) 機能
あて先情報テーブルに登録したあて先情報を削除します。
(3) オプション
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
あて先名
∼< 1 ∼ 32 文字の文字列>
削除したいあて先情報のあて先名を指定します。
キューに指定されていないあて先だけ削除できます。
指定したあて先名が存在しない,またはキューに指定されている場合はエラーが発
生します。
408
8. コマンドリファレンス
8.3.7 hrmdelmsg(メッセージの削除)
(1) 形式
hrmdelmsg 〔-f〕 {-a|-n メッセージ通番}〔-S システム名〕 キュー名
(2) 機能
キュー内のメッセージを削除します。
永続版リソースアダプタの場合,実行状態でこのコマンドを使用するときは -f オプショ
ンを指定してください。
非永続版リソースアダプタの場合,実行状態でこのコマンドを使用するときも -f オプ
ションを指定する必要はありません。
(3) オプション
-f
• 永続版リソースアダプタの場合
Cosminexus RM が実行状態でも強制的にメッセージを削除する場合に指定しま
す。
実行状態でこのコマンドを使用する場合は,このオプションを指定しないと,エ
ラーが発生します。
• 非永続版リソースアダプタの場合
非永続版リソースアダプタでは指定しても無視されます。
-a
コマンド引数に指定したキューに格納されている全メッセージを削除する場合に指
定します。
-n メッセージ通番
∼<数字> ((1 ∼ 65535))
削除するメッセージのメッセージ通番を指定します。
指定するメッセージ通番の上限値は,コマンド引数に指定したキューに定義された
最大メッセージ数です。指定したメッセージ通番のメッセージがない場合はエラー
が発生します。
• 永続版リソースアダプタの場合
コマンド引数に指定したキューの種類によって,指定できるメッセージ通番は異
なります。詳細については,
「(5) 注意事項」を参照してください。
• 非永続版リソースアダプタの場合
非永続版リソースアダプタの場合,キューの種類による通番の違いはありません。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
409
8. コマンドリファレンス
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
メッセージを削除するキューの名前を指定します。
指定したキューがない場合はエラーが発生します。
(5) 注意事項
● 実行状態でコマンドを実行する場合は,-f オプションを指定してください。ただし,
タイミングによってはエラーが発生するおそれがあります。そのため,管理状態での
実行をお勧めします。
● 設定できるオプションはキューの種類によって異なります。
hrmdelmsg コマンドで各キューに設定できるオプションについて,次の表に示しま
す。
表 8-2 hrmdelmsg コマンドで各キューに設定できるオプション
キューの種類
-f オプション
-a オプション
-n オプション
永続版
非永続
版
永続版
非永続版
永続版
非永続版
ローカルキュー
○
△※ 1
○
○
○
○
受信用共用キュー
○
×
○
×
△※ 2
×
送信用共用キュー※ 3
×
×
×
×
×
×
転送キュー※ 4
○
×
○
×
×
×
(凡例)
○:設定できます。
△:設定できます(制限があります)
。
×:設定できません(エラーが発生します)
。
注※ 1
非永続版リソースアダプタでは -f オプションを指定しても無視されます(エラーは発生しませ
ん)
。
注※ 2
コマンド引数に受信用共用キューを指定する場合,-n オプションで指定できるメッセージ通番
は 1 だけです。1 以外を指定したときはエラーが発生します。
注※ 3
送信用共用キューからはメッセージを削除できません。コマンド引数に送信用共用キューを指
410
8. コマンドリファレンス
定する場合はエラーが発生します。
注※ 4
キューの種類が転送キューのキュー名を指定し,かつ QoS(通信品質)で順序保証を指定した
場合,受信側に未配信メッセージが滞留するときがあります。
411
8. コマンドリファレンス
8.3.8 hrmdelque(キューの削除)
(1) 形式
hrmdelque 〔-f〕 〔-S システム名〕 キュー名
(2) 機能
作成済みのキューを削除します。
非永続版リソースアダプタの場合,キュー作成ファイルの定義を削除することでキュー
が削除されます。キュー作成ファイルの詳細については,「3.5.1 キュー作成ファイルの
作成」を参照してください。
(3) オプション
-f
コマンド引数に指定したキューにメッセージがあっても強制的にキューを削除する
ときに指定します。この場合,キューにある全メッセージを削除してからキューが
削除されます。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
削除するキューの名前を指定します。
指定したキューがない場合はエラーが発生します。
(5) 注意事項
● -f オプションを指定しない場合,コマンド引数に指定したキューにメッセージがある
とエラーが発生します。
● 受信用共用キューを削除する場合は送信処理を中断してください。送信処理を中断し
ないとき,送受信処理またはリカバリ処理でエラーが発生するおそれがあります。
● キュー間転送で使用しているキューを削除する場合,送信側と受信側のキューを両方
削除してください。片方のキューだけ削除すると,メッセージが滞留する場合があり
ます。
412
8. コマンドリファレンス
● 初回開始時の場合,または管理状態からの再開始後に実行状態に移行していない管理
状態の場合だけ実行できます。それ以外の場合はエラーが発生します。ただし,
Cosminexus RM 起動直後の管理状態でも,相手システムが起動中の場合,エラーが
発生するおそれがあります。
● 削除するキューを Message-driven Bean が監視している場合,このコマンドを実行す
るとエラーが発生します。
● 閉塞状態のキューは,-f オプションを指定しなくてもメッセージの有無に関係なく,
削除されます。また,閉塞した原因によって,キューを削除できない場合があります。
対処方法については,キューの閉塞時に出力されたメッセージログを参照してくださ
い。
● 削除対象の共用キューが他システムから参照されている場合は,該当の共用キューを
参照しているすべてのコネクションを切断しておいてください。
● キュー定義ファイルを使用していない場合,このコマンド実行時に,アプリケーショ
ンが JNDI ネーミングサービスから該当するキューに対応する値(javax.jms.Queue
型のオブジェクト)を取得しているかどうかに関係なく,JNDI ネーミングサービス
に登録されているオブジェクトは削除されます。
413
8. コマンドリファレンス
8.3.9 hrmlsaddr(あて先表示)
(1) 形式
hrmlsaddr {-n|-a あて先名} 〔-S システム名〕
(2) 機能
あて先情報テーブルに登録したあて先名一覧,またはあて先情報を表示します。
(3) オプション
-n
登録済みのあて先名一覧と登録済みのあて先数を表示します。あて先情報は表示し
ません。
-a あて先名
∼< 1 ∼ 32 文字の文字列>
表示するあて先情報に対応する論理名を指定します。
指定したあて先名が存在しない場合はエラーが発生します。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) 出力形式
● -n オプション指定の場合
address name
aa....aa
:
aa....aa
all address count
=
bb....bb
● -a オプション指定の場合
address name = aa....aa
url = cc....cc
user id = dd....dd
password = ee....ee
aa....aa
あて先名(文字列)
bb....bb
414
8. コマンドリファレンス
全あて先の個数(10 進数)
cc....cc
あて先アドレス(文字列)
dd....dd
BASIC 認証のためのユーザ ID(英数字)
BASIC 認証を使用しない場合,空白で表示されます。
ee....ee
BASIC 認証のためのパスワード("********")
BASIC 認証を使用しない場合,空白で表示されます。
415
8. コマンドリファレンス
8.3.10 hrmlsdmsg(デッドメッセージの参照)
(1) 形式
hrmlsdmsg {-i デッドメッセージID|-n メッセージ通番 〔-e 出力メッセージ数〕}
〔-o 出力メッセージバイト数〕 〔-p〕 〔-S システム名〕
(2) 機能
デッドメッセージキュー内のデッドメッセージの情報を表示します。デッドメッセージ
情報やメッセージ内容が表示できます。
(3) オプション
-i デッドメッセージ ID
∼< 1 ∼ 39 文字の識別子>
表示するデッドメッセージのデッドメッセージ ID(DMID)を指定します。
指定した DMID のメッセージがデッドメッセージキュー内にない場合はエラーが発
生します。
-n メッセージ通番
∼<数字> ((1 ∼ 65535))
表示するデッドメッセージのメッセージ通番を指定します。
指定できるメッセージ通番の上限値は,デッドメッセージキューに定義された最大
メッセージ数です。指定したメッセージ通番以降にデッドメッセージがない場合は,
エラーが発生します。
-e 出力メッセージ数
∼<数字> ((1 ∼ 100))《1》
表示するメッセージ数を指定します。-n オプションで指定したメッセージ通番から,
このオプションに指定した数のデッドメッセージ情報が表示されます。
指定を省略した場合,一つのデッドメッセージ情報が表示されます。キュー内の
メッセージ数よりも大きい値を指定した場合は,キュー内のメッセージの範囲で表
示されます。
-o 出力メッセージバイト数
∼<数字> ((0 ∼ 1024))《0》
(単位:バイト)
メッセージの内容を表示する場合に,表示するバイト数を指定します。
指定を省略した場合,または 0 を指定した場合は,メッセージの内容は表示されま
せん。
-p
アプリケーション指定のプロパティを表示する場合に指定します。
JMS 定義のプロパティ,および Cosminexus RM 固有のプロパティは表示されませ
ん。
416
8. コマンドリファレンス
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) 出力形式
message number = aa....aa
dead message id = bb....bb
original queue name = cc....cc
original queue type = dd....dd
cause = ee....ee
dead message timestamp = ff....ff
create time = gg....gg
correlation id = hh....hh※1
group id = ii....ii※1
group seq = jj....jj※1
message id = kk....kk※1
property※2
ll....ll = mm....mm※2※3
:
ll....ll = mm....mm※2※3
message type = nn....nn
message length = oo....oo
message
00000000[0x pp....pp pp....pp pp....pp
:
00000000[0x pp....pp pp....pp pp....pp
pp....pp] qq....qq
pp....pp] qq....qq
注※ 1
次の場合は表示されません。
• デッドメッセージ移動元が受信用共用キューの場合
• 転送された BytesContainer メッセージの場合
• メッセージ登録時に設定していない場合
注※ 2
-p オプションで,プロパティ表示を指定した場合に表示されます。
注※ 3
次の場合は表示されません。
• デッドメッセージ移動元が受信用共用キューの場合
• BytesContainer メッセージの場合
• アプリケーション指定のプロパティが未設定の場合
aa....aa
メッセージ通番(10 進数)
417
8. コマンドリファレンス
bb....bb
デッドメッセージ ID(文字列)
cc....cc
デッドメッセージキュー移動前のキュー名(文字列)
dd....dd
デッドメッセージキュー移動前のキューの種類
• LOCAL:ローカルキュー
• SHARE_RECEIVE:受信用共用キュー
• TRANSMIT:転送キュー
ee....ee
デッドメッセージキュー移動原因(文字列)
表示文字列は,API 仕様の Cosminexus RM 固有のプロパティでの
「JMS_HITACHI_DeadMessageCause」に設定される文字列と同じです。
ff....ff
デッドメッセージキュー移動時間(文字列)
gg....gg
メッセージ生成時刻(文字列)
デッドメッセージキュー移動元が受信用共用キューの場合,または転送された
BytesContainer メッセージの場合,****/**/** **:**:**.*** (*************) が表示
されます。
hh....hh
JMSCorrelationID(文字列)
ii....ii
JMSXGroupID(文字列)
jj....jj
JMSXGroupSeq(10 進数)
kk....kk
JMSMessageID(文字列)
ll....ll
プロパティ名(文字列)
mm....mm
プロパティ値(文字列)
プロパティの型の文字列表現で表示されます。プロパティ値に null を設定した場合
は表示されません。
nn....nn
418
8. コマンドリファレンス
メッセージ種別
• TEXT_MESSAGE:テキストメッセージ
• BYTE_MESSAGE:バイトメッセージ
• OBJECT_MESSAGE:オブジェクトメッセージ
• OBJECT_MESSAGE(BYTES_CONTAINER):BytesContainer メッセージ
• MESSAGE:メッセージ
BytesContainer については,「7.8.2 BytesContainer インタフェース」を参照して
ください。
oo....oo
メッセージ長(10 進数)
メッセージ種別が TEXT_MESSAGE,または BYTE_MESSAGE の場合だけ表示さ
れます。
pp....pp
メッセージ内容(16 進数)
qq....qq
メッセージ内容(文字列)
次に示す文字以外の文字データがメッセージ中にある場合,その文字データはピリ
オド(.)に変換して出力されます。
• 半角文字の英数字
• 半角文字のパーセント(%),スラント(/)
,ピリオド(.),アンダースコア(_)
および空白( )
(5) 注意事項
● 対象のデッドメッセージキューは,RMDeadMessageQueueName プロパティで指定
したキューです。
● 次のメッセージは表示されません。
• アプリケーションで登録したメッセージ
• Cosminexus RM 01-01 以前にデッドメッセージキューに移動したメッセージ
● 表示されるメッセージ通番は,デッドメッセージキュー内で先頭メッセージから順番
に通し番号を振られています。表示されないメッセージ(アプリケーションで登録し
たメッセージ,Cosminexus RM 01-01 以前にデッドメッセージキューに移動したメッ
セージ)が混在している場合,表示されるメッセージ通番は連続しないことがありま
す。
● 表示できるメッセージの内容は,バイトおよびテキスト型のメッセージだけです。
419
8. コマンドリファレンス
8.3.11 hrmlsmsg(メッセージの表示)
(1) 形式
hrmlsmsg -n メッセージ通番 〔-e 出力メッセージ数〕
〔-o 出力メッセージバイト数〕
〔-S システム名〕 キュー名
(2) 機能
キュー内のメッセージの情報を表示します。メッセージ属性やメッセージ内容が表示さ
れます。また,アプリケーションが取り出せるメッセージの一覧が表示されます。
転送キューの場合は,転送前または転送処理中のメッセージ一覧が表示されます。
(3) オプション
-n メッセージ通番
∼<数字> ((1 ∼ 65535))
表示するメッセージのメッセージ通番を指定します。
指定できるメッセージ通番の上限値は,コマンド引数に指定したキューに定義され
た最大メッセージ数です。指定したメッセージ通番のメッセージがない場合はエ
ラーが発生します。
-e 出力メッセージ数
∼<数字> ((1 ∼ 100))《1》
表示するメッセージ数を指定します。-n オプションで指定したメッセージ通番の
メッセージを先頭にして,このオプションに指定した数のメッセージが表示されま
す。
キューにあるメッセージ数よりも大きい値を指定した場合は,キューにある範囲で
表示されます。
-o 出力メッセージバイト数
∼<数字> ((0 ∼ 1024))《0》
(単位:バイト)
メッセージ内容を表示する場合に,表示するバイト数を指定します。
指定を省略した場合,または 0 を指定した場合は,メッセージ内容は表示されませ
ん。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
420
8. コマンドリファレンス
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
表示するメッセージがあるキューの名前を指定します。
指定したキューがない場合または送信用共用キューを指定した場合は,エラーが発
生します。
(5) 出力形式
● ローカルキューを指定する場合(永続版リソースアダプタの場合)
message number = aa....aa
queue name = bb....bb
original queue name = cc....cc※
cause = dd....dd※
fifo id = ee....ee
sequence number = ff....ff
create time = gg....gg
modify time = hh....hh
expiry time = ii....ii
entry time = jj....jj
delete flag = kk....kk
priority = ll....ll
correlation id = mm....mm
group id = nn....nn
group seq = oo....oo
message id = pp....pp
redelivery flag = qq....qq
delivery count = rr....rr
message type = ss....ss
message length = tt....tt
message
00000000[0x uu....uu uu....uu uu....uu
:
00000000[0x uu....uu uu....uu uu....uu
uu....uu] vv....vv
uu....uu] vv....vv
注※
デッドメッセージキューを指定した場合だけ表示します。
● ローカルキューを指定する場合(非永続版リソースアダプタの場合)
message number = aa....aa
queue name = bb....bb
fifo id = ee....ee
sequence number = ff....ff
create time = gg....gg
modify time = hh....hh
expiry time = ii....ii
entry time = jj....jj
delete flag = kk....kk
priority = ll....ll
correlation id = mm....mm
group id = nn....nn
group seq = oo....oo
421
8. コマンドリファレンス
message id = pp....pp
redelivery flag = qq....qq
delivery count = rr....rr
message type = ss....ss
message length = tt....tt
message
00000000[0x uu....uu uu....uu uu....uu
:
00000000[0x uu....uu uu....uu uu....uu
uu....uu] vv....vv
uu....uu] vv....vv
● 受信用共用キューを指定する場合
message number = aa....aa
queue name = bb....bb
internal message number = ww....ww
message length = ss....ss
message
00000000[0x uu....uu uu....uu uu....uu
:
00000000[0x uu....uu uu....uu uu....uu
uu....uu] vv....vv
uu....uu] vv....vv
● 転送キューを指定する場合
message number = aa....aa
queue name = bb....bb
fifo id = ee....ee
sequence number = ff....ff
create time = gg....gg
modify time = hh....hh
expiry time = ii....ii
entry time = jj....jj
delete flag = kk....kk
priority = ll....ll
correlation id = mm....mm
group id = nn....nn
group seq = oo....oo
message id = pp....pp
message type = ss....ss
message length = tt....tt
message
00000000[0x uu....uu uu....uu uu....uu
:
00000000[0x uu....uu uu....uu uu....uu
aa....aa
メッセージ通番(10 進数)
bb....bb
キュー名(文字列)
cc....cc
デッドメッセージキュー移動前キュー名(文字列)
422
uu....uu] vv....vv
uu....uu] vv....vv
8. コマンドリファレンス
dd....dd
デッドメッセージキュー移動原因(文字列)
表示文字列は,API 仕様の Cosminexus RM 固有のプロパティで,
「JMS_HITACHI_DeadMessageCause」に設定される文字列と同じです。
ee....ee
FIFO ID(文字列)
ff....ff
シーケンス番号(10 進数)
gg....gg
メッセージ生成時刻(文字列)
永続版リソースアダプタの場合,受信用共用キューからデッドメッセージキューへ
移動されたメッセージのとき,または転送キューからローカルキューへ転送された
BytesContainer メッセージのときは,****/**/** **:**:**.*** (*************) が表
示されます。
hh....hh
メッセージ更新時刻(文字列)
永続版リソースアダプタの場合,受信用共用キューからデッドメッセージキューへ
移動されたメッセージのとき,または転送キューからローカルキューへ転送された
BytesContainer メッセージのときは,****/**/** **:**:**.*** (*************) が表
示されます。
ii....ii
メッセージ有効期間(文字列)
無限の場合,0 が表示されます。
jj....jj
メッセージ登録時刻(文字列)
kk....kk
メッセージ削除(可否)フラグ
次に示すどちらかが表示されます。
• DELETE:削除できます。
• NO_DELETE:削除不可です。
ll....ll
メッセージ優先度(10 進数)
mm....mm
JMSCorrelationID(文字列)
メッセージ登録時に設定されていない場合,空白が表示されます。
nn....nn
423
8. コマンドリファレンス
JMSXGroupID(文字列)
メッセージ登録時に設定されていない場合,空白が表示されます。
oo....oo
JMSXGroupSeq(10 進数)
メッセージ登録時に設定されていない場合,空白が表示されます。
pp....pp
JMSMessageID(文字列)
メッセージ登録時に設定されていない場合,空白が表示されます。
qq....qq
メッセージの再配送フラグ
次に示すどちらかが表示されます。
• NON_REDELIVERY:再配送していません。
• REDELIVERY:再配送しました。
rr....rr
メッセージの配送回数(10 進数)
ss....ss
メッセージ種別
• 永続版リソースアダプタの場合
次に示すどれかが表示されます。
・TEXT_MESSAGE:テキストメッセージ
・BYTE_MESSAGE:バイトメッセージ
・OBJECT_MESSAGE:オブジェクトメッセージ
・OBJECT_MESSAGE(BYTES_CONTAINER):BytesContainer メッセージ
・MESSAGE:メッセージ
BytesContainer については,「7.8.2 BytesContainer インタフェース」を参照し
てください。
• 非永続版リソースアダプタの場合
次に示すどれかが表示されます。
・TEXT_MESSAGE:テキストメッセージ
・BYTE_MESSAGE:バイトメッセージ
・OBJECT_MESSAGE:オブジェクトメッセージ
・MESSAGE:メッセージ
tt....tt
メッセージ長(10 進数)
メッセージ種別が TEXT_MESSAGE または BYTE_MESSAGE の場合だけ表示さ
れます。
uu....uu
424
8. コマンドリファレンス
メッセージ内容(16 進数)
vv....vv
メッセージ内容(文字列)
次に示す文字以外の文字データがメッセージ中にある場合,その文字データはピリ
オド(.)に変換して出力されます。
• 半角文字の英数字
• 半角文字のパーセント(%),スラント(/)
,ピリオド(.),アンダースコア(_)
および空白( )
ww....ww
内部メッセージ通番(10 進数)
(6) 注意事項
● 表示できるメッセージの内容は,バイトおよびテキスト型のメッセージだけです。
● BytesContainer メッセージをローカルキューに登録した場合,ローカルキューに登録
したときの情報が表示されます。
● 非永続版リソースアダプタの場合,ローカルキュー内のメッセージ情報だけが表示さ
れます。
425
8. コマンドリファレンス
8.3.12 hrmlsque(キュー情報の表示)
(1) 形式
hrmlsque {-n|-q キュー名} 〔-S システム名〕
(2) 機能
作成済みのキュー名一覧および作成済みのキュー情報を表示します。
(3) オプション
-n
作成済みのキュー名一覧とキューの数が出力されます。キュー情報は出力されませ
ん。
-q キュー名
∼< 1 ∼ 20 文字の識別子>
キュー情報を表示するキューの名前を指定します。
非永続版リソースアダプタの場合は,ローカルキューだけ指定できます。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) 出力形式
● -n オプションを指定する場合
queue name
aa....aa
:
aa....aa
all queue count
=
yy....yy
● -q オプションにキュー名を指定する場合
ローカルキューのとき
queue name = aa....aa
display name = NN....NN
queue mode = bb....bb
queue type = cc....cc
create date = dd....dd
modify date = ee....ee
ap delivery mode = ff....ff
426
8. コマンドリファレンス
max message number = hh....hh
max cache message number = ii....ii
expiry time = jj....jj
local fifo id = kk....kk
queue state = ll....ll
message count = uu....uu
delivered message count = vv....vv
total message count = ww....ww
cache message count = xx....xx
expiry time pattern = BB....BB
受信用共用キューのとき
queue name = aa....aa
display name = NN....NN
queue mode = bb....bb
queue type = cc....cc
share queue version = MM....MM
create date = dd....dd
modify date = ee....ee
ap delivery mode = ff....ff
max message size = gg....gg
max message number = hh....hh
max cache message number = ii....ii
local fifo id = kk....kk
queue state = ll....ll
message count = uu....uu
cache message count = xx....xx
送信用共用キューのとき
queue name = aa....aa
display name = NN....NN
queue mode = bb....bb
queue type = cc....cc
share queue version = MM....MM
create date = dd....dd
modify date = ee....ee
ap delivery mode = ff....ff
max message size = gg....gg
local fifo id = kk....kk
queue state = ll....ll
share queue host = mm....mm
share queue port = nn....nn
share queue name = oo....oo
転送キューのとき
queue name = aa....aa
display name = NN....NN
queue mode = bb....bb
queue type = cc....cc
create date = dd....dd
modify date = ee....ee
max message number = hh....hh
427
8. コマンドリファレンス
max cache message number = ii....ii
expiry time = jj....jj
local fifo id = kk....kk
queue state = ll....ll
message count = uu....uu
delivered message count = vv....vv
total message count = ww....ww
cache message count = xx....xx
address name = CC....CC
url = DD....DD
address queue name = EE....EE
user id = FF....FF
password = GG....GG
transmission mode = HH....HH
qos = II....II
transmission group expiry time = KK....KK
transmission expiry time = LL....LL
aa....aa
キュー名(文字列)
bb....bb
キューモード
• 永続版リソースアダプタの場合
次に示すどちらかが表示されます。
・PERSISTENT:永続キュー
・NON_PERSISTENT:非永続キュー
受信用共用キューおよび送信用共用キューの場合は PERSISTENT が表示されま
す。
• 非永続版リソースアダプタの場合
・NON_PERSISTENT:非永続キュー
cc....cc
キュータイプ
• 永続版リソースアダプタの場合
次に示すどれかが表示されます。
・LOCAL:ローカルキュー
・SHARE_RECEIVE:受信用共用キュー
・SHARE_SEND:送信用共用キュー
・TRANSMIT:転送キュー
• 非永続版リソースアダプタの場合
・LOCAL:ローカルキュー
dd....dd
• 永続版リソースアダプタの場合
キューを作成した日付(文字列)
• 非永続版リソースアダプタの場合
キュー作成ファイルを読み込んだときの日付が表示されます。キュー作成ファイ
428
8. コマンドリファレンス
ルについては,
「3.5.1 キュー作成ファイルの作成」を参照してください。
ee....ee
• 永続版リソースアダプタの場合
キューを更新した日付(文字列)
• 非永続版リソースアダプタの場合
キューを作成した日付(dd....dd)と同じ値が表示されます。
ff....ff
メッセージ取り出しモード
次に示すどちらかが表示されます。
• SERIAL:シリアル取り出し属性
• PARALLEL:パラレル取り出し属性
永続版リソースアダプタの受信用共用キューおよび送信用共用キューの場合は
SERIAL が表示されます。
gg....gg
最大メッセージ長(10 進数)
hh....hh
最大メッセージ数(10 進数)
ii....ii
• 永続版リソースアダプタの場合
最大キャッシュメッセージ数(10 進数)
• 非永続版リソースアダプタの場合
最大メッセージ数(hh....hh)と同じ値が表示されます。
jj....jj
メッセージの有効期間(10 進数)
kk....kk
ローカル書き込み用の FIFO ID(文字列)
FIFO ID は管理情報としてシステム内部で使用しているキュー情報です。
ll....ll
キューの状態(文字列)
• 永続版リソースアダプタの場合
次に示すどれかが表示されます。
・NORMAL:正常状態
・AP_SEND_DISABLED:メッセージの送信抑止状態
・AP_RECEIVE_DISABLED:メッセージの受信抑止状態
・TRS_SEND_DISABLED:キュー間転送メッセージの送信抑止状態
・TRS_RECEIVE_DISABLED:キュー間転送メッセージの受信抑止状態
・BLOCKED:閉塞状態
429
8. コマンドリファレンス
複数の抑止をしている場合は,これらがすべて表示されます。閉塞状態のキュー
は,hrmlsque コマンドと hrmdelque コマンド以外は受け付けません。また,
キューが閉塞状態にある場合に出力される形式は異なります。詳細は「(5) 注意
事項」を参照してください。
• 非永続版リソースアダプタの場合
次に示すどれかが表示されます。
・NORMAL:正常状態
・AP_SEND_DISABLED:メッセージの送信抑止状態
・AP_RECEIVE_DISABLED:メッセージの受信抑止状態
複数の抑止をしている場合は,これらがすべて表示されます。
mm....mm
共用キューを使用して複数システム間でのアプリケーション連携をする場合のイベ
ント送信先ホスト名または IP アドレス(文字列)
nn....nn
共用キューを使用して複数システム間でのアプリケーション連携をする場合のイベ
ント送信先ポート番号(10 進数)
oo....oo
共用キューを使用して複数システム間でのアプリケーション連携をする場合の登録
先キュー名(文字列)
uu....uu
仕掛かり中メッセージ数(10 進数)
未配信メッセージの数です。有効期限切れメッセージおよび受信処理中メッセージ
の数を含みます。
転送キューの場合,転送待ちメッセージの数および転送処理中メッセージの数も含
みます。
vv....vv
配送済みメッセージ数(10 進数)
ローカルキューの場合,hrmdelmsg コマンドによって削除されたメッセージなども
数に含みます。
転送キューの場合,Acknowledgment 受信済みメッセージの数が表示されます。
ww....ww
総メッセージ数(10 進数)
仕掛かり中メッセージの数,配信済みメッセージの数および滞留メッセージの数の
和です。
転送キューの場合,滞留メッセージの数は常に 0 となります。
xx....xx
キャッシュに格納されているメッセージ数(10 進数)
ローカルキューの場合,キャッシュに格納されている滞留メッセージの数も含みま
430
8. コマンドリファレンス
す。
yy....yy
全キューの個数(10 進数)
BB....BB
メッセージ有効期間の選択
• 永続版リソースアダプタの場合
次に示すどちらかが表示されます。
・SENDER:送信側の有効期間
・RECEIVER:受信側の有効期間
• 非永続版リソースアダプタの場合
「***」が表示されます。
CC....CC
あて先名(文字列)
DD....DD
あて先アドレス(文字列)
EE....EE
転送先キュー名 (識別子)
転送先キューを使用しない場合,空白で表示されます。
FF....FF
BASIC 認証のためのユーザ ID(英数字)
BASIC 認証を使用しない場合,空白で表示されます。
GG....GG
BASIC 認証のためのパスワード("********")
BASIC 認証を使用しない場合,空白で表示されます。
HH....HH
転送モード
永続版リソースアダプタの転送キューの場合,次に示すどちらかが表示されます。
• NORMAL:通常モード
• COMPATIBLE:互換モード
II....II
QoS(通信品質)の種別
次に示すどちらかが表示されます。
• EXACTLY_ONCE:配送保証および重複防止
• IN_ORDER:順序保証
KK....KK
通信層のグループ有効期間(10 進数)
431
8. コマンドリファレンス
LL....LL
通信層のメッセージ有効期間(10 進数)
MM....MM
共用キューのバージョン
送信用共用キューの場合は,対応する受信用共用キューのバージョンを表示します。
NN....NN
キューに対応する表示名(文字列)
キュー定義ファイルの使用有無に関係なく出力します。表示名が指定されていない
場合は,キュー名称が表示名として出力されます。
(5) 注意事項
● キューが閉塞状態であった場合,次の形式で出力されます。
queue name =
queue type =
queue state =
aa....aa
cc....cc
BLOCKED
Cosminexus RM 起動時に,キューの種類の値不正によってキューが閉塞した場合は,
queue type には "UNKNOWN" が出力されます。キューの閉塞状態および閉塞した場
合の対処方法については「9.2 キューの障害」
,またはキューが閉塞するときに出力
されるメッセージログを参照してください。
非永続版リソースアダプタではキューは閉塞しないため,"BLOCKED" は表示されま
せん。
● 送信用共用キューの参照時に,メッセージの送信先のシステムが停止中などでイベン
トが送信できない場合,share queue host と share queue port の値は空白で表示され
ることがあります。
● 送信用共用キューの参照時に,対応する受信用共用キューが接続先の DB 上に存在し
ない場合,エラーが発生します。
● 非永続版リソースアダプタの場合,ローカルキューについてのキュー情報だけが表示
されます。
432
8. コマンドリファレンス
8.3.13 hrmlsstat(システム状態の表示)
(1) 形式
hrmlsstat 〔-S システム名〕
(2) 機能
Cosminexus RM の内部状態を表示します。Cosminexus RM の内部状態については,次
の個所を参照してください。
● 永続版リソースアダプタの場合「4.1.4 Cosminexus RM の状態遷移(永続版リソー
スアダプタの場合)
」
● 非永続版リソースアダプタの場合「5.1.4 Cosminexus RM の状態遷移(非永続版リ
ソースアダプタの場合)」
(3) オプション
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) 出力形式
system status
=
aa....aa
aa....aa
システム状態が表示されます。
次に示すどれかが表示されます。
• 永続版リソースアダプタの場合
・EXECUTED_STATE:実行状態
・MANAGED_STATE:管理状態
・BLOCKADE_STATE:閉塞状態
・CREATED_STATE:開始中状態
• 非永続版リソースアダプタの場合
・EXECUTED_STATE:実行状態
・BLOCKADE_STATE:閉塞状態
・CREATED_STATE:開始中状態
433
8. コマンドリファレンス
8.3.14 hrmlstrn(トランザクション状態の表示)
(1) 形式
hrmlstrn 〔-S システム名〕
(2) 機能
トランザクションの状態を表示します。
(3) オプション
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) 出力形式
● ローカルトランザクションの場合
timestamp = aa....aa
transaction id
bb....bb
transaction state = cc....cc
● トランザクションマネジャでのグローバルトランザクションの場合
timestamp = aa....aa
transaction id
XID(dd....dd,ee....ee)
transaction state = cc....cc
aa....aa
トランザクション開始時刻(文字列)
YYYY/MM/DD hh:mm:ss の形式で表示されます。不明の場合はアスタリスク(*)
が表示されます。
• YYYY:西暦
• MM:月
• DD:日
• hh:時間
• mm:分
• ss:秒
434
8. コマンドリファレンス
bb....bb
ローカルトランザクション識別子(文字列)
cc....cc
トランザクションの状態(文字列)
次に示すどれかが表示されます。
• 永続版リソースアダプタの場合
・NON_EXISTENT:初期状態
・ACTIVE:トランザクション処理中
・IDLE:トランザクション指示待ち
・PREPARED:トランザクション決着指示待ち
・ROLLBACK_ONLY:ロールバック指示待ち
・HEURISTIC_COMPLETED(詳細情報)
:ヒューリスティック決着済み
詳細情報として,次に示すどちらかが表示されます。
・HEURCOM:ヒューリスティックコミット
・HEURRB:ヒューリスティックロールバック
・PREPARED_OR_HEURISTIC:トランザクション決着指示待ちまたは
ヒューリスティック決着済み
・LOCAL_ACTIVE:ローカルトランザクション処理中
• 非永続版リソースアダプタの場合
・LOCAL_ACTIVE:ローカルトランザクション処理中
次に示すオプションは永続版リソースアダプタでだけ使用できます。
dd....dd
グローバルトランザクション識別子(文字列)
ee....ee
ブランチ識別子(文字列)
(5) 注意事項
● アプリケーションが使用するトランザクションの状態だけが表示されます。
Cosminexus RM が内部で使用するトランザクションの状態は表示されません。
● 非永続版リソースアダプタの場合,ローカルトランザクションの状態だけ表示されま
す。
435
8. コマンドリファレンス
8.3.15 hrmlstrs(通信状態表示)
(1) 形式
hrmlstrs {-n|-g グループID} 〔-m 通信層グループ内メッセージ通番〕
〔-e 出力メッセージ数〕〔-S システム名〕 キュー名
(2) 機能
メッセージ転送中に通信層のグループの状態やグループ内のメッセージ通信状態を表示
します。
(3) オプション
-n
キューに存在する通信層のグループ ID 一覧と送信用 / 受信用の種別,グループの有
効 / 無効を表示します。
-g グループ ID
∼< 1 ∼ 256 文字の文字列>
通信状態を参照するグループのグループ ID を指定します。
グループが無効の場合はグループの参照はできません。グループが無効の場合にこ
のオプションを指定するとエラーが発生します。
-m 通信層グループ内メッセージ通番
∼<数字> ((1 ∼ 65535))
出力するメッセージのメッセージ通番を指定します。指定するメッセージ通番の上
限値は,指定したキューに定義された最大メッセージ数となります。
指定したメッセージ通番のメッセージが指定したキュー内に存在しない場合はエ
ラーが発生します。-g オプションを指定していて,さらに指定したグループが有効
の場合だけ指定できます。-g オプションを指定しない,または指定したグループが
無効であった場合,このオプションを指定するとエラーが発生します。
-e 出力メッセージ数
∼<数字> ((1 ∼ 100))《1》
メッセージ情報を表示するメッセージ数を指定します。-m オプションで指定した
メッセージ通番から,このオプションで指定された出力メッセージ数のメッセージ
情報を表示します。指定を省略した場合,1 メッセージ情報を表示します。
組み込まれているメッセージ数より大きい値を指定した場合は,組み込まれている
メッセージ数までを表示します。
-g と -m オプションを両方指定したときだけ,このオプションは有効です。それ以
外の場合はエラーが発生します。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
436
8. コマンドリファレンス
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
状態を参照するキューの名前を指定します。
指定したキューが存在しない,またはローカルキュー,転送キュー以外のキューを
指定した場合はエラーが発生します。
(5) 注意事項
表示されるメッセージ通番は通信層のグループ内の通番です。hrmlsmsg コマンドで表
示される message number と異なります。また,通信層グループ内メッセージ有効期限
に到達したメッセージは出力対象になりません。
(6) 出力形式
● -n オプション指定の場合
transmission group id : group type : group state
aa....aa: bb....bb: cc....cc
:
:
:
aa....aa: bb....bb: cc....cc
all group count = dd....dd
● -g オプション グループ ID 指定の場合
受信用グループのとき
transmission group id = aa....aa
qos = ee....ee
non received messages = ff....ff....ff....ff (FF....FF)
skipped messages = gg....gg....gg....gg (GG....GG)
transmission group expiry time = hh....hh
送信用グループのとき
transmission group id = aa....aa
qos = ee....ee
delivering messages = ii....ii....ii....ii (II....II)
transmission group expiry time = hh....hh
● -g オプション グループ ID -m オプション 1 指定の場合
transmission group message number
=
jj....jj
437
8. コマンドリファレンス
transmission sequence number = kk....kk
message state = ll....ll
correlation id = mm....mm
group id = nn....nn
group seq = oo....oo
message id = pp....pp
transmission expiry time = qq....qq
aa....aa
通信層のグループ ID(文字列)
bb....bb
グループの種別
次に示すどちらかが表示されます。
• SEND:送信用グループ
• RECEIVE:受信用グループ
cc....cc
グループの状態
次に示すどちらかが表示されます。
• NOT_CLOSED:有効
• CLOSED:無効
dd....dd
グループの総数(10 進数)
ee....ee
QoS(通信品質)の種別
次に示すどちらかが表示されます。
• EXACTLY_ONCE:配送保証および重複防止
• IN_ORDER:順序保証
ff....ff (FF....FF)
受信待ち(未受信)シーケンス番号(受信待ちメッセージ総数)
(10 進数)
受信済みシーケンス番号の最大値未満のシーケンス番号で最大 10 メッセージが表示
されます。
gg....gg (GG....GG)
スキップ済みシーケンス番号(スキップ済みメッセージ総数)
(10 進数)
受信待ちスキップコマンドでスキップされたシーケンス番号で最大 10 メッセージが
表示されます。
hh....hh
通信層グループ有効期限(文字列)
ii....ii (II....II)
転送中シーケンス番号(転送中メッセージ総数)
(10 進数)
438
8. コマンドリファレンス
最大 10 メッセージが表示されます。
jj....jj
通信層グループ内メッセージ通番(10 進数)
kk....kk
通信層グループ内シーケンス番号(10 進数)
ll....ll
メッセージ状態
次に示すどちらかが表示されます。
• NON_DELIVERED:配信待ちまたは転送待ち
• DELIVERING:転送中
再起動後の未送信メッセージも含みます。
mm....mm
JMSCorrelationID(文字列)
メッセージ登録時に設定されていない場合,空白が表示されます。
nn....nn
JMSXGroupID(文字列)
メッセージ登録時に設定されていない場合,空白が表示されます。
oo....oo
JMSXGroupSeq(10 進数)
メッセージ登録時に設定されていない場合,空白が表示されます。
pp....pp
JMSMessageID(文字列)
メッセージ登録時に設定されていない場合,空白が表示されます。
qq....qq
通信層グループ内メッセージ有効期限(文字列)
439
8. コマンドリファレンス
8.3.16 hrmmkaddr(あて先登録)
(1) 形式
hrmmkaddr -u あて先アドレス 〔-i ユーザID -p パスワード〕
〔-S システム名〕 あて先名
(2) 機能
サーバ間転送に使用するあて先情報を,あて先情報テーブルに登録します。
(3) オプション
-u あて先アドレス
∼< 1 ∼ 512 文字の文字列>
メッセージを転送するあて先アドレスを指定します。
転送先システムのキュー間転送用 Web アプリケーションの URL を指定してくださ
い。なお,指定する文字列は,RFC2396 で規定された文字とします。
-i ユーザ ID
∼< 1 ∼ 16 文字の英数字>
BASIC 認証のためのユーザ ID を指定します。
このオプションは -p オプションと同時に指定してください。このオプションを指定
して -p オプションを指定していない場合は,エラーが発生します。
-p パスワード
∼< 1 ∼ 16 文字の英数字>
BASIC 認証のためのパスワードを指定します。
このオプションは -i オプションと同時に指定してください。このオプションを指定
して -i オプションを指定していない場合は,エラーが発生します。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンド操作対象となるシステムのシステム名(プロパティの RMSystemName)
を指定します。
指定を省略した場合は,環境変数に設定されたシステム名を指定したものとみなさ
れます。
環境変数にもシステム名が設定されていない場合はエラーが発生します。
(4) コマンド引数
あて先名
∼< 1 ∼ 32 文字の識別子>
あて先情報に対応する論理名を指定します。
指定したあて先名がすでに実在する場合はエラーが発生します。
440
8. コマンドリファレンス
(5) 注意事項
● 転送キューはこのコマンドのあて先名に対応するあて先情報を基にメッセージを転送
します。
● -u オプションで,自システムのキュー間転送用 Web アプリケーションの URL を指定
しないでください。
441
8. コマンドリファレンス
8.3.17 hrmmkque(ローカルキューの作成)
(1) 形式
hrmmkque -t local 〔-m {persistent|non_persistent}〕
〔-d {serial|parallel}〕 〔-n 最大メッセージ数〕
〔-c キャッシュメッセージ数〕 〔-e メッセージ有効期間〕
〔-w {sender|receiver}〕 〔-x 表示名〕
〔-r RDエリア名〕 〔-S システム名〕 キュー名
(2) 機能
指定されたキュー属性で,ローカルキューを作成します。
非永続版リソースアダプタの場合,キューはキュー作成ファイルの定義によって作成さ
れます。キュー作成ファイルの詳細については,「3.5.1 キュー作成ファイルの作成」を
参照してください。
(3) オプション
-t local
作成するキューの種類を指定します。ローカルキューが指定されます。
-m {persistent | non_persistent}
∼《persistent》
作成するキューの永続性を指定します。
• persistent:永続キュー属性
• non_persistent:非永続キュー属性
各属性を指定したときのメッセージの処理については,
「2.3.1 キューの永続性」を
参照してください。
-d {serial | parallel}
∼《parallel》
作成するキューのメッセージ取り出しモードを指定します。
• serial:シリアル取り出し属性
• parallel:パラレル取り出し属性
各属性を指定したときのメッセージの処理については,
「2.3.2 メッセージ取り出し
モード」を参照してください。
-n 最大メッセージ数
∼<数字> ((1 ∼ 65535))《1024》
キューに格納するメッセージの最大数を指定します。
-c キャッシュメッセージ数
∼<数字> ((0 ∼ 65535))《最大メッセージ数》
442
8. コマンドリファレンス
キャッシュに格納するメッセージの数を指定します。
指定を省略した場合,-n オプションに指定する最大メッセージ数が設定されます。0
を指定する場合,キャッシュにメッセージは格納されません。
このオプションに大きな値を指定する場合,メモリを消費しますがメッセージ受信
の性能が向上します。小さい値を指定する場合,メモリの消費は抑えられますが,
DB アクセス回数が増えることによってメッセージ受信の性能が低下します。
-e メッセージ有効期間
∼<数字> ((0 ∼ 2592000))《0》
(単位:秒)
キューに格納するメッセージの有効期間を指定します。
0 を指定する場合,メッセージの有効期間は無限です。
有効期間を指定するときのメッセージの処理については,「2.3.5 メッセージの有効
期間」を参照してください。有効期間に達すると,そのメッセージはデッドメッ
セージとして扱われます。
-w {sender | receiver}
∼《sender》
転送キューからメッセージを受信する場合,メッセージの有効期間については,送
信側の有効期間を使用するのか,または受信側で更新するのかを選択します。転送
キューの詳細については,「8.3.20 hrmmkque(転送キューの作成)」を参照して
ください。
• sender:送信側の有効期間
• receiver:受信側の有効期間
receiver を指定した場合,-e オプションで指定した値がメッセージの有効期間とな
ります。
-x 表示名
∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミング
サービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合はコマンド引数で指定したキュー名と同じ名称を指定したもの
とみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなり
ます。詳細は「(5) 注意事項」を参照してください。
-r RD エリア名
∼< 1 ∼ 30 文字の識別子および空白>
メッセージ情報テーブルを格納する RD エリアの名前を指定します。
このオプションを指定する場合,メッセージ情報テーブルを格納する RD エリアを
あらかじめ用意してください。HiRDB の RD エリアの作成については,マニュアル
「HiRDB コマンドリファレンス」を参照してください。
このオプションを省略する場合,格納する RD エリアを HiRDB が決定します。
443
8. コマンドリファレンス
HiRDB が決定する RD エリアについては,マニュアル「HiRDB SQL リファレン
ス」を参照してください。
なお,-m オプションで "non_persistent" を指定した場合または DB に Oracle を使
用している場合,このオプションの指定値は無効になります。
注意
• RD エリア名に空白を含む場合は,次のように指定してください。
Windows の場合
引用符(")で囲んでください。
UNIX の場合
アポストロフィ(’)で囲み,さらにその外側を引用符(")で囲んでくださ
い。
• RD エリア名は大文字と小文字が区別されます。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
作成するキューの名前を指定します。
既存のキューの名前を指定した場合はエラーが発生します。
(5) 注意事項
● コマンド引数に指定するキュー名は,英字の大文字と小文字が区別されません。英字
の大文字と小文字の違いだけのキュー名がすでにある場合,エラーが発生します。
キュー定義ファイルを使用していない場合,-x オプションで指定したキューの表示名
で JNDI ネーミングサービスに登録されます。
キュー定義ファイルを使用している場合は,キュー定義ファイルの指定が優先され,
-x オプションで指定した表示名での JNDI ネーミングサービスへの登録はされませ
ん。
キュー定義ファイルを使用して Cosminexus RM を運用している場合,キュー定義
ファイルを使用しないで Cosminexus RM を再開始したときは,-x オプションで指定
した表示名が JNDI ネーミングサービスに登録されます。
キュー定義ファイルの使用有無の詳細については,
「3.4.4 キュー定義ファイルの作
成(永続版リソースアダプタの場合)
」,または「3.5.2 キュー定義ファイルの作成
(非永続版リソースアダプタの場合)」を参照してください。
444
8. コマンドリファレンス
● -x オプションで表示名を指定しなくても,作成するキューのキュー名が,作成済み
キューの表示名と重複した場合,キューの作成は失敗します。
445
8. コマンドリファレンス
8.3.18 hrmmkque(受信用共用キューの作成)
(1) 形式
hrmmkque -t shr_receive 〔-l 最大メッセージ長〕
〔-n 最大メッセージ数〕 〔-c キャッシュメッセージ数〕
〔-r RDエリア名〕 〔-x 表示名〕
〔-S システム名〕 キュー名
(2) 機能
指定されたキュー属性で,受信用共用キューを作成します。
(3) オプション
-t shr_receive
作成するキューの種類を指定します。受信用共用キューが指定されます。
-l 最大メッセージ長
∼<数字> ((1000 ∼ 1048576))《33000》(単位:バイト)
キューに格納するメッセージの最大長(ペイロードの最大長)を指定します。
-n 最大メッセージ数
∼<数字> ((1 ∼ 65535))《1024》
キューに格納するメッセージの最大数を指定します。
-c キャッシュメッセージ数
∼<数字> ((0 ∼ 65535))《最大メッセージ数》
キャッシュに格納するメッセージの数を指定します。
指定を省略した場合,-n オプションに指定する最大メッセージ数が設定されます。0
を指定する場合,キャッシュにメッセージは格納されません。
このオプションに大きな値を指定する場合,メモリを消費しますがメッセージ受信
の性能が向上します。小さい値を指定する場合,メモリの消費は抑えられますが,
DB アクセス回数が増えることによってメッセージ受信の性能が低下します。
-r RD エリア名
∼< 1 ∼ 30 文字の識別子および空白>
次に示す管理情報テーブルを格納する RD エリアの名前を指定します。
• 共用キュー受信用メッセージ情報テーブル
• 共用キュー受信用ライト管理テーブル
• 共用キュー受信用リード管理テーブル
このオプションを指定する場合,これらの管理情報テーブルを格納する RD エリア
をあらかじめ用意してください。また,これらの管理情報テーブルは,受信用共用
キューごとに同じ RD エリアに格納する必要があります。HiRDB の RD エリアの作
成については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
446
8. コマンドリファレンス
このオプションを省略する場合,格納する RD エリアを HiRDB が決定します。
HiRDB が決定する RD エリアについては,マニュアル「HiRDB SQL リファレン
ス」を参照してください。
注意
• RD エリア名に空白を含む場合は,次のように指定してください。
Windows の場合
引用符(")で囲んでください。
UNIX の場合
アポストロフィ(’)で囲み,さらにその外側を引用符(")で囲んでくださ
い。
• RD エリア名は大文字と小文字が区別されます。
-x 表示名
∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミング
サービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合はコマンド引数で指定したキュー名と同じ名称を指定したもの
とみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなり
ます。詳細は「(5) 注意事項」を参照してください。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
作成するキューの名前を指定します。
既存のキューの名前を指定した場合はエラーが発生します。
TP1/EE とシステム間連携をする場合は 1 ∼ 19 文字のキュー名を指定してくださ
い。キュー名が 20 文字の場合は TP1/EE とシステム間連携ができません。
(5) 注意事項
● 受信用共用キューは,接続先のデータベースの種別が HiRDB の場合だけ作成できま
す。接続先のデータベースの種別が Oracle の場合に受信用共用キューを作成するとエ
ラーが発生します。
447
8. コマンドリファレンス
● コマンド引数に指定するキュー名は,英字の大文字と小文字が区別されません。英字
の大文字と小文字の違いだけのキュー名がすでにある場合,エラーが発生します。
● Cosminexus RM のバージョンによって使用できる共用キューのバージョンが決めら
れています。したがって,共用キューを使用する場合は,送信側システムと受信側シ
ステムの Cosminexus RM のバージョンを統一し,必要に応じて共用キューをバー
ジョンアップする必要があります。
共用キューのバージョンアップの詳細については,
「付録 H.4 共用キューのバージョ
ンアップ」を参照してください。
● キュー定義ファイルを使用していない場合,-x オプションで指定したキューの表示名
で JNDI ネーミングサービスに登録されます。
キュー定義ファイルを使用している場合は,キュー定義ファイルの指定が優先され,
-x オプションで指定した表示名での JNDI ネーミングサービスへの登録はされませ
ん。
キュー定義ファイルを使用して Cosminexus RM を運用している場合,キュー定義
ファイルを使用しないで Cosminexus RM を再開始したときは,-x オプションで指定
した表示名が JNDI ネーミングサービスに登録されます。
キュー定義ファイルの使用有無の詳細については,
「3.4.4 キュー定義ファイルの作
成(永続版リソースアダプタの場合)
」を参照してください。
● -x オプションで表示名を指定しなくても,作成するキューのキュー名が,作成済み
キューの表示名と重複した場合,キューの作成は失敗します。
448
8. コマンドリファレンス
8.3.19 hrmmkque(送信用共用キューの作成)
(1) 形式
hrmmkque -t shr_send 〔-l 最大メッセージ長〕
-b 共用キューを使用する場合の登録先キュー名
〔-x 表示名〕 〔-S システム名〕 キュー名
(2) 機能
指定されたキュー属性で,送信用共用キューを作成します。
(3) オプション
-t shr_send
作成するキューの種類を指定します。送信用共用キューが指定されます。
-l 最大メッセージ長
∼<数字> ((0 または 1 ∼ 1048576))《0》(単位:バイト)
キューに格納するメッセージの最大長(ペイロードの最大長)を指定します。
メッセージを送信する際のメッセージ長チェックの基準値となります。指定する値
は,受信側システムの受信用共用キューに指定された最大メッセージ長と同じにし
てください。
メッセージ長をチェックしない場合は,指定を省略するか 0 を指定してください。
-b 共用キューを使用する場合の登録先キュー名
∼<文字列>
共用キューを使用して複数システム間でのアプリケーション連携をする場合にメッ
セージを登録する,登録先キュー名を指定します。
自システムの送信用共用キューは定義だけのキューです。メッセージが格納される
メモリやディスク領域などの実体は,相手システムの受信用共用キューです。この
オプションでは,自システムの送信したメッセージが登録される登録先キュー名を,
相手システムの受信用共用キュー名を基に次に示す形式で指定します。
Cosminexus RM 間で連携する場合
<システム名>_SHR_<受信用共用キュー名>
システム名は相手システムの RMSystemName プロパティ指定値です。受信用
共用キュー名は,相手システムで定義している受信用共用キュー名です。
他システム間で連携する場合
接続先のシステムで定義しているキュー名を指定してください。
-x 表示名
∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミング
449
8. コマンドリファレンス
サービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合はコマンド引数で指定したキュー名と同じ名称を指定したもの
とみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなり
ます。詳細は「(5) 注意事項」を参照してください。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
作成するキューの名前を指定します。
既存のキューの名前を指定した場合はエラーが発生します。
(5) 注意事項
● 送信用共用キューは,接続先のデータベースの種別が HiRDB のときだけ作成できま
す。接続先のデータベースの種別が Oracle のときに送信用共用キューを作成するとエ
ラーが発生します。
● -b オプションに対して,Cosminexus RM 間の連携の場合に指定する受信用共用
キュー名は,英字の大文字と小文字が区別されません。
● コマンド引数に指定するキュー名は,英字の大文字と小文字が区別されません。英字
の大文字と小文字の違いだけのキュー名がすでにある場合,エラーが発生します。
● -b オプションで指定したキュー名に対応する受信用共用キューが接続先のデータベー
スに存在しない場合,エラーが発生します。
● -b オプションで指定したキュー名に対応する受信用共用キューが連携できる共用
キューのバージョンではない場合,エラーが発生します。
● Cosminexus RM のバージョンによって使用できる共用キューのバージョンが決めら
れています。したがって,共用キューを使用する場合は,送信側システムと受信側シ
ステムの Cosminexus RM のバージョンを統一し,必要に応じて共用キューをバー
ジョンアップする必要があります。
共用キューのバージョンアップの詳細については,
「付録 H.4 共用キューのバージョ
ンアップ」を参照してください。
● キュー定義ファイルを使用していない場合,-x オプションで指定したキューの表示名
450
8. コマンドリファレンス
で JNDI ネーミングサービスに登録されます。
キュー定義ファイルを使用している場合は,キュー定義ファイルの指定が優先され,
-x オプションで指定した表示名での JNDI ネーミングサービスへの登録はされませ
ん。
キュー定義ファイルを使用して Cosminexus RM を運用している場合,キュー定義
ファイルを使用しないで Cosminexus RM を再開始したときは,-x オプションで指定
した表示名が JNDI ネーミングサービスに登録されます。
キュー定義ファイルの使用有無の詳細については,「3.4.4 キュー定義ファイルの作
成(永続版リソースアダプタの場合)」を参照してください。
● -x オプションで表示名を指定しなくても,作成するキューのキュー名が,作成済み
キューの表示名と重複した場合,キューの作成は失敗します。
451
8. コマンドリファレンス
8.3.20 hrmmkque(転送キューの作成)
(1) 形式
hrmmkque -t transmit 〔-m {persistent|non_persistent}〕
〔-n 最大メッセージ数〕 〔-c キャッシュメッセージ数〕
〔-e メッセージ有効期間〕
-a あて先名 {-v 転送先キュー名|-y} 〔-i {normal | compatible}〕
〔-j {exactly_once|in_order}〕 〔-g 通信層のグループ有効期間〕
〔-s 通信層のメッセージ有効期間〕 〔-x 表示名〕
〔-r RDエリア名〕 〔-S システム名〕 キュー名
(2) 機能
指定されたキュー属性で,転送キューを作成します。
(3) オプション
-t transmit
作成するキューの種類を指定します。転送キューが指定されます。
-m {persistent | non_persistent}
∼《persistent》
作成するキューの永続性を指定します。
• persistent:永続キュー属性
• non_persistent:非永続キュー属性
各属性を指定したときのメッセージの処理については,
「2.3.1 キューの永続性」を
参照してください。
-j オプションに in_order を指定した場合,このオプションの指定は persistent(永
続キュー)だけとなります。-j オプションに in_order を指定して,同時にキュー
モードに non_persistent(非永続キュー)を指定した場合はエラーが発生します。
-n 最大メッセージ数
∼<数字> ((1 ∼ 65535))《1024》
キューに格納するメッセージの最大数を指定します。
-c キャッシュメッセージ数
∼<数字> ((0 ∼ 65535))《1024》
キャッシュに格納するメッセージの数を指定します。
指定を省略した場合,-n オプションに指定した最大メッセージ数が設定されます。0
を指定した場合,キャッシュにメッセージは格納されません。
このオプションに大きな値を指定する場合,メモリを消費しますがメッセージ転送
の性能が向上します。小さい値を指定する場合,メモリの消費は抑えられますが,
DB アクセス回数が増えることによってメッセージ転送の性能が低下します。
-e メッセージ有効期間
452
8. コマンドリファレンス
∼<数字> ((1 ∼ 2592000))《2592000》
(単位:秒)
キューに格納するメッセージの有効期間を指定します。
有効期間を指定するときのメッセージの処理については,「2.3.5 メッセージの有効
期間」を参照してください。
有効期間に達すると,そのメッセージはデッドメッセージとして扱われます。
-s オプションで指定した値以下の値を指定してください。-s オプションで指定した
値より大きい値を指定するとエラーが発生します。
-a あて先名
∼< 1 ∼ 32 文字の文字列>
メッセージを転送するあて先のあて先名を指定します。hrmmkaddr コマンドで,
事前にあて先名を登録する必要があります。登録されていないあて先名を指定する
とエラーが発生します。
-v 転送先キュー名
∼< 1 ∼ 20 文字の識別子>
メッセージを転送する場合,転送したメッセージを登録するキューの名前を指定し
ます。キュー間転送のあて先の詳細については,「2.4.2 キュー間転送のあて先指
定」を参照してください。
-y
-v オプションを省略して,-a オプションで指定したあて先名に対応するあて先アド
レスだけを送信アドレスとする場合に指定します。キュー間転送のあて先の詳細に
ついては,「2.4.2 キュー間転送のあて先指定」を参照してください。
-i {normal | compatible}
∼《normal》
作成するキューの転送モードを指定します。
• normal:通常モード
• compatible:互換モード
転送先の Cosminexus RM のバージョンが 01-03 の場合は normal を指定します。
バージョンが 01-02 以前の場合は compatible を指定します。
normal を指定して作成した転送キューを使用して,01-02 以前の Cosminexus RM
にメッセージを転送した場合,ペイロードが空のメッセージとして受信されること
がありますので,注意してください。
-j {exactly_once | in_order}
∼《exactly_once》
転送に使用する QoS(通信品質)の種別を指定します。
• exactly_once:配送保証および重複防止
• in_order:順序保証
-g 通信層のグループ有効期間
453
8. コマンドリファレンス
∼<数字> ((10 ∼ 2592000))(単位:秒)
《2592000》
通信層のグループの有効期間を指定します。
このオプションの値は,通信層でメッセージを送受信するために使用するグループ
の有効期間を示します。このオプションで指定した有効期間に達すると,新たにグ
ループが作成され,メッセージは新しいグループに格納されます。
-s 通信層のメッセージ有効期間
∼<数字> ((10 ∼ 2592000))(単位:秒)
《-e オプションの値》
通信層のグループに格納するメッセージの有効期間を指定します。
このオプションの値は,メッセージがグループ内で管理される期間を示します。こ
のオプションで指定した有効期間に達すると,そのメッセージはデッドメッセージ
として扱われます。
-e オプションで指定した値以上の値を指定してください。-e オプションで指定した
値未満の値を指定した場合,エラーが発生します。-e オプションで指定した値が 1
∼ 9 の場合,このオプションを省略すると値は 10 を指定したとみなされます。
-x 表示名
∼< 1 ∼ 64 文字の英数字および _(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションが JNDI ネーミング
サービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合は,コマンド引数で指定したキュー名と同じ名称を指定したも
のとみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなり
ます。詳細は「(5) 注意事項」を参照してください。
-r RD エリア名
∼< 1 ∼ 30 文字の識別子および空白>
メッセージ情報テーブルを格納する RD エリアの名前を指定します。メッセージ情
報テーブルを格納する RD エリアをあらかじめ用意してください。HiRDB の RD エ
リアの作成については,マニュアル「HiRDB コマンドリファレンス」を参照してく
ださい。
-m オプションに non_persistent を指定した場合,または DB に Oracle を使用して
いる場合,このオプションの指定値は無効になります。
このオプションを省略した場合,格納する RD エリアを HiRDB が決定します。
HiRDB が決定する RD エリアについては,マニュアル「HiRDB SQL リファレン
ス」を参照してください。
注意
• RD エリア名に空白を含む場合は,次のように指定してください。
Windows の場合
引用符(")で囲んでください。
UNIX の場合
アポストロフィ(’)で囲み,さらにその外側を引用符(")で囲んでくださ
454
8. コマンドリファレンス
い。
• RD エリア名は大文字と小文字が区別されます。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
作成するキューの名前を指定します。
既存のキューの名前を指定した場合はエラーが発生します。
(5) 注意事項
● コマンド引数に指定するキュー名は,英字の大文字と小文字が区別されません。英字
の大文字と小文字の違いだけのキュー名がすでにある場合,エラーが発生します。
● -g オプションおよび -s オプションを使うと,受信側のリソースの使用量に影響しま
す。運用方法に合わせた値を指定してください。例えば Web サービスなど,不特定多
数が通信をする運用の場合は,-g オプションおよび -s オプションの値を大きくする
と,受信側にリソースを蓄積させてしまうので,小さい値を指定することをお勧めし
ます。
● キュー定義ファイルを使用していない場合,-x オプションで指定したキューの表示名
で JNDI ネーミングサービスに登録されます。
キュー定義ファイルを使用している場合は,キュー定義ファイルの指定が優先され,
-x オプションで指定した表示名での JNDI ネーミングサービスへの登録はされませ
ん。
キュー定義ファイルを使用して Cosminexus RM を運用している場合,キュー定義
ファイルを使用しないで Cosminexus RM を再開始したときは,-x オプションで指定
した表示名が JNDI ネーミングサービスに登録されます。
キュー定義ファイルの使用有無の詳細については,「3.4.4 キュー定義ファイルの作
成(永続版リソースアダプタの場合)」を参照してください。
● -x オプションで表示名を指定しなくても,作成するキューのキュー名が,作成済み
キューの表示名と重複した場合,キューの作成は失敗します。
● Cosminexus RM を 01-03 にバージョンアップした場合,Cosminexus RM 01-02 以前
で作成した転送キューは,転送モードが compatible(互換モード)の転送キューとし
て扱われます。
455
8. コマンドリファレンス
8.3.21 hrmregdmsg(デッドメッセージの再登録)
(1) 形式
hrmregdmsg {-i デッドメッセージID|-q 移動前キュー名} 〔-S システム名〕
(2) 機能
デッドメッセージを,デッドメッセージキューに移動される前のキューに,新しいメッ
セージとして再登録します。また,デッドメッセージキュー内の該当のデッドメッセー
ジを削除します。
(3) オプション
-i デッドメッセージ ID
∼< 1 ∼ 39 文字の識別子>
再登録するデッドメッセージのデッドメッセージ ID(DMID)を指定します。
指定した DMID のメッセージがデッドメッセージキュー内にない場合はエラーが発
生します。
-q 移動前キュー名
∼< 1 ∼ 20 文字の識別子>
デッドメッセージキューに移動する前にメッセージが存在したキュー名を指定しま
す。
指定したキュー名から移動されたすべてのデッドメッセージが,再登録されます。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) 注意事項
● 対象のデッドメッセージキューは,RMDeadMessageQueueName プロパティで指定
したキューです。
● キュー間転送時の送信側デッドメッセージキューには,受信側システムに到達してい
るメッセージが存在する場合があります。このデッドメッセージを再登録すると,受
信側で別のメッセージとして受信されます。そのため,受信側システムのメッセージ
到達状態を確認してから再登録してください。詳細は,
「4.2.4(2) サーバ間転送での
注意事項」を参照してください。
● 次に示すデッドメッセージは,再登録できません。また,-q オプションで移動前
456
8. コマンドリファレンス
キュー名を指定した場合,次に示すメッセージは再登録しないで,そのほかのメッ
セージを再登録します。
• 配信中のメッセージ
• 配信済みのメッセージ
• 移動前キューの最大メッセージ長より大きいメッセージ
• デッドメッセージキュー移動時と移動前キューの種類が変わっているメッセージ
• Cosminexus RM 01-01 以前にデッドメッセージキューに移動したメッセージ
● 移動前キューがメッセージの登録を抑止されている場合,デッドメッセージは再登録
できません。メッセージの登録抑止については,「8.3.27 hrmstopque(キューの抑
止)
」を参照してください。
● -q オプションで移動前キュー名を指定した場合で,再登録対象のメッセージが複数あ
るときは,1 メッセージごとに再登録処理が繰り返されます。再登録処理の途中で次
に示すような処理を続行できない障害が発生した場合,処理が中止され,以降のメッ
セージは再登録されません。
• 移動前のキューの最大メッセージ数を超えた場合
• 移動前のキューで,DB 障害が発生した場合
● デッドメッセージの再登録では,メッセージの再登録処理の順番は保証されません。
● Cosminexus RM が管理状態の場合,共用キューにデッドメッセージを再登録したと
き,共用キューの状態は更新されません(メッセージが登録された状態になりませ
ん)
。共用キューの状態は次のタイミングで更新されます。
• Cosminexus RM を実行状態にする
• Cosminexus RM を再起動する
457
8. コマンドリファレンス
8.3.22 hrmskipmsg(受信待ちメッセージのスキップ)
(1) 形式
hrmskipmsg -n 受信待ちグループ内シーケンス番号 -g グループID
〔-S システム名〕 キュー名
(2) 機能
受信待ちになっているメッセージをスキップします。このコマンドは QoS(通信品質)
が順序保証の転送メッセージを受信しているグループに対して,順序が前のメッセージ
が障害などで受信されないで,あとのメッセージがグループに滞留した場合に使用しま
す。
(3) オプション
-n 受信待ちグループ内シーケンス番号
∼<数字> ((0 ∼ 18446744073709551615))
スキップしたい受信待ちメッセージの,通信層グループ内シーケンス番号を指定し
ます。
最小の受信待ちメッセージ番号だけ指定できます。それ以外の受信待ちメッセージ
番号を指定した場合はエラーが発生します。
-g グループ ID
∼< 1 ∼ 256 文字の文字列>
コマンド操作対象となる通信層のグループ ID を指定します。QoS が in-order の場
合だけ指定できます。QoS が exactly-once のグループ ID を指定した場合はエラー
が発生します。
グループが無効の場合は,メッセージのスキップはできません。グループが無効の
場合にこのオプションを指定するとエラーが発生します。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
スキップしたいメッセージが送信側から転送される予定のキューの名前を指定しま
す。
458
8. コマンドリファレンス
指定したキューが存在しない,またはローカルキュー以外のキューを指定した場合
はエラーが発生します。
(5) 注意事項
● 受信済みであるメッセージはスキップできません。受信済みであるメッセージ通番を
指定するとエラーが発生します。メッセージが受信か未受信かは,hrmlstrs コマンド
で確認してください。
● メッセージのスキップ後にそのメッセージが再送された場合は,エラーが発生します。
メッセージは送信側のデッドメッセージキューに格納されます。
● スキップしたメッセージ以降は再び順序保証が保たれます。
459
8. コマンドリファレンス
8.3.23 hrmstart(実行状態への移行)
(1) 形式
hrmstart 〔-S システム名〕
(2) 機能
Cosminexus RM を管理状態から実行状態に移行します。管理状態および実行状態につい
ては,「4.1.4 Cosminexus RM の状態遷移(永続版リソースアダプタの場合)」を参照
してください。
(3) オプション
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) 注意事項
Cosminexus RM が実行状態のときにこのコマンドを実行するとエラーが発生します。
460
8. コマンドリファレンス
8.3.24 hrmstartque(キューの抑止解除)
(1) 形式
永続版リソースアダプタの場合
hrmstopque -y {ap_send|ap_receive|trs_send|trs_receive|
ap_all|all}
〔-S システム名〕 キュー名
非永続版リソースアダプタの場合
hrmstopque -y {ap_send|ap_receive|ap_all|all}
〔-S システム名〕 キュー名
(2) 機能
キューのメッセージの送受信を抑止解除します。
非永続版リソースアダプタの場合,ローカルキューの抑止解除だけできます。
(3) オプション
• 永続版リソースアダプタの場合
-y {ap_send | ap_receive | trs_send | trs_receive | ap_all | all}
抑止解除の形態を指定します。
• ap_send:メッセージの送信抑止の解除
• ap_receive:メッセージの受信抑止の解除
• trs_send:転送キューのキュー間転送メッセージの送信抑止の解除
• trs_receive:ローカルキューの転送メッセージの受信抑止の解除
• ap_all:メッセージの送受信抑止の解除
• all:指定するキューの種類に応じて,抑止状態をすべて解除
• 非永続版リソースアダプタの場合
-y {ap_send | ap_receive | ap_all | all}
抑止解除の形態を指定します。
• ap_send:メッセージの送信抑止の解除
• ap_receive:メッセージの受信抑止の解除
• ap_all:メッセージの送受信抑止の解除
• all:ap_all と同じ意味になります。
キューの種類によって,指定できる抑止解除の形態が異なります。キューと抑止解除の
形態との対応を次の表に示します。
461
8. コマンドリファレンス
表 8-3 キューと抑止解除できる形態
抑止解除の形
態
ローカルキュー
転送キュー
送信用共用
キュー
受信用共用
キュー
デッドメッ
セージ
キュー
永続版
非永続版
ap_send
○
○
○
×
○
×
ap_receive
○
○
×
×
○
○
trs_send
×
×
○
×
×
×
trs_receive
○
×
×
×
×
×
ap_all
○
○
×
×
○
×
all
○
○※
○
×
○
○
(凡例)
○:指定できます。
×:指定できません。指定した場合,エラーが発生します。
注※
非永続版リソースアダプタで all 指定すると,ap_all を指定したときと同じになります。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
抑止状態を解除するキューの名前を指定します。
• 永続版リソースアダプタの場合
指定したキューが存在しない,または送信用共用キューを指定した場合はエラー
が発生します。
• 非永続版リソースアダプタの場合
指定したキューが存在しない場合はエラーが発生します。
462
8. コマンドリファレンス
8.3.25 hrmstarttrs(送受信抑止解除)
(1) 形式
hrmstarttrs -y {send|receive} 〔-S システム名〕 キュー名
(2) 機能
転送メッセージの送受信抑止状態を元の状態に戻します。
(3) オプション
-y {send | receive}
抑止を解除する形式を指定します。
• send:送信抑止解除
• receive:受信抑止解除
ローカルキューの場合,receive を指定してください。転送キューの場合,send を
指定してください。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
送受信抑止を解除するキューの名前を指定します。
指定したキューが存在しない,またはローカルキュー,転送キュー以外のキューを
指定した場合はエラーが発生します。
(5) 注意事項
Cosminexus RM 01-01 以降での,このコマンドの使用は推奨しません。キュー間転送の
抑止を解除する場合は,hrmstartque コマンドの -y オプションに trs_send または
trs_receive を指定してください。hrmstartque コマンドについては,
「8.3.24 hrmstartque(キューの抑止解除)
」を参照してください。
463
8. コマンドリファレンス
8.3.26 hrmstop(管理状態への移行)
(1) 形式
hrmstop 〔-S システム名〕
(2) 機能
Cosminexus RM を実行状態から管理状態に移行します。
実行状態および管理状態については,「4.1.4 Cosminexus RM の状態遷移(永続版リ
ソースアダプタの場合)」を参照してください。
(3) オプション
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) 注意事項
● Cosminexus RM が管理状態のときにこのコマンドを実行するとエラーが発生します。
● アプリケーションの稼働中に管理状態に移行すると,アプリケーションでエラーが発
生するおそれがあります。
464
8. コマンドリファレンス
8.3.27 hrmstopque(キューの抑止)
(1) 形式
永続版リソースアダプタの場合
hrmstopque -y {ap_send|ap_receive|trs_send|trs_receive|
ap_all|all}
〔-S システム名〕 キュー名
非永続版リソースアダプタの場合
hrmstopque -y {ap_send|ap_receive|ap_all|all}
〔-S システム名〕 キュー名
(2) 機能
キューのメッセージの送受信を抑止します。
非永続版リソースアダプタの場合,ローカルキューの抑止だけができます。
(3) オプション
• 永続版リソースアダプタの場合
-y {ap_send | ap_receive | trs_send | trs_receive | ap_all | all}
抑止形態を指定します。
• ap_send:メッセージの送信抑止
• ap_receive:メッセージの受信抑止
• trs_send:キュー間転送メッセージの送信抑止
• trs_receive:キュー間転送メッセージの受信抑止
• ap_all:メッセージの送受信抑止
• all:指定するキューの種類に応じて,抑止できる形態をすべて抑止
• 非永続版リソースアダプタの場合
-y {ap_send | ap_receive | ap_all | all}
抑止形態を指定します。
• ap_send:メッセージの送信抑止の解除
• ap_receive:メッセージの受信抑止の解除
• ap_all:メッセージの送受信抑止の解除
• all:ap_all と同じ意味になります
キューの種類によって,指定できる抑止形態が異なります。キューと抑止形態との対応
を次の表に示します。
465
8. コマンドリファレンス
表 8-4 キューと抑止できる形態
抑止形態
ローカルキュー
転送キュー
送信用共用
キュー
受信用共用
キュー※ 1
デッドメッ
セージ
キュー
永続版
非永続版
ap_send
○
○
○
×
○
×
ap_receive
○
○
×
×
○
○
trs_send
×
×
○
×
×
×
trs_receive
○
×
×
×
×
×
ap_all
○
○
×
×
○
×
all
○
○※ 2
○
×
○
○
(凡例)
○:指定できます。
×:指定できません。指定した場合,エラーが発生します。
注※ 1
受信用共用キューへの送信抑止は,すべてのシステムからのメッセージの送信を抑止します。
注※ 2
非永続版リソースアダプタで all 指定すると,ap_all を指定したときと同じになります。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
メッセージを抑止するキューの名前を指定します。
• 永続版リソースアダプタの場合
指定したキューが存在しない,または送信用共用キューを指定した場合はエラー
が発生します。
• 非永続版リソースアダプタの場合
指定したキューが存在しない場合はエラーが発生します。
(5) 注意事項
● Cosminexus RM の実行状態でこのコマンドを実行した場合,該当のキューに対して
のメッセージ送信または受信のトランザクションがすでに存在していたとき,そのト
ランザクションは有効となります。
466
8. コマンドリファレンス
● 永続版リソースアダプタの場合
デッドメッセージキューへのメッセージの移動は抑止されません。
● 非永続版リソースアダプタの場合
Cosminexus RM を再起動したときは,抑止状態は引き継がれません。再起動後は抑
止が解除されます。
467
8. コマンドリファレンス
8.3.28 hrmstoptrs(送受信抑止)
(1) 形式
hrmstoptrs -y {send|receive} 〔-S システム名〕 キュー名
(2) 機能
転送メッセージの受信や転送メッセージの送信を抑止します。
(3) オプション
-y {send | receive}
抑止する形式を指定します。
• send:送信抑止
• receive:受信抑止
ローカルキューの場合,receive だけ指定できます。転送キューの場合,send だけ
指定できます。
-S システム名
∼<先頭が英字の 1 ∼ 3 文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemName プロパティ指定値)を指
定します。
指定を省略した場合は,HRM_SYSTEM_NAME 環境変数に指定したシステム名が
設定されます。HRM_SYSTEM_NAME 環境変数にもシステム名が指定されていな
いときはエラーが発生します。
(4) コマンド引数
キュー名
∼< 1 ∼ 20 文字の識別子>
送受信を抑止するキューの名前を指定します。
指定したキューが存在しない,またはローカルキュー,転送キュー以外のキューを
指定した場合はエラーが発生します。
(5) 注意事項
Cosminexus RM 01-01 以降での,このコマンドの使用は推奨しません。キュー間転送の
抑止をする場合は,hrmstopque コマンドの -y オプションに trs_send または
trs_receive を指定してください。hrmstopque コマンドについては,
「8.3.27 hrmstopque(キューの抑止)」を参照してください。
468
9
障害対策
Cosminexus RM は障害対策のためにメッセージログとトレー
スを出力します。
この章では,メッセージログとトレースの種類,場所,形式お
よびメッセージ内容について説明します。
9.1 障害時の出力情報
9.2 キューの障害
9.3 メッセージの形式
9.4 メッセージの詳細
469
9. 障害対策
9.1 障害時の出力情報
Cosminexus RM の運用時に障害が発生した場合は,メッセージログとトレースを参照し
て原因を調査し,対策してください。
Cosminexus RM のメッセージログとトレースについて,次の表に示します。
表 9-1 Cosminexus RM のメッセージログとトレース
項
番
1
種類
名称
説明
使用可否
永続版リ
ソースア
ダプタ
非永続版
リソース
アダプタ
開始停止メッ
セージログ
Cosminexus RM の開始と停止について
の情報とユーザが指定したプロパティの
値が出力されます。
詳細については,
「9.1.1 開始停止メッ
セージログ」を参照してください。
○
○
Cosminexus
用メッセージ
ログ
Cosminexus RM の開始と停止について
の情報と動作中の情報が出力されます。
詳細については,
「9.1.2 Cosminexus 用
メッセージログ」を参照してください。
○
○
メソッドト
レース
メソッドの入口情報,出口情報,デバッ
グ情報およびエラー情報が出力されます。
詳細については,
「9.1.3 メソッドト
レース」を参照してください。
○
○
4
共用キューイ
ベントトレー
ス
共用キューにメッセージが格納されたこ
とを表すイベントの情報が出力されます。
詳細については,
「9.1.4 共用キューイ
ベントトレース」を参照してください。
○
×
5
回線トレース
キュー間転送でやり取りされる電文の情
報を出力します。
詳細については,
「9.1.5 回線トレース」
を参照してください。
○
×
6
PRF トレース
Cosminexus RM の性能問題の特定と早
期解決を目的とした性能解析トレース情
報が出力されます。
詳細については,
「9.1.6 PRF トレース」
を参照してください。
○
○
メッ
セージ
ログ
2
3
トレー
ス
(凡例)
○:使用できます。
×:使用できません。
Cosminexus RM の起動時に各メッセージログおよびトレースを新規作成できない場合ま
たは開くことができない場合は,Cosminexus RM の起動を中止します。
470
9. 障害対策
永続版リソースアダプタでは,Cosminexus RM の管理情報テーブルを格納する DB で障
害が発生した場合は,Cosminexus RM を停止し,DBMS の機能によって原因を調査し
対策してください。対象となるテーブルについては,
「4.3.6 管理情報テーブルの一覧」
を参照してください。DB の回復方法については,HiRDB または Oracle のマニュアル
を参照してください。DB の回復後,Cosminexus RM を再度開始します。
9.1.1 開始停止メッセージログ
開始停止メッセージログには,Cosminexus RM の開始と停止についての情報,および
ユーザが指定したプロパティの値が出力されます。
● 出力先ディレクトリ
<Cosminexusのインストールディレクトリ>/CC/server/public/ejb/<サーバ名
称>/logs/connectors
● 出力ファイル名
<Cosminexus RMの表示名><面番号>.log
Cosminexus RM の表示名については,永続版リソースアダプタの場合は「3.4.4(1) キュー定義ファイルの記述形式」を,非永続版リソースアダプタの場合は「3.5.2(1) キュー定義ファイルの記述形式」を参照してください。初期値は
"Cosminexus_Reliable_Messaging" です。
面番号およびファイルサイズは,Cosminexus の設定に従います。詳細については,
マニュアル「Cosminexus システム運用ガイド」を参照してください。
● 出力形式
開始停止メッセージログの出力形式について,次の図に示します。
図 9-1 開始停止メッセージログの出力形式
開始停止メッセージログの出力項目について,次の表に示します。
471
9. 障害対策
表 9-2 開始停止メッセージログの出力項目
項番
出力項目
長さ
(バイト)
説明
1
番号
4
開始停止メッセージログの出力通番です。
2
日付
10
yyyy/mm/dd 形式の出力日付です。
3
時刻
12
hh:mm:ss.sss 形式の出力時刻です。
ローカル時刻でミリ秒単位の時刻です。
4
製品 ID
16
製品を識別するための識別子です。Cosminexus
Component Container を表す "HEJB" が出力されま
す。
5
pid
8
プロセス ID です。
6
tid
8
スレッド ID です。
7
ID
11
空白が出力されます。
8
メッセージ ID
11
KFRMnnnnn-Y 形式のメッセージ ID です。
9
メッセージテキス
ト
10
CRLF
0 ∼ 512 ※
(可変長)
2
メッセージテキストです。
終端記号です。
注※
長さの上限は目安となる値です。上限値を超えて出力されることがあります。ただし,メッ
セージログ 1 行の長さは 4185 バイトが上限であり,これを超える情報は切り捨てられます。
● 注意事項
開始停止メッセージログを出力するには,リソースアダプタの稼働ログが出力される
ように Cosminexus を設定する必要があります。詳細については,マニュアル
「Cosminexus システム運用ガイド」を参照してください。
9.1.2 Cosminexus 用メッセージログ
Cosminexus 用メッセージログには,Cosminexus RM の開始と停止についての情報,お
よび動作中の情報が出力されます。
● 出力先ディレクトリ
<Cosminexusのインストールディレクトリ>/CC/server/public/ejb/<サーバ名
称>/logs
● 出力ファイル名
Cosminexus 用メッセージログは,Cosminexus の稼働ログです。出力ファイル名に
ついては,マニュアル「Cosminexus システム運用ガイド」を参照してください。
● 出力形式
Cosminexus 用メッセージログの出力形式について,次の図に示します。
472
9. 障害対策
図 9-2 Cosminexus 用メッセージログの出力形式
Cosminexus 用メッセージログの出力項目について,次の表に示します。
表 9-3 Cosminexus 用メッセージログの出力項目
項番
出力項目
長さ
(バイト)
説明
1
番号
4
Cosminexus 用メッセージログの出力通番です。
2
日付
10
yyyy/mm/dd 形式の出力日付です。
3
時刻
12
hh:mm:ss.sss 形式の出力時刻です。
ローカル時刻でミリ秒単位の時刻です。
4
製品 ID
16
製品を識別するための識別子です。Cosminexus
Component Container を表す "HEJB" が出力されま
す。
5
pid
8
プロセス ID です。
6
tid
8
スレッド ID です。
7
メッセージ ID
11
KFRMnnnnn-Y 形式のメッセージ ID です。
8
システム名
3
Cosminexus RM のシステム名です。
9
メッセージテキス
ト
10
CRLF
0 ∼ 512 ※
(可変長)
2
メッセージテキストです。
終端記号です。
注※
長さの上限は目安となる値です。上限値を超えて出力されることがあります。ただし,メッ
セージログ 1 行の長さは 4185 バイトが上限であり,これを超える情報は切り捨てられます。
● 注意事項
出力レベルを指定することで,Cosminexus のメッセージログファイルに出力する
メッセージログの出力量を制御できます。出力レベルは,Cosminexus のログレベル
の設定に従います。Cosminexus のログレベルの設定については,マニュアル
「Cosminexus システム構築ガイド」を参照してください。
なお,次に示すメッセージは出力レベルに関係なく稼働ログに出力されます。
473
9. 障害対策
• KFRM01009-I
• KFRM01807-W
• KFRM13006-W ※
• KFRM13007-W
• KFRM13011-W
• KFRM13024-W
• KFRM13025-I
• KFRM13026-I
• KFRM13027-I
• KFRM13028-W
• KFRM13029-I
• KFRM16010-I
• KFRM16010-I
• KFRM17007-W
• KFRM17008-W
• KFRM17009-W
• KFRM17010-W
• KFRM17011-W
• KFRM17012-W
• KFRM17014-W
• KFRM20094-W
• KFRM20121-W
• KFRM20122-W
• KFRM20123-W
• KFRM40004-W ※
• KFRM40012-I
注※
デッドメッセージキュー利用時だけ出力レベルに関係なく出力されます。
9.1.3 メソッドトレース
メソッドトレースには,メソッドの入口情報,出口情報,デバッグ情報およびエラー情
報が出力されます。
● 出力先ディレクトリ
<Cosminexusのインストールディレクトリ>/CC/server/public/ejb/<サーバ名
称>/logs/RM/maintenance
● 出力ファイル名
mtd_<Cosminexus RMの表示名>_<面番号>.log
474
9. 障害対策
Cosminexus RM の表示名については,永続版リソースアダプタの場合は「3.4.4(1) キュー定義ファイルの記述形式」を,非永続版リソースアダプタの場合は「3.5.2(1) キュー定義ファイルの記述形式」を参照してください。
面番号は RMLogTraceFileNum プロパティ指定値が最大数です。また,ファイルサイ
ズは RMLogTraceFileSize プロパティ指定値が最大長(単位:バイト)です。
● 出力形式
メソッドトレースの出力形式について,次の図に示します。
図 9-3 メソッドトレースの出力形式
メソッドトレースの出力項目について,次の表に示します。
表 9-4 メソッドトレースの出力項目
項番
出力項目
長さ
(バイト)
説明
1
番号
4
メソッドトレースの出力通番です。
2
日付
10
yyyy/mm/dd 形式の出力日付です。
3
時刻
12
hh:mm:ss.sss 形式の出力時刻です。
ローカル時刻でミリ秒単位の時刻です。
4
製品 ID
16
製品を識別するための識別子です。
Cosminexus RM を表す "RM" が出力されます。
5
pid
8
プロセス ID です。
6
tid
8
スレッド ID です。
7
ID
11
空白が出力されます。
8
ハッシュコード
1 ∼ 11
9
コンポーネント ID
3
10
クラス名
1 ∼ 25 ※ 1
(可変長)
トレースを出力するオブジェクトのハッシュコード
(16 進数)です。
トレースを出力するコンポーネントを識別するための
識別子です。
トレースを出力するクラスの名前です。
475
9. 障害対策
項番
出力項目
11
メソッド名
12
目的識別子
13
トレース
長さ
(バイト)
1 ∼ 25 ※ 1
(可変長)
3
説明
トレースを出力するメソッドの名前です。
トレースの出力目的を表す識別子※ 2 です。
0 ∼ 512 ※ 1
(可変長)
次に示す情報が出力されます。
• メソッド入口または出口情報
メソッドの引数または戻り値の値です。
• 他製品呼び出し情報
Cosminexus または他製品のクラス名,メソッド名
および引数です。
• エラー情報
障害要因となったエラー情報です。
なお,他製品から例外が発生した場合は,スタック
トレース※ 3 が出力されます。
• デバッグ情報
デバッグ情報です。メソッド内の処理分岐では,分
岐の要因となった情報が出力されます。
RMMethodTraceLevel プロパティに指定する出力レベ
ル※ 4 によって出力情報は異なります。
14
CRLF
2
終端記号です。
注※ 1
長さの上限は目安となる値です。上限値を超えて出力されることがあります。た
だし,メソッドトレース 1 行の長さは 4185 バイトが上限であり,これを超える
情報は切り捨てられます。
注※ 2
目的識別子の一覧について,次の表に示します。
表 9-5 目的識別子の一覧
項番
目的識別子
意味
1
STA(start)
メソッドの開始
2
END(end)
メソッドの終了
3
CAL(call)
メソッドの呼び出し
4
RET(return)
メソッドの戻り
5
ERR(error)
メソッドの例外
6
DBG(debug)
メソッドのデバッグ情報(分岐など)
7
INF(information)
メソッドの処理情報(注意,警告など)
8
OPR(operation)
メソッドの処理情報(処理実行情報)
注※ 3
他製品から例外が発生した場合は,スタックトレースが出力されます。その際,
476
9. 障害対策
ハッシュコードからトレースまでの出力項目が出力されず,スタックトレースが
出力されます。スタックトレースは可変長(0 ∼ 512)のデータです。
スタックトレースの出力例について,次の図に示します。
図 9-4 スタックトレースの出力例
注※ 4
RMMethodTraceLevel プロパティに指定する出力レベルによって,トレースに出
力される情報は異なります。出力情報と出力レベルについて,次の表に示します。
表 9-6 メソッドトレースの出力情報と出力レベル
項番
出力情報
レベル 1
レベル 2
レベル 3
レベル 4
レベル 5
1
エラー情報
(例外発生原因)
○
○
○
○
○
2
Cosminexus RM 内部スレッドの
処理の入口/出口情報
(クラス名,メソッド名,引数,
戻り値)
○
○
○
○
○
3
Cosminexus RM のユーザインタ
フェースのメソッド入口/出口情
報
(クラス名,メソッド名,引数,
戻り値)
×
○
○
○
○
4
他製品のインタフェースの入口/
出口情報
(クラス名,メソッド名,引数,
戻り値)
×
×
○
○
○
5
Cosminexus RM 内部インタ
フェース間の入口/出口情報
(クラス名,メソッド名,引数,
戻り値)
×
×
×
○
○
477
9. 障害対策
項番
出力情報
レベル 1
レベル 2
レベル 3
レベル 4
レベル 5
6
Cosminexus RM のデバッグ情報
(処理の分岐などの情報)
×
×
×
×
○
7
Cosminexus RM の処理情報(注
意,警告などを示す情報)
×
×
○
○
○
8
Cosminexus RM の処理情報(処
理の実行を示す情報)
○
○
○
○
○
(凡例)
○:出力されます。
×:出力されません。
9.1.4 共用キューイベントトレース
共用キューイベントトレースには,イベントの送受信情報が出力されます。
● 出力先ディレクトリ
<Cosminexusのインストールディレクトリ>/CC/server/public/ejb/<サーバ名
称>/logs/RM/maintenance
● 出力ファイル名
shq_<Cosminexus RMの表示名>_<面番号>.log
Cosminexus RM の表示名については,永続版リソースアダプタの場合は「3.4.4(1) キュー定義ファイルの記述形式」を,非永続版リソースアダプタの場合は「3.5.2(1) キュー定義ファイルの記述形式」を参照してください。
面番号は RMLogTraceFileNum プロパティ指定値が最大数です。また,ファイルサイ
ズは RMLogTraceFileSize プロパティ指定値が最大長(単位:バイト)です。
● 出力形式
共用キューイベントトレースの出力形式について,次の図に示します。
478
9. 障害対策
図 9-5 共用キューイベントトレースの出力形式
共用キューイベントトレースの出力項目について,次の表に示します。
表 9-7 共用キューイベントトレースの出力項目
項番
出力項目
長さ
(バイト)
説明
1
番号
4
共用キューイベントトレースの出力通番です。
2
日付
10
yyyy/mm/dd 形式の出力日付です。
3
時刻
12
hh:mm:ss.sss 形式の出力時刻です。
ローカル時刻でミリ秒単位の時刻です。
4
製品 ID
16
製品を識別するための識別子です。
Cosminexus RM を表す "RM" が出力されます。
5
pid
8
プロセス ID です。
6
tid
8
スレッド ID です。
7
ID
11
空白が出力されます。
8
電文種別
1∼8
受信した電文を特定するための電文種別です。
9
送受信識別子
3
イベントを送信したのか受信したのかを表す識別子で
す。
送信の場合:SND
受信の場合:RCV
10
あて先情報
1 ∼ 64
(可変長)
イベントを送信したマシンのホスト名または IP アドレ
スです。
11
ポート番号
1 ∼ 11
(可変長)
イベントを送信したポート番号です。
12
バージョン
1∼8
(可変長)
イベント転送プロトコルのバージョンです。
13
トータルサイズ
1 ∼ 11
(可変長)
イベントのヘッダとデータの合計サイズ(10 進数,単
位:バイト)です。
479
9. 障害対策
項番
出力項目
長さ
(バイト)
説明
14
基盤種別
1∼8
(可変長)
イベントの送信元を特定するための基盤種別です。
Cosminexus RM が送信元の場合は "CosmiRM" が出力
されます。
15
システム識別
1 ∼ 16
(可変長)
イベントの送信元を特定するためのシステム種別です。
Cosminexus RM が送信元の場合は RMSystemName
プロパティ指定値が出力されます。
16
キュー名
1 ∼ 32
(可変長)
メッセージが格納されたキューの名前です。
17
ライト通番
1 ∼ 11
(可変長)
共用キューのメッセージ情報テーブルに書き込んだ際
に何番目まで書き込んだかを表す通番です。
18
ラップカウンタ
1 ∼ 11
(可変長)
共用キューのメッセージ情報テーブルに書き込んだ
メッセージが書き込み限界数に達したため,1 番目から
上書きで書き込みした回数です。
19
CRLF
2
終端記号です。
矛盾不正イベントトレース出力時は,上記の表の項番 12 ∼ 18 は出力しないで,イベン
トデータを 16 進数と文字列として最大 128 バイト出力します。
不正イベントトレースの出力形式について次の図に示します。
図 9-6 不正イベントトレース出力時の共用キューイベントトレースの出力形式
9.1.5 回線トレース
キュー間転送でやり取りされる電文の情報を回線トレースファイルに出力します。
● 出力先ディレクトリ
480
9. 障害対策
<Cosminexusのインストールディレクトリ>/CC/server/public/ejb/<サーバ名
称>/logs/RM/maintenance
● 出力ファイル名
lin_<Cosminexus RMの表示名>_<面番号>.log
Cosminexus RM の表示名については,永続版リソースアダプタの場合は「3.4.4(1) キュー定義ファイルの記述形式」を,非永続版リソースアダプタの場合は「3.5.2(1) キュー定義ファイルの記述形式」を参照してください。
面番号は RMLogTraceFileNum プロパティ指定値が最大数です。また,ファイルサイ
ズは RMLogTraceFileSize プロパティ指定値が最大長(単位:バイト)です。
● 出力形式
回線トレースの出力形式について,次の図に示します。
図 9-7 回線トレースの出力形式
回線トレースの出力項目について,次の表に示します。
表 9-8 回線トレースの出力項目
項番
出力項目
長さ
(バイト)
説明
1
番号
4
トレースレコードの通番です。
2
日付
10
トレースの取得日付です。
形式は yyyy/mm/dd です。
3
時刻
12
トレースの取得時刻です。
形式は hh:mm:ss.sss です。
ローカル時刻でミリ秒単位の時刻です。
4
製品 ID
16
製品を識別するための識別子です。
Cosminexus RM を表す "RM" が出力されます。
5
pid
8
プロセス ID です。
481
9. 障害対策
項番
出力項目
長さ
(バイト)
説明
6
tid
8
スレッド ID です。
7
ID
11
空白が出力されます。
8
送受信識別子
7
出力する電文の種別と送受信タイミングを判別する識
別子です。識別子の種類は次のとおりです。
• リクエストメッセージの送信:SND_REQ
• リクエストメッセージの受信:RCV_REQ
• レスポンスメッセージの送信:SND_RES
• レスポンスメッセージの受信:RCV_RES
9
送信先 / 送信元アド
レス
0 ∼ 533
送信時は出力する電文の送信先アドレス,受信時は,
電文を送信した送信元アドレスを示します。
10
電文情報
0 ∼ 512 ※ 1
RMLineTraceLevel プロパティに指定する出力レベル
※2
によって出力情報は異なります。
次に示す情報が出力されます。
• プロトコル固有ヘッダ情報
SOAP ヘッダに含まれるプロトコル固有のヘッダ情
報です。
• SOAP ヘッダ
• SOAP エンベロープ
SOAP エンベロープ(SOAP ヘッダ+ SOAP ボ
ディ)情報です。
• SOAP エンベロープ + SOAP アタッチメント情報
11
CRLF
2
終端記号です。
注※ 1
長さの上限は目安となる値です。上限値を超えて出力されることがあります。SOAP ヘッダを
出力する場合は,電文情報を 1000 文字まで出力します。SOAP ヘッダ以外を出力する場合は,
トレース 1 行で出力できる範囲まで電文情報を出力します。出力できる範囲を超えた情報は切
り捨てます。
注※ 2
出力情報と出力レベルについて,次の表に示します。
表 9-9 回線トレースの出力情報と出力レベル
項番
1
出力情報
SOAP ヘッダ
レベル 1
レベル 2
レベル 3
レベル 4
レベル 5
×
×
○
×
×
2
SOAP エンベロープ
(SOAP ヘッダ +SOAP ボディ)
×
×
×
○
×
3
SOAP エンベロープ +SOAP ア
タッチメント情報
×
×
×
×
○
(凡例)
○:出力されます。
×:出力されません。
電文情報の出力範囲と出力レベルについて,次の図に示します。
482
9. 障害対策
図 9-8 電文情報の出力範囲と出力レベル
9.1.6 PRF トレース
PRF トレースとは,クライアントからのリクエストが EIS に至るまで,およびその処理
結果がクライアントに返されるまでの,リクエストの一連の処理で出力される性能解析
トレース情報です。Cosminexus RM では,アプリケーションからのメッセージ送受信処
理や Cosminexus Component Container(TM)からのトランザクション制御などで
PRF トレースを取得します。これによって,Cosminexus RM での性能問題を特定でき,
早期に問題を解決できます。
PRF トレースの運用方法および機能の詳細については,「4.4 PRF トレースファイルの
運用(永続版リソースアダプタの場合)
」,
「5.3 PRF トレースファイルの運用(非永続
版リソースアダプタの場合)
」,およびマニュアル「Cosminexus 機能解説」を参照して
ください。
また,出力先ディレクトリおよび出力ファイル名については,マニュアル「Cosminexus
システム運用ガイド」の性能解析トレースファイルの出力先と出力情報に関する内容を
参照してください。
(1) トレース取得ポイント
Cosminexus RM では,次に示す処理の入口と出口で PRF トレースを取得します。なお,
トレース取得ポイントの詳細については,マニュアル「Cosminexus システム運用ガイ
ド」を参照してください。
1. アプリケーションからのコネクションの取得と解放処理
2. J2EE サーバ(Cosminexus Component Container)からのコネクションのアソシ
エート処理
3. アプリケーションからのメッセージ送受信処理
483
9. 障害対策
4. J2EE サーバ(Cosminexus Component Container)からのトランザクション制御
5. JMS アプリケーションからの JMS セッションの決着処理
6. J2EE サーバ(Cosminexus Component Container)と連携した Message-driven
Bean メッセージ配信処理
各処理での PRF トレースの出力ポイントと位置情報を表すイベント ID,およびトレー
スの取得レベルについては,「付録 D PRF トレース取得時のイベント ID」を参照して
ください。
(2) PRF トレースの取得情報
Cosminexus RM では PRF トレースから戻り値やキュー名称などが取得できます。PRF
トレース情報のヘッダが,Rc,INT,OPR,および OPT の項目が Cosminexus RM で取
得できる情報です。また,取得できる情報は PRF トレースの出力ポイントと位置情報を
表すイベント ID によって異なります。PRF トレースの出力ポイントと位置情報を表す
イベント ID については,
「付録 D PRF トレース取得時のイベント ID」を参照してく
ださい。
Cosminexus RM で PRF トレースから取得できる情報について,次に説明します。
(a) 永続版リソースアダプタの場合
永続版リソースアダプタの場合の Cosminexus RM で PRF トレースから取得できる情報
を次の表に示します。
Cosminexus RM で取得できる情報以外の PRF トレースの情報については,マニュアル
「Cosminexus システム運用ガイド」の性能解析トレースファイルの説明を参照してくだ
さい。
484
9. 障害対策
表 9-10 PRF トレースの取得情報(永続版リソースアダプタの場合)
イベン
ト ID
0x9360
0x9361
取得情報
Rc
INT
OPR
入口トレースの場
合,常に「0」が出
力されます。
出口トレースおよび
呼び出し後トレース
の場合,次のように
出力されます。
• 正常終了:0
• 異常終了:0 以外
transacted 引数に指定
した値
次のどちらかが出力さ
れます。
• true
• false
acknowledgeMode 引数に
指定した値
次のどれかが出力されま
トランザクション制
御では,XA のエ
ラーコードが出力さ
れます。そのほかの
エラー出口では,1
が出力されます。
OPT
−
す。※ 1
• AUTO_ACKNOWLEDG
E
• DUPS_OK_ACKNOWLE
DGE
• CLIENT_ACKNOWLED
GE
−
−
−
−
−
−
−
−
−
−
−
−
0x9365
−
−
−
0x9366
−
−
−
0x9367
−
−
−
0x9368
キュー名称
−
−
0x9369
−
−
−
0x936A
キュー名称
メッセージ送信の優先度
−
0x936B
−
−
−
0x936C
キュー名称
−
−
0x936D
−
−
−
0x936E
キュー名称
メッセージ送信の優先度
−
0x936F
−
−
−
0x9370
キュー名称
メッセージセレクタ※ 2
−
0x9371
メッセージ取得の可否
次のどちらかが出力さ
れます。
• 取得成功:true
• 取得失敗:false
−
メッセージ
送信元の
ルートアプ
リケーショ
ン情報※ 3
0x9372
キュー名称
タイムアウト値(ミリ秒)
−
0x9373
メッセージ取得の可否
次のどちらかが出力さ
れます。
• 取得成功:true
• 取得失敗:false
メッセージセレクタ※ 2
メッセージ
送信元の
ルートアプ
リケーショ
ン情報※ 3
0x9374
キュー名称
メッセージセレクタ※ 2
−
0x9362
0x9363
0x9364
485
9. 障害対策
イベン
ト ID
取得情報
Rc
INT
OPR
OPT
0x9375
メッセージ取得の可否
次のどちらかが出力さ
れます。
• 取得成功:true
• 取得失敗:false
−
メッセージ
送信元の
ルートアプ
リケーショ
ン情報※ 3
0x9376
キュー名称
メッセージセレクタ※ 2
−
0x9377
−
−
メッセージ
送信元の
ルートアプ
リケーショ
ン情報※ 3
0x9378
flags 引数の値
次のどれかが出力され
ます。
• TMNOFLAGS
• TMJOIN
• TMRESUME
−
−
0x9379
−
−
−
0x937A
flags 引数の値
次のどれかが出力され
ます。
• TMSUCCESS
• TMFAIL
• TMSUSPEND
−
−
0x937B
−
−
−
0x937C
−
−
−
0x937D
−
−
−
0x937E
1 フェーズコミットの
有無
次のどちらかが出力さ
れます。
• true
• false
−
−
0x937F
−
−
−
0x9380
−
−
−
0x9381
−
−
−
0x9382
−
−
−
0x9383
−
−
−
486
9. 障害対策
イベン
ト ID
取得情報
Rc
INT
OPR
OPT
0x9384
flags 引数の値
次のどれかが出力され
ます。
• TMSTARTRSCAN
• TMENDRSCAN
• TMNOFLAGS
−
−
0x9385
−
−
−
0x9386
−
−
−
0x9387
−
−
−
0x9388
−
−
−
0x9389
−
−
−
0x938A
−
−
−
0x938B
−
−
−
0x938C
−
−
−
0x938D
−
−
−
0x938E
−
−
−
0x938F
−
−
−
0x9390
−
−
−
0x9391
−
−
−
0x9392
−
−
−
0x9393
−
−
−
0x9394
−
−
−
0x9395
キュー名称
−
−
0x9396
−
−
メッセージ
送信元の
ルートアプ
リケーショ
ン情報※ 3
−
−
−
※4
0x9397
(凡例)
−:出力されません。
注※ 1
AUTO_ACKNOWLEDGE,DUPS_OK_ACKNOWLEDGE,または
CLIENT_ACKNOWLEDGE 以外を指定した場合は出力されません。
注※ 2
文字列が 32 文字を超える場合,後半が削除されて,前から数えて 32 文字が出力されます。ま
487
9. 障害対策
た,取得できなかった場合は,null が返されます。
注※ 3
OPT 列に出力されるルートアプリケーション情報(各イベントで一連の処理の先頭になるプロ
セスで取得した情報)はバイト配列で出力され,ASCII 列(OPT 列の次の列)には OPT 列に
出力されるルートアプリケーション情報の ASCII 文字列が出力されます。
ただし,次のメッセージを受信した場合,OPT 列にルートアプリケーション情報は出力されま
せん。
・01-02 以前のバージョンの Cosminexus RM で登録されたメッセージ
・共用キューに登録されたメッセージ
・BytesContainer を利用して転送されたメッセージ
・デッドメッセージキューから再登録されたメッセージ
注※ 4
正常に処理が終了したときだけ出力されます。エラーが発生したときは出力されません。
(b) 非永続版リソースアダプタの場合
非永続版リソースアダプタの場合の Cosminexus RM で PRF トレースから取得できる情
報を次の表に示します。
Cosminexus RM で取得できる情報以外の PRF トレースの情報については,マニュアル
「Cosminexus システム運用ガイド」の性能解析トレースファイルの説明を参照してくだ
さい。
表 9-11 PRF トレースの取得情報(非永続版リソースアダプタの場合)
イベン
ト ID
0x9300
0x9301
0x9302
0x9303
0x9304
取得情報
Rc
INT
OPR
入口トレースの場
合,常に「0」が出
力されます。
出口トレースおよび
呼び出し後トレース
の場合,次のように
出力されます。
• 正常終了:0
• 異常終了:0 以外
transacted 引数に指定
した値
次のどちらかが出力さ
れます。
• true
• false
acknowledgeMode 引数に
指定した値
次のどれかが出力されま
す。※ 1
• AUTO_ACKNOWLEDG
E
• DUPS_OK_ACKNOWLE
DGE
• CLIENT_ACKNOWLED
GE
−
−
−
−
−
−
−
−
−
−
トランザクション制
御では,XA のエ
ラーコードが出力さ
れます。そのほかの
エラー出口では,1
が出力されます。
OPT
−
−
−
0x9305
−
−
−
0x9306
−
−
−
0x9307
−
−
−
488
9. 障害対策
イベン
ト ID
取得情報
Rc
INT
OPR
OPT
0x9308
キュー名称
−
−
0x9309
−
−
−
0x930A
キュー名称
メッセージ送信の優先度
−
0x930B
−
−
−
0x930C
キュー名称
−
−
0x930D
−
−
−
0x930E
キュー名称
メッセージ送信の優先度
−
0x930F
−
−
−
0x9310
キュー名称
メッセージセレクタ※ 2
−
0x9311
メッセージ取得の可否
次のどちらかが出力さ
れます。
• 取得成功:true
• 取得失敗:false
−
メッセージ
送信元の
ルートアプ
リケーショ
ン情報※ 3
0x9312
キュー名称
タイムアウト値(ミリ秒)
−
メッセージ取得の可否
次のどちらかが出力さ
れます。
• 取得成功:true
• 取得失敗:false
メッセージセレクタ※ 2
メッセージ
送信元の
ルートアプ
リケーショ
0x9314
キュー名称
メッセージセレクタ※ 2
−
0x9315
メッセージ取得の可否
次のどちらかが出力さ
れます。
• 取得成功:true
• 取得失敗:false
−
メッセージ
送信元の
ルートアプ
リケーショ
ン情報※ 3
0x9316
キュー名称
メッセージセレクタ※ 2
−
0x9317
−
−
メッセージ
送信元の
ルートアプ
リケーショ
0x9313
ン情報※ 3
ン情報※ 3
0x9318
flags 引数の値
次のどれかが出力され
ます。
• TMNOFLAGS
• TMJOIN
• TMRESUME
−
−
0x9319
−
−
−
489
9. 障害対策
イベン
ト ID
取得情報
Rc
INT
OPR
OPT
0x931A
flags 引数の値
次のどれかが出力され
ます。
• TMSUCCESS
• TMFAIL
• TMSUSPEND
−
−
0x931B
−
−
−
0x931C
−
−
−
0x931D
−
−
−
0x931E
1 フェーズコミットの
有無
次のどちらかが出力さ
れます。
• true
• false
−
−
0x931F
−
−
−
0x9320
−
−
−
0x9321
−
−
−
0x9322
−
−
−
0x9323
−
−
−
0x9324
flags 引数の値
次のどれかが出力され
ます。
• TMSTARTRSCAN
• TMENDRSCAN
• TMNOFLAGS
−
−
0x9325
−
−
−
0x9326
−
−
−
0x9327
−
−
−
0x9328
−
−
−
0x9329
−
−
−
0x932A
−
−
−
0x932B
−
−
−
0x932C
−
−
−
0x932D
−
−
−
0x932E
−
−
−
0x932F
−
−
−
0x9330
−
−
−
490
9. 障害対策
イベン
ト ID
取得情報
Rc
INT
OPR
OPT
0x9331
−
−
−
0x9332
−
−
−
0x9333
−
−
−
0x9335
−
−
−
0x9336
キュー名称
−
−
0x9337
−
−
メッセージ
送信元の
ルートアプ
リケーショ
※4
ン情報※ 3
0x9338
−
−
−
(凡例)
−:出力されません。
注※ 1
AUTO_ACKNOWLEDGE,DUPS_OK_ACKNOWLEDGE,または
CLIENT_ACKNOWLEDGE 以外を指定した場合は出力されません。
注※ 2
文字列が 32 文字を超える場合,後半が削除されて,前から数えて 32 文字が出力されます。ま
た,取得できなかった場合は,null が返されます。
注※ 3
OPT 列に出力されるルートアプリケーション情報(各イベントで一連の処理の先頭になるプロ
セスで取得した情報)はバイト配列で出力され,ASCII 列(OPT 列の次の列)には OPT 列に
出力されるルートアプリケーション情報の ASCII 文字列が出力されます。
注※ 4
正常に処理が終了したときだけ出力されます。エラーが発生したときは出力されません。
491
9. 障害対策
9.2 キューの障害
Cosminexus RM がキューに関連する障害を検知した場合,該当のキューが閉塞状態にな
る場合があります。閉塞状態のキューは,hrmdelque コマンドおよび hrmlsque コマン
ドだけ受け付け,それ以外のコマンドおよびメッセージの送受信は実行できません。
Cosminexus RM は,次の契機でキューの障害を検知します。
• Cosminexus RM の復元処理時の管理情報テーブルの不正
• 共用キューのキュー復元時のバージョン不正
• 共用キューが保持するデータの不正および矛盾
キューの障害が発生したときの対処方法について次に説明します。
(1) Cosminexus RM の復元処理時の管理情報テーブルの不正
Cosminexus RM の復元処理時に,管理情報テーブル(キュー情報テーブル,FIFO 情報
テーブル,およびメッセージ情報テーブル)のレコードの不正が検知された場合,
キューが閉塞します。復元対象と対処方法を次の表に示します。
表 9-12 管理情報テーブルのレコード不正検知時の復元対象とその対処方法
復元対象
対処方法
キュー情報テーブル
hrmdelque コマンドで該当のキューを削除してください。
FIFO 情報テーブル
hrmdelque コマンドで該当のキューを削除してください。※
メッセージ情報テーブル
Cosminexus RM を停止したあと,不正なメッセージ情報テーブルのレ
コードを削除してください。
注※
該当の FIFO が属するキュー名が不正(存在しない)である場合は,Cosminexus RM がメッ
セージを出力して,FIFO を削除します。
(2) 共用キューのキュー復元時のバージョン不正
共用キューの復元時に,復元した共用キューのバージョンが,使用中の Cosminexus RM
のバージョンに対応する共用キューバージョンと互換性がなかった場合,該当の共用
キューを閉塞します。受信用共用キューの場合は,共用キュー用の DB テーブルに格納
されているバージョンをチェックし,送信用共用キューの場合は,格納先の DB テーブ
ルに格納されているバージョンをチェックします。なお,格納先の DB テーブルが存在
しない場合も不正とみなして閉塞します。
Cosminexus RM を停止したあと,受信用共用キューの場合は該当の共用キューを,送信
用共用キューの場合は格納先の受信用共用キューをバージョンアップしてください。共
用キューのバージョンアップについては,「付録 H.4 共用キューのバージョンアップ」
を参照してください。
492
9. 障害対策
(3) 共用キューが保持するデータの不正および矛盾
Cosminexus RM 起動時,メッセージ送受信時,コマンド実行時など,共用キューの DB
テーブルにアクセスする契機で DB の情報に不正や矛盾を検知すると閉塞します。なお,
閉塞した共用キューは使用できないため,hrmdelque コマンドで削除してください。
493
9. 障害対策
9.3 メッセージの形式
メッセージの記述形式について,次に示します。
KFRMnnnnn-Y KFRMnnnnn-Y (Z
(Z)
メッセージテキスト
可変値についての説明
説明
メッセージテキストに対する補足説明
対処
ユーザが実施する対処
なお,「可変値についての説明」
,「説明」および「対処」はメッセージによって記述しな
いものもあります。
各項目について説明します。
KFRM
Cosminexus RM が出力したメッセージであることを表す ID です。
nnnnn
Cosminexus RM で管理するメッセージ番号を表します。それぞれのメッセージに
は,5 けたの固有の番号が付いています。
Y
メッセージのレベルを表します。メッセージのレベルは英字 1 文字で示します。
メッセージのレベルを示す文字とその意味を次に示します。
E(Error)
エラーレベルのトラブルが発生したことを通知するメッセージです。
このメッセージが出力されたときは,処理を中断します。
W(Warning)
警告レベルのトラブルが発生したことを通知するメッセージです。
メッセージが出力されたあとも処理を続行します。
I(Information)
システムの動作を通知するメッセージです。
メッセージが出力されたあとも処理を続行します。
(Z)
メッセージの出力先を表します。出力先は英字 1 文字で示します。
出力先を示す文字とその意味を次に示します。
• C:Cosminexus Component Container のコンソールに出力されます。
• O:Cosminexus 用メッセージログに出力されます。
494
9. 障害対策
• S:開始停止メッセージログに出力されます。
• T:Cosminexus RM のコマンド出力として標準出力に出力されます。
• U:Cosminexus RM のコマンド出力として標準エラー出力に出力されます。
これらの文字はメッセージには出力されません。複数の出力先がある場合はスラン
ト(/)で区切ります。
メッセージテキスト
Cosminexus RM が出力したメッセージテキストを示します。
なお,メッセージテキスト中の可変値(メッセージが出力される状況によって変わ
る値)は「xx....xx」(xx は英小文字)の形式で示します。
可変値についての説明
メッセージテキスト中の可変値に表示される情報を「xx....xx:表示される情報」
(xx は英小文字)の形式で示します。可変値についての説明の記述例を次に示しま
す。
(例)
aa....aa:ファイル名
bb....bb:アプリケーション名
説明
メッセージが通知された要因やメッセージを出力したソフトウェアの動作など,
メッセージに対する補足説明を示します。
対処
ユーザが実施する対処を表します。なお,対処方法の「保守員に連絡してください」
とは,購入時の契約に基づいて,ユーザが弊社問い合わせ窓口へ連絡することを示
します。
495
9. 障害対策
9.4 メッセージの詳細
Cosminexus RM が出力するメッセージの一覧を次に示します。
KFRM00002-W(C / O)
An error was detected during QueueSession close processing. Method name=aa....aa, Exception
name=bb....bb, Output location=cc....cc
aa....aa:メソッド名
bb....bb:例外名および例外発生原因を示す文字列
cc....cc:出力個所
説明
QueueSession オブジェクトのクローズ処理で異常を検知しました。
対処
このメッセージの前にエラーメッセージが出力されている場合には,そのメッセー
ジの対処に従ってください。
KFRM00003-W(C / O)
When the message-reception method was executed, the value returned was null because
QueueConnection was in an undeliverable state.
説明
メッセージ受信メソッドを実行した際,QueueConnection オブジェクトがメッセー
ジを配送できない状態だったので,メッセージ受信メソッドの戻り値が null になり
ました。
KFRM00004-W(C / O)
After Connection.start() (reception start processing) was called, there was a mixture of
QueueSession states because QueueSession reception start processing was sometimes
successful and sometimes unsuccessful.
説明
Connection.start() メソッド(受信開始処理)の発行後,受信開始処理に成功した
QueueSession オブジェクトと受信開始処理に失敗した QueueSession オブジェクト
が混在する状態になりました。
対処
必要に応じてアプリケーションを停止し,障害要因を取り除いたあと,アプリケー
ションを再度開始してください。
496
9. 障害対策
KFRM00005-W(C / O)
After Connection.stop() (reception stop processing) was called, there was a mixture of
QueueSession states because QueueSession reception stop processing was sometimes
successful and sometimes unsuccessful.
説明
Connection.stop() メソッド(受信終了処理)の発行後,受信終了処理に成功した
QueueSession オブジェクトと受信終了処理に失敗した QueueSession オブジェクト
が混在する状態になりました。
対処
必要に応じてアプリケーションを停止し,障害要因を取り除いたあと,アプリケー
ションを再度開始してください。
KFRM01000-E(S)
An attempt to start uCosminexus Reliable Messaging has failed.
説明
Cosminexus RM の開始に失敗しました。
対処
メッセージログファイルを参照し,直前のエラーメッセージから障害要因を特定し
てください。障害要因を対処したあと,Cosminexus RM を再度開始してください。
KFRM01001-E(S)
An attempt to start Logger has failed. cause=aa....aa
aa....aa:原因
説明
ロガーの開始に失敗しました。Cosminexus RM の開始は失敗します。
対処
原因を参照し,障害要因を取り除いてください。
KFRM01002-E(S)
An attempt to start the resource manager has failed.
説明
リソースマネジャの開始に失敗しました。Cosminexus RM の開始は失敗します。
対処
メッセージログファイルを参照し,直前のエラーメッセージから障害要因を特定し
てください。障害要因を対処したあと,Cosminexus RM を再度開始してください。
497
9. 障害対策
KFRM01003-W(S)
An error was detected during the processing to stop uCosminexus Reliable Messaging.
説明
Cosminexus RM の停止処理中に異常を検知しました。Cosminexus RM の停止は完
了します。
対処
メッセージログファイルを参照し,直前のメッセージの対処方法に従って障害要因
を取り除いてください。
KFRM01004-I(S)
uCosminexus Reliable Messaging will now start.
説明
Cosminexus RM を開始します。
KFRM01005-I(S)
Logger will now start.
説明
ロガーを開始します。
KFRM01006-I(S)
Logger has started.
説明
ロガーを開始しました。
KFRM01007-I(S)
The resource manager will now start.
説明
リソースマネジャを開始します。
KFRM01008-I(S)
The resource manager has started.
説明
リソースマネジャを開始しました。
498
9. 障害対策
KFRM01009-I(C / O / S)
uCosminexus Reliable Messaging has started.
説明
Cosminexus RM を開始しました。
KFRM01010-I(S)
uCosminexus Reliable Messaging will now stop.
説明
Cosminexus RM を停止します。
KFRM01011-I(S)
uCosminexus Reliable Messaging has stopped.
説明
Cosminexus RM を停止しました。
KFRM01012-E(S)
An attempt to register the message log writer has failed.
説明
メッセージログライターの登録に失敗しました。Cosminexus RM の開始は失敗しま
す。
対処
メッセージログとトレースを採取し,保守員に連絡してください。
KFRM01013-E(S)
The format of the value input for container authentication is invalid. Input item=aa....aa
aa....aa:入力項目
説明
コンテナ認証で入力した値のフォーマットが不正です。Cosminexus RM の開始は失
敗します。
対処
コンテナ認証の指定値を見直して,Cosminexus RM を再度開始してください。
499
9. 障害対策
KFRM01014-I(S)
Container authentication information has been set. Entered item for container
authentication=aa....aa
aa....aa:コンテナ認証の入力項目
説明
コンテナ認証情報がセットされました。
KFRM01015-I(S)
The server name has been set. Server name=aa....aa
aa....aa:サーバ名
説明
サーバ名がセットされました。
KFRM01016-I(S)
The display name has been set. Display name=aa....aa
aa....aa:表示名
説明
表示名がセットされました。
KFRM01017-E(C / O)
An attempt to create the queueSession has failed. cause=aa....aa
aa....aa:原因
説明
QueueSession オブジェクトの生成に失敗しました。
対処
原因を調査し,障害要因を取り除いてください。
KFRM01018-E(C / O)
An attempt to create the physical connection has failed. cause=aa....aa
aa....aa:原因
説明
物理コネクションの生成に失敗しました。
対処
原因を調査し,障害要因を取り除いてください。
500
9. 障害対策
KFRM01019-I(S)
The Transaction Support Level has been set. Transaction support level=aa....aa
aa....aa:トランザクションサポートレベル
説明
トランザクションサポートレベルがセットされました。
KFRM01020-I(S)
The version of starting Cosminexus Reliable Messaging=aa....aa
aa....aa:Cosminexus RM のバージョン
説明
稼働中の Cosminexus RM のバージョンを表示します。
KFRM01800-E(C / O)
The MDB queue monitoring function has stopped. Name of the monitored queue=aa....aa
aa....aa:監視対象のキュー名
説明
Message-driven Bean のキュー監視機能が終了しました。Cosminexus RM はこれ
以降,その Message-driven Bean と連携しません。Message-driven Bean はキュー
の監視をしない状態で継続します。
対処
このメッセージを出力する要因として DB が停止していることが考えられます。DB
の状態を確認し,一度 Message-driven Bean を終了したあと,Message-driven
Bean を再度開始してください。
KFRM01801-E(C / O)
The value defined for MDB is invalid. Property name=aa....aa
aa....aa:プロパティ名
説明
Message-driven Bean 定義の値が不正です。
Message-driven Bean の開始は失敗します。Cosminexus RM はその
Message-driven Bean と連携しません。
対処
プロパティ名が Queue name の場合はキュー名を,Multiplex degree の場合は
Message-driven Bean の多重度を,Message selector の場合はメッセージセレクタ
を変更して,Message-driven Bean を再度開始してください。
501
9. 障害対策
KFRM01802-E(C / O)
The message was returned to the queue, and again became a candidate for distribution. Queue
name=aa....aa
aa....aa:キュー名
説明
メッセージはキューに戻り,再び配送対象となります。メッセージがキューに戻り,
Cosminexus RM は継続します。
対処
メッセージログファイルを参照し,直前のメッセージの対処方法に従って障害要因
を取り除いてください。
KFRM01803-W(C / O)
Multiple instances of the MDB queue monitoring function were reduced by one. Name of the
monitored queue=aa....aa
aa....aa:監視対象のキュー名
説明
Message-driven Bean のキュー監視機能の多重度が一つ減りました。Cosminexus
RM はその Message-driven Bean との連携を減らして継続します。
対処
このメッセージを出力する要因として DB が停止しているか,ユーザ定義のクラス
が読み込めないことが考えられます。システムの状態を確認し,一度
Message-driven Bean を終了してください。そのあと,障害要因を取り除いて,
Message-driven Bean を再度開始してください。それでも状態が回復しない場合は,
メッセージログとトレースを採取し,保守員に連絡してください。
KFRM01804-I(C / O)
MDB queue monitoring will now start. Queue name=aa....aa
aa....aa:キュー名
説明
Message-driven Bean のキューの監視を開始します。
KFRM01805-I(C / O)
MDB queue monitoring will now end. Queue name=aa....aa
aa....aa:キュー名
説明
502
9. 障害対策
Message-driven Bean のキューの監視を終了します。
KFRM01806-E(C / O)
The system definition information conflicts with the queue attribute information.
説明
システムの状態とキューの状態に矛盾があります。Message-driven Bean の開始は
失敗します。Cosminexus RM は該当する Message-driven Bean と連携しません。
対処
RMSHConnectFlag プロパティに適正な値が指定されているかどうかを確認してく
ださい。
KFRM01807-W(C / O)
MDB is started in Cosminexus Reliable Messaging of blocked state.
説明
Cosminexus RM が閉塞状態のまま,Message-driven Bean を開始しました。
対処
Message-driven Bean は開始しますが,メッセージは配信されません。Cosminexus
RM を正常に開始できる環境にしてから,次のどちらかの操作を実行してください。
• Cosminexus を再起動する。
• Message-driven Bean を終了してから,Cosminexus RM を再度開始する。その
後,Message-driven Bean を開始する。
KFRM02000-E(C / O)
An error was detected during processing of a transaction request from the transaction manager.
Name of the method that detected the error=aa....aa, Transaction identifier=bb....bb, Error
code=cc....cc, Maintenance information:dd....dd
aa....aa:異常を検知したメソッド名
bb....bb:トランザクション識別子
cc....cc:エラーコード(保守情報)
dd....dd:保守情報
説明
トランザクションマネジャからのトランザクション要求の処理中に異常を検知しま
した。
Cosminexus RM は処理を続行します。ただし,KFRM10002-E を出力した場合は,
Cosminexus RM を閉塞します。
対処
503
9. 障害対策
このメッセージを出力する原因として,DB が停止している,または管理状態でトラ
ンザクションを開始したことが考えられます。システムの状態を確認してください。
それ以外の場合は,メッセージログとトレースを採取し,保守員に連絡してくださ
い。
KFRM10000-E(C / O)
Resource manager initialization failed because the user lacked access permission.
説明
アクセス権がなかったため,リソースマネジャの初期化に失敗しました。
Cosminexus RM の開始は失敗します。
対処
server.policy ファイルの permission 設定を見直してください。
KFRM10001-E(C / O)
Processing failed because the system status is aa....aa.
aa....aa:Cosminexus RM のシステム状態
説明
システム状態が不正なため,処理実行に失敗しました。
対処
システム状態が管理状態の場合は hrmstart コマンドでシステムを実行状態にしたあ
と,アプリケーションを再度実行してください。
閉塞状態の場合は Cosminexus RM の閉塞状態を回復したあと,アプリケーション
を再度実行してください。なお,閉塞状態で Cosminexus RM を停止すると,この
メッセージが出力される場合があります。
KFRM10002-E(C / O)
The system state changed to a blocked state.
説明
システム状態が閉塞状態に移行しました。この状態で要求される処理はすべて実行
できません。
対処
Cosminexus RM を再度開始してください。
504
9. 障害対策
KFRM10003-E(C / O)
The version of the database table to be used by this uCosminexus Reliable Messaging version
does not match the version of the table in the database. Version of the table that an attempt was
made to use= aa....aa, Version of the table used by the started system= bb....bb
説明
Cosminexus RM が利用する DB テーブルのバージョンと,DB にあるテーブルの
バージョンが一致していません。
aa....aa:使用しようとしたテーブルのバージョン
bb....bb:起動した Cosminexus RM が用いるテーブルのバージョン
対処
DB のテーブルバージョンの値を確認してください。旧バージョンのテーブルを使用
している場合は,新たにテーブルを作成してください。使用しようとしたテーブル
バージョンよりも新しいバージョンのテーブルであった場合,Cosminexus RM をあ
わせてバージョンアップしてください。
KFRM10022-E(C / O)
An attempt to register the queue into the JNDI name space has failed. Maintenance
information=aa....aa
aa....aa:保守情報
説明
キューが JNDI ネーミングサービスへの登録に失敗しました。
Cosminexus RM は閉塞状態になります。
対処
Cosminexus RM を再度開始してください。
開始後も JNDI ネーミングサービスに関連するエラーや警告などが出力される場合
は,保守員に連絡してください。
KFRM10023-E(C / O)
The processing to retry starting of Cosminexus Reliable Messaging will now stop because the
RMStartTimeout time has elapsed. RMStartTimeout value=aa....aa
aa....aa:コンフィグレーションプロパティ RMStartTimeout プロパティ値
説明
Cosminexus RM の開始処理のリトライが,RMStartTimeout プロパティの時間を
経過しました。開始処理が中止され,Cosminexus RM は閉塞状態になります。
対処
次の要因が考えられます。
505
9. 障害対策
• DB が停止している。
• DB への接続情報(ユーザ名,パスワードなど)に誤りがある。
メッセージログファイルを参照し,直前のエラーメッセージから障害要因を特定し
てください。障害要因を対処したあと,Cosminexus RM を再度開始してください。
KFRM11000-E(C / O)
An attempt to create a thread has failed.
説明
スレッドの生成に失敗しました。Cosminexus RM の開始に失敗します。
対処
スレッドの生成に必要なメモリ量が JavaVM のヒープ領域に確保できることを確認
し,Cosminexus RM を再度開始してください。
KFRM11001-E(C / O)
An internal error occurred. Maintenance information=aa....aa
aa....aa:保守情報
説明
内部エラーが発生しました。Cosminexus RM は閉塞状態になります。
対処
メッセージログとトレースを採取し,保守員に連絡してください。
KFRM11002-W(C / O)
An attempt to start an asynchronous message delivery has failed. Thread pool identifier=aa....aa
aa....aa:スレッドプール識別子
説明
非同期メッセージの配送開始に失敗しました。
スレッドプール識別子が MDB の場合,Message-driven Bean の監視スレッドが一
つ減ります。
対処
メッセージログとトレースを採取し,保守員に連絡してください。
KFRM12000-E(C / O)
An error was detected in the transaction control of uCosminexus Reliable Messaging. Name of the
internal method that detected the error=aa....aa, Transaction identifier=bb....bb, Error
code=cc....cc, Maintenance information:dd....dd
506
9. 障害対策
aa....aa:異常を検知した内部メソッド名
bb....bb:トランザクション識別子
cc....cc:エラーコード(保守情報)
dd....dd:保守情報
説明
Cosminexus RM のトランザクション制御内で異常を検知しました。
Cosminexus RM は処理を続行します。ただし,KFRM10002-E を出力した場合は
Cosminexus RM を閉塞します。
対処
メッセージログとトレースを採取し,保守員に連絡してください。
KFRM12001-E(C / O)
An error was detected during the issuing of a transaction to a database. Transaction request to
database=aa....aa, Transaction identifier=bb....bb, Error code=cc....cc, Maintenance
information:dd....dd
aa....aa:DB に対するトランザクション命令
bb....bb:トランザクション識別子
cc....cc:エラーコード(保守情報)
dd....dd:保守情報
説明
DB へのトランザクション発行中に異常を検知しました。Cosminexus RM は処理を
続行します。ただし,KFRM10002-E を出力した場合は Cosminexus RM を閉塞し
ます。
対処
DB が正常に稼働していることを確認してください。DB の状態が正常な場合はメッ
セージログとトレースを採取し,保守員に連絡してください。
DB に対するトランザクション命令に "end" または "rollback" が表示されている場
合,Cosminexus RM は HiRDB のロールバックを待ちます。HiRDB では,
PDSWAITTIME の指定時間が経過した時点で,該当のトランザクションをロール
バックする場合があります。この場合,同一のキューに対するアプリケーションの
処理はロールバック実行時点まで待たされることになるので,注意してください。
PDSWAITTIME については,
「3.4.1(2)(b) HiRDB の環境変数グループの登録」を
参照してください。
KFRM13000-E(C / O)
An attempt to restore management information failed because of a database error.
Exception=aa....aa
aa....aa:発生した例外名
507
9. 障害対策
説明
DB 障害によって管理情報の復元に失敗しました。Cosminexus RM は復元処理を再
試行します。
対処
メッセージログファイルを参照して,DB の障害要因を取り除いてください。
KFRM13001-I(C / O)
A message exceeding its valid term was deleted. Queue name=aa....aa, JMSMessageID=bb....bb,
JMSCorrelationID=cc....cc
aa....aa:削除元のキュー名
bb....bb:削除したメッセージの JMSMessageID ヘッダ値
cc....cc:削除したメッセージの JMSCorrelationID ヘッダ値
説明
有効期限に達したメッセージを削除しました。
KFRM13004-W(C / O)
The queue specified by RMDeadMessageQueueName does not exist.
説明
RMDeadMessageQueueName プロパティに指定したキューがありません。
Cosminexus RM は処理を続行します。
対処
デッドメッセージキューを使用する場合は,次に示すどちらかの対策を実施してく
ださい。
• RMDeadMessageQueueName プロパティに正しいローカルキュー名を指定して
Cosminexus RM を再度開始します。
• RMDeadMessageQueueName プロパティに指定したローカルキューを作成しま
す。
KFRM13005-E(C / O)
A queue other than a local queue is specified in RMDeadMessageQueueName.
説明
RMDeadMessageQueueName プロパティにローカルキュー以外のキューを指定し
ています。Cosminexus RM は閉塞します。
対処
RMDeadMessageQueueName プロパティに正しいローカルキュー名を指定して,
Cosminexus RM を再度開始してください。
508
9. 障害対策
KFRM13006-W(C / O)
A message exceeding its valid term was not deleted because an exception occurred. Queue
name=aa....aa, JMSMessageID=bb....bb, JMSCorrelationID=cc....cc, Exception=dd....dd
aa....aa:キュー名
bb....bb:メッセージの JMSMessageID ヘッダ値
cc....cc:メッセージの JMSCorrelationID ヘッダ値
dd....dd:発生した例外
説明
例外が発生したため,有効期限に達したメッセージを削除できません。Cosminexus
RM は処理を続行します。
対処
メッセージログファイルを参照して,障害要因を取り除いてください。
KFRM13007-W(C / O)
A message exceeding the maximum number of delivery attempts was not moved to the dead
message queue because an exception occurred. Queue name=aa....aa, JMSMessageID=bb....bb,
JMSCorrelationID=cc....cc, Number of deliveries=dd....dd, Exception=ee....ee
aa....aa:キュー名
bb....bb:メッセージの JMSMessageID ヘッダ値
cc....cc:メッセージの JMSCorrelationID ヘッダ値
dd....dd:メッセージの配送回数
ee....ee:発生した例外
説明
例外が発生したため,配送回数が最大値に達したメッセージをデッドメッセージ
キューに移動できません。
Cosminexus RM は処理を続行します。
対処
メッセージログファイルを参照して,障害要因を取り除いてください。
KFRM13011-W(C / O)
The accumulating time of the message exceeded the value for RMTRPendingNotifyInterval.Queue
name= aa....aa, Transmission group ID= bb....bb, Transmission sequence number in the group of
unreceived messages that are causing the accumulation=cc....cc
aa....aa:キュー名
bb....bb:グループ ID
cc....cc:滞留の原因となっている未受信メッセージのグループ内シーケンス番号
509
9. 障害対策
説明
メッセージの滞留時間が RMTRPendingNotifyInterval プロパティの値を超えまし
た。Cosminexus RM は処理を続行します。
対処
通信路で障害が発生していないか,または送信側システムがダウンしていないかな
どを調査してください。滞留原因となっている未受信のメッセージを破棄してよい
場合は,hrmskipmsg(受信待ちメッセージのスキップ)コマンドを実行してスキッ
プしてください。
KFRM13012-W(C / O)
The accumulated messages that reached the valid period for transmission-level messages could
not be deleted because an exception occurred. Queue name= aa....aa, JMSMessageID= bb....bb,
JMSCorrelationID=cc....cc, Transmission group ID=dd....dd, Transmission sequence
number=ee....ee, Exception= ff....ff
aa....aa:配信予定だったキュー名
bb....bb:メッセージの JMSMessageID ヘッダ値
cc....cc:メッセージの JMSCorrelationID ヘッダ値
dd....dd:メッセージの通信層のグループ ID
ee....ee:メッセージの通信層のグループ内シーケンス番号
ff....ff:発生した例外
説明
例外が発生したため,通信層のメッセージ有効期限を過ぎた滞留メッセージを削除
できません。Cosminexus RM は処理を続行します。
対処
メッセージログファイルを参照して,障害要因を取り除いてください。
KFRM13013-I(C / O)
The accumulating messages were deleted because they exceeded the valid period for
transmission-level messages. Queue name=aa....aa, JMSMessageID=bb....bb,
JMSCorrelationID=cc....cc, Transmission GroupID=dd....dd, Transmission sequence
number=ee....ee
aa....aa:配信予定だったキュー名
bb....bb:削除したメッセージの JMSMessageID ヘッダ値
cc....cc:削除したメッセージの JMSCorrelationID ヘッダ値
dd....dd:削除したメッセージのグループ ID
ee....ee:削除したメッセージのグループ内シーケンス番号
説明
滞留しているメッセージが通信層のメッセージ有効期限を過ぎたため,削除しまし
510
9. 障害対策
た。
対処
送信側システムがダウンしていないか,または通信路で障害が発生していないかを
確認してください。
KFRM13015-I(C / O)
The group was closed in accordance with the deletion of the accumulated messages or the
movement of the dead message queue. Queue name=aa....aa, Transmission group ID=bb....bb
aa....aa:滞留メッセージの配信先キュー名
bb....bb:閉鎖したグループのグループ ID
説明
滞留メッセージの削除,またはデッドメッセージキュー移動に伴い,グループを閉
鎖しました。
KFRM13016-E(C / O)
An attempt to restore management information failed because the queue information was invalid.
Queue name=aa....aa, Reason code=bb....bb, Column name=cc....cc, Value=dd....dd
aa....aa:キュー名
bb....bb:理由コード(保守情報)
cc....cc:テーブルの列名
dd....dd:値
説明
キュー情報が不正なため,管理情報の復元に失敗しました。該当のキューは閉塞し
ます。
対処
キューの削除コマンドで,該当のキューを削除してください。ただし,テーブルの
列名が "QUEUE_TYPE" の場合は,キューの削除コマンドでキューを削除すること
はできません。この場合,Cosminexus RM を停止したあと,キュー情報テーブルと
FIFO 情報テーブルから不正な情報が含まれる行を削除してください。なお,メッ
セージ情報テーブルの削除は,キューの種類ごとに対応したテーブルが存在してい
るかどうかを確認し,存在している場合は削除してください。
テーブルの列名が "PERSISTENCE_MODE" の場合,キューの削除コマンドが正常
に完了しても,DB のメッセージ情報テーブルが残っている可能性があります。
キュー情報テーブル,FIFO 情報テーブルから不正な情報の含まれる行を削除する,
およびメッセージ情報テーブルを削除するための SQL 文を次に示します。なお,
SQL 文を実行する前に,必ず DB のバックアップを取得してください。
(a) キュー情報テーブル
キュー情報テーブルから不正な情報が含まれる行を削除するには,次に示す SQL 文
511
9. 障害対策
を実行します。
DELETE FROM <RMSystemNameプロパティ指定値>_QUEUEINFORMATION
WHERE QUEUE_NAME ='<エラーが発生したキュー名>';
COMMIT;
(b) FIFO 情報テーブル
FIFO 情報テーブルから不正な情報が含まれる行を削除するには,次に示す SQL 文
を実行します。
DELETE FROM <RMSystemNameプロパティ指定値>_FIFOINFORMATION
WHERE QUEUE_NAME ='<エラーが発生したキュー名>';
COMMIT;
(c) メッセージ情報テーブル
メッセージ情報テーブルを削除するには,キューの種類に応じて次に示す SQL 文を
実行します。キューの種類によってメッセージ情報テーブル名が定まっています。
キューの種類が不明な場合は実際の DB にあるテーブル名と次に示す SQL 文のテー
ブル名(DROP TABLE 文のオペランド)を比較して判断してください。
・ローカルキューおよび転送キューの場合
DROP TABLE <RMSystemNameプロパティ指定値>_MSG_<エラーが発生したキュー
名>;
・受信用共用キューの場合
DROP TABLE <RMSystemNameプロパティ指定値>_SHR_<エラーが発生したキュー
名>MG;
DROP TABLE <RMSystemNameプロパティ指定値>_SHR_<エラーが発生したキュー
名>RD;
DROP TABLE <RMSystemNameプロパティ指定値>_SHR_<エラーが発生したキュー
名>WT;
・送信用共用キューの場合
削除するメッセージ情報テーブルはありません。
KFRM13017-E(C / O)
An attempt to restore management information failed because the FIFO information was invalid.
FIFO ID=aa....aa, Belonging Queue name=bb....bb, Reason code=cc....cc, Column name=dd....dd,
Value=ee....ee
aa....aa:FIFO ID
bb....bb:属するキュー名
cc....cc:理由コード(保守情報)
dd....dd:テーブルの列名
512
9. 障害対策
ee....ee:値
説明
FIFO 情報が不正なため,管理情報の復元に失敗しました。該当の FIFO が属する
キューを閉塞します。
対処
キューの削除コマンドで,該当のキューを削除してください。
KFRM13018-E(C / O)
An attempt to restore management information failed because the message information was
invalid. Queue name=aa....aa, FIFO ID=bb....bb, Sequence number=cc....cc, Transmission group
ID=dd....dd, Transmission sequence number=ee....ee, Reason code=ff....ff, Column
name=gg....gg, Value=hh....hh
aa....aa:キュー名
bb....bb:FIFO ID
cc....cc:シーケンス番号
dd....dd:通信層のグループ ID
ee....ee:通信層のグループ内シーケンス番号
ff....ff:理由コード(保守情報)
gg....gg:テーブルの列名
hh....hh:値
説明
メッセージ情報が不正なため管理情報の復元に失敗しました。このメッセージを保
持するキューを閉塞します。
対処
Cosminexus RM を停止したあと,メッセージ情報テーブルから不正な情報が含まれ
る行を削除してください。不正な情報が含まれる行を削除するには,次に示す SQL
文を実行します。なお,SQL 文を実行する前に,必ず DB のバックアップを取得し
てください。
DELETE FROM <RMSystemNameプロパティ指定値>_MSG_<キュー名>
WHERE FIFO_ID ='<エラーが発生したメッセージのFIFO ID>' AND
SEQUENCE_NO=’<エラーが発生したメッセージのシーケンス番号>' AND
GROUP_NAME=’<エラーが発生したメッセージの通信層のグループID>’ AND
GROUP_MESSAGE_NUMBER=’<エラーが発生したメッセージの通信層のグループ内
シーケンス番号>’;
COMMIT;
ただし,エラーが発生したメッセージの通信層のグループ ID は,値が入っていない
ことがあります。その場合は,上記の SQL 文で「AND GROUP_NAME=’< エ
ラーが発生したメッセージの通信層のグループ ID>’
」部分を除いて実行してくださ
い。
513
9. 障害対策
KFRM13019-E(C / O)
Queue is blocked because this share queue is invalid version. Queue name=aa....aa, Queue
type=bb....bb, Current version=cc....cc, Required version=dd....dd
aa....aa:キュー名
bb....bb:キューの種類
cc....cc:現在の共用キューのバージョン
dd....dd:Cosminexus RM がサポートする共用キューのバージョン
説明
キューの種類が "SHARE_RECEIVE" の場合,受信用共用キューのバージョンが無
効のため,キューを閉塞しました。キューの種類が "SHARE_SEND" の場合,該当
の送信用共用キューに対応する受信用共用キューのバージョンが無効のため,
キューを閉塞しました。
対処
Cosminexus RM を停止したのち,次の対処をしてください。
現在の共用キューのバージョンが,Cosminexus RM がサポートする共用キューバー
ジョンよりも上の場合,現在の共用キューのバージョンをサポートするシステムに
バージョンアップしてください。
現在の共用キューのバージョンが,Cosminexus RM がサポートする共用キューバー
ジョンよりも下の場合で,キューの種類が受信用共用キューのとき,該当の共用
キューのバージョンを Cosminexus RM がサポートする共用キューのバージョンに
バージョンアップしてください。
現在の共用キューのバージョンが,Cosminexus RM がサポートする共用キューバー
ジョンよりも下の場合で,キューの種類が送信用共用キューのとき,送信先となる
受信用共用キューを Cosminexus RM がサポートする共用キューのバージョンに
バージョンアップし,システムもサポートするバージョンにバージョンアップして
ください。共用キューのバージョンアップについては,
「付録 H.4 共用キューの
バージョンアップ」を参照してください。
KFRM13020-E(C / O)
Queue is blocked, because of an error occurred at during database access. Queue name=aa....aa
aa....aa:閉塞したキュー名
説明
DB アクセス時にエラーが発生したため,キューを閉塞しました。
対処
このメッセージを出力する要因として,次の要因が考えられます。
• DB が停止している。
• 受信用共用キュー(閉塞したキューが送信用共用キューの場合は,対応する受信
用共用キュー)の DB テーブルが存在しない。
514
9. 障害対策
• テーブル内のデータが不正である。
DB の停止が原因の場合は,DB を起動してから Cosminexus RM を再起動してくだ
さい。それ以外の原因の場合は,キューの削除コマンドで,該当のキューを削除し
てください。
KFRM13021-E(C / O)
The queue specified for RMDeadMessageQueueName is blocked. Queue name=aa....aa
aa....aa:キュー名
説明
RMDeadMessageQueueName プロパティに指定したキューは閉塞状態です。
Cosminexus RM は閉塞状態となります。
対処
Cosminexus RM を停止したのち,RMDeadMessageQueueName プロパティに空白
または別のキューを指定して,再度開始してください。そのあと,最初に
RMDeadMessageQueueName プロパティに指定したキューを,キューの削除コマ
ンドで削除してください。
KFRM13022-W(C / O)
Invalid data detected in the FIFO information table was deleted. FIFO_ID=aa....aa,
QUEUE_NAME=bb....bb
aa....aa:FIFO 情報テーブルの主キーである FIFO_ID 列の値
bb....bb:FIFO 情報テーブルの QUEUE_NAME 列の値
説明
FIFO 情報テーブルから不正なデータを検知したため,該当のデータを削除しまし
た。Cosminexus RM は処理を続行します。
KFRM13023-E(C / O)
The transmission queue was blocked because the group used for sending does not exist. Queue
name=aa....aa
aa....aa:閉塞したキュー名
説明
送信用グループが存在しないため,転送キューを閉塞しました。
対処
キューの削除コマンドで,該当のキューを削除してください。
515
9. 障害対策
KFRM13024-W(C / O)
A message exceeding its valid term was not moved to the dead message queue because an
exception occurred. Queue name=aa....aa, JMSMessageID=bb....bb, JMSCorrelationID=cc....cc,
Exception=dd....dd
aa....aa:キュー名
bb....bb:メッセージの JMSMessageID ヘッダ値
cc....cc:メッセージの JMSCorrelationID ヘッダ値
dd....dd:発生した例外
説明
例外が発生したため,有効期限に達したメッセージをデッドメッセージキューに移
動できませんでした。このメッセージは削除されます。Cosminexus RM は処理を続
行します。
対処
メッセージログファイルを参照して,障害要因を取り除いてください。
KFRM13025-I(C / O)
A message exceeding its valid term was moved to the dead message queue. Queue
name=aa....aa, Dead message ID=bb....bb, JMSMessageID=cc....cc, JMSCorrelationID=dd....dd
aa....aa:移動元のキュー名
bb....bb:移動したメッセージのデッドメッセージ ID
(JMS_HITACHI_DeadMessageID プロパティ値)
cc....cc:移動したメッセージの JMSMessageID ヘッダ値
dd....dd:移動したメッセージの JMSCorrelationID ヘッダ値
説明
有効期限に達したメッセージをデッドメッセージキューに移動しました。
KFRM13026-I(C / O)
A message exceeding the maximum number of delivery attempts was moved to the dead message
queue. Queue name=aa....aa, Dead message ID=bb....bb, JMSMessageID=cc....cc,
JMSCorrelationID=dd....dd, Number of deliveries=ee....ee
aa....aa:移動元のキュー名
bb....bb:移動したメッセージのデッドメッセージ ID
(JMS_HITACHI_DeadMessageID プロパティ値)
cc....cc:移動したメッセージの JMSMessageID ヘッダ値
dd....dd:移動したメッセージの JMSCorrelationID ヘッダ値
ee....ee:移動したメッセージの配送回数
説明
516
9. 障害対策
配送回数の最大値に達したメッセージをデッドメッセージキューに移動しました。
KFRM13027-I(C / O)
The accumulating messages were moved to the dead message queue because the valid period for
transmission-level messages had expired or because a group was closed. Queue name=aa....aa,
Dead message ID=bb....bb, JMSMessageID=cc....cc, JMSCorrelationID=dd....dd, Transmission
group ID=ee....ee, Transmission sequence number=ff....ff
aa....aa:配信予定だったキュー名
bb....bb:移動したメッセージのデッドメッセージ ID
(JMS_HITACHI_DeadMessageID プロパティ値)
cc....cc:移動したメッセージの JMSMessageID ヘッダ値
dd....dd:移動したメッセージの JMSCorrelationID ヘッダ値
ee....ee:移動したメッセージのグループ ID
ff....ff:移動したメッセージのグループ内シーケンス番号
説明
滞留しているメッセージが通信層のメッセージ有効期限を超過した,またはグルー
プが閉鎖したため,デッドメッセージキューに移動しました。
対処
送信側システムがダウンしていないか,または通信路で障害が発生していないかを
確認してください。
KFRM13028-W(C / O)
The accumulating messages for which the valid period for transmission-level messages had
expired or for which a group was closed could not be moved to the dead message queue because
an exception occurred. Queue name=aa....aa, JMSMessageID=bb....bb,
JMSCorrelationID=cc....cc, Transmission group ID=dd....dd, Transmission sequence
number=ee....ee, Exception=ff....ff
aa....aa:配信予定だったキュー名
bb....bb:メッセージの JMSMessageID ヘッダ値
cc....cc:メッセージの JMSCorrelationID ヘッダ値
dd....dd:メッセージの通信層でのグループ ID
ee....ee:メッセージの通信層でのグループ内シーケンス番号
ff....ff:発生した例外
説明
例外が発生したため,通信層のメッセージ有効期限に達したまたはグループが閉鎖
された滞留メッセージを,デッドメッセージキューに移動できませんでした。
Cosminexus RM は処理を続行します。
対処
517
9. 障害対策
メッセージログファイルを参照して,障害要因を取り除いてください。
KFRM13029-I(C / O)
A message exceeding the maximum number of delivery attempts was deleted. Queue
name=aa....aa, JMSMessage ID=bb....bb, JMSCorrelation ID=cc....cc, Number of
deliveries=dd....dd
aa....aa:削除元のキュー名称
bb....bb:削除したメッセージの JMSMessageID ヘッダ値
cc....cc:削除したメッセージの JMSCorrelationID ヘッダ値
dd....dd:削除したメッセージの配送回数
説明
配送回数の最大値に達したメッセージを削除しました。
KFRM14000-E(C / O)
An error occurred during queue access. Queue name=aa....aa, Error information=bb....bb
aa....aa:キュー名
bb....bb:DB Connector のエラー情報
説明
キューアクセス時にエラーが発生しました。
使用中のコネクションを切断し,JMSException を発生します。またはコマンド処
理を中断します。
対処
DB Connector のエラー情報を参照してエラーの要因を調査し,対策してください。
ただし,このメッセージのあとに KFRM16010-I メッセージが出力されている場合,
対処は不要です。また,DB を再起動した場合,メッセージの削除処理の延長でこの
メッセージが出力されることがあります。その場合は対処する必要はありません。
エラーの要因が運用上の問題でない場合は,メッセージログとトレースを採取し,
保守員に連絡してください。
KFRM14001-E(C / O)
An error occurred during database access. Error information=aa....aa
aa....aa:DB Connector のエラー情報
説明
DB アクセス時にエラーが発生しました。
使用中のコネクションを切断し,JMSException を発生します。またはコマンド処
理を中断します。
518
9. 障害対策
対処
DB Connector のエラー情報を参照してエラーの要因を調査し,対策してください。
エラーの要因が運用上の問題でない場合は,メッセージログとトレースを採取し,
保守員に連絡してください。
KFRM14002-E(C / O)
An error occurred in transaction control for a database. Transaction control type=aa....aa, Error
information=bb....bb
aa....aa:トランザクション制御種別(begin,commit または rollback)
bb....bb:DB Connector のエラー情報
説明
DB へのトランザクション制御でエラーが発生しました。
使用中のコネクションを切断し,JMSException を発生します。またはコマンド処
理を中断します。
対処
DB Connector のエラー情報を参照してエラーの要因を調査し,対策してください。
ただし,このメッセージのあとに KFRM16010-I メッセージが出力されている場合,
対処は不要です。また,DB を再起動した場合,メッセージの削除処理の延長でこの
メッセージが出力されることがあります。その場合は対処する必要はありません。
エラーの要因が運用上の問題でない場合は,メッセージログとトレースを採取し,
保守員に連絡してください。
KFRM14003-E(C / O)
An attempt to acquire a connection to the database has failed. Error information=aa....aa
aa....aa:DB Connector のエラー情報
説明
DB へのコネクションの取得に失敗しました。
DB へのコネクション取得処理を中断し,JMSException を発生します。
Cosminexus RM の開始処理の場合,開始処理を中断します。またはコマンド処理を
中断します。
対処
DB Connector および DB の指定値に誤りがあることが考えられます。DB
Connector のエラー情報を参照してエラーの要因を調査し,対策してください。
エラーの要因が運用上の問題でない場合は,メッセージログとトレースを採取し,
保守員に連絡してください。
519
9. 障害対策
KFRM14004-E(C / O)
An attempt to release the connection to the database has failed. Error information=aa....aa
aa....aa:DB Connector のエラー情報
説明
DB へのコネクションの解放に失敗しました。処理を続行します。
対処
次に示す内容を確認してください。
• DB Connector のエラー情報を参照してエラーの要因を調査し,対策してくださ
い。エラーの要因が運用上の問題でない場合は,メッセージログとトレースを採
取し,保守員に連絡してください。
• Cosminexus RM が起動中に DB を再起動するとこのメッセージが出力されます。
その場合,このメッセージは無視してください。
KFRM14005-E(C / O)
The configuration property value is invalid. Configuration property name=aa....aa, Configuration
property value=bb....bb, Error information=cc....cc
aa....aa:コンフィグレーションプロパティ名
bb....bb:コンフィグレーションプロパティ指定値
cc....cc:DB Connector のエラー情報
説明
コンフィグレーションプロパティの指定値が不正です。
Cosminexus RM の開始処理を中断します。
対処
コンフィグレーションプロパティ名称が表示されている場合はコンフィグレーショ
ンプロパティの指定値を見直してください。該当しないコンフィグレーションプロ
パティ名称が表示されている場合はメッセージログとトレースを採取し,保守員に
連絡してください。
KFRM14008-E(C / O)
The shared queue changed to a blocked state, because the table management information of the
shared queue was invalid. Queue name=aa....aa, Write number=bb....bb, Lap counter of the write
number=cc....cc, Maximum value of the write number=dd....dd, Read number=ee....ee, Lap
counter of the read number=ff....ff
aa....aa:キュー名
bb....bb:ライト通番
cc....cc:ライト通番のラップカウンタ
dd....dd:ライト通番の最大値
520
9. 障害対策
ee....ee:リード通番
ff....ff:リード通番のラップカウンタ
説明
共用キューのテーブル管理情報が不正なため,共用キューを閉塞状態にしました。
キューを閉塞後,JMSException を発生します。またはコマンド処理を中断します。
対処
キューを再度作成してください。また,このメッセージが頻繁に出力される場合は
メッセージログとトレースを採取し,保守員に連絡してください。
KFRM14009-E(C / O)
An attempt to register a message failed because the size of the message exceeded the maximum
length of messages that can be registered in the queue. Queue name=aa....aa
aa....aa:キュー名
説明
登録しようとしたメッセージのサイズがキューに登録できるメッセージ長を超えた
ため,メッセージの登録に失敗しました。JMSException を発生します。
対処
登録先のキューがローカルキューの場合,メッセージのペイロード,プロパティお
よびヘッダの指定値を見直し,メッセージのサイズを小さくしてください。送信用
共用キューの場合は,メッセージのペイロードのサイズを小さくするか,共用
キューを使用する場合の登録先キューとなる受信用共用キューの最大メッセージ長
を増やしてください。
KFRM14010-E(C / O)
The table remained incorrect because an attempt to perform deletion of the table failed. Queue
name=aa....aa, Table name=bb....bb, Error information=cc....cc
aa....aa:キュー名
bb....bb:テーブル名称
cc....cc:DB Connector のエラー情報
説明
テーブルの削除または起動処理に失敗したため,テーブルが不正に残りました。コ
マンド処理を中断または起動処理を続行します。
対処
DB Connector のエラー情報を参照してエラーの要因を調査し,対策してください。
障害を取り除いたあと,テーブル名称で示されるテーブルを手動で削除してくださ
い。なお,削除対象のキューが受信用共用キューの場合,複数のテーブル名称が表
示されることがありますが,表示されるすべてのテーブルが DB 上に残っていると
はかぎりません。
521
9. 障害対策
テーブルを削除するには,次に示す SQL 文を実行します。
DROP TABLE <テーブル名称>;
KFRM14012-W(C / O)
Close processing has failed. Java class name=aa....aa
aa....aa:Java のクラス名
説明
クローズ処理に失敗しました。処理を続行します。
対処
オブジェクトが不正に残る場合があります。必要に応じて Cosminexus RM を再度
開始してください。また,このメッセージが頻繁に出力される場合はメッセージロ
グとトレースを採取し,保守員に連絡してください。
KFRM14013-E(C / O)
Queue and FIFO information remained incorrect because an attempt to perform post-processing
after the error occurred failed. Queue name=aa....aa, FIFO ID=bb....bb, Error information=cc....cc
aa....aa:キュー名
bb....bb:FIFO ID
cc....cc:DB Connector のエラー情報
説明
障害後の後処理に失敗したため,キュー情報および FIFO 情報が不正に残りました。
コマンド処理を中断します。
対処
DB Connector のエラー情報を参照してエラーとなった原因を調査し,対策してくだ
さい。障害を取り除いたあと次に示す処理を実行し,必要に応じてキューを再度作
成してください。
キュー情報と FIFO の情報がキュー情報テーブルおよび FIFO 情報テーブルに残っ
ているため,キュー名と FIFO ID で示される値をキーに,各情報をテーブルから削
除する必要があります。
キュー情報を削除するには,次に示す SQL 文を実行します。
DELETE FROM <RMSystemNameプロパティ指定値>_QUEUEINFORMATION
WHERE QUEUE_NAME='<キュー名>';
COMMIT;
FIFO 情報を削除するには,次に示す SQL 文を実行します。
DELETE FROM <RMSystemNameプロパティ指定値>_FIFOINFORMATION
WHERE QUEUE_NAME='<キュー名>';
522
9. 障害対策
COMMIT;
KFRM14014-E(C / O)
Share queues cannot be created in Oracle.
説明
共用キューを Oracle に作成できません。コマンド処理を中断します。
対処
接続先の DB を HiRDB に変更し,必要に応じてコマンドを再度実行してください。
KFRM14015-E(C / O)
An attempt to register a message failed because queue capacity or the number of messages
exceeded the maximum. Queue name=aa....aa
aa....aa:キュー名
説明
キューの容量やメッセージ数の上限値を超過したため,メッセージの登録に失敗し
ました。
JMSException を発生します。
対処
キューの最大メッセージ数を増やすか,または hrmdelmsg コマンドを使用してメッ
セージを削除してください。
KFRM14016-E(C / O)
An attempt to read a message failed because the end of the stream was unexpectedly reached
while reading the message. Queue name=aa....aa
aa....aa:キュー名
説明
メッセージ読み取り中に予期しないストリームの終端に達したため,メッセージの
読み取りに失敗しました。
JMSException を発生します。
対処
DABroker 対応の DB Connector for Cosminexus RM を使用している場合は,
DABroker Library の環境設定の[リモートアクセス設定]タブで[BLOB/LONG/
CLOB 型データ受取バッファサイズ]に適切な値を設定してください。そのあと,
必要に応じて J2EE サーバを再度開始してください。HiRDB Type4 JDBC ドライバ
対応の DB Connector for Cosminexus RM を使用している場合は,DB Connector
for Cosminexus RM の maxBinarySize プロパティに適切な値を設定してください。
523
9. 障害対策
そのあと,Cosminexus RM と DB Connector for Cosminexus RM を再度開始して
ください。バッファサイズの見積もりについては「6.3(1) Cosminexus DABroker
Library を使用して Oracle または HiRDB に接続する場合」を参照してください。
を参照してください。解決されない場合はメッセージログとトレースを採取し,保
守員に連絡してください。
KFRM14017-E(C / O)
System management information has not been registered.
説明
システム管理情報が登録されていません。Cosminexus RM の開始処理を続行しま
す。
対処
SQL ファイルの実行が失敗していないかどうかを確認してください。失敗していた
場合は,障害を取り除いたあと必要に応じて SQL ファイルを再度実行してくださ
い。
KFRM14018-E(C / O)
Authentication Information is not set.
説明
認証情報が登録されていません。
対処
認証情報が登録されているか確認してください。
KFRM14019-E(C / O)
An error occurred during creating queue. Queue name=aa....aa, Table name=bb....bb, Error
information=cc....cc
aa....aa:キュー名
bb....bb:テーブル名称
cc....cc:DB Connector のエラー情報
説明
キュー作成時にエラーが発生しました。コマンド処理を中断します。
対処
DB アクセスに失敗したか,テーブルが不正に残っている可能性があります。DB
Connector のエラー情報を参照してエラーの要因を調査し,対策してください。障
害を取り除いたあと,テーブル名称で示されるテーブルを手動で削除してください。
なお,対象のキューが受信用共用キューの場合,複数のテーブル名称が表示される
524
9. 障害対策
ことがありますが,表示されるすべてのテーブルが DB 上に残っているとはかぎり
ません。
テーブルを削除するには,次に示す SQL 文を実行します。
DROP TABLE <テーブル名称>;
KFRM14020-E(C / O)
The shared queue used for sending was blocked because the destination queue had been deleted.
Queue name=aa....aa, Destination table name=bb....bb
aa....aa:閉塞したキュー名
bb....bb:閉塞したキューの書き込み先のテーブル名称
説明
送信先のキューが削除されていたため,送信用共用キューを閉塞しました。
対処
閉塞した送信用共用キューは利用することができないので,キューの削除コマンド
で削除してください。
KFRM14021-E(C / O)
An error occurred during database access. Table name=aa....aa, Error information=bb....bb
aa....aa:アクセスしようとしたテーブル名称
bb....bb:DB Connector のエラー情報
説明
DB アクセス時にエラーが発生しました。開始処理で発生した場合,Cosminexus
RM の処理を続行します。または,コマンド処理を中断します。
対処
DB Connector のエラー情報を参照してエラーの要因を調査し,対策してください。
KFRM14022-E(C / O)
An attempt to read a group information failed because the end of the stream was unexpectedly
reached while reading the group information.
説明
グループ情報の読み込み中に予期しないストリームの終端に達したため,グループ
情報の読み込みに失敗しました。
対処
DABroker 対応の DB Connector for Cosminexus RM を使用している場合は,
DABroker Library の環境設定の[リモートアクセス設定]タブで[BLOB/LONG/
CLOB 型データ受取バッファサイズ]の値を増やしてください。そのあと,J2EE
525
9. 障害対策
サーバを再度開始してください。HiRDB Type4 JDBC ドライバ対応の DB
Connector for Cosminexus RM を使用している場合は,DB Connector for
Cosminexus RM の maxBinarySize プロパティの値を増やしてください。そのあ
と,Cosminexus RM と DB Connector を再度開始してください。バッファサイズの
見積もりについては「6.3(1) Cosminexus DABroker Library を使用して Oracle ま
たは HiRDB に接続する場合」を参照してください。解決されない場合はメッセー
ジログとトレースを採取し,保守員に連絡してください。
KFRM15000-E(C / O)
An internal error occurred. Thread pool identifier=aa....aa, Maintenance information=bb....bb
aa....aa:スレッドプール識別子
bb....bb:保守情報
説明
内部エラーが発生しました。
スレッドプール識別子が MDB の場合,Message-driven Bean の監視スレッドが一
つ減ります。
スレッドプール識別子が TRS の場合,キュー間転送の送信スレッドが一つ減りま
す。
対処
メッセージログとトレースを採取し,保守員に連絡してください。
KFRM16000-E(C / O)
An attempt to initialize a system-related linkage function that is using a shared queue has failed.
説明
共用キューを使用して複数システム間でのアプリケーション連携をする機能の初期
化に失敗しました。RMSHPort プロパティに指定したポート番号がすでに使用され
ている可能性があります。Cosminexus RM の開始処理を中断します。
対処
メッセージログファイルを参照し,直前のメッセージから障害要因を特定してくだ
さい。
障害要因を対処したあと,Cosminexus RM を再度開始してください。
KFRM16001-E(C / O)
Event transmission was ignored because an invalid of event data was detected transmitted from
the system, which is using a system-related linkage function that is using a shared queue.
aa....aa=bb....bb, IP address=cc....cc, Port number=dd....dd
aa....aa:要素
526
9. 障害対策
bb....bb:指定値
cc....cc:イベント送信元 IP アドレス
dd....dd:イベント送信元ポート番号
説明
共用キューを使用して複数システム間でのアプリケーション連携をする機能で,イ
ベント送信元システムから送信されたイベントデータの不正を検知しため,イベン
ト通知を無視しました。
処理を続行します。
対処
メッセージログを参照し,障害要因を取り除いてください。障害となった要因が運
用上の問題でない場合は,相手システムと自システムのメッセージログとトレース
を採取し,保守員に連絡してください。
KFRM16002-E(C / O)
Event transmission or recovery was ignored because the queue is in a blocked state. Queue
name=aa....aa
aa....aa:キュー名
説明
キューが閉塞状態のため,イベント通知またはリカバリを無視しました。
処理を続行します。
対処
メッセージログファイルを参照し,以前のメッセージからキューが閉塞した要因を
特定してください。
障害要因を対処したあと,キューを再作成してください。
KFRM16003-W(C / O)
An attempt to connect to the system to transmit events has failed. Host name or IP
address=aa....aa, Port number=bb....bb, Queue name=cc....cc
aa....aa:イベント送信先ホスト名または IP アドレス
bb....bb:イベント送信先ポート番号
cc....cc:キュー名
説明
イベント通知を送信するための接続先システムとの接続に失敗しました。
処理を続行します。
対処
次に示す内容を確認してください。
• 送信用共用キューの「共用キューを使用する場合のイベント送信先ホスト名」お
よび「共用キューを使用する場合のイベント送信先ポート番号」の指定値が正し
527
9. 障害対策
く定義されていること。
• 接続先システムが正常に開始していること。
• 接続先システムで,共用キューを使用して複数システム間でのアプリケーション
連携をする機能が利用できるようになっていること。
KFRM16005-E(C / O)
Event transmission was ignored because the system name of the specified queue name is invalid.
Queue name=aa....aa, IP address=bb....bb, Port number=cc....cc
aa....aa:キュー名
bb....bb:イベント送信元 IP アドレス
cc....cc:イベント送信元ポート番号
説明
指定したキューのシステム名が不正なため,イベント通知を無視しました。
処理を続行します。
対処
送信用共用キューに指定した,共用キューを使用する場合の登録先キューのシステ
ム名を見直してください。または,イベント送信先 IP アドレスおよびイベント送信
先ポート番号を見直してください。
KFRM16006-E(C / O)
Event transmission was ignored because the queue with the specified queue name does not exist.
Queue name=aa....aa
aa....aa:キュー名
説明
指定したキュー名のキューはないため,イベント通知を無視しました。
処理を続行します。
対処
送信用共用キューに指定した「共用キューを使用する場合の登録先キュー名」を見
直してください。
KFRM16008-E(C / O)
The port number for event receiving is already used. Port number=aa....aa
aa....aa:イベント受信用のポート番号
説明
イベント受信用のポート番号は,すでに使用されています。
開始処理を中断します。
対処
528
9. 障害対策
ほかのプログラムで使用していないポート番号に変更したあと,再度システムを開
始してください。
KFRM16009-I(C / O)
An attempt to acquire a connection to the database is performed because a connection error was
detected.
説明
コネクション障害を検知したため,DB へのコネクション取得をリトライします。
処理を続行します。
KFRM16010-I(C / O)
An attempt to acquire a connection to the database was successful.
説明
DB へのコネクション取得のリトライに成功しました。
処理を続行します。
KFRM16011-E(C / O)
An attempt to acquire a connection to the database has failed.
説明
DB へのコネクション取得をリトライしましたが,失敗しました。
処理を続行します。
対処
メッセージログファイルを参照し,その直前のメッセージから障害要因を特定して
ください。
KFRM16012-E(C / O)
The property of RMSHConnectFlag is illegal with the combination of types of connected DB. Type
of connected DB= aa....aa.
aa....aa:接続する DB の種別
説明
RMSHConnectFlag プロパティの値が true の状態で,HiRDB 以外の DB 種別と接
続しようとしました。
処理を中断します。
対処
HiRDB 以外の DB に接続する場合は,RMSHConnectFlag プロパティに false を指
529
9. 障害対策
定して,Cosminexus RM を再度開始してください。
KFRM16013-E(C / O)
Process was aborted or ignored because the queue was not found. Queue name=aa....aa
aa....aa:キュー名
説明
キューが存在しないため,処理を中断または無視しました。
対処
処理の途中でキューが削除されました。別のキューを指定するか,またはキューを
作成し直してください。
KFRM16014-E(C / O)
An attempt to bind the socket used for event reception has failed. IP address=aa....aa, Port
number=bb....bb
aa....aa:バインドしようとした IP アドレス
bb....bb:バインドしようとしたポート番号
説明
イベント受信用のソケットのバインドに失敗しました。Cosminexus RM の開始処理
を中断します。
対処
RMSHPort プロパティで指定したポート番号が,すでに利用されていないか確認し
てください。
KFRM17000-E(C / O)
The queue make file is invalid.File = aa....aa
aa....aa:ファイル名(フルパス)
説明
初期処理失敗,またはキュー定義文の構文不正です。Cosminexus RM は閉塞状態に
なります。
対処
メッセージログファイルを参照して,その直前のメッセージの対処方法に従って障
害要因を取り除いてください。
KFRM17001-E(C / O)
The queue make file cannot be accessed.
530
9. 障害対策
説明
キュー作成ファイルの読み込み権限がありません。Cosminexus RM は閉塞状態にな
ります。
対処
キュー作成ファイルに読み込み権限があるか確認してください。
KFRM17002-E(C / O)
There is no queue make file in the specified path.
説明
指定されたパスにキュー作成ファイルがありません。Cosminexus RM は閉塞状態に
なります。
対処
指定したパスにファイルがあるか,または指定したファイルにアクセス権限がある
か確認してください。
KFRM17003-E(C / O)
A memory shortage occurred while loading the file.
説明
キュー作成ファイルの読み込みでメモリ不足が発生しました。Cosminexus RM は閉
塞状態になります。
対処
メモリ量が javaVM のヒープ領域に確保できることを確認してください。
KFRM17004-E(C / O)
There is an invalid definition statement. Line = aa....aa
aa....aa:行番号
説明
キュー作成ファイルで不正な定義文があります。Cosminexus RM は閉塞状態になり
ます。
対処
指定された行番号の定義文を見直してください。
KFRM17005-E(C / O)
There is no semi-colon for the hrmmkque definition statement. Line = aa....aa
aa....aa:hrmmkque が指定された行番号
531
9. 障害対策
説明
キュー作成ファイルに記述されたキュー定義文が不正です。
hrmmkque に対応するセミコロン(;)がありません。Cosminexus RM は閉塞状態
になります。
対処
hrmmkque に対応するセミコロン(;)を指定してください。
KFRM17006-E(C / O)
There is no valid queue definition statement.
説明
キュー作成ファイルに有効なキュー定義文がありません。Cosminexus RM は閉塞状
態になります。
対処
キュー作成ファイルに,有効なキュー定義文を一つ以上指定してください。
KFRM17007-W(C / O)
In the queue make file, a specified queue definition statement contains an invalid option flag. Line
= aa....aa
aa....aa:キュー定義文の先頭行番号
説明
キュー作成ファイルに記述されたキュー定義文が不正です。
オプションフラグが不正です。この定義文を無視して,処理を続行します。
対処
指定したオプションフラグを見直してください。
KFRM17008-W(C / O)
In the queue make file, a specified queue definition statement contains an invalid flag argument
value. Line = aa....aa
aa....aa:キュー定義文の先頭行番号
説明
キュー作成ファイルに記述されたキュー定義文が不正です。
フラグ引数の値が不正です。この定義文を無視して,処理を続行します。
対処
指定したフラグ引数の値を見直してください。
オプションフラグごとに,指定できるフラグ引数の値を次の表に示します。
532
9. 障害対策
項番
オプションフラグ
指定できるフラグ引数
1
d
「serial」または「parallel」
2
e
0 ∼ 2592000 の範囲の数字
3
n
1 ∼ 65535 の範囲の数字
4
x
1 ∼ 64 文字の英数字と _(アンダースコア)
KFRM17009-W(C / O)
In the queue make file, a specified queue definition statement contains a queue name that has an
invalid character. Line = aa....aa
aa....aa:キュー定義文の先頭行番号
説明
キュー作成ファイルに記述されたキュー定義文が不正です。
キュー名称に不正な文字が含まれています。この定義文を無視して,処理を続行し
ます。
対処
指定したキュー名称に識別子でない文字を使用していないか見直してください。
KFRM17010-W(C / O)
In the queue make file, a specified queue definition statement contains a queue name that exceeds
the maximum length of 20 characters. Line = aa....aa
aa....aa:キュー定義文の先頭行番号
説明
キュー作成ファイルに記述されたキュー定義文が不正です。
キュー名称が 20 文字を超えています。この定義文を無視して,処理を続行します。
対処
キュー名称には 1 ∼ 20 文字の識別子を指定してください。
KFRM17011-W(C / O)
In the queue make file, a specified queue definition statement contains an invalid number (none, or
2 or more) of queue names. Line = aa....aa
aa....aa:キュー定義文の先頭行番号
説明
キュー作成ファイルに記述されたキュー定義文が不正です。
キュー名称が指定されていない,または二つ以上指定されています。この定義文を
無視して,処理を続行します。
533
9. 障害対策
対処
キュー名称を一つだけ指定してください。不要なキュー名称は削除してください。
KFRM17012-W(C / O)
In the queue make file, a specified queue definition statement contains a queue name that already
exists. Line = aa....aa
aa....aa:キュー定義文の先頭行番号
説明
キュー作成ファイルに記述されたキュー定義文が不正です。
指定したキュー名称はすでに存在しています。この定義文を無視して,処理を続行
します。
対処
キュー名称を見直してください。
KFRM17013-E(C / O)
IOException occurred when the queue make file is accessing. ClassName#MethodName =
aa....aa, Maintenance information = bb....bb
aa....aa:クラス名 # メソッド名
bb....bb:保守情報
説明
例外が発生したため,キュー作成ファイルの読み込みに失敗しました。Cosminexus
RM は閉塞状態になります。
対処
キュー作成ファイルの状態を確認してください。キュー作成ファイルに異常がない
場合は,メッセージログとトレースを採取し,保守員に連絡してください。
KFRM17014-W(C / O)
In the queue make file, a specified queue definition statement contains a display name that already
exists. Line=aa....aa, Display name=bb....bb, Name of queue that caused duplication of the display
name=cc....cc
aa....aa:キュー定義文の先頭行番号
bb....bb:重複した表示名
cc....cc:表示名と重複したキュー名称
説明
キュー作成ファイルに記述されたキュー定義文が不正です。
指定した表示名はすでに存在しています。この定義文を無視して,処理を続行しま
す。
534
9. 障害対策
対処
指定した表示名を見直してください。
なお,表示名を指定していなくても,指定したキュー名が定義