当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2017年3月31日金曜日

IDボールトによる文書の暗号化(3)・・・XPagesで文書を暗号化する

皆さん、こんにちは。

今日で3月も終わり。明日からは2017年度になるという企業も多いことでしょう。
私も明日から社会人28年目になります。
これだけの年数、働いてきているので、もう少し大人っぽい発言や文章の書き方はできないものかなぁ?とも思うのですが、如何せん、そういうことが嫌いなので、このままのスタイルでやっていこうという所存です。


さて、今日も前回の予告通り、IBM Notes/Domino 9.0.1 Feature Pack8 の新機能であるXPagesでの文書の暗号化について書いていきます。

前回までの記事のリンクはこちらです。
IDボールトによる文書の暗号化(1)・・・LotusScriptでIDボールトの情報を取得する
IDボールトによる文書の暗号化(2)・・・XPagesで文書の暗号化/復号化を行う条件


今日はいよいよ、XPagesで文書の暗号化を行う方法について具体的に書いていきます。
サンプルコードも出していきますので必見ですよ!


1.XPagesの暗号化の仕様

まず、XPagesでの文書暗号化の仕様について確認しましょう。

IBM Knowledge Center内にあるencrypt(NotesDocument - Javascript)のヘルプ
https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/reference/r_domino_Document_encrypt.html

によると、XPagesでの文書の暗号化の手順は以下のようになります。


  1. IDVault オブジェクトを取り出します。
  2. getUserIDFile メソッドを使用して、IDVault から特定ユーザーの UserID オブジェクトを取り出します。
  3. getEncryptionKeys メソッドを使用して、UserID とともに使用可能な秘密鍵の名前のリストを取得します。
  4. setEncryptionKeys メソッドを使用して、文書の暗号化に使用する鍵を指定します。
  5. setEncryptionKeys とともに encrypt メソッドを使用して、指定の暗号キーセットで文書を暗号化します。


2.サンプルプログラム

次に、実際のサンプルコードを見ていきましょう。

上記をコード化したものが以下のサンプルです。

// 文書にセットする暗号キー(複数セット可能なのでVector型で定義する)
var secKeys:java.util.Vector = new java.util.Vector();

// NotesXspDocumentでは動作しなかったのでNotesDocumentを利用する
var docBackend:NotesDocument = document1.getDocument( true );

var secKey = "画面上で選択した暗号キー";

// dominoIDVaultBeanからサーバ名、ユーザ名、パスワードを取得する
var svname = dominoIDVaultBean.getServerName();
var uname = dominoIDVaultBean.getUserName();
var pswd = dominoIDVaultBean.getUserPassword();

// パスワードと暗号キーが取得できた場合だけ、文書を暗号化する
if ( pswd != null && secKey != "" ) {
    // IDボールト情報を取得する
    var idvault:NotesIDVault = session.getIDVault();
    
    // IDボールトからユーザIDを取得する
    var userid:NotesUserID = idvault.getUserID( uname, pswd, svname );
    
    // 暗号キーを文書にセットする
    secKeys.addElement( secKey );
    docBackend.setEncryptionKeys( secKeys );
    
    // 文書をユーザIDで暗号化する
    docBackend.encrypt( userid );
}
docBackend.save( true, true, true );



コードの説明はコメント行で説明している通りです。
1-12行目は文書を暗号化するにあたっての準備です。

実際の暗号化処理は14行目からになります。
まず、IDVaultの情報が取得できないといけないので、パスワード情報がdominoIDVaultBeanから取得できない場合、さらには文書にセットする暗号キーの情報が取得できない場合は、暗号化を行いません。
※暗号キー情報の取得方法は後述します。

17行目でIDVaultオブジェクトを取得しています。

20行目でIDボールトからユーザID情報を取得しています。
ヘルプでは、「getUserIDFile メソッドを使用して・・・」とありますが、これでは実現できませんので注意してください。
なお、 getUserIDFilメソッドはIDボールトからNotesユーザIDファイルをダウンロードするというものです。
実際のユーザIDファイルが破損したときに利用するものでしょう。
ここは、getUserIDというメソッドを使用します。
引数はユーザ名、パスワード、サーバ名の順番です。
パスワードは、HTTPパスワードではなく、ユーザIDのパスワードになるので注意してください。

