Issue | The Queuing Service keeps crashing once a minute causing the Search Index to fall behind and not be up to date.
The Windows Application event log contains details about the Queuing Service crashing. Here are some snippets from event log messages:
The process was terminated due to an unhandled exception. Exception Info: System.AccessViolationException at ArcherTech.Services.Queuing.IFilter.GetChunk(ArcherTech.Services.Queuing.STAT_CHUNK ByRef) at ArcherTech.Services.Queuing.Parser.Parse(System.String, System.String) at ArcherTech.Services.Queuing.RepositoryContentChangeTrackingHandler.ProcessMessage(ArcherTech.Services.IndexingService.RepositoryContentChangeTrackingMessage)
Faulting application name: Archer.Services.Queuing.exe, version: 6.1.0.1159, time stamp: 0x573f501c Faulting module name: glcndFilter.dll, version: 6.3.9600.18229, time stamp: 0x56b4b651
|
Workaround | Identify the Attachment files in the File Repository causing the Queuing service to crash
- Download the Windows Sysinternals Process Monitor to the server running the Queuing Service.
- From the server running the Queuing Service, run the Process Monitor tool as Administrator.
- Add the Filters shown below and enable the File System Activity option.
- Adjust the File Repository path to match your environment.

When the file is identified, take note of the file name in the path. In the following image, the file name is 10.msg which means the file id is 10. In the file repository, the filename before the suffix is the file id.  Run the following SQL command to identify the record containing the Attachment file after replacing ### in the last line of the statement with the file id from step 5.
SELECT l.module_id, mt.module_name, l.level_id, lt.level_name, rl.content_id AS ContentID, fd.field_id, ft.field_name, rf.file_id, REVERSE(STUFF(REVERSE(rf.file_name),CHARINDEX('.',REVERSE(rf.file_name))+1,LEN(REVERSE(rf.file_name)),REVERSE(rf.file_id))) AS Archer_FileName, rf.file_name AS Actual_FileName, rf.file_length / 1024 AS SizeKB, rf.download_cnt FROM tblXIVContentRepositoryLinks(NOLOCK) rl JOIN tblRepositoryFile(NOLOCK) rf ON rl.file_id = rf.file_id JOIN tblIVFieldDef(NOLOCK) fd ON fd.field_id = rl.field_id JOIN tblFieldTranslation(NOLOCK) ft ON ft.field_id = fd.field_id JOIN tblLevel(NOLOCK) l ON l.level_id = fd.level_id JOIN tblModule(NOLOCK) m ON m.module_id = l.module_id JOIN tblLevelTranslation LT(NOLOCK) ON L.level_id = LT.level_id JOIN tblModuleTranslation MT(NOLOCK) ON MT.module_id = m.module_id WHERE ft.language_id = 1 AND rf.file_id = ###

- Based on the SQL results, go to the content record and remove the file from the field.
- Move or delete the file from the File Repository so the Queuing Service will stop trying to index it.
|