解決方法: |
Dell EMCでは、インストールされている7.2バージョンに対して、以下のSourceOne Email Managementパッチのいずれかを適用することを推奨しています。 7.2 SP6 HF4(7.2.6.6229) 7.2 SP7以上 http://support.emc.comのSourceOne Email Management製品ページからダウンロードできます。
SourceOne Email Managementの修正版バージョンをインストールすると、今後のすべての検索ではすべての結果が反映されるはずです。 影響を受けるバージョンを実行している場合に実行されたすべての検索については、結果の完全性を保証するために再実行が必要です。
SourceOne Email Managementバージョン7.2.8では、Index Validationによって、重複や「Extra Items」コンテンツがあるインデックス セットを特定できる場合があります。これらの検証結果を使用して、再実行する必要がある検索を特定できます。次の手順を実行します。
最初に、Mode 2以降を使用してIndex Validationスキャンを設定します。Index Validationによって問題があるインデックス セットに黄色の感嘆符(!)のフラグが付けられ、インデックスのステータスが「Extra Items」になります。 以前のリリースでスキャンが実行されている場合は、SourceOne Email Managementコンソールで各YYYYMMフォルダーを右クリックして[Rescan]を選択することによって、再スキャンを実行できます。 スキャンが完了したら、すべての影響を受けるDiscovery Managerの検索を再実行する前に、「Extra Items」のステータスになっているすべてのインデックスを正常に再構築する必要があります。
以下の手順では、以前に実行したDiscovery Managerの検索のなかで問題があるインデックスセットを検索した可能性があるものを特定します。
注:以下のSQLクエリは、SourceOneデータベース名がデフォルトであることを前提としています。デフォルトではない場合は、クエリをSourceOneデータベース名の正しい名前に変更する必要があります。 まず、この問題の発生中に実行された過去のSourceOne Discovery Managerの検索を特定するために、以下のSQLクエリを実行します。
1. 以下のクエリを実行して、SourceOne環境のインストール日とアップグレード日を取得します。 use ES1Archive select EndTime into #TEMP from [DBMaintenanceHistory] where (version >=7 and version <7.27000) and Description = 'SourceOne Archive database update complete' insert into #TEMP select EndTime from [DBMaintenanceHistory] where Description = 'New SourceOne Native Archive database created' and Version >=7 and Version < 7.27000 GO
2. 以下のクエリを実行し、手順1で取得した日付に基づいて、実行されたDiscovery Managerの検索に関するすべての情報を収集します。
use ES1Activity; with cte as( select ActivityID as activityid,TaskTypeID,Name as SearchName,search.value('(@searchOperation)[1]','varchar(max)') as operation, search.value('(.)[1]','varchar(max)') as daterange, xConfig.value('(/SearchJobConfig/QueryString/SearchCriteria/@displayName)[1]','nvarchar(max)') as SearchUser from Activity cross apply xConfig.nodes('/SearchJobConfig/QueryString/SearchCriteria/ExpressionSet/SimpleAttributeExpression') as ref(search) where xConfig is not null --and --TaskTypeID = 8 and search.value('(@displayName)[1]','varchar(max)') = 'Date') select activityid,TaskTypeID,SearchUser,SearchName, 'StartDate' = Replace(CASE WHEN min(daterange) = max(daterange) THEN 'ALL' ELSE min(daterange) END,'T',' '), 'EndDate' = Replace(CASE WHEN min(daterange) = max(daterange) THEN 'ALL' ELSE max(daterange) END,'T',' ') into #SearchDates from cte group by activityid,TaskTypeID,SearchUser,SearchName
3. 以下のクエリを実行して、影響を受ける可能性のある検索に関するすべての情報を出力します。出力には、以下のようなDiscovery Managerの検索に関する基本的な情報が含まれます。
MatterName: |
検索が実行されたときに起こっていた問題の名前 |
SearchName: |
Discovery Manager Clientに表示される検索の名前 |
JobID: |
SourceOne Email Management Consoleの[Job Management]ウィンドウに表示されるJobIDの値 |
ActivityName: |
SourceOne Email Management Consoleの[Job Management]ウィンドウに表示されるアクティビティ名 |
Search Run Date: |
検索が実行された日付/時刻 |
Search Start/End Date: |
検索で使用された日付の条件。検索で[Date]フィールドが使用されていない場合は、すべての日付が検索されています。 |
Executing user: |
検索を作成して実行したユーザー |
use DiscoveryManager
select distinct m.MatterID,m.name as MatterName,O.Name as SearchName,J.JobID,A.Name as JobSearchName,W.JobOrQueryID as [DM-JobOrQueryID],O.StartDate as [Search Run Date], S.StartDate as [Search Start Date], S.EndDate as [Search End Date], u.userid, u.Name as [Executing User] from Operations O join Requests R on O.OperationID = R.OperationID join WorkItems W on R.RequestID = W.RequestID join matters m on o.MatterID = m.matterid join users u on u.UserID = O.UserID join ES1Activity.dbo.Activity A on (A.Name like CONCAT('%',W.JobOrQueryID,'%') ) join ES1Activity.dbo.Tasks T on A.ActivityID = T.ActivityID join ES1Activity.dbo.Jobs J on T.TaskID = J.TaskID join #SearchDates S on (S.ActivityID = A.ActivityID and S.SearchName = A.Name) where A.TaskTypeID =31 and M.MatterID ! = 0 --0=Dummy Matter and O.StartDate > (select min(EndTime) from #TEMP) and O.StartDate < (select max(EndTime)from #TEMP) GO drop table #SearchDates drop table #TEMP GO
注:次の手順に進む前に、Index Validationを必ず完了してください。
次に、問題のあるSourceOneインデックス セットとその状態を特定するために、次のSQLクエリを実行します。 1. 以下のクエリを実行して、SourceOne環境のインストール日とアップグレード日を取得します。
use ES1Archive select EndTime into #TEMP from [DBMaintenanceHistory] where (version >=7 and version <7.27000) and Description = 'SourceOne Archive database update complete' insert into #TEMP select EndTime from [DBMaintenanceHistory] where Description = 'New SourceOne Native Archive database created' and Version >=7 and Version < 7.27000 GO 2. 以下のクエリを実行して、いずれかの時点で「Extra Items」としてマークされていたすべてのSourceOneインデックスを取得します。
use ES1Archive select WorkID,CmdType,cast(CmdParam as XML).value('(/WQ_Parms/WQ_FolderId/node()) [1]', 'bigint') as FolderID,cast(CmdParam as XML).value('(/WQ_Parms/WQ_FldrPath/node()) [1]', 'nvarchar(max)') as [Archive_Index Path],LastModified as ScanDate, SUBSTRING(ResultStr,(CHARINDEX( 'indexflags(', ResultStr, 0)+11),(CHARINDEX( ')', ResultStr, (CHARINDEX( 'indexflags(', ResultStr, 0)+11) )-(CHARINDEX( 'indexflags(', ResultStr, 0)+11))) as ResultStr,'Result' = CAST('Extra Items' as varchar(50)) into #ExtraItems from WorkQueue where CmdType =17 and (CHARINDEX( 'indexflags(', ResultStr, 0) > 0 and (CAST(SUBSTRING(ResultStr,(CHARINDEX( 'indexflags(', ResultStr, 0)+11),(CHARINDEX( ')', ResultStr, (CHARINDEX( 'indexflags(', ResultStr, 0)+11) )-(CHARINDEX( 'indexflags(', ResultStr, 0)+11))) as bigint) & CAST( 65536 as bigint) ) > 0) GO 3. 以下のクエリを実行して、問題発生時に再構築されたすべてのSourceOneインデックスを取得します。 use ES1Archive select WorkID,CmdType,cast(replace(replace(CmdParam,' ',''),' ','') as nvarchar(max)) as [Archive_Index Path], min(LastModified) as [Rebuild Date], 'Result' = CASE WHEN CmdType=1 THEN 'Rebuilt' ELSE 'Unknown' END into #Rebuilt from WorkQueue (nolock) where CmdType = 1 and (LastModified >= (select min(EndTime) from #TEMP) and LastModified < (select max(EndTime) from #TEMP)) group by WorkID,CmdParam,CmdType order by CmdParam,CmdType GO update #Rebuilt set [Archive_Index Path] = replace([Archive_Index Path],char(13),'') update #Rebuilt set [Archive_Index Path] = replace([Archive_Index Path],char(10),'') GO set IDENTITY_Insert #ExtraItems ON insert into #ExtraItems (WorkID,CmdType,[Archive_Index Path],ScanDate,Result) select * from #Rebuilt where NOT EXISTS(select * from #ExtraItems where #ExtraItems.[Archive_Index Path] = #Rebuilt.[Archive_Index Path]) GO 4. 以下のクエリを実行して、SourceOne 7.2 SP8にアップグレードした後にValidationに失敗したかIndex Validationプロセス中に見つからなかったすべてのSourceOneインデックスを取得します。 use ES1Archive select replace(FP.path,'\FPROOT\','') + CASE WHEN LEN(FT.IndexNum) = 1 THEN ('00' + CAST(FT.IndexNum AS VarChar(20))) WHEN LEN(FT.IndexNum) = 2 THEN ('0' + CAST(FT.IndexNum AS varchar(20))) WHEN LEN(FT.IndexNum) = 3 THEN CAST(FT.IndexNum AS varchar(20)) END as [Archive_Index Path] into #IndexList from FTIndex FT join FolderPlan FP on FT.FolderNodeID = FP.FolderID EXCEPT select replace(FP.path,'\FPROOT\','') + CASE WHEN LEN(FT.IndexNum) = 1 THEN ('00' + CAST(FT.IndexNum AS VarChar(20))) WHEN LEN(FT.IndexNum) = 2 THEN ('0' + CAST(FT.IndexNum AS varchar(20))) WHEN LEN(FT.IndexNum) = 3 THEN CAST(FT.IndexNum AS varchar(20)) END as [Archive_Index Path] from FTIndex FT join FolderPlan FP on FT.FolderNodeID = FP.FolderID where (FT.LastScanDate > (select Max(Date) from DBMaintenanceHistory where Description = 'SourceOne Archive database update complete' and Version > 7.27)) GO set IDENTITY_Insert #ExtraItems ON insert into #ExtraItems (WorkID,CmdType,[Archive_Index Path],Result) select '0','17',[Archive_Index Path],'Result'='Not-Validated' from #IndexList WHERE NOT EXISTS (select * from #ExtraItems where #ExtraItems.[Archive_Index Path] = #IndexList.[Archive_Index Path]) GO 5. この最後のクエリを実行すると、影響を受けている可能性のあるすべてのSourceOneインデックスが出力されます。「Extra Items」としてマークされていたインデックスに対して実行されたすべての検索は、正しい結果を取得するために再実行する必要があります。「Rebuilt」だったインデックスに対して実行されたすべての検索も再実行する必要があります。これは、インデックスの再構築は解決されたものの、再構築されたインデックス セットに対して検索が実行されたタイミングによって変わるためです。 select WorkID,[Archive_Index Path],ScanDate as Date,Result from #ExtraItems where Result !='Validated' GO drop table #TEMP drop table #Rebuilt drop table #ExtraItems drop table #IndexList GO |