23-24行目で暗号キーを文書にセットしています。
この暗号キーはシークレットキーと呼ばれるもので、あらかじめユーザIDに格納しておく必要があります。

27行目で文書を暗号化しています。引数はユーザID情報(NotesUserIDオブジェクト)を指定します。
このユーザID情報は上記でセットしたシークレットキーを持っている必要があります。
当たり前ですね。

最後に29行目で文書を保存します。


3.暗号キーの取得

今度は暗号キーの取得方法について見てみましょう。
LotusScriptの場合、NotesUserIDクラスのgetEncryptionKeysメソッドを使って一覧を取得していました。
それをダイアログリストの選択肢として設定することで、エンドユーザが選択できるような実装をしました。
XPagesの場合はどうでしょうか?
拡張ライブラリの中に「Secret Key Picker」というコントロールが用意されていて、それを利用することで暗号キー選択用のダイアログが設定できるようになっています。
Secret Key Pickerコントロール

これをXPageにドラッグ&ドロップすればいいのですが、利用にあたって条件があります。
あらかじめ、XPageにデータソースが定義してあることです。
そのページに直接定義していなくても、上位のページで定義してあればそれでも良いです。

ドラッグ&ドロップすると下図のようなウィザード画面が表示されます。
Secret Key Picker ウィザード画面

「Data source」がデータソースを指定する個所です。
すでにページにデータソースが定義されている場合、自動で選択されます。

「Form compute option」はフォーム検証の実行を設定します。このコントロールを利用する場合、必ず設定する必要があります。

「Add label」はピッカーの横に表示するラベルを設定できます。必要に応じて設定してください。

「Display encryption keys」のチェックを外すと、ピッカーで選択した暗号キーを画面上に表示しなくなります(styleにdisplay:noneが設定されるだけなので、参照する方法はいくらでもありますが・・・)。

「Add message control」 は、複数エラーメッセージコントロールをセットしてくれます。これも必要に応じて設定してください。

「Fomat for Bootstrap」は・・・レスポンシブデザインに対応してくれるのでしょう。済みません。未確認です。

ウィザードの設定が完了すると、下図のように画面上に表示されます。
Secret Key Pickerの画面デザイン


これで使えるように・・・なっていないのです。
上記画面に見える虫メガネをクリックしてソースタブを見ると、

// Your SSJS code to populate the keys goes here, e.g.
@UserSecretKeys();


と書いてあります。
どうやら暗号キーを取得する関数は自分で記述する必要がありそうです。

https://www.ibm.com/support/knowledgecenter/ja/SSVRGU_9.0.1/reference/r_wpdr_atfunctions_usersecretkeys_r.html によると、@UserSecretKeys()関数は引数なしでもよさそうですが、私の環境では動きませんでした。
※エラーにこそなりませんでしたがピッカーをクリックしても暗号キーの一覧が取得できませんでした。

ここは明示的に引数を設定しましょう。
引数の順序は、サーバ名、パスワード、ユーザ名です。
NotesIDVaultクラスのgetUserIDメソッドとは順番が異なるので注意してください。

※同じような情報を扱うんだから、引数の順序は統一してほしいなぁと思うのはわがままでしょうか・・・

私は下記のように記述しました。
var svname = dominoIDVaultBean.getServerName();
var uname = dominoIDVaultBean.getUserName();
var pswd = dominoIDVaultBean.getUserPassword();
@UserSecretKeys( svname, pswd, uname );


引数はすべてdominoIDVaultBeanから取得するようにしました。
ただし、あらかじめこの管理Beanに値をセットしておいてあります。

これでピッカーをクリックすると指定したユーザIDに格納されている暗号キーが選択できるようになります。
下図は実際にXPagesの画面でピッカーをクリックしたときのものです。
ピッカーをクリックして、暗号キーのリストを表示


4.デモ

では実際にXPagesで暗号化文書を作成したデモをお見せします。
撮影した動画をアップロードしておきます。




デモでは、XPagesの画面でのみの確認としていますが、実際にNotesクライアントで見ても暗号化されていることが分かります。


いかがでしょうか。
XPagesの暗号化の方法が分かっていただけたでしょうか?


