IBMi環境でDomino11.0.1にアップグレードしてはまったこと

最近たまたま IBMi でDomino9.0.1から11.0.1へのアップグレードをする機会がありました。
これは備忘録的なものなので、手順書では無いですが、いくつか嵌ったポイントがあったので、誰かの参考になるのではと思い、残しておきます。内容に関して、私の所属団体とは無関係であり、今回の環境に特化した事象かもしれない点は、否めません。

旧サーバ環境
OS：IBM®i 7.1
Domino：Domino 9.0.1FP2 パーティションサーバ構成
　Domino01サーバのデータフォルダ：/Domino01/NOTES/DATA
　Domino02サーバのデータフォルダ：/Domino02/NOTES/DATA

新サーバ環境
OS：IBM®i 7.4 
Domino：HCL Domino 11.0.1FP1 for IBMi パーティションサーバ構成
　Domino01サーバのデータフォルダ：/Domino01/NOTES/DATA
　Domino02サーバのデータフォルダ：/Domino02/NOTES/DATA

インストールに必要なモジュールは、HCLからダウンロードしておきます。
IBMiコンソールと行ったり来たりが面倒なので、LAN接続するWindows環境に「System i ナビゲータ」と「コンソールエミュレータ」も用意しておきます。

##事前作業##
**PTF情報を探す**
今回のOSは v7r4 でしたので、必須PTFはありませんでした。（たぶん....）
OS環境に応じて、必須PTF情報は収集、適用をしてください。

##環境変数##
環境変数DOMINO_INSTALL_TYPEを設定する必要があります。今回アップグレードしたのは、エンタープライズサーバーです。設定値は2です。（notes.ini に『KitType=2』となる奴？）
事前に次のコマンドを使用します。
ADDENVVAR ENVVAR(DOMINO_INSTALL_TYPE) VALUE(2)
　     無くても良いと思います（知らんけど）

##インストールモジュールの解凍##
HCLからダウンロードした「.exe」を実行すると自己解凍されます。
Widnowsクライアントからインストールするため、解凍されたファイルのうち「OS400Install.exe」を利用してインストールします。
IBMiに詳しい方なら、QNOTES、QNOTESAP、QNOTESSRLをIBMiパーティションへ転送してごにょごにょやるでしょうけど、自分は詳しくないので、前述の実行ファイルをWindowsクライアントから実行します。

##インストール##
Dominoをインストールを複数回経験した方なら迷うことなく操作できます。
インストールが終了したら、ソフトウェア資源を表示して確認してください。
ライセンスプログラムは、製品を「LotusDomino」として区別するために「LD」がなくなっています。
例　Domino9.0.1　→　5733LD9
　　Domino11.0.1 →　5733D11
             LDと区別する為とどこかに書いていましたが、桁数が足りなくなっただけのような気がします。

インストール先は、「/QIBM/ProdData/LOTUS/domino110001」です。
LOTUSとなっているのは、たぶん6.5.xの頃から利用しているためだと考えていますが、謎です。
新規インストールなら、「/QIBM/ProdData/HCL/domino110001」となるのではないでしょうか？

もう一つ気になることがありました。
既に9.0.1がパーティションサーバとしてインストールされていた事が理由かもしれませんが、
インストール時にデータフォルダを指定できませんでした。これにはちょっと違和感が残りますが、サーバセットアップ時に指定できるので、仕様なんでしょうね。

##ランゲージパックの罠##
Domino11.0.1FP1のインストール完了後、「Domino_1101_SLP_Japanese.tar」を解凍します。
Windows標準で「tarファイルを解凍する方法」ご存じの方いらっしゃった教えてください。
解凍すると５つファイルができ、その中の「iSeriesDomLP1100.bat」を起動します。
ランゲージパックで変わった点は、「英語版」のインストールが無くなったことです。
マルチランゲージ環境はどうするのか、もっとも日本企業で過去「英語版」のインストールしたことが無いので気にしない事にします。
その他は、特に気になることは無いでしょう。

