fc2ブログ

DAOS FAQ 公開されています

以下のような文書が公開されています。

DAOS よくあるご質問 (FAQ)

# 大川さんのブログでも紹介されているのでトラックバックをつけさせていただきました。

DAOSは機能だけを聞くと、「共有メールと似たような機能」と思って添付ファイルを集約した分色々不便になったりするのではないか?と思う方もいるかもしれないですが、DAOSでは添付ファイルをNSF内ではなく、暗号化された通常ファイルとして保存する事によってバックアップなどの柔軟性を高めています。

このような点について簡潔なQA形式でまとめられているので、一度読んでみるとよいのではないかと思います。どんな感じの内容か分かるように、代表的なQAなども抜粋してみます。
単純に冗長な添付ファイルを減らす、と言うだけでなく運用面なども考慮されて扱いやすくなっているのが分かるのではないでしょうか。

システム構成編
Q3. DAOSリポジトリーは、どのように実装されていますか。
A3. DAOSリポジトリーは、OSレベルのファイルシステムとして実装されています。1つの添付ファイルにつき、拡張子NLO(Notes Large Object)を持った1つのOSレベルのファイルが作成されます。
Windowsサーバーの場合の例を示します。
(図は省略します)
NLOファイルは、デフォルトではサーバーIDファイルで暗号化されますので、ファイルシステムに直接アクセスして開くことはできません。ファイル名はランダムに決定されますので、ファイル名から中身を想像することも不可能です。


運用編
Q1. DAOS環境でのバックアップの考慮点を教えてください。
DAOS環境下では、NSFファイル、NLOファイル、daos.cfg、daoscat.nsf の4種類のファイルのバックアップを取得する必要があります。

基本的には、サーバーを停止させてバックアップを実行します。Dominoバックアップ・リストアAPIを実装したバックアップツール(Tivoli Data Protection for Domino, etc)でオンラインバックアップを行う場合、NLOファイルよりもNSFファイルを先にバックアップします。これは、NSFから参照されるNLOファイルが全てバックアップに含まれるようにするためです。

バックアップする間隔は、サーバー文書のパラメーター「オブジェクトを削除するまでの保留日数: 」で指定した日数よりも短い間隔にする必要があります。これは、リストアする時を考慮し、NSFから参照されるNLOファイルがディスク上に存在するようにしておくためです。

NLOファイルは、一度作成されたら、更新されることはありません。従って、NLOファイルは、バックアップツールを使用して差分バックアップが可能です。


# 余談ですが、DAOSは「デイオス」と読みます。D・A・O・Sとかダオスとか色々想像してしまうと思いますが。。 これと似たものとして Domino Access For Microsoft Outlook (DAMO)もダモと呼ばれることも多いですが、正しくは「デイモ」と読みます。。この辺は日本人には少し分かりにくいですね。

Notes のエラーコード

Purchase and enjoy MagabloSM!
This content is a MagabloSM (pay-to-view).
Purchase this content to continue to read!
What is MagabloSM?

Multimedia : System i のスレッドIDについて

こんな技術文書が公開されていました。

(英文) Multimedia: Understanding Lotus Domino Thread ID architecture (文書番号 1321117)

NSDなどのスレッドIDでは通常プロセスID・Native スレッドID・仮想スレッドIDの3つが記載されているのですが、System iの場合Job Numberも表示されているのでどれがどれだっけ?と混乱しやすいのでどこでどのIDが使われているかがまとめてあります。

他のプラットフォームの方にはあまり興味がない話題かもしれないですが、短いスライドショーですし、スレッドIDやプロセスIDがどのようにコンソールやNSDで使われているかを大まかに見れるのでよいのではないかな、と思います。


HTTP のメモリーエラーの問題

今日はこのTechnoteのお話をしようと思います。

HTTP タスクでメモリエラーが不定期に発生する

HTTP タスクではプロセスヒープを多用するためにアクティブスレッド数が多い環境や平均的にメモリの使用量が多いとき(Technoteにあるように大きな添付ファイルを頻繁に開くときなど)にはNotesのメモリーマネージャーを使うよりOSのmalloc() を使った方が効率がいい場合があります。

その設定がこのパラメータです。

HTTPUseNotesMemory=0
INotesUseNotesMemory=0


BLK_LOCALやHTMEM_HTTPD_MEM_BLOCK がありますが、どちらも微妙に用途が違うだけでHTTPのプロセスヒープに使用されるブロックです。

