2008年2月27日 (水)

通知機能について

SharePoint には通知機能があり、新しいアイテムの投稿や変更があった場合などにメールで知らせてくれます。

通知されるタイミング

通知のタイミングは次の3つがあります。

  • すぐに通知する
  • 日に一度通知する
  • 週に一度通知する

このうち"すぐに通知する" は、"すぐに" と言いつつ既定では5分のインターバルがあります。通知のタイマージョブは5分間隔で実行されます(ワークフローテンプレートを利用した際のメール通知も同様です)。パフォーマンスの面からこうした仕様になっているようです。

このインターバルはstsadm.exe を使って変更できます。とはいえ、間隔が短ければ短いほどデータベースの呼び出し回数が増えることになるため、パフォーマンスが低下する可能性があります。たとえば、MSDNの「Joel Oleson's Blog SharePoint Land 」ブログの中で Joel Oleson さんは、パフォーマンスを最重要視するのであれば30分間隔にすることを勧めています。つまり、インターバルを変更する必要がある場合は、パフォーマンスを考慮しつつ、組織の事情に合わせて最善のタイミングへとチューニングする必要があります。

[構文例]
stsadm.exe -o setproperty -propertyname job-immediate-alerts -url URL -propertyvalue "every n minutes between 0 and 59"
(※propertyname は pn 、propertyvalue は pv でも可)

例) stsadm.exe -o setproperty -pn job-immediate-alerts -url http://moss2007/sites/top -pv "every 10 minutes"

このコマンドについては、おりば~ずさんのブログでも言及されていましたのでこちらも参考になります。http://sharepoint.orivers.jp/blogs/orivers/archive/2007/01/25/63.aspx

※なお、以前、コマンドを実行しても通知の頻度が変更されないことがあったのですが、 "Windows SharePoint Services Timer " を再起動するときちんと反映されるようになりました。このサービスは、Windwos Server 2003 「管理ツール」の「サービス」管理コンソールもしくは net stop/start コマンドを使用して再起動できます。ご参考まで。

イベントの記録

通知設定後はアイテムの変更などの記録があってはじめて通知メールが生成されるはずですが、それはいったいどこに記録されているのでしょうか? その情報はコンテンツDBの内部にあります。

通知ではコンテンツDB内の "EventCache" テーブル、 "EventLog" テーブル、"EventBatches"テーブルが使用されています。

関連しそうなストアドプロシージャを調べてみると "proc_AddEventToCache", "proc_AddEventToCacheForDeleteRestore","proc_DeleteEventLog","proc_GetEventDataAndSubscriptionFilters" などがありました。

変更情報はまず EventCache テーブルに書き込まれ蓄積されていきます。そしてタイマージョブのタイミングで 通知が生成される際に EventCacheテーブル、EventLog テーブルと EventBatches テーブルが更新されます。

既定では変更ログは15日間残るようになっています。ですから、EventCacheテーブルなど見ても、今日の日付からさかのぼって15日間しかデータがないことが確認できます。期限の切れたログエントリがある場合は毎日実行されるタイマージョブが削除します。なお、この15日間という期間は、Webアプリケーション単位で変更可能です。

変更ログの保持期間の変更

  1. 「SharePoint サーバーの全体管理」の「アプリケーション構成の管理」を開きます。
  2. [SharePoint Web アプリケーション構成の管理]セクションにある[Webアプリケーションの全般設定」をクリックします。
  3. [Web アプリケーション]セクションで設定を変更したい Web アプリケーションを指定します。
  4. [変更ログ]セクションで保持期間を変更します。

    Changelog


参考:
Joel Oleson's Blog SharePoint Land (英語)
Microsoft SharePoint Developer Documentation Team Blog (英語)

トラックバック

このページのトラックバックURL: http://bb.lekumo.jp/t/trackback/718613/34255761

通知機能についてを参照しているブログ:

コメント