Windows SharePoint Services のイベント ログ
通知の電子メール メッセージは通知が生成された変更の後で表示されます。電子メール メッセージの送信時に変更された項目が存在しないか、別のフォームで存在する可能性があるので、通知の表示にはイベント ログのデータが使用されます。
イベント ログは、EventCache という名前の SQL テーブルを使用して発生した SQL レベルのイベントを記録します。テーブルの各行はイベントに対応します。イベントは Windows SharePoint Services オブジェクト モデルを使用して確認することができます。
テーブルに書き込まれた行数は、イベントの意味を取り込むために必要な最小数です。イベントを確認するユーザーが、イベント行を使用して特定のイベントが示唆するすべての意味を解釈する方法を理解していることが前提となっています。たとえば、フォルダが削除された場合、変更ログに書き込まれるイベントはフォルダ削除イベントだけです。フォルダに含まれるファイルやサブフォルダのイベントは一切書き込まれません。フォルダ削除イベントを確認するユーザーは、それがフォルダの内容全体の削除を意味することを理解する必要があります。
注意
複数の Windows SharePoint Services 3.0 ドキュメント ライブラリにファイルをアップロードすると、予期したとおり通知の電子メール メッセージがドキュメント ライブラリから送信されます。ただし、通知メッセージは 1 つのドキュメント ライブラリからしか送信されません。この場合、通知メッセージはファイルをアップロードしたすべてのドキュメント ライブラリから送信されたものと予測できます。この問題は、2007 年 4 月 12 日付けの修正プログラム パッケージで解決されました。詳細については、「Windows SharePoint Services 3.0 hotfix package: April 12, 2007」を参照してください。
既定では、変更ログのデータの有効期間は 15 日間です。この有効期間は、SharePoint のサーバーの全体管理ページにある [Web アプリケーションの全般設定] ページを使用して構成することができます。タイマ ジョブは、期限が終了したすべての変更ログのエントリの削除を毎日実行します。
変更イベント
変更イベントは、SPChangeCollection オブジェクト内にオブジェクトとして返されます。各変更オブジェクトは、SPChange オブジェクトのサブクラスです。SPChange オブジェクトの種類に応じて、さまざまなプロパティを使用することができます。変更コレクションは SPSite.GetChanges、SPWeb.GetChanges、SPList.GetChanges、または SPContentDatabase.GetChanges を呼び出すことにより作成されます。SPChangeToken オブジェクトが GetChanges に渡されて、ログの読み取りを開始する位置を指定します。SPChangeToken オブジェクトは、ToString メソッドを呼び出すことにより、文字列形式にシリアル化することができます。
SPList.CurrentChangeToken プロパティを使用して、このリスト オブジェクトの現在の変更トークンを取得します。SPSite、SPWeb、および SPContentDatabase オブジェクトで同様のプロパティを見つけることができます。
通常、あるオブジェクトから派生した SPChangeToken オブジェクトは、別のオブジェクトの GetChanges メソッドでは使用できません。唯一の例外は、SPContentDatabase から派生した SPChangeToken オブジェクトがそのコンテンツ データベースに含まれるすべてのオブジェクトで使用できることです。
複数の変更トークンを格納するために使用できる SPChangeTokenCollection という名前のオブジェクトもあります。その後、変更トークンを単一の文字列にシリアル化することができます。
変更ログ イベントの種類
次の表では、変更ログに記録されるイベントの種類を説明します。Add、Modify、Delete、Rename、および Restore イベントの種類だけが通知に表示されます。
表 1 イベントの種類
イベントの種類 |
説明 |
Add |
オブジェクトが追加されました。項目、ファイル、およびフォルダの場合、ログの TimeLastModified 値がオブジェクトの Created プロパティと同じになる必要があります。 |
Modify |
オブジェクトが変更されました。項目、ファイル、およびフォルダの場合、TimeLastModified 値がオブジェクトの Modified プロパティと同じになる必要があります。 |
Delete |
オブジェクトが削除されました。 |
Rename |
オブジェクトの名前が変更されました。これは、URL のファイル名の部分が変更されたことを意味します。 |
MoveInto/MoveAway |
オブジェクトの名前が変更されました。これは、URL のパスの部分が変更されたことを意味します。ファイル名の部分も変更されている可能性があります。 |
Restore |
オブジェクトがごみ箱またはバックアップから復元されました。このイベントは、同期クライアントの変更ログの確認者に対して、オブジェクトおよびそのすべての子を再同期する必要があることを示します。 |
Role Add |
オブジェクトのスコープにロールが追加されました。 |
Assignment Add |
オブジェクトのスコープにロールの割り当てが追加されました。 |
System Modify |
Modified または Modified By プロパティが変更されずにオブジェクトが変更されました。ログの TimeLastModified 値は、Modified プロパティではなく更新が行われた時刻と同じになる必要があります。 |
Member Add |
SharePoint グループにメンバが追加されました。 |
Member Delete |
SharePoint グループからメンバが削除されました。 |
Role Delete |
オブジェクトのスコープからロールが削除されました。 |
Role Update |
オブジェクトのスコープでロールが更新されました。 |
Assignment Delete |
オブジェクトのスコープからロールの割り当てが削除されました。 |
Navigation |
オブジェクトのスコープでナビゲーション ノードが更新されました。 |
オブジェクトの種類
次の表は、変更ログに記録された変更のあるオブジェクトの種類の一覧です。すべてのイベントの種類がすべてのオブジェクトの種類で発生するわけではありません。
表 2 オブジェクトの種類
オブジェクトの種類 |
説明 |
Item |
このオブジェクトの種類は、リストのリスト項目、ファイル、およびフォルダに存在するすべてのオブジェクトに適用されます。 |
List |
リスト オブジェクトの種類 |
Web |
Web オブジェクトの種類 |
Site |
サイト オブジェクトの種類 |
File |
このオブジェクトの種類は、一覧にないファイルに適用され、対応する項目はありません。 |
Folder |
このオブジェクトの種類は、一覧にないフォルダに適用され、対応する項目はありません。 |
Alert |
通知オブジェクトの種類 |
User |
ユーザー オブジェクトの種類 |
Group |
グループ オブジェクトの種類 |
ContentType |
コンテンツ オブジェクトの種類 |
Field |
フィールド オブジェクトの種類 |
SecurityPolicy |
コンテンツ データベース全体に影響を及ぼす Web アプリケーション レベルでセキュリティ ポリシーの変更が行われました。このイベントは開発サイクルで後から追加されました。このため、このイベントとコンテンツ データベース レベルの復元イベントは SITEID "00000000-0000-0000-000000000000" を持つサイトレベルのイベントとしてログに記録されます。 |