HTTP アクティブスレッド数

2009年02月27日 00:15

バッファプールの話を書いてたらこの話も浮かんできたので。。

(参考)Lotus Domino HTTP アクティブスレッド数の推奨 (#731489)

HTTPのアクティブスレッド数は最大でも80程度で、と言う内容の文書なのですが、バッファプールの話と比べるとこちらはもう少し話が複雑に思えます。

HTTPアクティブスレッド数の上限を少なくするのもやはりパフォーマンス上デメリットがあるから、と言うよりこれより大きな値を設定するとリスクが大きくなる、と言う意味合いも大きいのではないかと思っています。
 スレッド数を増やすと、Process Heapの使用量は増えてしまうのでノーツの文書情報のようなプロセス間で共有される可能性のある情報がヒープを圧迫してしまったりする恐れがあるのです。なのでうちの環境では増やしたほうがパフォーマンスがよかった、と言う声も度々聞かれるのですがやはり問い合わせでは大きな値は可能な限り、戻してもらう事を検討して頂けないかをお願いさせて頂いたりしています。

比較的処理時間の長い WebQueryOpen/WebQuerySave エージェントが、頻繁に実行されるようなケースではアクティブスレッド数は意外と足りなくなりやすいのですが、そのようなケースでもアクティブスレッド数を増やすよりは、別のサーバーに振り分けるようなことを考えたほうがよいのではないかと思います。逆にあまり計算が走らないようなWebアプリでは80スレッドでもかなりの同時ユーザー数をカバーできたりします。


Technoteでは、パフォーマンスの評価をする際にも、単純に消費されたスレッド数だけでなく、リクエストの平均処理時間などを考慮したうえで決める、と言った原理的な話も出てくるので是非ご一読頂ければと思います。

8.0.2 FP1CCH1 がリリースされました

2009年02月26日 00:15

 8.0.2 FP1CCH1 がリリースされましたので案内させて頂きます。
Fix Central からダウンロード可能になりましたが、FP1以降Basic版のモジュールもダウンロード可能になったようです。

Lotus Notes Standard Fix Pack 1 Client Cumulative Client Hotfix 1 (FP1CCH1) for 8.0.2

 FP1CCH1のハイライトは、8.0.2 CCH3に含まれたのに FP1に含まれなかった修正をフォローした事なのですが、新しい問題では以下の問題が含まれました。アーカイブ時にフォルダが削除されてしまう問題です。

Deleting a folder from a mail file also deletes it from the archive database (#1368251)

FP1CCH1という名前に引っかかってしまう人もいると思うのですが、8.0.2 からインストールする事も出来ますし、8.0.2 FP1 から上書き導入する事も出来ますので御安心下さい。

日本語版のドキュメントは以下の文書にて公開されております。

Lotus Notes 8.0.2 クライアントの Fix Pack 1 Cumulative Client Hotfix 1 (FP1 CCH1) について

3月1日: Fix Centralの状況や日本語文書の情報を更新

全文検索: Web スタイル構文

2009年02月25日 00:05

今日はこのTechnoteから。


ビュー検索のデフォルトが Web スタイル構文になっていない


Lotus Notes 8.x からWeb スタイル構文と言うのが使える事をご存知でしょうか。
「A B」と入力して検索すると「A AND B」と解釈して検索してくれるような構文形式です。
ビューから全文検索を行う場合などUIからの処理のみに影響するので、FTSearchメソッドなどバックエンドの処理には影響しません。

Technoteでも記載があるとおり、英語版ではデフォルトで有効になっているので、バージョンアップして、「Lotus Notes」 と検索すると「Lotus AND Notes」に解釈されるので突然大量に文書がヒットしてしまったりするのです。

やはり製品のデフォルトでは、もっとも下位互換性が高いものにし、明示的にこの設定を有効にしたユーザーだけがこの構文を使うようにするのがよいのではないか?と言う議論を重ね、最終的には日本語版だけでも・・・と言う話になってこのような結果になりました。

結果としてこの辺の混乱はあまりなかったので、落ち着くところに落ち着いてよかったなー、と今でもビューから「Lotus Notes」とか入れて全文検索をするたびにほっとしたりします。

自己満足なのかもしれませんが。。。



一番下の階層の文書を取得する

2009年02月24日 00:16

 昔ビュー上でどうしてもこういうことを処理する必要があったので書いたのですが、せっかくなのでコードをブログ用に加工してみました。
ビューをキー検索して、その検索結果を親文書とする文書のうち、一番下の階層にある文書を返します。 とりあえずそのあとの処理は何でもいいので、Subjectフィールドの値を表示しています。

なので、パラメータを書き換えれば何とかボタンスクリプトで動くようにしているのですが、当然ながら検索するビューは検索に使用する列がソートされている必要があります。複数個の文書がヒットする場合には最初にヒットした文書から階層を探します。
以下のような構造の場合、「子文書3」を取ってきます。

○ 親文書
 ■ 子文書1
    □ 子文書1-1
 ■ 子文書2
    □ 子文書 2-1
    □ 子文書 2-2
       ■ 子文書3

複雑そうに見えますが、GetNextSibling メソッドを使って、「子文書の中で一番下の文書」を繰り返し探しているだけです。

どのくらい需要があるかは分からないのですが、自分がもう一回使うときにも便利だと思うのでブログに置いておきます。
 このくらいの処理はもっとエレガントなコードを書かれている方もいるのではないかと思うのですが、是非改善案などを教えて頂けると非常に私も勉強になるのでコメントください。


Sub Click(Source As Button)
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim SearchView As NotesView
Dim doc As NotesDocument

' Parameter
ServerName$= "ServerName/org"
DBPath$ ="xxxx.nsf"
viewname$= "ByID"
SearchKey$= "XX12345"

Set db=ses.GetDatabase(ServerName$,DBPath$)
Set SearchView = db.GetView(viewname$)

Set doc=GetDeepestDocFromThread(SearchView,SearchKey$)
If doc Is Nothing Then
' 関数内でエラーを返しているのでこのまま終了します。
Exit Sub
End If
Msgbox doc.subject(0)

End Sub

Function GetDeepestDocFromThread(SearchView As NotesView, SearchKey As String) As NotesDocument
' この関数は指定したビューのキーにヒットした文書を親文書とする文書から一番下の階層にある文書を返します。
' 指定したビューをキーで検索してヒットした文書が無い場合にはNothing を返します。
' 子文書が無い場合は親文書を返します。

Set GetDeepestDocFromThread = Nothing

Set ent = SearchView.GetEntryByKey(SearchKey,True)

If (ent Is Nothing) Then
Msgbox "文書は見つかりませんでした。処理を終了します"
Exit Function
End If

' 一番下の子文書を探す
Set nav = SearchView.CreateViewNavFromDescendants(ent)
While (ent.ChildCount > 0 )
Set navent = nav.GetChild(ent)
' 同じ階層内で一番下の文書を探す
For i = 1 To ent.ChildCount - 1
Set navent = nav.GetNextSibling(navent)
Next
Set ent = navent
Wend

Set GetDeepestDocFromThread=ent.document
End Function

バッファプールは大きくするべきか?

2009年02月23日 00:17

 このような文書が発行されていることをご存知でしょうか。

(参考)NSF_BUFFER_POOL_SIZE_MB パラメータ設定の推奨 (文書番号 731369)

ドミノサーバーはプロセス間通信などを容易にするために、他のアプリケーションと比べて共有メモリの使用量が多いと言われます。 NSF BUFFER POOL はその中核を占めるものでありますし、Notesの NSF関連のI/O をメモリに格納してくれるものであるならある程度の物理メモリを搭載している場合には出来るだけ大きな値を指定した方がよい・・・と言う理解の下にチューニングを行う際に大きな値を設定しているケースが大きく見受けられます。RDBなどで、バッファプールをチューニングする際にはそのように考えるのではないかと思います。

元々搭載物理メモリがそれほど大きくない時代には「搭載物理メモリの3/8程度」としてこれでもよかったのですが、昨今は4GB以上の物理メモリを搭載しているサーバー機も増えており、大きければよい、と言うよりも大きすぎる共有メモリが色々な問題を起こす、と言うケースも増えてきました。
上記の文書はこのような背景の下に発行されました。

この文書では4GBの物理メモリだと多すぎるのでたとえばWindowsだとユーザー空間は2GB使えるので、その3/8 くらい、750MB程度を限界にして下さい、という話は昔からサポートでも案内していました。
 しかし、最近では大きな値を設定しても本来の目的であるパフォーマンスメリットも得られず、共有メモリを圧迫するだけなので512MB程度を最大値にすれば十分であることが分かってきました。

実際に 公開されている Dominoのベンチマークをした際の設定を見てみても、バッファプールは小さく設定されていることが多いのではないかと思います。

チューニング目的で大きな値を設定された場合には特に、小さく設定変更をすることには難色を示されるケースも多いのですが、サーバーがクラッシュしてから初めてこの話を耳にするお客様も多いので、もし設定変更の機会があったら一度検討してみてください。

FAQ メールの配信を始めました

2009年02月20日 00:20

2月分の注目技術情報が発行されました。

Lotus Notes/Domino 注目サポート技術情報 (2009年2月)

今月は、先月からそれほど大きなアップデートは無かったのですが以下の文書がリストされていました。

(参考)セマフォとセマフォタイムアウト (文書番号 731775)

決して新しい文書ではないのですが、セマフォなども問い合わせをよくされる方の間では注目度が高いのかも知れません。
このブログでも一度セマフォの話をしてみてもいいな、て思いました。


今月からはFAQ メールと言うサービスが始まりました。何日に送られたのかは正確に把握していないのですが、すでに注目サポート技術情報の情報がメールで配信されているかたもいるのではないかと思います。このような情報のメールによる発信はUSでは以前から行われていたのですが、日本でも無事始めることが出来ました。

現時点では、メールを希望される方はコーラーとして登録する必要があるので希望者は誰にでも、とはいかないのですがRSS 以外にもPush型の情報配信が出来ないか、と以前から考えていたので技術情報の活用につながればいいな、と思っています。

DWA: すべては h_PageUI から

2009年02月19日 00:20

 DWA は、8.5 でだいぶPage Architetcure が変わりました。
他にも色々と改善されていて興味深いのですが、メールテンプレート、サーバーサイドモジュール、Forms Databaseが相互に補完しながらページを生成するDWAのPage Architecture は 8.x以前のものをよく知っておくのは重要だと思います。

R5.0.8 でDWAが出たときにはブラックボックスとなっていた部分が多く、Notesの思想から外れている、と言う批判も度々受けていたDWAですが、他のアプリケーションと同様に見える、とは言えませんが最近ではだいぶ色々な情報が出てきています。

※ サポートの観点からコメントしておくと、DWAのカスタマイズはリスクが大きいだけでなく、バージョンによってカスタマイズ内容なども大きく変わる可能性も大きく、バージョンアップごとに大幅な改修が強いられ、バージョンアップなどの大幅な工数増加につながることも多くあります。結果として対応や調査などが遅れる可能性もあるなどしますし、通常のメールテンプレート以上にカスタマイズをしない事を強く推奨しています。
 この辺の話はあくまで、Architectureに対する理解を深めるためのトピックとご理解ください。

さて、ページ生成の話は、先日紹介したRedbookが一番体系的にまとまっていると思うので、そこでもいいのですが、今日はSandboxから拾ってきた、Lotusphere 2007のプレゼンファイルから紹介します。

せっかくNotesから開く方法を昨日紹介したので、Notes URLで紹介しましょう。

Lotusphere 2007: AD304 - IBM Lotus Domino Web Access Customization
ブラウザからのURLは以下の通りです。
Lotusphere 2007: AD304 - IBM Lotus Domino Web Access Customization

さて、ここで見て欲しいのはPDFの26ページから始まる「h_PageUI Form synopsis」のトピックです。DWA のページは、ビューもフォームもすべてh_PageUI と言われる1つのページから生成されます。

DWA Page Architecture (8.x 以前)

ここから種々のビューやフォームを生成しています。
上の黄緑色の部分がSceneといわれるもので、Notesのフォームで言うFormフィールドのようなものなのですが、コンテキストに合わせて色々なページを生成していきます。

詳しく話すと切りが無いのですが、Formsを眺めてみるときに、この辺が分かっているだけでだいぶ理解しやすくなるのではないかな、と思います。
以前紹介したDOM Inspectorなどを使っても、一番上位にあるFORMタグが、h_PageUI になっているのが分かると思います。

Sandbox/Fix List/Notes Domino Forum はNotesクライアントで!

2009年02月18日 00:04

 Fix listなどをWebからアクセスしていると、どうせNotesベースのアプリケーションなんだからNotesの全文検索とかクイック検索を使って探したい、と思っている方はいないでしょうか?

Fix List やSandbox、Lotus Domino Forumは同じサーバー上で動いていますが、これはNotesクライアントからアクセスする事が出来ます。

詳細は以下の文書を見てみてください。ここではFix Listについて主に言及されていますが、サーバーは同じなので、アクセス方法は同じです。

Lotus Notes クライアントを使用して Fix List データベースを閲覧する方法 (文書番号 731617)

複製、ビュー検索、全文検索使えてみるとずいぶん身近に感じていただけるのではないかと思います。

接続文書を作るのが嫌いな方のために、FQDN指定でNotes URLを記載しておきます。
Notesクライアントを導入している端末ならそのまま開けるはずです。

Notes/Domino Fix List

Notes/Domino 6 and 7 Forum

Notes/Domino 8 Forum

IBM Lotus Notes/Domino 8.5 Forum

Lotus Sandbox

Lotus iNotes ウルトラライトモード (iPhone用)のデモページ

2009年02月17日 00:01

Ultralite のデモは何度か見た事があるのですが、フリック(指で払うような操作の事です)とかiPhone らしい操作まで含めて見た事は無かったので面白かったです。

8.5 からは iPhone 3G や別名をサポートしたので利用も増えるかもしれません。
2009/03/12 Updated : Ultaralite は別名をサポートしない事が分かりました。私の方もライト・モードの別名サポートと混同していました。大変申し訳ありません。





それと製品のデモなどがこのようにYouTubeなどで見れるのはいいですね。
このデモ自体が製品の簡単な使い方説明になっているので、技術者の人が見ても面白いのではないかと思います。

余談ですが、USではこういうマルチメディアを使用した技術情報などが増えてきています。
日本ではそれほどスピーカーで音を出しながら技術情報を見るってないのではないかなあ・・・と思ってしまうのですが、この辺は少し動向を見守っていこうと思っています。

DWA の Obfuscation について

2009年02月16日 00:29

よくDWAのFormsX.nsf は「設計を読めなくしている」と言われる事があります。少なくとも、Lotus Domino 7.x 以降についてはこの表現は適切ではありません。
デザイナーで開くと、確かに改行も無くJavaScriptのコードが並んでいて読みにくいのですが、これは改行をなくしたり、関数や変数名を短くすることによってコードサイズを小さくする「Obfuscation」と言われるJavaScriptの最適化を行っているためです。パフォーマンス向上のために行った措置によって結果として読みにくくなっただけで、コード自体を読めなくするような措置をしているわけではありません。
 よくObfuscationの事を日本語で「難読化」と表現している人も見かけますが、これもObfuscation があたかもコードを読みづらくするための技術であるかのような誤解を与える表現のような気がします。

6.5.x以前のFormsでは、確かに一部読めない部分がありました。
これは、たとえば Forms6.nsf を見てみると、Base64エンコードされた文字列が並び、実際にデコードしてみても意味のある文字列が現れず、解釈不能な部分がありました。これは、@関数をコンパイルした形式で格納していたためで、Obfuscationとは全く異なる理由で読めなくなっていたのです。

 通常Obfuscationは機械的に行うのが普通で機械的に行った場合、元の関数名(変数名) → 短くした名前のテーブルを生成します。
 このObfuscation List は Lotus Domino 7.x 以降はFormsX.nsfのファイルリソースにObfuscationList.txt と言う名前で同梱されているので興味ある方は一度見てみてください。

このあたりの詳細は以下のRedbookの3.1.1あたりにも詳細が記載されているので是非ごらんになってみてください。
Domino Web Access 7 Customization


 このRedbook は本当にDWAを勉強する上で参考になるので、またいつかここから記事を書こうと思います。

LotusScript でAssert を使う

2009年02月13日 00:10

 今日はOpenNTF.orgのCodebinのページから。

LS-ERROR - Minimal Error Handling for Lotus Script (OpenNTF.org)
LS-Error (Documentation)


LotusScriptのエラーハンドリングは色々な方法があるし、開発チームの運用によって色々なニーズがあるのでこういうエラーハンドリングルーチンのようなものを作っている方は多いと思うのですが、なかなか別の開発のときに流用するのは難しいのが現状ではないかと思います。実際このライブラリも便利な機能を持っているのですが、エラーメッセージが英語になったりするので抵抗をもたれる方も多いと思います。なので、ライブラリを眺めてみて面白かったエッセンスの部分だけを紹介したほうが有益かな、と思ったので今日はそんなお話です。

C言語などを勉強された方はAssert文を使用したエラートラップの方法をご存知なのではないでしょうか。簡単に言うと、「成立してはいけない条件式」を指定することによって予期しない処理を防ぐためのものです。If文でも同じことは出来るのですが第三者が見たときにも一発で目的が分かるし、必要があればDebugビルドだけで使用したり出来るので便利だったりします。

今回のライブラリでは、このAssertの関数が含まれていたので試してみましょう。
尚、このLSSファイルはボタンスクリプトでは正しく動かないのでエージェントを新規に作成してみてください。

チュートリアル
1. 新規にデータベースを作ってみてください。テンプレートなしでもかまいません。
2. 新規にエージェントを作ります。
   名前: Error Test (任意の名前を指定してください)
   イベント:アクションメニューから主導で
   対象: なし
3. このページからLSSファイルをダウンロードしておきます。
4.  エージェントペインで右クリックを選択し、「呼び出し」を選択します
5. ダウンロードしたLSSファイルを指定してください。一部書き換えが起こることが確認されますが、OKを選択してください。
6. 以下のようなコードを書いて、エージェントを保存します

Sub Initialize
Dim divisor As Integer
' divisorに初期値の代入忘れ。この場合0で初期化されます。
assert divisor <> 0 , "0で割ることは出来ません"
Msgbox "これは表示されません"
End Sub


7. デザイナーを閉じてサンプルデータベースを開きます。
8. メニューから[アクション]-[Error Test]を選択します。
9. 以下のようなダイアログが表示されます。

   Assertion failed: 0で割ることは出来ません。
at Error Test.INITIALIZE:0


これは代入忘れの変数などがあって0で割ったりすることが無いようなチェックコードを想定している例です。LotusScriptだとデバッグビルドなどは無いので単に可視性の意味のほうが大きいですね。


どんな処理をしているのでしょうか。

Public Sub assert(Byval condition As Integer, message As String)
If condition Then Exit Sub
Stop
Error 1000, formatError(Nothing, {Assertion failed: } & message, Getthreadinfo(10))
End Sub


formaterrorなどはさらに別で定義している関数ですが、エラーメッセージを整形しているだけなのでこの際立ち入ることはしません。
当たり前のように見えますが、以下のような事は参考になると思います。経験のある開発者が読んだらそんなこと言われなくても分かっている!と怒られそうですが。。。

・ Stop関数の利用
 ランタイムエラーが出たときにデバッガを使っていると自動的に止まるので便利ですね。
これもエラーハンドリング関数では付けておくと便利だと思います。当然 ですが、ConditionがTrueのときは止まりません。

・ GetThreadInfo の利用
10はLSI_THREAD_CALLPROC の事なのですが呼び出し元ルーチン名が表示されるように指定しています。
ランタイムエラーハンドリングの関数を作る場合は必ず呼び出し元を作らないと意味が無いですよね。

他にもCatch-Throwのような処理をEmulateするような関数があったりするようなので、使ってみると面白いのではないかと思います。

エラー処理そのものは業務ロジックを含んでいないので、どうしてもこの実装は開発者の良心とか美学だけにかかってしまっているところがあるのですが、エラー処理がしっかりしているアプリケーションは様々な問題が起こっても改修や対応が迅速に行えたり、メンテナンス性は大きく変わるのではないかと思います。是非経験のある開発者が身近におられる方は色々ノウハウを教わってみるといいのではないかと思います。(私も教わりたいくらいです。)

To/cc/bcc をドラッグ&ドロップで移動する

2009年02月12日 00:39

 よく全員に返信でメールを返すときなどに、To は別の人にして、Toにいる人はccに動かしたくなるときがあります。

実は8.5からはこのようなときはアドレスをドラッグ&ドロップで移動できるようになっているのですが、8.0.x以前では通常のメール作成画面ではこのようなアドレス移動は出来ません。

このようなときは、「宛先」のリンクを押して「宛先の選択」ダイアログを起動してみてください。
ここではドラッグ&ドロップでアドレスを移動できます!

8.0.xでは動くことは確認しているのですが、7.xでも出来るはずです。
確か7.xの新機能だったと思うので、6.5.x では分かりません。。。 6.5.xやR5 でも使えるそうです。 - Updated on 2/21)


Thanks to Alan Lepofsky
Drag and Drop Recipient Names

Domino 8.5 AIX 32 bit 版の入手について

2009年02月10日 00:20

アップグレードの予定が無い方にはあまり面白くないだろう、と思うので8.5の記事ばかり集中するのは出来るだけ避けるようにしているのですが、また8.5関連のアナウンスです。

Domino 8.5 からはAIX の32bit版入手についてダウンロードリクエストを行って入手するような方法での配布になっており、PA Onlineから入手出来るのは64bit版のみになっています。

How to download Domino 8.5 AIX 32-bit (文書番号 1370022)

AIXの場合、32bit版を使用する際にも、64bitカーネルを導入するのが前提なので比較的ここの透過性は高いのですが、8.5を検討される際には一度64bit版への変更を検討されたほうがよいのではないかと思います。 これは単純にダウンロード方法が面倒になる、と言う意味だけではなく、サードパーティ製品などでも64-bit版からサポートされたり、32-bit版はサポートしない製品が出てくる可能性も高いので、デメリットも出てくるのではないかと思います。

これもいざテストを開始しよう!と思ってからこうなっていることに気が付く方も多いのではないかと思うので事前に周知出来たらよいのかな、と思ってブログで紹介させて頂きました。Technoteについても日本語での情報公開も近々行う予定です。

特定の修正が関連している Notes.ini

2009年02月09日 00:10

 Notesを触ったことが無い人に、なぜNotes/DominoはNotes.ini を使用した設定があるのかを説明するのは非常に難しいな、と思います。
 Debug用の設定であることもあれば、Notes.ini設定として実装することによって既存のGUIに変更を与えずに新しい設定を加えることも出来るし、ある程度以上のパワーユーザーが理解したうえで設定してほしいものであったり、色々なケースがあるので一言で説明しがたいですよね。 僕は「Windowsで言うと、boot.ini でしか出来ないような設定がNotesにはたくさんあってそのような目的のためにあるもの」と説明したこともありました。これでもNotes.ini について一部しか説明していないと思います。

さて、特定のMRでの動作変更を小さくしたり、選択的に修正を導入するようにしたいとき(その修正を望む人と望まない人がいることが十分に想定される場合)特定の修正はnotes.iniで導入されることがあります。

サポートからすると、あんまりよろしくない動きだったらデフォルトで入れてほしい、と思うことも多いのですが、チューニングやTipsの類では無いのですが、言われないとあることが知らないかもしれない、Notes.ini パラメータ達を紹介したいと思います。

始めは、@Trim の問題です。特定の条件で文字間にある全角スペースを半角スペースに変えてくれない、と言う問題なのですが、これはNotes.ini で修正が有効になるようになっています。
クライアントとサーバーに入れないといけないので少し面倒くさいかもしれません

@Trim が文字間にある全角スペースを半角スペースに置換されない (文書番号 731295)

  AT_TRIM_CONVERT_SPACE=1
  (7.0.4/8.0.1 以降)

次はスタンダードクライアントでクイック検索中にIMEが全角に変わってしまう問題なのですが、これもダイアログの変更を伴うためFP1ではNotes.ini で有効にするような形式になりました。

クイック検索を行うと 2 文字目から IME が半角英数からひらがなに戻ってしまう(文書番号 #732203)

   UseJavaQuickFindDialog=1
   (8.0.2 FP1 Only。8.0.3やCCH3 では不要)


次は、CopyToDatabaseメソッドでコピーと削除を繰り返すような使用方法をしている場合、UNIDが使いまわされる可能性があるため、複製などが予期しない結果になることがある問題です。
 これも修正がNotes.ini で有効になるようになっています。アクションなどから実行される場合にはクライアントにも設定が必要です。

(参考)CopyToDatabase メソッドでコピーされた文書が元文書から UNID を再利用していることについて (文書番号 731844)

   CopyToDatabase_New_UNID=1
   (6.5.2/7.0 以降で利用可能)


今度の例は修正がSendメソッドの動作変更を伴うため、無効にするオプションが提供されたケースです。Sendメソッドで受信者が読者フィールドに入っていない場合だけ発生するので、意図的にこのようにするアプリケーションはあまり無いのではないかと思っているのですが。。

(参考)ルータータスクが自動的に文書の読者フィールドに受信者の名前を追加する (文書番号 #731887)

   RouterRecipientFixOff=1
   (7.0.3/8.0 以降)

次にダブルクリックによる添付ファイル起動が時間がかかる場合がある、と言う問題ですが、これもR6の頃のインフォボックス形式に戻す設定です。以下の技術文書に記載している問題にヒットしている場合、ダブルクリック後、10秒くらい何も応答が無いような状態になる事があるのですが、この設定をすると起動が早くなることがあります。インフォボックスにする分、ダイアログの説明文が少し短くなりますが、使える機能が減るわけではありません。
[添付ファイルを開く] ダイアログボックスから添付ファイルを開くと時間がかかる (文書番号 729462)

   UseR6AttachHandling=1
   (7.0.4/8.0.1 以降)

これと同様に、8.0.1 から「ダブルクリックしたらとりあえず添付ファイルを起動する」と言う動作にすることも出来ます。添付ファイルの編集や削除などの特殊操作は右クリックからやる、と言う考え方ですね。

Ability to double-click on attachments to open without the 'Open Attachment' dialog box displaying (文書番号 1292126)

   AttachmentActionDefault=1
   (8.0.1 以降)

どれも手当たり次第に設定するようなものではないですが、知っていたら設定したかった!と言う人もいるかもしれないので、ここでまとめて紹介させていただきました。

こういう話も技術文書や問い合わせの中で紹介する機会はなかなかないので、ブログのネタにいいかな、と思ったので。。。

8.0.2 FP1 用のJarファイル作りました(未読メール)

2009年02月06日 01:32

8.0.2用のJarファイルを作ってみました。
以下のようにSkydrive経由で入手できます。

8.0.2 FP1用Jar ファイル (SkyDrive)


FP1では以下のようなファイル名になっています。

<プログラムディレクトリ>\framework\shared\eclipse\plugins\com.ibm.notes.branding_8.0.2.20090113-2100.jar


変更方法の詳細については以下の文書を参考にしてください。
8.0.2 Standardクライアントでの未既読の色を変更する

Windows 2008 が Lotus Domino 8.5 でサポートされました

2009年02月05日 00:09

 製品のリリース後にこういうアナウンスが出るのは変だと思う方もおられるかもしれないですが、 Windows 2008 のサポートが Lotus Domino 8.5 で表明されました。


Domino 8.5 is now Certified on Windows 2008 (#1366754)

Lotus Domino 8.5 ではそもそも Windows 2008 をサポートする事をゴールに開発されていたのですが、ここでの記載にもある通り、テストの関係上 Windows 2008のサポートは製品出荷後にテスト完了時点で表明する、と言う事になっていました。

マシンなどをリプレースするときに新しいOS・新しいソフトウェアバージョンでの検討をされる事は多いと思うので、最新のWindows がサポートされた事により、 Lotus Domino 8.5 の導入を検討して頂ける材料になれば幸いです。

8.0.2 FP1 追加情報

2009年02月04日 00:51

 いくつか文書が発行されたので連絡しておきます。

Lotus Notes/Domino 8.0.2 Fix Pack 1 (FP1) について(#732349)
(参考)Lotus Notes/Domino の メンテナンスリリース、Fix Pack および CCH の違いについて (#732343)


FP1はどれも需要が高い修正が入っているのですが、クライアントはどの問題がヒットしやすいかはばらつきがあるので、サーバー側の問題について個人的に問い合わせでよく見る問題を挙げておきます。(コール分析をしたわけではないのでその点はご了承下さい)



Time on the Domino server moves ahead or behind the time of the operating system time (時間がずれる問題)

メールの本文や件名に含まれる → 記号が ? 記号に変換される

Lotus Domino R5.x と Lotus Domino 8.0.2 間の複製処理でエラーが発生しレプリカできない

(参考)Lotus Domino 8.0.2 で load compact -c -i を実行すると警告メッセージが無視されるため、データベースが破損する場合がある

Router タスクが Remove822Comment() を含む処理でクラッシュする

Lotus Domino 8.0.2 環境において、インターネットへの受信確認レポートを送信する時に Router タスクの CPU が高騰する

LMBCS

2009年02月03日 00:50

 NotesがLMBCS (Lotus Multi-Byte Character Set)を使っている、と言うことをご存知な方は多いと思いますが、なかなか詳細には公開されていない部分もあるのでブラックボックスに見える方は多いのではないかと思います。
 
 このブログでその全容を書くことまでは出来ないのですが、簡単にLMBCSの概要を説明することが出来たらな、と思います。

■ LMBCSとは?
 LMBCSはおよそ20年ほど前にLotus 1-2-3ファイルとNotesデータベースで複数言語を扱うためのキャラクターセットとして使用するために考えられました。

一般的に、LMBCSは1-3バイトからなる文字列です。
[グループバイト G] データバイト D1 [データバイト D2]

つまり、少なくとも1バイトのデータバイト(D1)は含みますが、グループバイトやデータバイト D2 は含まない場合もあります。

■ 1バイト文字
0x20-0x7FのASCII文字の領域は、LMBCS でも1バイト文字として扱います。
この意味で、LMBCSはASCII文字のスーパーセットであるといえます。

0x01-0x1F はグループバイトを表す文字として使用されます。
ただし、以下の文字は例外です。
0x09 : 水平タブ
0x0A : Line Feed
0x0D : Carriage Return
0x19 : (1-2-3用)

0x80 以上の文字を1バイト文字として解釈する必要があるときは Codepage 850(Extended Ascii)として解釈します。


■ グループコード
1バイト目が、グループコードの範囲であったとき、(上で定義した特殊文字を除く0x01-0x1Fの範囲の文字)その文字はマルチバイト文字と判断されます。 このとき1バイト目(グループコード)国をあらわします。国を表す、と言うと分かりにくいのですがNative Charactersetのような意味だと思ってください。日本語ならShift-JISになります。
以下が代表的な例です。

0x08 トルコ語
0x0B タイ語
0x10 日本語
0x11 韓国語
0x12 中国語(繁体字)
0x13 中国語(簡体字)

Notes.iniファイルなどに日本語が入っているときに0x10 と言う文字が入っているのを見た事がある方は多いと思います。(ノートパッドでは黒い四角のように見えていると思います)これはLMBCSのグループコードが入っているわけです。そのあとの字が正しく表示されているのは日本語の場合Shift-JISだからなのです。


■ 1バイトしか使用しないダブルバイト文字の場合
たとえば日本語の場合、半角カナのように1バイトしか使用しないケースがあります。
このような場合は、グループコードを繰り返すことによって表記します。

たとえば、 半角かなの ァ(0xA7)と言う文字を表すのであれば
0x10 0x10 0xA7
のようにグループコードを繰り返して表記します。



あんまり詳細まで入れませんが、LMBCSと言っても日本語を扱う限りにおいては、Shift-JISに0x10とか余計なバイトが紛れ込むだけでそれほど訳の分からない文字でもないことが分かってもらえるのではないかと思います。


Lotus Notes/Domino 8.0.2 FP1 リリースのお知らせ

2009年02月02日 01:56

 待望の8.0.2 FP1が出ました。例によって日本語のドキュメントは現在準備中ですが、以下のページより詳細な情報をご確認ください。

Download Fix Pack 1 for IBM Lotus Notes and Domino 8.0.2

修正の一覧は以下の文書から入手できます。
Release Notice for Notes/Domino 8.0.2 Fix Pack 1

ここに来て、MR、CCH、FPのように似たような単語が出てきたので違いについて説明をした以下の文書も同時に発行されました。この文書は日本語版も発行する予定です。
Differences between Notes/Domino Maintenance Releases, Fix Packs and Cumulative Client Hotfixes

8.0.2 FP1 は以下の点で今までのFixpackにはなかった新しい試みがなされています。

- PA Onlineからの入手だけでなく、Fix Central 経由の入手が行えるようになりました。
- サーバーサイドのFix だけでなく、クライアントからのFix Packが含まれるようになりました

クライアントFixが含まれるようになった点は意味が大きいとは思うのですが、8.0.2 では今日時点でCCH3 まで出ています。これと混同して紛らわしいし、何が違うのか疑問に思う方も多いのではないでしょうか。

この点について補足説明を与えるために、「Differences between Notes/Domino Maintenance Releases, Fix Packs and Cumulative Client Hotfixes」の文書が発行されたわけですが、ひと言で言うとHotfixとして出しているCCH よりもFixpackの方がより大規模な出荷前テストが行われているので、以下のような意味づけの違いがある、事が大きな意味を持つのではないかと思います

CCH = Hotfix: 発生したお客様・ヒットすることが予想されるお客様が適用
Fixpack: 予防保守として適用


したがって、CCHは比較的フットワーク軽く短い間隔で出るのに対し、FPはそれほどの頻度では出ません。また今回はCCH3とFP1の間隔が非常に短かったために、FP1だけに含まれるクライアント障害、またはCCH3だけに含まれるクライアント障害、と言うのが双方ある状態です。
 時期についてはまだ分からないのですが、追加の修正をやはりFPに対しては出していくことになるのではないかと思っています。

少し色々出て煩雑になってしまった点はあると思うのですが、ぜひともFP1は一度見ていただくとよいのではないかと思います。


最新記事