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

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

2017年8月28日月曜日

IBM Domino 9.0.1 Feature Pack 9をインストールしてみました

皆さん、おはようございます。
今週で8月も最後です。つまり今年はあと4ヶ月ほどになります。
早い、早すぎる・・・一年ってこんなに短かったっけ?というくらいに早いです。

なので、色々と早くやらないといかん!ということで本日の話題に行きます。

皆さん、ご存知かと思いますが、先日IBM Notes/Domino 9.0.1 FP9がリリースされました!(実は前回の記事を公開したときには、すでにリリースされていたというオチも・・・)

FP8が2017年3月上旬にリリースされて以来、約5カ月ぶりのリリースです。
私の見立てでは、9月末にリリースかなぁなどと勝手に予想していたので、ちょっと慌てています。

ですが、リリースされた以上、検証しないわけにはいかないので、早速?インストールしてみました。


まず、Feature Packの入手方法は、前回(FP8)と同じく、Fix Centralから行えます。
https://www-945.ibm.com/support/fixcentral
からダウンロードできました(要IBM ID)。

今回は先にDominoをインストールしたのでそちらの紹介から。
私の環境はWindowsの64bit版をつかっているので、「DominoServer_901FP9_W64」を選択してダウンロードしました。
ダウンロードした「domino901FP9_w64.exe」を実行するだけなのも前回と変わらずです。
粛々と実行して、インストールしましょう。

今回も テンプレートが更新されていますので、それもダウンロードしておく必要があります。
FP9で提供されているテンプレート

FP8では、ドミノディレクトリとメールだけでしたが、FP9ではそれに「DJX管理ツール」「個人アドレス帳」が追加されています。
細かいところは調査していませんが、「個人アドレス帳」が更新されているので、各クライアントに配布して設計の置換をしてもらうという作業が必要になるでしょう。

さて、インストールが完了してDominoを起動したので、本当にFP9になっているかを確認しましょう。
下図は、Domino Consoleを起動して、「show server」コマンドを実行したものです。
sh servreの結果

赤枠で囲ってあるように、IBM Domino 9.0.1 FP9になっていますね。

この後、テンプレートの置換を行います。ドミノディレクトリも更新されていますので、行いましょう。
ここで朗報です!
FP8までは、「pubnames.ntf」と「djxdd.ntf」のBDタイトルが同じで、区別がつかない!と言っていましたが、
FP9で見事にDBタイトルが修正されました\(^o^)/
これでもう間違えないで済みますね!
テンプレートのタイトルが!!

どうせ、直ってないだろうと思い込んでいた方は、気を付けましょう。見つかりませんよ(笑)




さて、ここで終わってしまっても良いのですが、あまりにもあっさりしすぎているので、新機能についてもいくつか見ていきましょう。

新機能については、フィーチャーパック 9 の新機能に記載されていますので、熟読しましょう!

当ブログでは、これらのうち、「Domino REST API の機能強化」について触れていきます。
まあ、RESTと聞いたら黙ってられませんからね。

まず、「添付ファイルサポートの改善
FP8までは、REST APIでNotes文書の情報を参照した時、文書内に添付ファイルが存在していると、BASE64でエンコードされた状態でデータが表示されていました(下図参照)。
添付ファイルがBase64でエンコードされている
これはこれで便利なのですが、添付ファイルの容量が大きい場合、JSONデータも大きくなってしまいます。その結果、レスポンスが遅くなるという事が懸念されます。

そんな時に文書参照用のREST APIのURLに「?attachmentlinks=true」を追加すると、添付ファイルデータがリンク情報を返すようになります。
添付ファイルはリンク情報として表示されている

これなら、レスポンスデータのサイズも小さくなりますね。
添付ファイルそのものは、JSONデータ内の「contentLocation」アイテムの値にあるURLから取得することができます。
添付ファイル名が日本語の場合、エンコードされたままになってしまうのでそこだけ注意しましょう。


次に、「全文検索スコア」です。
REST APIで検索を行うと、相対検索スコアが表示されるというものです。
おそらく、Notesクライアントで全文検索をしたときの「関連度順」にソートする際に利用されるデータのことではないかと思います。
こちらは実際に試してみましょう。
Notes アプリケーションでDomino Data Serviceが使えるようにしておきます。文書を参照するので、「ビューと文書」にしておきます。
Domino データサービスを有効化しておく

検索用のビューでもDomino Data Serviceを有効化しておく必要があります。
ビューでも有効化しておく

また、Notes アプリケーションに全文索引を作成しておく必要があります。

REST APIでの検索は、次のように行います。
http://[Dominoサーバーホスト名]/[Notesアプリケーションパス]/api/data/collections/unid/[ビューのUNID]?search=[検索条件]

実際に実行した結果は下図の通りです。
検索結果の表示