このサンプルDBは、2年前の記事を書いた際に作成したものにXPages部分を追加したものです
XPages化するに当たっては既存の部分は手を入れていません(デモ用に見た目など、多少の改善は行っていますが・・・)。
暗号化データを取り扱っているからXPages化できなかったとか、暗号化データを取り扱うのは難しいので今までは避けていた。
というような方でも使えるようになったかと思います。


是非、挑戦してみてください。



次回は、文書の復号化はどのようにして行われたのか(動画ではさらっと流してましたが(笑))について解説しようと思います。



それでは今日はこの辺で・・・




Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2017年3月29日水曜日

IDボールトによる文書の暗号化(2)・・・XPagesで文書の暗号化/復号化を行う条件

皆さん、こんにちは。

3月も終わりだというのに東京は寒いです・・・
桜は咲いたというのになんでしょうね、この寒さは。
早く暖かくなってほしいものです。


さて、今日は前回の予告通り、「XPagesで文書を暗号化/復号化するにあたっての条件」について書いていこうと思います。



1.Notes/Dominoのバージョン

当然ではありますが、IBM Notes/Domino 9.0.1 Feature Pack 8が導入されている必要があります。
XPinC(XPagesをNotesクライアント上で動かす)を使わない場合は、IBM Dominoだけバージョンアップしておけばよいです。

ただし、Notes DBをカスタマイズする必要があるため、IBM Domino Designerは9.0.1 Feature Pack 8を導入しておく必要があります。

2.機能

IBM Domino 8.5で追加された新機能であるIDボールトを導入する必要があります。
IDボールトの設定方法は当ブログでも紹介していますので、そちらを参考にして導入してください。

IDボールトの設定方法

ユーザIDがこのIDボールトに登録されている必要があります。
したがって、Web専用ユーザという形で、ドミノディレクトリに直接ユーザ文書を作成したようなユーザでは、XPagesでの暗号化/復号化は行えないということを意味しています。

3.セキュリティ

ドミノディレクトリのサーバ文書内の「制限なしで署名または実行」にXPagesアプリを署名したユーザが含まれている必要があります。
サーバ文書のセキュリティタブ
これは、1.で説明したDomino DesignerでNotes DBをカスタマイズするユーザのことを指します。
今までXPagesアプリケーションを作成したことがある方ならば、当たり前のことではありますが、初めて作成する場合は忘れがちなので注意しましょう。

4. XPagesアプリケーションの設定

XPagesで暗号化/復号化をするにあたって、アプリケーションに設定を行う必要があります。
XSPプロパティの中に「Enable document encryption for this application」というチェックボックスがあるので、そこにチェックをつけます(もう項目が英語になっているのは気にしません・・・)。
ソースタブに直接記述する場合は
xsp.domino.document.encryption=true

と書きます。
XSPプロパティを修正

実は、この設定について、公式ドキュメントでは一切触れられていません。
そのため、なかなか暗号化/復号化が行えず、悩みまくりました。
IBM Connect 2017のセッション資料に書いてあるのを見つけてようやくできたという経緯があります。
ホント、どうにかしてください。こういうのよくないですよ!


5.暗号化/復号化に必要な関数及び変数

詳しくは次回以降の記事で触れていきますが、
XPagesで文書の暗号化/復号化をする際に必要になってくる変数として
dominoIDVaultBeanという管理Beanと呼ばれるものがあります。

この管理Beanの中にIDボールトのサーバ名、ユーザ名、パスワードをセットすることで文書の暗号化/復号化が行えるようになります。
管理Beanについては、
userBeanを使ってみよう
でも触れていますのでそちらを参考にしていただくと、少しは理解が深まると思います。

また、実際に暗号化を行うには、前回のLotusScriptでIDボールトを利用する際にも触れた
NotesIDVaultクラス及びNotesUserIDクラス(いずれもJavaScriptクラス)を利用する必要があります。
そして、最終的に暗号化するにはNotesDocumentクラスのencryptメソッドを利用します。






いかがでしょうか。
ただ単にプログラムを記述すればいいのではなく、
それなりに準備が必要であることが分かっていただければ幸いです。


次回はいよいよ、XPagesアプリケーションでの暗号化をする方法について触れてみようと思います。






