fc2ブログ

Notes のエラーコードを調べる - show message

昨日はNSDについて拍手など多くのフィードバックを頂き、本当にありがとうございます。
まだまだ立ち上がったばかりのブログなので、これだけ短時間で多くの拍手を頂けたことは初めてですし、NSDについては来週以降のトピックで是非とも紹介させて頂きたいな、と思います。(土日にまとめて書いている関係で、書こうと思っているトピックもすぐには反映されません。。すみません。。。)

また、これは公開情報としても出していかないといけない情報ではないかな、と思いました。すぐには実現出来ないとは思いますが少しずつ実施していきたいと思うので今後も御訪問よろしくお願い致します。


さて、今日はNotesのエラーコードについてです。時々サーバーのメッセージが0x0807 のようにエラーコードで表示されてしまう事があります。

これは何かおかしくなってそのような表示になってしまっていることもあるし、詳細ログなどでエラーコードを意図的に数値で出しているところもあるでしょうし、色々なケースがあるのではないかと思います。


このエラーコードからエラーメッセージを探す方法は色々な方法があるのですが、簡易な方法として以下のような方法があるのをご存知でしょうか。

(参考)Lotus Notes/Domino で表示される 16 進数のエラーコードを変換する方法 (文書番号 730081)

Lotus Domino 7からの新機能ですが、コンソール上で show message を実行する事によってエラーメッセージを知る事が出来ます。

こんな感じです。

> sh message 143
Halt: 他のプロセスがクラッシュしました(このプロセスではありません)。前回のクラッュを報告してください

現時点では1文字目が日本語だと以下のように1文字目が切れてしまいますのであくまで参考程度にご利用頂ければと思います。

> sh message 807
> ーバーが応答しません。

それとエラーメッセージ → エラーコード、と言うコマンドとか手法もあればいいのですが、残念ながら今の時点ではこのような機能は提供されていないようです。

 こういうツールはあまり必要になることもないかもしれませんが、何かのときにでも思い出してもらえればと思います。。

コンソールコマンドでレプリカを作る

岩間さんのブログなどでも紹介されていて既出ですが、テスト環境とかでは便利な事も多いので。
元ネタはこの記事のようですね。
以下の手順で作成する事が出来ます。

1. Notes.ini で、 CLUSTER_ADMIN_ON=1 を設定します。
  これはクラスタ環境でなくても構いません。
 コンソールから変更するには、サーバーコンソールに以下のコマンドを入力してください。

  set config CLUSTER_ADMIN_ON=1

2. 以下のようなコマンドで作成する事が出来ます。
 
 2.1 ServerAのdbsrc.nsfをServerBにdbdest.nsfとしてデータベースコピーを作成する

    CL copy serverA!!dbsrc.nsf serverB!!dbdest.nsf

 2.2 ServerAのdbsrc.nsfをServerBにdbdest.nsfとしてレプリカを作成する

   CL copy serverA!!dbsrc.nsf serverB!!dbdest.nsf REPLICA

2.3 ServerAのdbsrc.nsfをServerBにdbdest.nsfとして設計のみコピーする
  
   CL copy serverA!!dbsrc.nsf serverB!!dbdest.nsf TEMPLATE

2.4 同一サーバー内でdbsrc.nsfをdbdest.nsfとしてコピーを作成する
 
    CL copy dbsrc.nsf dbdest.nsf

 2.5 同一サーバー内で、test.nsf をサーバーから削除する

CL delete test.nsf

アドレスに表示された公開グループを展開する

 まだグループ変更が行われたばかりで、「このグループって○○さん入ってたっけ?」と不安になってしまった時や、送別会などでこのグループのうち××さんにだけは送らないでおきたい、となったときに公開グループを展開出来ると便利ですよね。

このようなときのために7.0.2 から「公開グループの展開」と言うアクションがメールテンプレートに追加されています。 すぐに見つけにくいかもしれないのですが、新規メール編集画面で[アクション]-[オプション]-[公開グループの展開] を選択すると、宛先フィールドにある公開グループが展開されて表示されます。 無ければ無いでどうにかなるのですが、これはあると意外と便利ですので是非試してみてください。

これは以前に岩間さんのブログでも紹介されていた内容ですので、興味がある方はこちらもご参照ください。動作の考察が行われていて興味深いです。

Notes/Domino 7.0.2 Mail Templateでのちょっとした改善 -1-

個人のアドレス帳に存在するグループ(個人グループ)についてはどうでしょうか。
逆に個人グループは個人情報保護などの観点から展開しないで送りたい、と言う方もいるかもしれません。そのような方は送信オプションで、「個人グループを展開表示しない」にチェックを入れて送信する事によって可能です。
 常にそのような動作にしたい場合には、以下のNotes.ini パラメータをご利用ください。