各文書の項目に「@score」というのがありますね。これが相対検索スコアです。JSONデータを取得したら、この順序でソートすれば、関連度順に並べることが可能になりますね。

ちなみに、FP8で同じ検索を行った時の結果は下図の通りです。
「@score」という項目がないことに注目してください。
@scoreがない


最後に、「管理者による REST リソースのより詳細な制御」です。
こちらは、
DAS_DATA_DB_COLLECTION=0
をDominoサーバのnotes.iniにセットすることでREST APIによるDomino サーバのアプリケーション一覧の表示をできなくするようにするものです。
これをせっていしておけば、DominoサーバにどんなNotes アプリケーションがあるのかを隠すことができますので、設定しておくのは良いと思います。

この設定をしていない場合、
「http://[Dominoサーバーホスト名]/api/data」とすると、下図のようにNotes アプリケーションの一覧が表示されます。
Notesアプリケーションの一覧

しかし、Dominoサーバーコンソールで
set con DAS_DATA_DB_COLLECTION=0
とした後に再度ブラウザで開いてみると・・・
Notesアプリケーションの一覧がエラーになる

このように403エラーになります。
Notes アプリケーションの一覧は表示できませんが、Data Serviceが有効になっているNotes アプリケーションに対してREST APIのコマンドは有効なままになっています。

元に戻すには
set con DAS_DATA_DB_COLLECTION=1
とすればOKです。



もう一つ、新機能の紹介をしておきましょう。
既存メッセージでのメールルールの実行をユーザーに許可する」です。
これは、今までのバージョンでできなくて苦労したという方は多いのではないでしょうか。

今までは、ルールを作成しても、有効化された後に受信したメールしか適用されず、「受信ボックス」の中がごちゃごちゃになっていることがありました。

ですが、この機能を使うと、ルールを作成する前に受信していたメールに対してもルールを適用することができるようになります。

手順は次の通りです。

1.メール設定ポリシー文書を作成/更新する。
ドミノディレクトリをFP9のテンプレートで正しく更新できていることが前提条件です(当たり前ですね)。
ドミノディレクトリを開いて、メール設定ポリシー文書を作成します(すでに作成してある場合はそれを編集モードで開きます)。
新規に作成する場合、[設定][ポリシー][設定]ビューを開いて、[設定の追加...][メール]アクションを実行します。
メール設定ポリシー文書を作成

[基本]タブの「名前」欄に任意の値を入力します(必須項目です)。
[メール][基本]タブを開きます。
「メールビューとフォルダの管理」というセクションに「既存のメールでルールの実行を有効にする」という項目があるので、そこにチェックをつけて保存します。
※他の項目は、自分の環境に合わせて設定してください。
メール設定ポリシー文書の[メール][基本]タブ

作成したメール設定ポリシー文書をポリシー文書に関連付けさせます。
ポリシー文書にメール設定ポリシー文書を関連付けさせた

念のため、Dominoサーバーと対象ユーザーのNotesクライアントを再起動します。


2.メール文書でルールを作成する
DominoサーバーとNotesクライアントの再起動が完了したら、メールDBを開きます。
こちらのメールDBはFP9のメールテンプレートで設計の置換が行われている必要があります(これも当然ですね)。

そうしたら、ルールを適用したい既存文書用のルールを作成します(すでに作成してあるルールが利用できそうであれば、この作業は不要です)。

私はテストのために以下のルールを作成してみました。
新規ルールを作成

3.メールのプリファレンスを修正する
メールのプリファレンス画面を開きます。
すると、[メール][基本]タブに「メールを閉じるときにルールの実行を有効にする([メール]タブを再度開いたときに有効になります)」という項目が追加されていることが分かります。
ここにチェックが付いているはずです。もしチェックが付いていなければ、チェックをつけて[OK]をクリックしてください。
メールのプリファレンス

プリファレンスを変更した場合、一度メールDBを閉じて、開きなおします。


4.ルールを実行する
メールDBを開いたら、[オプション][ルール][ルールの実行]アクションをクリックします。
ルールの実行アクション

「既存のメールでルールを実行」ダイアログが表示されるので、実行したいルールを選択して[選択したルールの実行]アクションをクリックします。
※ルールが1文書しかなくても必ずチェックをつける必要があります
選択したルールの実行

実行するかどうかの確認ダイアログが表示されるので、[OK]をクリックします。
確認ダイアログ

ルールの実行が完了すると、その旨を知らせるメール文書が作成されます。
自動応答文書

実際にルールも適用されました。
送信エラーレポートフォームの文書がエラーフォルダに移動している



どうでしょう。
これだけでもFP9にバージョンアップしたくなりませんか?

他にもいくつか機能が用意されています。
残念ながら私が保有しているテスト環境では、その他の新機能を試すことが出来そうになかったので、皆さん自身の目で確かめてみてください。






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


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

2017年8月21日月曜日