それでは、今日はこの辺で・・・




Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2017年3月27日月曜日

IDボールトによる文書の暗号化(1)・・・LotusScriptでIDボールトの情報を取得する

皆さん、こんにちは。

今週で3月も終わりです。
というか、本ブログはなんとまぁ、10年目に突入してました!\(^o^)/
現時点で540本の記事(これが541本目)を書いていました。平均すると、1週間に1本程度です。
でも、最初から1週間に1本のペースで書いていたらきっと続いていないと思います。
好きな時(書ける時、書こうと思った時)に書いてきたからこそ、ここまで続いたのかな?という感じです。
これからもテキトーに書き続けようと思いますので、ご愛顧ください。


さて、今日もIBM Notes/Domino 9.0.1 Feature Pack 8のお話です。

新機能のうちの一つに「XPagesでの文書の暗号化」というものがあります。

今回のFPの中では、かなりのボリュームを占めているのではないでしょうか?
これは調べないわけにはいかないです。
と言っていますが、・・・実は、この機能は私自身は2年もの間、待ち焦がれていたものです(笑)

ですので、これから何度かに分けて、この暗号化についての記事を書いていこうと思います。

おさらいとして、以下の記事を読んでおいていただくと、わかりやすいでしょう。

フィールドの暗号化(1)・・・暗号キーを作成する
フィールドの暗号化(2)・・・暗号キーをマージする
フィールドの暗号化(3)・・・文書のフィールドを手動で暗号化する
フィールドの暗号化(4)・・・特殊フィールドを使って文書のフィールドを暗号化する
フィールドの暗号化(5)・・・LotusScriptを使って文書のフィールドを暗号化する


では、1回目の今日は、LotusScriptで文書の暗号化を実現してみようかと思います。

え?XPagesじゃないの?とお思いでしょうが、LotusScriptにも機能強化の余波が来ているので、先に紹介しておきましょうということです。

LotusScriptで文書の暗号化を行うこと自体は、上の記事でも紹介しています。
今回は、何を行うのかというと、タイトルにあるように
IDボールトの情報を取得してこようというものです。
というのも、暗号キーの一覧を取得する方法が用意されていなかったのです(少なくとも私は知らないです)。

[ファイル][セキュリティ][ユーザーセキュリティ]メニューで自分のユーザIDの情報を画面上に表示させて、さらに自分が保有する暗号キーの一覧を表示させることはできますが、その一覧をプログラムで利用することができなかったのです。
暗号キーの一覧

それを今回の新機能を利用することで取得できるようになるのです。

サンプルコードを記載します。

    Dim session As New NotesSession
    Dim idvault As     NotesIDVault
    Dim userid  As     NotesUserID
    Dim svname  As     String
    Dim uname   As     String
    
    'サーバ名とユーザ名を取得
    svname = session.CurrentDatabase.Server
    uname  = session.UserName
    
    'IDボールトからユーザ情報及び暗号キー情報を取得
    Set idvault = session.GetIdVault()
    If idvault.IsIdInVault( uname, svname ) = True Then
        Set userid = idvault.getUserID( uname, pswd, svname )
        
        'IDボールト情報が取得できたら、戻り値にセットする
        If Not( userid Is Nothing ) Then
            secUserName = userid.userName
            GetSecretKey = userid.getEncryptionKeys
        End If
    End If


1~5行目は、情報を取得するのに必要な変数です。
2行目と3行目が新しいクラスで、IDボールトとそこに格納されているユーザ情報を表すものです。

12行目で、IDボールトのオブジェクトを生成しています。
13行目で、指定したIDボールトのサーバと取得したいユーザ名(今回は自分自身)の名前を渡して、IDボールト内に情報が格納されているかどうかを判断しています。
14行目で改めて、ユーザ名、パスワード、サーバ名(引数の順序に注意!)を渡してIDボールト内の情報を取得して、NotesUserIDオブジェクト変数に格納します。

ここで重要なのがパスワード情報を渡す必要があるということです。
私の環境に問題があるのか、それとも仕様なのかは分かっていませんが、パスワードを省略することはできませんでした。
また、このパスワードは当然のことながら、ノーツユーザIDのパスワードです。