ところが、このインストールで嵌りました。
**罠１**：Languageパックのバージョン不一致
導入モジュールが11.0.1FP1でランゲージバックが11.0.1なのですが、インストール時のバージョンチェックでバージョン違いを指摘されます。
どうにもならない為、泣く泣くDomino11.0.1FP1をあきらめ、Domino11.0.1を入れ直すことになりました。
Domino11.0.1を入れなおして再度実行し、問題なくインストールできました。
~~ですが、FP1を入れる方法が分かりません。11.0.1FP1のインストーラーを実行して良いのか怪しいので、HCLサポートに問い合わせしています。~~
FP1はフルインストール版で提供されるため、差分インストールはできず、アンインストール、再インストールとなるようです。FP3まではフルインストール版での提供を予定されています。

##サーバ設定の罠##
サーバ設定は、「OS400domwzd.exe」を利用します。実際には起動オプションがあるため、
「domwzd.bat」を実行することになります。念のため、コマンドプロンプトから実行しました。
サーバ設定も見慣れた画面で遷移していきます。
これが何時間もかかることになるとは、思いもよりませんでした。

設定の最後まで実行し確認ダイアログで「OK」すると、10%程進んだところで、CFGDOMSVRに失敗します。メッセージには「UPDDOMSVR」コマンドを使えと書いてあります。

素直に従い、コンソールから「**UPDDOMSVR**」を実行しました。どのサーバ(パーティションサーバなのでどれをアップグレードするのかを指定する 或いは「*ALL」ですべてを対象とする)をアップグレードするか指定します。
「UPDDOMSVR」が実行されると、Domino9.0.1で利用していたデータフォルダがアップグレードされ必要なファイルがコピーされます。
アップグレードされたら、そのまま通常の手順でサーバが起動できるとどこかに書かれていましたが、全く起動しません。コンソールにも何も表示されません。

罠２：「UPDDOMSVR」コマンドを実行するとnotes.iniが壊れる
Domino01用に/Domino01/NOTES/DATAにある notes.ini ファイルのデータフォルダを「/Domino01/NOTES/DATA」として保存していましたが、インストールフォルダにある notes.ini で上書きされました。
まぁ、これは想定内で、「UPDDOMSVR」実行後に書き換える事で対応しました。

罠３：Dominoサーバのセットアップ時に、インストールフォルダの notes.ini を参照している可能性
パーティションサーバを想定していない あるいは、データフォルダがデフォルトではない事を想定していないのかもしれなですが、インストールフォルダのdataフォルダに notes.ini があると、サーバセットアップに100%失敗します。
今回は、インストールフォルダの notes.ini をリネームしてみたところサーバセットアップは成功しました。この方法が正しいのか不明ですが、結果オーライとします。

罠を２つ克服したので「Domino02」は、すべての罠を回避する事ができました。

今回は、なかなか情報が少ない IBMi 環境でのアップグレードで試行錯誤がありましたが、なんとか無事終わらせる事ができました。(FP1は入っていませんが...)

##IBMiサーバコンソールで良く使ったコマンド##

**WRKDOMSVR**：Dominoサーバの起動/停止 IBMiコンソールにDominoコンソールを表示
**WRKACTJOB**：IBMiサーバのジョブ一覧を表示、サブシステム毎にDominoのタスクが一覧できる
　　　　　 タスクを個別に強制終了させる事も可能。にっちもさっちも行かない時の最終手段
**DSPSFWRSC**：導入されているソフトウェアの種類やVersionを確認する
**CFGTCP**：ネットワークの状態確認(IP単位に停止/開始も可能だが、IBMiのSEさんに依頼するのが無難)

IBMiサーバコマンドなどIBMiサーバに関することは、以下のサイトが自分には便利でした。
https://www.e-bellnet.com/
Dominoに特化したIBMiサーバコマンドはHCLサイトが役に立ちました。
https://help.hcltechsw.com/domino/11.0.1/ja/admin/admn_ibmiservercommands_r.html

##最後に##
IBMiのSEさんに感謝しつつ、自分でやらない方が良いと思ったことがあります。
それは、**OSの再起動(IPL)**です。
ざっくりした手順としては以下の通りですが、コマンドに関しては敢えて書きません。IBMiのSEさんと仲良くして、IPLしてもらうのが良いと思いました。
１．ネットワークの停止
２．サブシステムを制限状態へ移行
３．サブシステムの停止確認後、IPLコマンドで再起動を指定
４．本番運用前はIPL後、制限状態で上がることが多いため、サブシステムを起動
５．サブシステムのジョブ実行状況の確認