今の自分に環境に適用するべきかどうか?ですが、特にHTTPのメモリ周りの問題に苦しんでいないのであれば設定は必要ないと思います。
ただ、アクティブスレッド数が多かったり、大きな文書をWebから多数のスレッドで開く事が想定されるなどメモリ周りで心配がある場合には障害の未然防止の観点から設定してもいいのではないかと思います。

あと、iNotesというパラメータに戸惑う方もよくおられますが、これはInterNotesなどのINOTESで、別にDWA用の設定ではありません。通常のWebサーバーでも有効な設定です。

是非何かの時には思い出してみてください。

8.x での変更 - SERVER_MAX_CONCURRENT_TRANS / SERVER_POOL_TASKS

今日はこのTechnoteからのお話をします。

(参考)Lotus Domino 8.0 以降における SERVER_MAX_CONCURRENT_TRANS および SERVER_POOL_TASKS のデフォルト値 (文書番号 732438)

この二つのパラメータを聞いてすぐ説明できる人はNotesの技術者経験が長い人でもそれほど多くないのではないかと思います。
 カスタマーサポートでもこの設定変更はサーバーの使用するリソースに直接影響するので、チューニング目的などで安易に変更することはしないように話していました。
加えてこの辺の動作はR5.x以降デフォルト値も含めて大きく変わってないので、デフォルト値のままで大きな問題が出るとも思えなかったのもあります。

このデフォルト値の計算ロジックが8.x以降大きく変わっている点について紹介されているのがこのTechnoteの内容です。ひと言で言うと今までよりScalableな設定値を使用するようにした、と言っていいのではないでしょうか。

プラットフォーム毎に動きは異なるので、詳細はTechnoteを参照して頂きたいのですが、ここでは背景的な話を含めて概要を話したいと思います。

Serverタスクはスレッドプール方式を採用していますので、複数のスレッドがユーザー要求を処理するために待ち受けていますが、あらかじめ固定した数だけスレッドプール用のタスクを起動します。
このスレッドプールの個数は、NSDを見ても分かりますが、show task debug で「Thread pool member on TCPIP」のように出ているスレッド数を数えると分かります。

Server_Pool_Tasks はこの数を調整するものです。R7.xまでのデフォルトではTCPポート毎に40(SERVER_MAX_CONCURRENT_TRANSの2倍なのでSERVER_MAX_CONCURRENT_TRANSを変えるときには注意が必要です)になっていますが、8.x以降ではここは、SERVER_MAX_CONCURRENT_TRANS と同じ数が使用されるようになりました。

SERVER_MAX_CONCURRENT_TRANS は最大同時トランザクション数です。
Dominoの世界でトランザクションと言うのは、「1つのAPIやNRPC要求による処理」に相当するものですが、この同時トランザクション数が制限されている、と言う事はこの数を越えた要求が来たらクライアント側は他の処理が終わるまで待たされる事になります。
 R7.x 以前ではSERVER_MAX_CONCURRENT_TRANSのデフォルトはServer_pool_tasksの半分だったので、40ユーザーが同時に何らかのトランザクションを実行しようとするとサーバー上の半分の要求は待たされてから実行されていました。
 元々サーバー側で過負荷を避けるためにこのように抑えた設定をしていたのですが、8.x以降にはSERVER_MAX_CONCURRENT_TRANS と Server_Pool_Tasksは同じ数が使用されるようになったので、同時トランザクションによるScalabilityは向上しているのではないかと思います。

ただし、1プロセスで200スレッド以上を超えるような設定はやはり推奨していないので、以下のような環境のお客様は一度自分の環境を確認してみるとよいのではないかと思います。

・ CPUの数が5つ以上
・ TCPポートが3つ以上ある

7.x以前をご利用のお客様でこの辺を変更して評価してみたいお客様に対しては、私は以下の設定から試してみる事をお勧めしています。

Server_Pool_Tasks=40
SERVER_MAX_CONCURRENT_TRANS=40

こうすればスレッドプール数は変わらずに、同時トランザクション数だけが増えるので比較的安全に試せるのではないかと思います。

個人的にはちょっとした技術的興味だけで変更するのは止めた方がよいと思うのですが、8.xでのデフォルト値変更を機に、スレッドプールを増やした環境は増えてくるので少し動向を見守っていきたいと思っています。
また、8.xや8.5にバージョンアップをされるお客様もこの変更がされる事を頭に入れておいて頂けると何かの役に立つのではないかと思います。