正しく情報が取得できたら、19行目の「userid.getEncryptionKeys」で暗号キーの一覧を取得できます。
前回の記事を書いたときに作成したサンプルDBにこの機能を追加してみました。
その画面ショットがこちらです。
IDボールトから暗号キーを取得

ここまで来たら、あとは選択した暗号キーを「SecretEncryptionKeys」というフィールドに格納して、文書を保存すればOKです。

文書の保存は、特に細工は必要ありません。
なんなら、@Command([FileSave])コマンド関数で保存してもいいくらいです。
私のサンプルは実際にこのコマンド関数で保存しています。


また、文書の復号化はNotesクライアントが自動で行ってくれるため、プログラムの実装は不要です。
下図は、暗号キーを持たないユーザが文書を開いたときの状態です。
ステータスバーにエラーメッセージが表示されて、暗号データの箇所は見えなくなっています。
暗号キーを持たないユーザが文書を開いた

※この暗号キーは複数選択できるようになっているので、プログラムで実装する場合は、「SecretEncryptionKeys」フィールドは複数値を許可しておく必要があります。




いかがでしょうか?
割と簡単にできましたよね。IDボールトが設定されてさえいれば、ここまでできます。
他のユーザに見せたくない情報はこのように暗号化しておけば、文書だけが漏れても安心で安全です。
非表示にしても、文書のプロパティで参照できますし、読者フィールドが設定してあっても、DBごと盗まれたら解除は可能です。
ですが、暗号キーだけは、ノーツIDがないと復号できません。
これはとても強力なセキュリティになります。

今まででもこの設定はできたのですが、暗号キーを直接入力するしかなかったので、使い勝手が悪かったですが、この機能を使えば、一覧から選択できるようになります。

人事情報(特に個人情報)を格納しているNotes DBに設定してみるのもいいのではないでしょうか。



次回はXPagesで、文書を暗号化するにあたっての条件について書いてみようかと思います。




それでは、今日はこの辺で・・・




Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2017年3月24日金曜日

Domino Designer 9.0.1 FP8の設定強化内容について

皆さん、こんにちは。
IBM Notes/Domino 9.0.1 Feature Pack8がリリースされて2週間ちょっと過ぎましたが、もう導入はされたでしょうか?


新機能の内容については「IBM Knowledge Center」内にドキュメントが公開されていますので、そちらをご覧いただくのがよいでしょう。
念のため、ダイレクトリンクを書いておきますので忘れたときの参照用としておいてください。

IBM Notes 9.0.1 フィーチャーパック 8 の新機能
IBM Domino 9.0.1 Social Edition フィーチャーパック 8 の新機能
IBM Domino Designer 9.0.1 フィーチャーパック 8 の新機能


さて、今日はDomino Designerの新機能について紹介します。
といっても、IBM Connect 2017で行われたセッションの中で説明があったものだけです。
「A Deep Dive into the Feature Pack Pipeline for Domino App Dev」というセッションを聴いた方やその資料をすでにご覧になったという方には面白くもなんともありませんので悪しからず(笑)

では見ていきましょう。

1.XPageエディタを開いたときのタブ選択

XPageやカスタムコントロールを作成/編集する際、「設計」タブではなく、「ソース」タブで行う人も少なくないと思います(私は普段は設計タブで、必要に応じてソースタブで編集をします)。
今までは、設計タブが開いて、いちいちソースタブに切り替えていたかと思います。
しかし、Domino Designerのプリファレンス画面に「When the editor opens」という項目が追加されました(英語名なのはどうなの?)。
「XPageエディタを開いたときの動作」の設定

デフォルト値は「常に設計タブを開く」になっていますが、ここを「常にソースタブを開く」(Always open Source tab)にして保存すると、次からはソースタブが開かれるようになります。
細かい修正ではありますが、毎日のようにXPagesアプリケーションを作成している人にとってはストレスの軽減及び作業効率の向上につながるのではないでしょうか?

2.コントロールの並び順を変更

次は、コントロールビューに表示されているコントロールの並び順の変更方法についてです。
こちらもプリファレンス画面に設定項目があります。「Sort palette drawer content alphabetically」
(ここも英語かい!(笑))です。
ここにチェックを付けると、コントロールの並び順がアルファベット順(日本語表記の場合、五十音順(というか、漢字コード順かな?))に並び変わります。
これは、コントロールビューが開いているときにプリファレンスを変更すれば、即時有効になります。
コントロールのソート順変更

