World Map
Java Service Wrapperは、御社Javaアプリケーション製品の安定した信頼性を高める最短最善の方法です。
  • Free Trial
  • Buy Now
インテグレーション方法の概要

Java Service Wrapperインテグレーション方法

現在、JavaアプリケーションにJava Service Wrapperをインテグレーション(統合化)する手法には、4つの方法があります。 そのうちの3つでは、追加のコーディングを必要とせずに、すぐに利用することができます。

まず初めのステップは、4つの方法の中から、御社のアプリケーションに一番適切しているものを選択することです。 それぞれの4つの方法について簡単に概要を説明した後、それぞれ個別にアプリケーション統合方法の詳細へと進んでいきます。

インテグレーション方法1 (WrapperSimpleApp)

まず方法1は、アプリケーションの起動に[WrapperSimpleApp]ヘルパークラスを使う手法です。 これは遥かに簡単なインテグレーション方法で、利用が可能であれば、一番お薦めの手法です。

Details

この方法を利用するにおいて理解しておくべき点がいくつかあります。 WrapperがJVM(Javaバーチャルマシン)をシャットダウンする際に、直接アプリケーションへシャットダウンをリクエストするわけではなく、 JVM内部から[System.exit()]メソッドを呼び出してJVMのシャットダウン・シーケンスに入ります。 もし、アプリケーションがシャットダウン・フックに登録されている場合、 通常どおりに実行処理され、アプリケーションがキレイにシャットダウンできる時間を確保します。 その一方、もしシャットダウン・フックに登録されていない場合、 コンソール(コマンド・ウィンドウ)から[CTRL]+[C]のキー操作によるアプリケーション任意停止と同じように動作し、 アプリケーションを直ちに終了させます。 シャットダウン・フックの有無に関わらず、 いずれのケースでも、Wrapper導入前の環境状態と同じように動作します。

JBossを使う具体例をあげて、さらに詳しい概要や使い方について、 こちら (Windows, Linux / UNIX) を参照ください。

インテグレーション方法2 (WrapperStartStopApp)

方法2は、[WrapperStartStopApp]ヘルパークラスを使う手法です。 この手法は、「1つのクラス(例えば[start]クラス)を使用して開始し、別のクラス(例えば[stop]クラス)で停止する」 というTomcatの ようなアプリケーションを利用している環境下でのインテグレーションに適している手法です。

Details

通例、この種のアプリケーションは、スタートアップ時にサーバー ソケットを開け、 シャットダウンのキッカケになる接続待ち状態になります。 [シャットダウン]あるいは[stop]クラスが起動し、アプリケーションに接続することによって、 シャットダウンのキッカケを引き起こします。

この種のアプリケーションを持つ環境下では、 アプリケーションを起動させる時には、最初のメソッド[start]クラスを呼び出したり、 アプリケーションのシャットダウン時には、[stop]クラスのメイン・メソッドを呼び出したり、 Wrapperは「クラスの呼び出し」で動作します。

Tomcatを使う具体例をあげて、さらに詳しい概要や使い方について、 こちら (WindowsLinux / UNIX)を参照ください。

インテグレーション方法3 (WrapperListener)

他の方法ではコーディングを必要としませんが、この方法3では、唯一、手順の中で少しコーディングを加える必要があるもので、 最も柔軟に、 かつWrapperの特徴を最大限に活用したものと言えるでしょう。 この方法3は、[WrapperListener] インターフェイスを実装するクラス作成にまで踏み込みます。 ユーザークラスのインスタンスが作成され、WrapperManagerに登録されます。

Details

この方法3は、前述の2つの方法 (方法1:[WrapperSimpleApp]方法2:[WrapperStartStopApp]) とは 共には利用できないという難点がありますが、複雑さにも十分に耐えうるのも最大の特徴です。 この方法3は、スタートアップやシャットダウンのプロセス同様に、ユーザー・コードで要求を受けたり、 直接的にシステム コントロール イベントへ 応答を返したり、ユーザー・コードの実行を許可する唯一の方法です。

もし、コーディングして機能を追加する必要がない場合には、方法1(WrapperSimpleApp)シャットダウン・フックを実装すること、 あるいは、[シャットダウン]クラスを実装することは、必要であれば追加すればいい程度のオプションとして考えれば良いでしょう。 [シャットダウン]クラスのメイン・メソッドは、アプリケーションのシャットダウン・メソッドを呼び出すのと同様に、シンプルです。

なお、ほとんどのケースでは、方法1(WrapperSimpleApp)方法2(WrapperStartStopApp)のヘルパークラスが、 適切なタイミングで、アプリケーションのスタートアップやシャットダウンの面倒を見てくれるので、 方法3(WrapperListener)でのコーディングで機能を追加する必要性は、ほとんどないと思われます。

さらに詳しい概要や使い方について、 こちら (プラットフォームに依存しない独立型)を参照ください。

インテグレーション方法4 (WrapperJarApp)

方法4は、アプリケーションの起動に[WrapperJarApp]ヘルパークラスを使う手法です。 これもまたシンプルなWrapper統合方法で、アプリケーションの設定が既に完了していて、実行可能な「jar」ファイルの準備が整っている場合にご利用いただけます。

Details

この方法を利用するにおいて理解しておくべき点がいくつかあります。 WrapperがJVM(Javaバーチャルマシン)をシャットダウンする際に、直接アプリケーションへシャットダウンをリクエストするわけではなく、 JVM内部から[System.exit()]メソッドを呼び出してJVMのシャットダウン・シーケンスに入ります。 もし、アプリケーションがシャットダウン・フックに登録されている場合、 通常どおりに実行処理され、アプリケーションがキレイにシャットダウンできる時間を確保します。 その一方、もしシャットダウン・フックに登録されていない場合、 コンソール(コマンド・ウィンドウ)から[CTRL]+[C]のキー操作によるアプリケーション任意停止と同じように動作し、 アプリケーションを直ちに終了させます。 シャットダウン・フックの有無に関わらず、 いずれのケースでも、Wrapper導入前の環境状態と同じように動作します。

Hudsonを使う具体例をあげて、さらに詳しい概要や使い方について、 こちら (WindowsLinux / UNIX)を参照ください。