新規メール通知

今日は新規メール通知の話をしてみようかな、と思います。

Notesクライアントではプリファレンスで新規メール通知を確認する頻度を設定する事が出来るような仕組みがあります。
実はこれとは別でサーバー側からクライアントに通知する仕組みもあります。この通知によって場合によっては新規メール通知より短い間隔で新規メールが確認できたりします。

この動作を無効にするパラメータがあるのですが、そこでの説明が一番分かりやすいと思うので引用しておきます。

IOCP_Disable_Async_Notification
Lotus Domino メールサーバーは、デフォルトで接続ユーザーごとに新規メールを 1 分に 1 回チェックし、新規メールがあるユーザーに通知します。ビューの更新などのその他のステータスの通知にも、同じ方式を使用しています。


ネットワーク上気をつけないといけないのはこのときにパケットの方向がサーバー → クライアント になることです。ネットワーク的にサーバーからクライアントに通知する事を想定していない場合にこの通知が意図せずブロックされてしまう事があったり、このようなパケットがハンドル出来ない事もあるので、何かドミノ→ノーツクライアントと言う方向のパケットで問題があるときにはこのような動作も頭に入れておくといいのかもしれません。

何だかあんまり役に立たない記事かもしれませんが、読者の皆様も新規メールにあまり追われずに済むよいクリスマスをお祈りしております。。。

developerWorks: 「Lotus Dominoと物理メモリの関係 ?Windows編?」公開されています

以前同じ記事のAIX版が公開されていたのですが、Windows版が公開されました。

Lotus Dominoと物理メモリの関係 ?Windows編?

Windowsのほうが普段のPCの感覚もあるので実感があるかもしれませんね。
タスクマネージャーで見たメモリ使用量の合計が2GBとか4GBを超えてしまうとか搭載物理メモリ量を超えているのはどうしてなんだろう?と疑問に思ったことがある人は多いのではないかと思います。

やはりこれもAIXのときと同じように仮想メモリ空間と物理メモリを一度整理して、見るとよいのではないかと思います。
こちらの資料もこの点について誤解しやすいポイントと概要について分かりやすくまとまっていると思います。
タスクマネージャーのメモリ使用量とLotus Notes/Domino でよく聞く共有メモリなどがどういう関係にあるのかよく分からなくないなー、と思うことがあったら一度読んでみてください。

# 蛇足ですが、ここで紹介されているインサイドWindowsも私も一度読んだ事があるのですが、非常に勉強になったのでこちらもお勧めです。

メールやカレンダーのフィールドの用途が知りたい

メールやカレンダーと連携するようなノーツアプリケーションを作っているとどんなフィールドを用意すればよいのか分からなくて困ってしまった方も多いのではないでしょうか。

もちろんこのような事態を避けるため、基本的にはこのようなアプリケーションはメールDBを拡張する形で開発して頂くのが一番よいのですが、それでもこのフィールドについて何か知りたい、と思うことはあるのではないかと思います。

このような情報を少しでも公開するため、以下のWiki にフィールドなどの情報が公開されておりますので、是非ご参照ください。

IBM Lotus Notes and Domino Calendaring & Scheduling Schema (Lotus Notes and Domino Application Development wiki)

ちょっと私も詳細までは見ていないので、どの程度有用なのかまでは評価しきれていないのですが、今度調査で必要になったら見てみようと思います。

入力補完

入力補完でどのような名前が出てくるか?と言うのはサポートでもよく問い合わせのあるエリアの一つです。

8.x 以降のスタンダード版クライアントでは「最近使用した連絡先」と言う機能強化も行われていて、ここの動作はますます複雑になっているのですが、まずBasic版の入力補完について基本的にどういう動きをするのか?と言う事についてまとめた文書を発行しました。

「あいまいな名前」ダイアログボックスと入力補完の動作について (文書番号 1497534)


基本的には入力時に十分候補を絞ったと思ってから選ぶ事を目的としていますので、佐藤と打って何件まで表示可能か?と言ったことにはあまり向いていないのですが、それでもなぜこの名前が出たのか?など色々な疑問が出てしまうことがあります。

変な候補が出ているときなどは該当のビューを直接ルックアップしたりするようなトラブルシューティングも出来るのではないかと思うのでこのような情報が参考になれば幸いです