こちらがチェックボックスにチェックを付けた状態でのコントロールビューの並び順です。
見事に五十音順になっていますね。
五十音順に並んだコントロールビュー

一見すると、便利な機能のように思えるのですが・・・
私は使いません。
というのも、そもそもコントロールの順番は自分で並び替えをすることができるのです(笑)
さらに言えば、ほとんど使わないコントロールを非表示にしておくこともできます。
先ほど設定したプリファレンス画面の上の部分がそうです。そこで好きな順序に並べておけばいいのです。
なんで、今さらこんな機能追加したんだろう???


3.CSSを設計タブに反映しない

こちらは、一瞬、「ん?どういうこと?」という感じがしました。
ですが設定を行ってみてすっきりしました。
設定項目はやはりプリファレンス画面にあります。項目名は英語になっていて、「Prevent loading of Style Sheet (CSS) resources for the Design tab」です。
デザインタブへのCSSの適用を禁止する

デフォルトはチェックがついておらず、従来通りの動作になります。
チェックを付けた場合、次のような動作になります。
XPage/カスタムコントロールにリソースとしてスタイルシートを設定している場合、スタイルシートの設定内容がデザインタブでは無効になります。
ただし、当然のことながら、実際にWebブラウザ等で見た場合は正しく反映されます。


チェックボックスにチェックをつけた状態で表示したXPageのサンプルがこちらです。
ソースタブの画面ショットも付けておきます。CSSが適用されている箇所と直接スタイルが設定されている箇所があるのが分かってもらえると思います。
XPageの画面(CSSが抜けてる)
ソースの画面ショット

こちらを実際に実行してWebブラウザで見た画面が下図になります。
実行画面

この設定の利点は2つあると思います。

1つめは、デザインタブを開く時間が短縮されること。
CSSが大量に設定されていると、デザインタブを開く際に、全部適用していたらそれだけでかなりの時間がかかります。その時間が短縮されるのは、いいことでしょう。

2つ目は、CSSの適用漏れのチェックに使えること。
CSSを設定するのが面倒だということで直接スタイルを設定しておき、後でまとめてCSSに変更するといったときに、どこまでCSSにしたのかが分からなくなってしまった・・・
という時にこのオプションを使えば、どこがCSS化されているかどうかが一目瞭然になります。



どうでしょうか?
ちょっとした機能強化ではありますが、それぞれ使い方によっては便利になるかと思います。
プリファレンスをデフォルト設定のまま、使っているという方は一度、ゆっくりと設定を見直してみると新しい発見があるかもしれません。


それでは今日はこの辺で・・・




Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2017年3月8日水曜日

Notes/Domino 9.0.1 Feature Pack 8をインストールしてみました

皆さん、こんにちは。
春が近づき(暦の上ではもう春?)、花粉が目にしみて痛いです。
でもお花見はしたいですね。

さて、IBM Connect 2017でも告知されていたIBM Notes/Domino 9.0.1 Feature Pack 8がついにリリースされました!!!
長かった・・・
IBM Connect 2017での発表からすればすぐじゃないか!と思われそうですが、
今回のリリースの一部の機能については約2年待っていたのです(笑)
長いですよねぇ。

こちらの内容については、検証ができたらブログ記事にまとめようと思います。

今日は、単純にNotes/Dominoのバージョンアップ手順についてまとめます。


まずは、Notesクライアントから。
Feature Packそのものは、IBMのFix Centralというサイト
https://www-945.ibm.com/support/fixcentral
からダウンロードできました(要IBM ID)。

私は普段、Notes 9.0.1のスタンダード版を利用しているので、「Notes_901FP8_Standard_W32」を選択してダウンロードしました。

ファイル名は「notes901FP8_win.exe」です。
これを実行するだけです。
もちろん、実行前にNotesクライアントは終了しておきます。念のために、関連サービス(IBM Notes Single Logon、IBM Notes Diagnostics等)も終了しておいた方がよいでしょう。

インストーラを起動したら、画面の指示に従うだけです。英語表記ですが、悩むような場所はありません。ひたすら「Next」をクリックしていればOKです。

