JRun では、新規および修正済みのエンタープライズアプリケーション、Web アプリケーション、EJB、およびエンタープライズリソースアダプタのダイナミックデプロイを実行できます。新規モジュールを追加したり、デプロイしたモジュールを変更したりした後に JRun サーバを再起動する必要はありません。ダイナミックデプロイは、次の機能によって実行できます。
<attribute name="deployDirectory">c:/my_deployments </attribute>
また、クラスタデプロイディレクトリでモジュールアーカイブファイルが検出されると、JRun はサーバクラスタ全体にモジュールを自動的にデプロイします。この機能は、展開したディレクトリをサポートしません。デフォルトのクラスタデプロイディレクトリは <JRun のルートディレクトリ>/servers/<JRun サーバ>/SERVER-INF/cluster ですが、追加のデプロイディレクトリを作成して、既存のデプロイディレクトリを修正または削除できます。その方法としては、JMC を使用するか、あるいは deployDirectory 属性を JRun サーバの <JRun のルートディレクトリ>/servers/<サーバ名>/SERVER-INF/jrun.xml ファイルの ClusterDeployerService セクションに追加または削除する方法があります。JMC を使用してクラスタにモジュールをデプロイすると、JRun はクラスタされたいずれかのサーバのクラスタデプロイディレクトリに、モジュールアーカイブファイルをコピーします。
また、JRun サーバの jrun.xml ファイル内にある DeployerService の url または file 属性にオートデプロイファイルを指定すると、そのオートデプロイファイルを手動で設定できます。たとえば、c:/my_files/mybean.jar にある EJB モジュールを自動的にデプロイするには、<JRun のルートディレクトリ>/servers/<JRun サーバ>/SERVER-INF/jrun.xml ファイルの DeployerService セクションに次のいずれかのエントリを追加します。
<attribute name="file">c:/my_files/mybean.jar</attribute> <attribute name="url">file:c:/my_files/mybean.jar</attribute>
メモ: Macromedia では、運用環境ではホットデプロイ機能を無効にすることを強くお勧めしています。詳細については、次のセクション「"ダイナミックデプロイの制御" 」をリファレンスしてください。開発環境でホットデプロイを使用する場合は、展開したディレクトリの使用によって、ディスクスペース、処理動作などのシステムリソースを節約できます。アーカイブされたモジュールをホットデプロイすると、JRun によってそのアーカイブされたモジュールがテンポラリディレクトリに拡張されます。
モジュールのオートデプロイでは、モジュールのディレクトリ名または拡張子なしのアーカイブファイル名をベースにして、JRun によってモジュール名が作成されます。Web アプリケーションの場合は、モジュールディレクトリ名または拡張子なしのアーカイブファイル名をベースにしてコンテキストルート URL マッピングも作成されます。
たとえば、Web アプリケーション newapp.war をデフォルトのサーバのルートディレクトリに追加すると、次のように作成されます。
オートデプロイディレクトリ機能を制御するには、JMC を使用するか、あるいは<JRun のルートディレクトリ>/servers/<JRun サーバ>/SERVER-INF/jrun.xml ファイルの DeployerService セクション (クラスタの場合は ClusterDeployerService セクション) にある deployDirectory 属性を作成または編集します。デフォルトではデプロイディレクトリは 1 つですが、追加のディレクトリを作成して、既存のディレクトリを修正または削除できます。
JRun では、deployDirectory 属性で指定されたディレクトリで検出された新規モジュールアーカイブファイルまたはディレクトリが自動的にデプロイされます。サーバの起動時にこの場所が確認され、サーバの実行中は新しいファイルの監視も行われます。すべての deployDirectory 属性を削除すると、オートデプロイおよびホットデプロイは無効になります。デフォルトの deployDirectory 属性は次のとおりです。
<attribute name="deployDirectory">{jrun.server.rootdir}</attribute>
オートデプロイを有効にしたままでホットデプロイを無効にするには、JMC を使用するか、または hotDeploy 属性を <JRun のルートディレクトリ>/servers/<JRun サーバ>/SERVER-INF/jrun.xml ファイルに追加します。デフォルトでは、ホットデプロイは有効になっており、jrun.xml ファイルには hotDeploy 属性が設定されていません。jrun.xml ファイルの DeployerService または ClusterDeployerService (クラスタ用) セクションに次の行を追加すると、ホットデプロイが無効になります。
<attribute name="hotDeploy">false</attribute>
展開したモジュールディレクトリを JRun サーバのデプロイディレクトリにホットデプロイすると、開発中にモジュールをパッケージし直してリデプロイしたり、JRun を再起動したりせずに変更内容をテストできるので、非常に便利です。デフォルトのデプロイディレクトリは、<JRun のルートディレクトリ>/servers/<JRun サーバ> です。
メモ: デプロイディレクトリのファイルは直接操作できますが、JRun によって他のディレクトリにコピーされたファイルは操作できません。この機能は JRun 3.1 の機能とは異なります。
デフォルトでは、JRun のホットデプロイ機能により、展開したディレクトリのデプロイメントディスクリプタファイルに行われた変更が監視され、そのファイルが変更されるとモジュールがリデプロイされます。サーバの <JRun のルートディレクトリ>/servers/<サーバ名>/SERVER-INF/jrun.xml ファイル内のプロパティを編集することによって、指定されているデプロイディレクトリを変更したり、ダイナミックデプロイを無効にしたりできます。詳細については、「ダイナミックモジュールデプロイ」を参照してください。
最初に JRun 3.x にデプロイされていた Web アプリケーションを同じ名前の JRun サーバにデプロイするには、まず <Web アプリケーション>/WEB-INF/jsp ディレクトリの .java ファイルを削除する必要があります。また、JRun 3.x ではデフォルトで生成された JSP が保持されましたが、JRun 4 では保持されなくなりました。生成された JSP を保持するには、次の例に太字で示すように、<JRun のルートディレクトリ>/servers/<JRun サーバ>/SERVER-INF/default-web.xml ファイルで、JSPServlet の keepGenerated 初期化パラメータを true に設定します。JRun サーバを再起動すると、変更内容が有効になります。
<servlet>
<servlet-name>JSPServlet</servlet-name> <servlet-class>jrun.jsp.JSPServlet</servlet-class> <init-param> <param-name>keepGenerated</param-name> <param-value>true</param-value> </init-param> </servlet>
運用環境では、モジュールを適切なアーカイブファイルにパッケージしてデプロイすることをお勧めします。そのほうが移植性が高まり、モジュールの変更を簡単に制御できるようになります。また、運用環境ではホットデプロイ機能を無効にしてください。JMC を使用すると、ホットデプロイ機能を簡単に無効にできます。ホットデプロイ機能を無効にする方法の詳細については、「ダイナミックモジュールデプロイ」を参照してください。
モジュールを運用環境にデプロイする前に、パッケージ作業が必要になる場合もあります。詳細については、 弟2章の"アセンブル担当者、デプロイ担当者、および管理者のロールについて,"を参照してください。
JMC を使用すると、サーバが実行中かどうかにかかわらず、JRun サーバのモジュールをアンデプロイできます。デプロイディレクトリを使用してデプロイされたモジュールを JMC を使用してアンデプロイした場合、そのモジュールは、デプロイディレクトリから削除しないかぎり、次回の JRun 起動時にリデプロイされます。JMC を使用しない場合は、ディレクトリから削除することによって、デプロイディレクトリにあるモジュールをアンデプロイできます。
認証を使用する J2EE モジュールでは、デプロイ担当者は管理者と協力して、ターゲット JRun サーバのユーザー、グループ、およびロールを定義する場合があります。これらのユーザー、グループ、およびロールは、J2EE モジュールで定義されているセキュリティロールに対応している必要があります。詳細については、『JRun 管理者ガイド』を参照してください。