自動デプロイメント - ユースケース

目次

はじめに

このページでは、多くの典型的なユースケースにおける自動デプロイヤーの期待される動作を定義します。 これはTomcatの機能の複雑な領域です。 このドキュメントとTomcatの動作の間に違いがある場合はバグですが、修正するには、このドキュメント、Tomcatの動作、またはその両方を変更する必要がある場合があります。

キー

用語説明
XML HostのconfigBaseに配置されたXML設定ファイル。 単一の <Context> 要素を含み、オプションのネストされた要素を含む場合があります。 明示的なdocBase属性は定義されていません。 これは単一のWebアプリケーションを表します。 多くの場合、context.xmlファイルと呼ばれます。
XML+EW HostのconfigBaseに配置されたXML設定ファイル。 単一の <Context> 要素を含み、オプションのネストされた要素を含む場合があります。 外部WARを指す明示的なdocBase属性が含まれています。 これは単一のWebアプリケーションを表します。 多くの場合、context.xmlファイルと呼ばれます。
XML+ED HostのconfigBaseに配置されたXML設定ファイル。 単一の <Context> 要素を含み、オプションのネストされた要素を含む場合があります。 外部ディレクトリを指す明示的なdocBase属性が含まれています。 これは単一のWebアプリケーションを表します。 多くの場合、context.xmlファイルと呼ばれます。
WAR HostのappBaseに配置されたWARファイル。 WARには埋め込みcontext.xmlファイルは含まれていません。
WAR+XML HostのappBaseに配置されたWARファイル。 WARには埋め込みcontext.xmlファイルが含まれています。
DIR HostのappBaseに配置されたディレクトリ。 ディレクトリには埋め込みcontext.xmlファイルは含まれていません。
DIR+XML HostのappBaseに配置されたディレクトリ。 ディレクトリには埋め込みcontext.xmlファイルが含まれています。
redeploy Webアプリケーションを表すContextオブジェクトが破棄され、新しいContextオブジェクトが作成されます。 存在し、構成で許可されている場合、この新しいContextオブジェクトはcontext.xmlファイルを解析して作成されます。 web.xmlファイルは、アプリケーションの起動プロセス中に解析されます。 デフォルト構成の標準Managerに保存されているセッションは保持されません。 リデプロイ中のWebアプリケーションへのリクエストは、Webアプリケーションがデプロイされていないかのように処理されます。
reload Webアプリケーションを表すContextオブジェクトが停止してから開始されます。 web.xmlファイルは、アプリケーションの起動プロセス中に解析されます。 デフォルト構成の標準Managerに保存されているセッションは保持されません。 リロード中のWebアプリケーションへのリクエストは、リロードが完了するまで保留され、リロードされたWebアプリケーションを使用して続行されます。

新規ファイル

このセクションでは、自動デプロイメントプロセスが新しいWebアプリケーションを検出したときのTomcatの動作について説明します。

開始アーティファクト 構成設定 結果
deployXMLcopyXMLunpackWARs XMLWARDIR注記
XML どちらかどちらかどちらか YNN1, 2, 3
XML+EW どちらかどちらかfalse YNN1
XML+EW どちらかどちらかtrue YNY1
XML+ED どちらかどちらかどちらか YNN1, 2
WAR+XML falseどちらかfalse NYN4
WAR+XML falseどちらかtrue NYY4
WAR+XML truefalsefalse NYN
WAR+XML truefalsetrue NYY
WAR+XML truetruefalse YYN
WAR+XML truetruetrue YYY
WAR どちらかどちらかfalse NYN
WAR どちらかどちらかtrue NYY
DIR+XML falseどちらかどちらか NNY4
DIR+XML truefalseどちらか NNY
DIR+XML truetrueどちらか YNY
DIR falseどちらかどちらか NNY

削除されたファイル

このセクションでは、自動デプロイメントプロセスがWebアプリケーションファイルが削除されたことを検出したときのTomcatの動作について説明します。

ファイルが削除または変更されると、変更/削除されたリソースの後にリストされているリデプロイリソース自体が削除されます(そして場合によっては再作成されます)。 リデプロイリソースの順序は次のとおりです。

  1. WAR
  2. DIR
  3. XML
  4. グローバルリソース

上記削除ルールにはいくつかの例外があります。

  • グローバルリソースは決して削除されません
  • 外部リソースは決して削除されません
  • WARまたはDIRが変更された場合、XMLファイルはcopyXMLtruedeployXMLtrueの場合にのみ削除されます

