SourceOne Email Management: O WebSearch pode não retornar um conjunto completo de resultados de pesquisa
Summary: O WebSearch pode não retornar um conjunto completo de resultados de pesquisa.
Symptoms
Durante uma pesquisa de índice de texto completo, todos os resultados podem não ser confirmados no banco de dados SourceOne Search. Consequentemente, os resultados da pesquisa podem estar incompletos.
Esse problema pode não afetar todas as pesquisas. A ocorrência desse problema dependerá da existência de mensagens duplicadas no Índice de Texto Completo e da ordem em que esses resultados são retornados. É mais provável que esse problema ocorra em sistemas onde:
- Existem itens duplicados no índice de texto completo
- A opção MaxSearchHitsThreads foi ativada
- Existem arquivos de migração no local em que os dados de vários servidores EmailXtender foram migrados para uma única pasta mapeada do SourceOne.
Cause
Resolution
A Dell EMC recomenda que os clientes apliquem um dos seguintes patches de gerenciamento de e-mail do SourceOne para a versão 7.2 instalada:
7.2 SP6 HF4 (7.2.6.6229)
7.2 SP7 ou superior
Os downloads estão disponíveis na página SourceOne Email Management Product em: http://support.emc.com
Depois que uma versão do SourceOne Email Management com a correção for instalada, todas as pesquisas futuras deverão ser concluídas com todos os resultados. Todas as pesquisas realizadas durante a execução de uma versão afetada precisarão ser executadas novamente para garantir a integridade dos resultados.
No SourceOne Email Management versão 7.2.8, talvez seja possível identificar quais conjuntos de índice têm conteúdo duplicado ou "Itens extras" por meio da validação de índice. Esses resultados de validação podem ser usados para identificar quais pesquisas precisam ser executadas novamente. Execute as seguintes etapas:
Primeiro, configure a verificação de validação de índice usando o Modo 2 ou superior. A validação de índice sinalizará conjuntos de índices de problemas com um ponto de exclamação amarelo (!) e o status do índice será "Itens extras". Se as verificações tiverem sido executadas em uma versão anterior, uma nova varredura poderá ser executada no console de gerenciamento de e-mail do SourceOne clicando com o botão direito do mouse em cada pasta YYYYMM e selecionando "Rescan". Após a conclusão das varreduras, todos os índices com um estado de "Itens extras" devem ser reconstruídos com êxito antes que quaisquer pesquisas na Web do SourceOne afetadas sejam executadas novamente.
As próximas etapas são identificar possíveis pesquisas na Web do SourceOne que foram executadas anteriormente e que teriam sido potencialmente pesquisadas em um conjunto de índices de problemas.
NOTA: As consultas SQL abaixo pressupõem que o nome dos bancos de dados SourceOne são padrão. Se não estiverem, a consulta precisará ser modificada com o nome correto dos nomes de banco de dados do SourceOne.
Primeiro, para identificar quaisquer pesquisas na Web anteriores do SourceOne que foram executadas anteriormente durante o período desse problema, execute as seguintes consultas SQL:
1. Execute a seguinte consulta para capturar a data de instalação e as datas de upgrade do ambiente 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. Execute a seguinte consulta para reunir todas as informações para as pesquisas na Web do SourceOne que foram executadas com base nas datas recuperadas na Etapa 1:
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. Execute a consulta a seguir para gerar todas as informações sobre as pesquisas possivelmente afetadas. A saída incluirá as informações básicas sobre a pesquisa na Web do SourceOne, incluindo:
| Nome da pesquisa: | O nome da pesquisa como aparece na janela SourceOne Email Management Console\Operations\Job Management. |
| JobID: | O valor de JobID encontrado nas janelas Job Management do SourceOne Email Management Console. |
| Hora de início: | Data/hora em que a pesquisa foi executada. |
| Data de início\término da pesquisa: | Os critérios de data usados na pesquisa. Se nenhum campo Date foi usado na pesquisa, TODAS as datas foram pesquisadas. |
| Usuário em execução: | O usuário que criou e executou a pesquisa. |
use ES1Activity
select distinct A.Name as SearchName,J.JobID,A.StartTime,S.StartDate as [Search Start Date],
S.EndDate as [Search End Date], S.SearchUser as [Executing User] from Activity A
join Tasks T on A.ActivityID = T.ActivityID
join Jobs J on T.TaskID = J.TaskID
join #SearchDates S on (S.ActivityID = A.ActivityID)
where A.TaskTypeID =8 and A.StartTime > (select min(EndTime) from #TEMP) and A.StartTime < (select max(EndTime)from #TEMP)
order by A.StartTime
GO
drop table #TEMP
drop table #SearchDates
GO
Nota: Somente prossiga com as etapas a seguir depois que a validação do índice for concluída.
Em seguida, para identificar conjuntos de índice do SourceOne problemáticos e seus estados, execute as seguintes consultas SQL:
1. Execute a seguinte consulta para capturar a data de instalação e as datas de upgrade do ambiente 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. Execute a seguinte consulta para capturar quaisquer índices do SourceOne que foram, a qualquer momento, marcados como "Itens extras":
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. Execute a seguinte consulta para capturar quaisquer índices do SourceOne que foram recriados durante o período do problema:
use ES1Archiveselect WorkID,CmdType,cast(replace(replace(CmdParam,'<WQ_Parms><WQ_FldrPath>',''),'</WQ_FldrPath></WQ_Parms>','') 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,CmdTypeGOupdate #Rebuilt set [Archive_Index Path] = replace([Archive_Index Path],char(13),'')update #Rebuilt set [Archive_Index Path] = replace([Archive_Index Path],char(10),'')GOset IDENTITY_Insert #ExtraItems ONinsert 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. Execute a seguinte consulta para capturar todos os índices do SourceOne que foram A validação falhou ou foi perdida durante o processo de validação de índice após a atualização para o SourceOne 7.2 SP8:
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. A execução dessa consulta final gerará todos os índices do SourceOne potencialmente afetados. Quaisquer pesquisas executadas em relação a índices marcados como "Itens extras" precisariam ser executadas novamente para obter os resultados corretos. Quaisquer pesquisas executadas em índices que foram "Reconstruídos" poderiam potencialmente precisar ser executadas novamente porque uma recriação de um índice teria resolvido, mas depende de quando a pesquisa foi executada no conjunto de índices reconstruídos.
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
Additional Information
| https://downloads.dell.com/TranslatedPDF/PT-BR_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/ZH-CN_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/ES_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/DE_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/FR_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/IT_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/JA_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/NL_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/KO_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/RU_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/PT_KB535700.pdf |
| https://downloads.dell.com/TranslatedPDF/SV_KB535700.pdf |