$CollapsePersonalGroups=1


個人アドレス帳のグループが意図せず展開される (文書番号 732312)


グループの自動取り込み

グループを定義するときに、「グループA は、グループBとグループCのメンバーからグループDを除いたものにしたい」と思うときはないでしょうか?

 単純にグループの組み合わせでグループを構築したいときはグループを入れ子にすればよいのですが、上述の例のように特定のグループを除きたい、と言う時にはいい方法がありませんでした。

このようなグループ管理の方法として、Domino 8.5からはグループの自動取り込みと言う機能が利用できるようになりました。グループ文書のフォームが拡張されただけなのでそれほど難しい設定はいりません。

まず、グループの自動取り込み機能は以下のようにディレクトリプロフィールで指定します。
ドミノディレクトリのアクションから、[アクション]-[ディレクトリプロフィールの編集]を選んで以下の「自動取り込みされるグループの収集間隔」を編集してください。(クリックすると画像が拡大します)

ディレクトリプロフィールの設定
テスト環境では非常に短い間隔でいいと思いますが、実運用では1,2時間に一度も動けば十分かもしれません。


ここを設定したあと新規グループを作ります。
赤枠で囲まれた部分が自動取り込みのための新しいフィールドです。
ここに追加メンバー用のグループなどをそれぞれ指定します。グループ名が一般的だと思いますが除外メンバーなどに個人ユーザーを指定する事も出来ます。

自動取り込みの設定

グループ文書を保存して、グループの自動取り込みが動くと、メンバーフィールドに生成されたメンバー名が表示されるようになります。

8.5新機能としてあまり紹介される事がないものですが、こういうちょっとしたところで使い勝手がよくなるのはいいことだな、と思います。

続きを読む

ワークスペースからサーバー名とデータベースの一覧を取り出す

 ワークスペースのファイル(desktop6.ndk/desktop8.ndk)から今自分のワークスペースアイコンのサーバー名とデータベース名の一覧を取り出すことが出来ないか?と悩んでいた事があったのですが、以下のような方法を使ってみました。

ワークスペースアイコンのオブジェクト情報のうち、サーバー名やDB名が通常のASCII文字として格納されている事を利用した簡易な方法ですので、漏れがない保証もないですし、やり方の都合上ローカルのデータベース情報などは抜け落ちてしまいます。

単純にバイナリファイルからテキスト情報を取り出したいだけなので、Sysinternals からStrings.exe を利用してみました。

Strings.exe

Notesのプログラムディレクトリに、strings.exe をダウンロードし、データディレクトリ(以下の例ではプログラムディレクトリの直下にあることを想定しています)にあるdesktop6.ndk に対してStrings.exe を以下のように実行します。

strings -a .\data\desktop6.ndk | findstr /B "CN=.*/.*\.nsf" > DBlist.txt 2> error.log


error.logにいくつかエラー情報が出力されますが、これでDBlist.txt に一覧が出力されます。

別に何かの役に立つ事は無いと思うのですが少し裏技っぽいかな、と思ったのでポストしてみます。

# この方法自体はサポートされているわけではないのでその点はご理解の上であくまで参考情報としてご利用頂ければと思います。

ディスカッションDBと読者フィールド

読者名フィールドにサーバー名を設定していないために複製間で文書の不一致がおきたことがある方は多いのではないのでしょうか。
以下の文書にもある通り、複製が想定されているデータベースでは読者名フィールドにサーバー名を入れておく必要があります。

複製しているデータベースの読者名フィールドについて

ここまでは複製の一般論なのでよいのですが、気になるのは実はディスカッションテンプレートにある「非公開」アクションは、読者名フィールドを使用した文書のアクセス制御を設定するものの、この点について考慮されていない点でした。
 非公開にしておくような文書は多くの場合時期が来るまで見られては困る文書だったり、ドラフトだったりするので見られないことで大きな問題が起きる事は無いと思うのですが、場合によってはサーバー切り替え時にドラフト文書が消えてしまったり、管理者から見ても文書数が一致しなくて気持ち悪いと思ったりして厄介に思っている方も多いのかもしれません。

このような場合、非公開アクションをちょっと工夫して、LocalDomainServers を加えてあげるだけでドメイン内の複製でも文書が複製されるようになります。
ディスカッションテンプレートをベースに開発されている方では、自前で直している方も多いかも多いかも知れないのですが、具体的な変更方法については以下のように公開させて頂きました。