次の表では

  • ' - 'は「存在しない状態から変更なし」を意味します。 つまり、アーティファクトは変更前には存在せず、変更後にも存在しません。 「N」ではなく「-」を使用して、変更点に注意を向けています。
  • 'R'は、WARファイルを展開してディレクトリが再作成されることを意味します。 これは、unpackWARstrueの場合にのみ発生します。
  • 'XW'は、WARにMETA-INF/context.xmlファイルが含まれている場合、それが抽出され、HostのconfigBaseに配置されることを意味します。 これは、copyXMLtruedeployXMLtrueの場合にのみ発生します。
  • 'XD'は、ディレクトリにMETA-INF/context.xmlファイルが含まれている場合、それがHostのconfigBaseにコピーされることを意味します。 これは、copyXMLtruedeployXMLtrueの場合にのみ発生します。
存在するアーティファクト 削除されたアーティファクト 残りのアーティファクト
XMLWARDIR XMLWARDIR注記
NNY DIR --N
NYN WAR -N-
NYY DIR -YR
NYY WAR -NN
YNN XML N--
YNY DIR N-N5
YNY XML XD-Y
YYN WAR NN-5
YYN XML XWY-
YYY DIR XWYR
YYY WAR NNN
YYY XML XWYY
YY (外部)N WAR YN-3
YY (外部)N XML NY (外部)-6
YNY (外部) DIR Y-N3
YNY (外部) XML N-Y (外部)6
YY (外部)Y DIR YY (外部)R
YY (外部)Y WAR YNN3
YY (外部)Y XML NY (外部)N6

変更されたファイル

このセクションでは、自動デプロイメントプロセスがWebアプリケーションファイルが変更されたことを検出したときのTomcatの動作について説明します。

次の表では

  • ' - 'は「存在しない状態から変更なし」を意味します。 つまり、アーティファクトは変更前には存在せず、変更後にも存在しません。 「N」ではなく「-」を使用して、変更点に注意を向けています。
  • 'M'は、アーティファクトが変更されたことを意味します。
  • 'R'は、ディレクトリが削除され、WARファイルを展開して再作成されることを意味します。 これは、unpackWARstrueの場合にのみ発生します。
存在するアーティファクト 変更されたアーティファクト 残りのアーティファクト
XMLWARDIR XMLWARDIRアクション
NNY DIR --Mなし
NYN WAR -M-リデプロイ
NYY DIR -YMなし
NYY WAR -MRリデプロイ
YNN XML M--リデプロイ
YNY DIR Y-Mなし
YNY XML M-Yリデプロイ
YYN WAR YM-リロード
YYN XML MY-リデプロイ
YYY DIR YYMなし
YYY WAR YMRリロード
YYY XML MYYリデプロイ
YY(外部)N WAR YM(外部)-リロード
YY(外部)N XML MY(外部)-リデプロイ
YNY(外部) DIR Y-M(外部)なし
YNY(外部) XML M-Y(外部)リデプロイ
YY(外部)Y DIR YY(外部)Mなし
YY(外部)Y WAR YM(外部)Rリロード
YY(外部)Y XML MY(外部)Yリデプロイ

追加されたファイル

これは、追加されたファイルが変更されたかのように扱われます。以下の追加のアクションがあります。

  • WARが追加された場合、DIRは削除され、unpackWARsに応じて再作成される場合があります。
  • 外部docBaseを参照するXMLファイルが追加された場合、appBaseのWARまたはDIRは削除されます。 外部リソースがWARでunpackWARsがtrueの場合、DIRは再作成される場合があります。
  • WARが既に存在する場合にDIRが追加され、unpackWARsfalseの場合、DIRは無視されますが、DIRが最初に検出されたときに警告がログに記録されます。 WARが削除された場合、DIRは残され、自動デプロイメントでデプロイされる場合があります。
  • 外部WARが既に存在する場合にWARがappBaseに追加された場合、appBaseのWARは無視されますが、appBaseのWARが最初に検出されたときに警告がログに記録されます。 外部WARが削除された場合、appBaseのWARは残され、自動デプロイメントでデプロイされる場合があります。
  • DIRからデプロイされたアプリケーションのMETA-INFディレクトリにXMLファイルが追加された場合、アプリケーションは常にリデプロイされます。 結果は、新しいデプロイメントの場合と同じです。

注記

  1. XMLファイルがconfigBaseで検出されたため、deployXMLおよびcopyXMLは無視されます。
  2. WARファイルがないため、unpackWARsは無視されます。
  3. 期待されるdocBaseにコンテンツがないため、コンテキストの開始に失敗します。
  4. 埋め込みMETA-INF/context.xmlが含まれており、deployXMLfalseで、XMLがconfigBaseに提供されていないため、Webアプリケーションのデプロイに失敗します。
  5. XMLファイルは、copyXMLtruedeployXMLtrueの場合にのみ削除されます。
  6. 外部リソースはまだ存在していますが、Tomcatは外部リソースを認識していないため、Webアプリケーションは完全にアンデプロイされます。