GlassFish v3-Prelude で、 XA を使うには?

9 12 月, 2008 (00:30) | GlassFish, OpenSource

前回は GlassFish v3-Prelude 上に、 Web サービスアプリケーションを作成して配備することについて、執筆させていただきましたが、今回は、 GlassFish v3-Prelude 上で、 XA トランザクションを利用するには、どうすれば良いのか? と言うことについて、執筆して行きたいと思います。XA トランザクションについては、私が以前に投稿したトピック、"GFv2の XA を使う! PART1 前準備"がありますので、そちらを参考にして下さい。

さてそれでは本題に移りたいと思います。 GlassFish v3-Prelude がリリースされて、早速使ってみたと言う方、 GlassFish v2 の管理コンソール画面を使用していた時と比べて、 GlassFish v3-Prelude の管理コンソール画面は、微妙にその様相に違いを見つけられたかと思います。まずは以下二つの画面をご覧下さい。

[写真][写真]


v2 では、アプリケーションのメニューブランチに、6つのサブメニューが存在していましたが、 v3-prelude では、 "Web アプリケーション"のみになっています。又、 v2 では、"設定"とされていたのが、 v3-prelude では、 "構成"に変更されたのと、 v2 には合ったけど、 v3-prelude には存在しないメニューが多数存在したりと、なんだかバージョンダウンされてしまったような印象を受けますね。

さてなんでだろう? と思われた方、多いのではないかと思うのですが、ここでおさらいしておきましょう。そもそも GlassFish v3-Prelude の開発目的は、 JavaEE APP サーバー各コンポーネントのモジュール化を行い、モジュール化することによって、デバイス別に必須コンポーネントのみを実装できる様にする第一弾としてのリリースなわけで、そんな理由から、管理コンソールの機能が Web アプリケーションのみに絞られた形で、機能提供されているのですね。

「そんなこと言ったら、 JTA が使えないから、 XA を利用するなんて不可能じゃない?」と思われた方、多いと思います。まさにおっしゃるとおりで、インストール後のデフォルトの状態では、 Java における XA のエンジンである JTA は利用できません。その代わりに、 v3 から登場した各アドオンコンポーネントの更新機能となる、"更新ツール"と言うメニューが追加されました。

"更新ツール"は、既存のアドオンコンポーネントに対する更新だけではなく、追加コンポーネントのインストール及び、不要コンポーネントのアンインストールについてもサポートします。この機能を使って、 JTA を使えるようにします。

それでは早速アドオンのインストール作業を進めて行ってみましょう。メニュー画面左側の、"構成"を展開してその中にある、"更新ツール"をクリックします。

[写真]


クリックすると、右側に"利用可能なアドオン"と言う画面が表示されています。この画面の一覧にある、 "glassfish-jts" と "glassfish-corba-omgapi" の二つをチェックし、一覧画面上にある"インストール"をクリックします。

※ここでの注意点として、 jts をアドオンする場合、その依存モジュールである、 corba-omgapi についても同時に適用させないと、アプリケーションがトランザクションを開始しようとした時に、例外が発生してしまいます。

[写真]


後は画面のガイダンスに従って、インストール作業を進めていきます。作業が完了すれば、インストールは完了です。ここから先の手順は、"GFv2の XA を使う! PART1 前準備"に掲載した手順とほぼ同じですので、そちらを参考にして下さい。ただし、2つほど注意点があります。1つ目は、トランザクションタイムアウト値の設定は、 v2 の時は管理コンソール画面からセットできましたが、 v3-prelude では、その機能は無いため、直接環境設定ファイルに修正を加えることになりますので、注意が必要です。
修正対象となるファイルは、 $GLASSFISH_HOME/domains/domain1/config/domain.xml になります。修正対象箇所は、以下のとおり
<transaction-service tx-log-dir="${com.sun.aas.instanceRoot}/logs" />
上記タグの中に、エレメント "timeout-in-seconds" と追記して、 "timeout-in-seconds="30"" と言った具合に、タイムアウト値の設定をします。
For exmple :
<transaction-service timeout-in-seconds="30" tx-log-dir="${com.sun.aas.instanceRoot}/logs" />
2つ目は、 JDBC ドライバーの配置場所で、 GlassFish v2 ur2 の時は、 $DOMAIN_HOME/lib ディレクトリ配下に配置していましたが、 GlassFish v3-Prelude では、 $GLASSFISH_HOME/lib ディレクトリ配下に配置する必要があります。

以上でセットアップは完了です。後は、 JTA を実装したアプリケーションを配備して、実行して見て下さい。さて次回は、ちょっと初心者向けのトピックに戻って、 「GlassFish 管理コンソール画面の使い方」について、簡単に投稿して行こうと思います。

Write a comment





*
画像に書かれた文字を入力してください

スパム対策用画像
ログインすると画像認証なしで投稿できます

ホットワード GlassFish 前回 サービス
割引クーポンまとめ情報 - クー割