ROOTフォルダーが\webappsフォルダーから削除されると、.warファイルが再デプロイされ、ROOTフォルダーが再作成されます。
.warファイルは初期インストール中に作成されます。つまり、ROOTフォルダーは初期インストールのオプション指定に基づいて設定(およびバージョン)を展開します。
また、ROOTフォルダーに配置されたカスタム画像/ CSS /その他のファイルも保存されます
ROOTフォルダーは手動で削除しない限り削除されませんが、現在、想定外に次のシナリオが原因でROOTフォルダーが削除されることが確認されております:
Linux / MacOSディストリビューションの2021年7月未満にリリースされたJavaを使用中の環境で、そのJavaを2021年7月以降のにJavaにアップグレードすると、Yellowfinの起動時にROOTフォルダーが削除されます。
※リリース時期はJavaのリリースノートで確認できます。
この事象が発生するとROOTファルダーが削除されるためインストール後に変更したカスタマイズが全て初期状態になってしまいます。
また、インストールフォルダやROOTフォルダのバックアップがない場合はカスタマイズを復元することはできません。
本件はJavaとTomcatの仕様変更によるものであり、弊社の製品の外側で発生しております。
Javaアップグレード後にROOTフォルダーが削除されないように起動しないようにするには、次の手順を実行する必要があります。
回避方法
(\appserver\conf\Catalina\localhost\)(通常はROOT.xml、コンテキストパスを変更している場合はそのxml)を修正し、docbase属性を削除してください。
変更する前に、このファイルのバックアップを取っておいてください。
変更前:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/Applications/Yellowfin 9.6.2/yellowfin.war" path=""
privileged="false" reloadable="false" swallowOutput="false" useNaming="true"
xmlValidation="false" xmlNamespaceAware="false" xmlBlockExternal="false">
<Manager className="org.apache.catalina.session.PersistentManager" distributable="false" saveOnRestart="false">
<Store className="org.apache.catalina.session.FileStore" />
</Manager>
</Context>
変更後:
<?xml version="1.0" encoding="UTF-8"?>
<Context path=""
privileged="false" reloadable="false" swallowOutput="false" useNaming="true"
xmlValidation="false" xmlNamespaceAware="false" xmlBlockExternal="false">
<Manager className="org.apache.catalina.session.PersistentManager" distributable="false" saveOnRestart="false">
<Store className="org.apache.catalina.session.FileStore" />
</Manager>
</Context>
この対応は必ずJavaをバージョンアップする前に行ってください。
ROOTフォルダが削除されてしまった場合は下記手順で戻すことができます。
- 事象が発生し起動時に.warが解凍され、初期インストール時に作成されたYellowfinのコードに戻ります。
- ROOTフォルダまたはインストールフォルダをバックアップしている場合は、上記のROOT.xmlの修正を適用した後、ROOTフォルダをバックアップから戻します。
注:Yellowfinは、アップデートの際にROOTフォルダをバックアップし、<インストールディレクトリ>\Backup>に保存しています。直近のアップデート前のバックアップが最新になります。 - 最後に実施したYellowfinのアップデートを再実行して、コードベース(ROOTフォルダ)とリポジトリDBのバージョンを同期させます。
ご不明な点がございましたら、サポートチームまでご連絡ください。