Oracle Webcenter Sites 11gから12cへのアップグレード(担当案件事例より)
- CMS
2020年5月から11月にかけ、担当案件において、ベースにしているCMSであるOracle Webcenter Sites(以下OWS)のバージョンアップPRJを実施いたしましたので、その事例についてご紹介させて頂きたいと思います。
担当案件のサイトの歴史
- 2010年:Oracle Webcenter Sitesの前身となるCMS「Fatwaire」をベースにサイトを構築
- 2014年:Fatwaire7からOWS 11gにバージョンアップ(AWS移行)
- 2020年:OWS 11g→12cにバージョンアップ
2014年から2020年の間でもパッチをあてたり、Middlewareをバージョンアップしたりといった対応はしてきたのですが、OWS自体のバージョンアップは6年ぶりということになりました。
Oracle Webcenter Sites11gと12cの主な相違点
- 11g:APサーバ=tomcat
- 12c:APサーバ=Weblogic
基本的に一番大きな違いはAPサーバとして、12cからtomactが対象外となってしまったことでweblogicに変更する必要があった点なのですが、APサーバの変更によるアーキテクチャ的な影響だけでなく、ディレクトリ構成の変更による設定ファイルやスクリプト等のパスの修正も大量に発生してしまいました。
割と、洗い出し切れず、後から修正箇所が発覚して大変だったりしたので、ディレクトリ名にtomcatと入ってしまっているレベルであればあまりこだわらずに、できる限りそのままのディレクトリ構成にしておいた方がいいかもしれません。
アップグレードの全体スケジュール
2020/5/19:内部キックオフ
2020/6/2:顧客キックオフ
~2020/6/末:プレ検証フェーズ
- SCSKのS.Cloud環境にて事前検証実施(スタンドアローン環境で確認できる範囲で事前に問題を洗い出し)
- AWS上に検証用環境(DEV・STG・PROD×2)のベースを構築(インフラ担当の別ベンダー)
~2020/7/末:AWS検証環境構築
- AWS検証環境に対し、Oracle Webcenter Sitesのバージョンアップ・データ移行等を実施
- 各機能の正常動作確認および課題対応
~2020/8/末:検証試験実施
- 検証試験項目作成および実施
- 課題対応
~2020/9/中旬:DEV環境移行
- 現行DEV環境停止
- 新DEV環境の構築&データ移行
~2020/10/末:STG・PROD環境移行リハーサル
- 移行計画書作成
- 移行リハーサル一回目
- 移行リハーサル二回目
- 課題対応
- 性能試験(インフラ担当の別ベンダー)
2020/10/30~11/3:STG・PROD環境本番移行
実環境のアップグレードについては、まずDEV環境を本番移行の2ヶ月前に停止し先行してアップグレードし、2ヶ月かけてSTG・PROD環境をアップグレードする手順のリハーサルおよび課題対応を繰り返し、最終的にSTG・PROD環境を5日間停止してすべてアップグレードするという形で本番移行を実施しました。
アップグレードにより発生した問題について
アップグレード実施後の検証において、いくつか問題が発生した中で、原因究明に時間がかかってしまったものをいくつかご紹介させて頂きます。
①クラスタ構成での起動時にサーバ2側にcas.warとsites.warがデプロイされず、サーバ2側が動作しない
【事象】
Enterprise Manager上はcasもsitesも稼働中となっているが、サーバ2ではWebアプリケーションが呼び出されず404エラーになってしまう。
Administration Consoleでサーバ2側のデプロイメントタブを確認すると、サーバ2ではcasもsitesも状態欄が「失敗」と表示されている。
起動時のsites.logに
<Aug 19, 2020 3:03:23,253 PM JST> <Error> <HTTP> <BEA-101371> <There was a failure when processing annotations for application /app/oracle/products/wcsites/webcentersites/sites-home/sites.war. Ensure that the annotations are valid. The error is net.fckeditor.connector.ConnectorServlet>
<Aug 19, 2020 3:03:23,284 PM JST> <Error> <Deployer> <BEA-149205> <Failed to initialize the application "sites" due to error weblogic.application.ModuleException: java.lang.ClassNotFoundException: net.fckeditor.connector.ConnectorServlet
weblogic.application.ModuleException: java.lang.ClassNotFoundException: net.fckeditor.connector.ConnectorServlet
というように、sites側のクラスのClassNotFoundExceptionが発生している。
【原因】
インストールおよびアップグレードを実施した際に作成されたsetStartupEnv.shの内容では、サーバ2側のクラスパスが正しく設定されない。(構築手順やアップグレード手順には変更する必要がある旨記載がなかった。)
【解決方法】
setStartupEnv.shに以下の修正を加える。
if [ "${SERVER_NAME}" = "wcsites_server1" ] ; then
STARTUP_GROUP="WCSITES-MGD-SVR"
export STARTUP_GROUP
fi
↓wcsites_server1の場合の条件しかなかったため、同様にwcsites_server2の場合を追加)
if [ "${SERVER_NAME}" = "wcsites_server2" ] ; then
STARTUP_GROUP="WCSITES-MGD-SVR"
export STARTUP_GROUP
fi
②クラスタ構成でパブリッシュを繰り返しているうちに、パブリッシュエラーが発生し、管理対象サーバを再起動しないとパブリッシュができなくなってしまう。
【事象】
起動後、しばらくはパブリッシュできているが、何度かパブリッシュを実行しているとパブリッシュエラーが発生しだす。
sites.logに
[2020-11-17T16:25:23.408+09:00] [wcsites_server1] [ERROR] [] [oracle.wcsites.filelock] [tid: 2950] [userId: ] [ecid: 801376e0-9ebe-4814-be79-c33fa8074084-00026ed4,0:11] [APP: sites] [partition-name: DOMAIN] [tenant-name: GLOBAL] Unexpected failure locking file[[
COM.FutureTense.Util.NioFileLock$NioFileLockException: Unexpected failure locking file [File: file:///app/oracle/wcs-shared/ccurl/25/506/1259775120226,15.txt.ftlock]
というようなファイルをロックしているログが頻繁に出力される。
【原因】
共有ディスクをEFSにした場合、ディスククォーターに制限があり、それを超えた際に解放できず、ファイルロックが溜まっていってしまう。
【解決方法】
バージョンアップに合わせ、共有ディスクをNFSからEFSに変更しようとしたが断念し、NFSに戻した。
成果と反省
今回のOWSアップグレードPRJにおける成果と反省は以下になります。
- 無事計画通りバージョンアップが完了した。
- 今後別PRJでOWSの12cへのバージョンアップする際の礎となる知見ができた。
- Oracleで提供されているインストール手順やアップグレード手順だけでは解決しない問題が多々あるので、過去事例やSR含め、事前になるべく広く情報収集しておいた方がよいことがわかった。
最後に
今後、OWS11gで稼働中のシステムを12cにアップグレードする案件で問題が発生した際には、同様の問題が発生しなかったかお問い合わせください。