インストールが完了して、Notesクライアントを起動すればOKです。
バージョン情報画面にも9.0.1 FP8と表示されています。
IBM Notesのバージョン情報

ただ、Notesクライアントの画面を見ても何が変わったのかはわかりません(当たり前といえばそうなんですが・・・)。
何が変わったのかについてもおいおい調べていこうと思います。



つぎにDominoサーバ。
こちらはWindowsの64bit版をつかっているので、「DominoServer_901FP8_W64」を選択してダウンロードしました。
ファイル名は「domino901FP8_w64.exe」です。
これも実行するだけですが、やはりDominoサーバ及び関連サービスを終了しておきます。
特に「IBM Domino Diagnostics」は終了しておかないと、バージョンアップに失敗しますので注意しましょう!(途中でエラーになります)。

こちらのファイルを実行して気が付いたことがあります。
ライセンス情報の確認ダイアログが表示されるようになりました。
ソフトウェア・ライセンス情報画面

私の記憶が確かなら、9.0.1 FP7まではこのようなダイアログは表示されなかったと思います。
Feature Packでの提供になり、新バージョン(9.0.2とか・・・)がリリースされなくなったからでしょうか?
※新バージョンがリリースされないかどうかは不明です。あくまで2017年3月時点での話ということです。

ここでは[同意する]をチェックして、次に進みました。
ここから先は従来通りでした。
まずは、IBM Dominoのプログラムディレクトリとデータディレクトリを指定。
Select Program Folder & Data Folder

次に現在のバージョンとアップデート後のバージョンが表示されて、本当にいいのか?という確認の意思を問われる画面。
9.0.1 FP7から9.0.1 FP8にアップデートする?

ここで[Next]をクリックすると、アップデートが始まります。
あとはしばらく待ちます。
正常に終了すると「Congratulations」のメッセージが表示されます。
アップデート完了!

ここでDominoを起動したいところですが、今回からテンプレートは別提供になっているので、そちらをダウンロードして置換する必要があります。
私の環境は日本語版なので、「Multilingual_Templates_901FP8」をダウンロードします。
zipファイルがダウンロードされるので展開します。
すると、中は言語ごとのフォルダに分かれています。
zipファイルを展開してみた
日本語なので「ja」フォルダの中にあるファイルをDominoサーバのDataディレクトリのものと置換しました。
今回アップデートされたテンプレートはドミノディレクトリとメールテンプレートでした。
ドミノディレクトリとメールテンプレート
図のうち、上2つはDJX対応のものですね。


では、アップデートが完了したので、Domino を起動します。
DominoコンソールはまだFP7のまま

サービスとして起動したので、サーバの稼働状況は「IBM Domino Console」で行います。
すると、サーバのログ自体はRelease 9.0.1 FP8となっていますが、IBM Domino ConsoleはまだFP7のままです。起動したばかりだからと思われます。プロセスが完了すれば、そのうち変わるでしょう。
ということで、起動プロセスが完了するのを待っていたら、無事にIBM Domino Consoleの方も9.0.1 FP8に変更されました。よかったよかった
FP8に切り替わった

ここでNotesクライアントに切り替えて、テンプレートの置換を行います。
※私の環境では、ドミノディレクトリはテンプレートから設計を引き継ぐ設定にしていません。

ということで、設計の置換を行います。
ここで問題発生!
DBタイトルが同じまま・・・

上の図を見ていただければわかる通り、Dominoディレクトリのテンプレートのタイトルが通常のものとDJX対応のものとで同じなんですね。
以前から指摘はしていたのですが、まだ直ってないだなんて・・・
こういうところ「も」嫌われますよね。ちゃんとして!

ファイル名も表示されるので、「djxdd.ntf」の方を選択して置換を実行!

といっても、パッと見、何が変わったのかわかりません(笑)
こちらも確認できれば、別途ご報告ということにします。


9.0.1 FP8にアップデートしたIBM Dominoサーバを起動して、およそ2時間が経過しましたが、特にエラーは発生していません。
このまま何もなければ大丈夫でしょう。



次回はNotes/Domino 9.0.1 FP8で変わった個所を解説できればと考えています。
(いつになるかはわかりませんが・・・)



それでは今日はこの辺で・・・