「非公開」アクションで保存した文書が複製されない (文書番号 #732703)

アクションをちょっと拡張するだけなので、興味がある方は是非取り込んでみてください。

個人アドレス帳のグループ文書を使ってソートする

今日もAlanのブログからネタを拝借しようかな・・・と思います。

今日のブログは以下のエントリを参考にして紹介させていただいています。
A Trick For Sorting Lists

名前をソートするのはグループ文書だと当たり前すぎるので、今以下のようなエントリをソートする事を考えます。

Orange
Apple
Melon
りんご
Grape
にんじん
Fruit
スイカ
Carrot

ここで個人アドレス帳(ローカルのnames.nsf)を開き、新規グループを押して新規グループ作成画面を開き、メンバーフィールドにCtrl+V でメンバーを貼ります。(クリックすると画像が拡大します。)

新規グループ作成画面

私は、8.5 から画面ショットを作っているので、7.x以前の方はフォームの画面の様子が違うと思いますが、Alanのページでは古い設計の場合が表示されているのでそちらをご参照ください。

ここで、「メンバーのソート」アクションを実行すると以下のような結果が得られます。
日本語もそれなりにソートできているみたいですね。

Apple
Carrot
Fruit
Grape
Melon
Orange
スイカ
にんじん
りんご

ちなみに僕はNotes.ini の特定のエントリを探すのが面倒なときに、これを使ってソートし直したりします。

興味があったら是非使ってみてください。


添付ファイルビューア: ZIP ファイルを直接見る

 最近はあってもなくてもいい機能のように言われてしまう添付ファイルビューアですが、今日はそんな添付ファイルビューアのZIPビューアとしての機能を紹介します。

リッチテキストにZIP形式で添付されている場合、Notesクライアントは添付ファイルビューアで中身を確認する事が出来ます。圧縮したファイルに期待したものが含まれているかどうかを簡易に確認したいときなどに便利です。

リッチテキスト上にあるZIPファイルを選択し、右クリックで「表示」とするか、メニューから[添付ファイル]-[表示]を選択してみてください。

以下のようなページが表示されます。(画像はクリックすると拡大します)

ZIP ファイルを見た様子

上のペインにZIPに含まれているファイルの一覧が表示されるので、選択すると下のペインにビューアで中身が確認できます。

一つだけ残念な事はLZH形式をサポートしていない事ですね。日本のユーザーではLZH形式が多いのでこれをサポートしてくれればもっと広く利用されるのにな、て思います。
 他の圧縮形式を試してみたのですが、CAB 形式がダメで、Tar形式はOKでした。

# 8.xでLZHを試してみたら大丈夫みたいですね。小ワザ集で紹介されていました。

是非利用してみてください。

リッチテキストに文書を添付する - どれがお得?

添付ファイルの圧縮形式はハフマン形式からLZ1形式になって圧縮率が向上した、と言う話を聞いている人は多いと思います。

この圧縮形式がそんなに賢いのであれば、重めのワードファイルとかをZIPにして添付する(ZIP や画像ファイルは圧縮対象外になります)事はもう意味が無いのでしょうか?

ちょっと気になってテストしてみました。

■ テスト環境
Lotus Notes 8.5 ja on Windows XP SP3
ローカルDBとして、ノートブック(8) テンプレート(note8book.ntf) をテンプレートにDBを作成

以下の3つのファイルでテスト

JPG ファイル: 217,515バイト (基本的にLZ1圧縮などの対象外となるファイル)
PPT ファイル: 1,032,704 バイト (典型的なドキュメントファイル)
TXT ファイル: 4,088,274 バイト (圧縮効果が出やすいテキストファイル)

メニューから[ファイル]-[添付]でファイルを添付するときに以下の4つのケースでテスト
・ 「圧縮」を外して添付
・ 「圧縮」をつけたまま添付
・ 添付前にZIP圧縮したまま添付 (ZIP形式は添付ファイル圧縮対象外になります)
・ 添付前にLZH圧縮したまま添付 (同様に圧縮対象外になります)

■ 参考情報
クライアント上のデータベースの添付ファイルの圧縮形式をLZ1 に変更するには以下のようにします。

ncompact -C -ZU xxx.nsf

(参考)既存の添付ファイルの圧縮形式を Huffman 形式から LZ1 形式にアップグレードする方法

このとき、「圧縮なし」で添付したものも LZ1形式の添付ファイルになってしまうので注意が必要です。

添付ファイルの圧縮形式を確認するには文書のプロパティで$FILEアイテムの圧縮の種類の項目を見て判断します。

■ テスト結果
以下のような結果になりました。単位はすべてバイトです。

JPG
元々圧縮されない形式なのでこんなものかな、て思います。


圧縮なし: 219,898
ハフマン: 219,907
LZ1   : 208,009
ZIP    : 168,228
LZH   : 181,430


PPT
LZ1圧縮が10%近い圧縮率を見せましたが、ZIPなどのアーカイバは20%近い圧縮率を示しており、やはりZIP/LZHが有利

圧縮なし: 1,035,539
ハフマン:  1,008,602
LZ1   :  936,449
ZIP    :  889,870
LZH   :  894,598


TXT
 唯一ハフマン形式が有意な圧縮率を示したものの、LZ1圧縮では5分の1近くなっており、ZIP/LZHでは8分の1近いサイズまで圧縮されている。

圧縮なし: 4,091,891
ハフマン: 2,518,318
LZ1   :  843,106
ZIP    :  496,099
LZH   :  487,204


■ 結論
上記のテスト結果を踏まえると以下のように言えるのではないでしょうか。

・ ハフマン圧縮ではテキストファイルのような圧縮しやすい形式で無いとほとんどの場合有意な圧縮率を示さない
・ LZ1 圧縮では有意な圧縮が確認された
・ しかしながら、どちらの圧縮も既存アーカイバの圧縮率よりは劣る

と言うわけで残念ながらやはり、大きな添付ファイルは圧縮して添付するのが賢いようですね。。。

こうやって考えると、ハフマン圧縮よりも圧縮率が高い事は示せたと思うので、LZ1圧縮にすればMS WordやPowerpoint などのドキュメントファイルが多く添付されている文書では特に効果的である、と言うことは言えるかもしれませんね。

それと個人的にはあまり使っている人がいないようなのでテストに含めるのは止めましたが、7-zip形式(*.7z)が結構優秀でした。上のテストケースだとどれも7-zip形式はすべて他のアーカイバよりもよい圧縮率を示していました。


と言うわけでこんな話もみなさんの役に立ったでしょうか・・・・

未読メールを赤字で表示するテーマ

 このブログではStandard版を使用したときに旧来通りに未読メールを赤字にするためのJarファイルを何度かリリースしていますが、通常はテーマで回避するのが普通みたいですね。

そんなわけでテーマでの回避方法をいつか紹介しようと思っていたのですが、こんなのが公開されているのを知りました。これは便利ですね。。

Notes8.xで未読メールを赤く表示するカスタムテーマ

実はこのテーマのインストール方法を書いた文書がどこにもなかったので紹介しておきます。
(いずれの画像もクリックすると拡大します。)
始める前にダウンロードしたテーマは C:\updatesite\unread などのフォルダに保存しておくとします。


1. <プログラムディレクトリ>\framework\rcp\plugin_customization.ini に以下に行を追加して再起動してください。
com.ibm.notes.branding/enable.update.ui=true

2.  再起動すると以下のようなメニューが表示されるので、[ファイル]-[アプリケーション]-[インストール] を選択します。 プラグインのインストールメニュー

3. ウィザードが始まるので、「インストールする新しいフィーチャーの検索」を選択します。
フィーチャーの検索

4. ロケーションの一覧が表示されるので、「フォルダー・ロケーションの追加」を選択します
ロケーションの指定

5. ダウンロードした c:\updatesite\unread を選択すると以下のような画面になるので「終了」を選択します。
ロケーションの選択

6. 指定したフォルダを検索するので、表示された、「update/unread」を選択し、「次へ」を選択します。
更新するフィーチャーの選択

7. 使用条件が表示されるので内容を確認して、同意にチェックして「次へ」を選択します。
使用条件

8. 以下の画面が表示されるので「終了」を選択します。
インストール前の確認

9. インストールするプラグインが表示されるので、「このプラグインをインストールする」にチェックします。
インストールするプラグイン

10. インストール後、再起動を促すダイアログが表示されるので再起動します。

11. 起動後、ノーツクライアントのメニューで[ファイル]-[プリファレンス]を選択します。
 左側のツリーペインから「ウィンドウとテーマ」を選択して以下のようにテーマが選べるようになります。ここでは「小さめフォント & 未読赤」を選択しています。

プリファレンスでの設定


これで未読メールが赤に表示されるようになります。
一つだけ気をつけて頂きたいのは、Notesのチェックマークによる文書選択はテーマを変えると無効になるので、Windowsスタイル(文書選択すると行の色が反転する形式)になってしまいます。ここは「Notes 8 のテーマ」のCSSを編集してしまう方法より不便なところではないかと思います。


■ アンインストール方法
メニューから、[ファイル]-[アプリケーション]-[アプリケーション管理] を選び、以下の画面ショットのように該当テーマを選んで、右クリックから「アンインストール」を選択します。

アンインストール方法




実はここでこっそり答えたりしています。