XPagesでサポートしているRDBMSを試してみよう

皆さん、こんにちは。
気が付いたらお盆が過ぎていました・・・
東京は8月に入って、カラッと晴れた日がないので、夏という気がしないのも一つの要因でしょうか。
涼しいのは良いのですが、やはり夏は暑くないとしっくりと来ないですね。


では今日の話題に行きましょう。
今日も9.0.1 FP8の関連事項です。
もうすぐ9.0.1 FP9がでるはずなので、その前に終わらせておきましょう。ということです。

IBM Domino Designer 9.0.1 フィーチャーパック 8 の新機能
XPage 用のリレーショナルデータベースサポートの改善および JDBC ドライバプラグインウィザードの追加。
という記述があります。

今回はこれについて見ていきます。
上記のリンク文書を読み進めていくと、
XPages を使用したリレーショナルデータベース管理 (RDBMS) のサポートを読むように書かれています。
ここには、新しい機能についての説明がありますが、具体的にどのようにしたら利用できるようになるのかを記事内で紹介されているサンプルDBを元に見ていこうと思います。

1.JDBCドライバの入手

今回はサンプルDBを試すので、Derbyを利用します。
DerbyのJDBCドライバはApache Derbyから入手できます。
ここから、「db-derby-10.13.1.1-bin.zip」(2017年8月時点の最新バージョン)をダウンロードします。
ダウンロードしたzipファイルは任意の場所に展開しておきます。


2.XPages Plug-in用に変換

Domino Designerを起動します。
[Tools][JDBC Driver Plug-in Wizard]メニューをクリックします。
JDBC Driver Plug-in Wizardメニューが追加されている

JDBC Driver Plug-in Wizardのダイアログが表示されるので、以下の項目を入力します。
「Type」は今回はサンプルアプリケーションを使用するので、「Apache Derby」を選択します。
「JAR Files」は、[Add JARs]ボタンをクリックして、1.で入手したApache DerbyのJDBCドライバのJarファイルを選択します。
「Direcroty」はXPages用に変換したJDBCドライバを含んだUpdate Siteをどこのフォルダに出力するのかを選択します。このフォルダは任意の場所で良いですが後で利用するので覚えておきます。
JDBC Driver Plug-in Wizardダイアログ

すべて入力できたら、[終了]をクリックします。
Wizardが実行されて、指定したフォルダにUpdate Site用のファイルが作成されます。
作成されたUpdate Site用フォルダ


3.Dominoサーバへの適用

2.で作成したUpdate Siteは「Eclipse Update Site」DBに登録することでDominoに適用することができます。
「Eclipse Update Site」はテンプレートが用意されていますが、自分で作成する必要があります。
ただし、Dominoサーバーに1つあれば十分ですので、すでに作成してある場合はそれを利用します。

作成していない場合は、[ファイル][アプリケーション][作成]メニューで新規にNotes アプリケーションを作成します。
テンプレートのサーバーは、Dominoサーバーを選択します。
「詳細テンプレートの表示」にチェックを付けると、 「Eclipse Update Site (9)」というテンプレートが表示されるので、それを選択します。
ファイル名は「updatesite.nsf」としておきます。
新規アプリケーションの作成

Notes アプリケーションが作成できたら、それを開きます。
(下図ではすでに文書が作成されていますが、新規作成した場合はありません)
Eclipse Update Siteアプリケーションを開いたところ

[Import Local Update Site]アクションをクリックすると、下図のダイアログが表示されるので、[Browse...]をクリックして、2.で作成したUpdate Siteのフォルダから「site.xml」を選択します。
Import Local Update Siteダイアログ

選択したら[OK]をクリックします。
Update Siteの内容がImportされると、ビューに文書が表示されます。
Update Siteがインポートされて文書が作成された

Eclipse Update Siteに登録された文書の内容を反映するにはDominoサーバーを再起動する必要がありますので、再起動します。


4.サンプルDB(XPages JDBC)で動作確認してみる

XPages JDBCのサンプルアプリケーションは、https://github.com/OpenNTF/XPagesRelationalSampleで入手できます。
入手した「XPagesJDBC.nsf」を署名したらDominoサーバーにアップロードします。

WebブラウザでNotes アプリケーションを開きます。
XPagesJDBCをWebブラウザで開いた

画面右上にある[Setup]をクリックすると、Derbyへの接続テストが行えますので、実行します。
Derbyへの接続テストが成功




正しくセットアップできていると、「Connection Successfull」と表示されます。


あとは画面左側にあるアウトラインからビューをクリックすると、Derbyのデータが表示されるので、確認してください。




このように、ちょっとした手間でJDBCドライバを利用したXPagesアプリケーションが作れるようになっています。
JDBCドライバはDerbyの他、OracleやDB2、SQL Server等に対応しているとのことですので、色々と試してみてください。





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


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