What happens during the Index Startup Process

Article:HOWTO56312  |  Created: 2011-08-01  |  Updated: 2014-12-09  |  Article URL http://www.symantec.com/docs/HOWTO56312
Article Type
How To



The Enterprise Vault indexing service is implemented as a windows service build on WCF (Windows Communications Foundation Services). Microsoft’s next generation programming platform and runtime system for building, configuring and deploying network distributed services.

The Enterprise Vault Index Admin service will have the same Service Control Manager Level ‘name’ and ‘description’ as that of the pre-EV10 index service. However, it will have a different process name i.e. EVIndexAdminService.exe.

Primary Responsibilities

  1. Expose all the Indexing Administration features as a WCF contract that can be used by various consumers within Enterprise vault (e.g. VAC) for administrative functionality and for the subtask Framework to delegate certain indexing tasks to this component
  2. exposes a DCOM endpoint so that native DCOM clients can connect to it.
  3. Provides a framework for managing the life time of the legacy IndexBroker.exe (legacy Indexing Service). Indexbroker.exe will no longer be registered as windows service. It will only act as a stand-alone COM server. This will be required for customers upgrading from older EV versions. New installs will not have this process running. The new Indexing Admin Service will be responsible for starting and managing the existing IndexBroker.exe (only if required). It will also be responsible for delegating work requests to either legacy IndexBroker.exe or the new “EVIndexVolumesProcessor.exe” (the process responsible for interacting with 64 Bit Indexing Engine)
  4. Delegation of requests related with old archives/index volume to IndexBroker.exe.
  5. Manage Startup and shutdown of 64 Bit Indexing Engine.
  6. Life time management of “EVIndexVolumesProcessor.exe”.
  7. Life time management of “EVIndexQueryServer.exe” (IQS) (layer interacting with 64 Bit Indexing Engine to carry out search requests)
  8. Error and health monitoring of 64 Bit Indexing Engine.

Start-up of Indexing Admin Service

On start-up of ‘Indexing Admin Service’ the following key background operations will be started.
      i. There is a background operation to monitor the 64 bit Indexing Engine that will periodically check for any system issues (Every 10 minutes – configurable). Any relevant issues will be logged to the Windows Event log on the local machine and then purged from the Indexing Engine’s internal error log database. A list of these errors/warnings (from 64 Bit Indexing Engine) is contained in the “\Enterprise Vault\EVIndexing\data\evmsginfo.xml’ file.    

     ii. There is no background operation to monitor all the key process related to the 64 Bit Indexing Engine within EV specifically. 


    iii. Indexing Admin Service will be responsible for managing all other internal indexing processes. Following is the list of all those processes.

  1. EVIndexVolumesProcessor.exe i.e. layer responsible for pushing items to 64 Bit Indexing Engine.
  2. EVIndexQueryServer.exe i.e. process interacting with 64 Bit Indexing Engine for searching.
  3. Legacy IndexBroker.exe process managing AltaVista indexes.


Indexing Admin is responsible for starting other indexing process i.e.  “EVIndexVolumesProcessor.exe”, “EVIndexQueryServer.exe” and “IndexBroker.exe”. It is also responsible for monitoring the health/status of these processes and if required re-start them.


Part of this will also be to monitor the 64-bit index engine processes and as necessary restart/repair those.
-       IndexEngineMonitor will call the necassary files to start and stop the key process
-       It will check if key processes are running. If not then it will log an error, then shutdown and restart everything.
-       It will check after every 4 hours for system wide global errors and log them. It will also de-duplicate errors repeatedly received from the 64 Bit engine (such as a failing to load an Indexvolume) to prevent excessive logging in the event log.
-       If an error is returned from the 64 Bit engine indicating a potentially corrupt IndexVolume then it will attempt to perform a search against the Indexvolume in question to confirm that this is indeed failed before marking it as such in the DB so as to avoid any false positives. The 64 bit engine could potentially have resolved the cause of the error on its own accord by the time IAS (Index Admin Service) has processed the error hence this procedure before marking  a healthy indexvolume as failed.
Following Key Operations will be done before the IndexAdminService starts listening for its WCF service contracts.

 

  • Registers as a DCOM Service.
{DCOMSERVERFACTORY.EN_US} DCOM Server with GUID EB0F5829-7144-4978-9C14-AEE8EC8E7249
{VaultStoreSync..ctor} Setting VaultStoreSync cache refresh interval to 5 minutes
{SERVICEBASEEX.EN_US} Starting Indexing Service ...
 (EVIndexAdminService)    <5664>    EV-H    {SERVICEBASEEX.EN_US} Starting service background thread for Indexing Service.
 
  • Starting the service background thread and checks the pre-requisites.
{SERVICEBASEEX.EN_US} Started service background thread Id:6 for Indexing Service.
{SERVICEBASEEX.EN_US} Start up grace time [120000 ms]
{SERVICEBASEEX.EN_US} Waiting for some more time for Indexing Service to start. Start time[09:39:32], Log Time[09:39:32], Elapsed Time[00:00:00.0156253 ms]
{SERVICEBASEEX.EN_US} Starting Indexing Service startup/initialization routines in a background thread
{EXECUTIONCONTEXT.EN_US} Executing OnPerformStartup()
ServiceBaseEx.Run} Starting Index Admin Service startup routines in a background thread
{SERVICEBASEEX.EN_US} Indexing service startup pre-reqs started
 
  • Checks whether the VSA(Vault Service Account) is a local Admin and adds VSA to the IIS_IUSRSGroup
  • Checks if the VSA is added to the IIS_IUSRSGroup and checks for additional members of the group
{INDEXADMINSERVICE.EN_US} Checking if current user has administrator rights.
{INDEXADMINSERVICE.EN_US} Current user has administrator rights.
{STATEMANAGER.EN_US} Local Dir Entry String = WinNT://D3X,computer
{STATEMANAGER.EN_US} Domain Dir Entry String = WinNT://NIKON
{STATEMANAGER.EN_US} User Dir Entry String = WinNT://NIKON/vault
{STATEMANAGER.EN_US} Full name of user WinNT://NIKON/vault = Vault
……………………………………..
{STATEMANAGER.EN_US} Checking if user vault is member of IIS_IUSRS
{STATEMANAGER.EN_US} Local Dir Entry String = WinNT://D3X,computer
{STATEMANAGER.EN_US} Trying to find first member in group IIS_IUSRS by calling FindOne()
{STATEMANAGER.EN_US} Number of members in group IIS_IUSRS = 1
{STATEMANAGER.EN_US} Found member DN CN=S-1-5-17,CN=ForeignSecurityPrincipals,DC=NIKON,DC=LOCAL in group IIS_IUSRS
 
  • Determines whether part of a cluster and load initial configuration. Checks for directory service if one exists.
{INDEXADMINSERVICE.EN_US} Checking if service is started from SCM in cluster environment.
{INDEXADMINSERVICE.EN_US} Synchronising with Directory Service.
{INDEXADMINSERVICE.EN_US} Waiting for response from Directory Service.
{DIRECTORYSYNC.EN_US} IsDirectoryAvailable()
{DIRECTORYSYNC.EN_US} Try to create Directory Service locally first.
{DIRECTORYSYNC.EN_US} Local creation for DirectoryService succeeded.
{DIRECTORYSYNC.EN_US} IsDirectoryAvailable() - Check if config wizard has being run
{DIRECTORYSYNC.EN_US} IsDirectoryAvailable() - Releasing Directory Public Service interface
{DIRECTORYSYNC.EN_US} IsDirectoryAvailable() - Directory Service is available
…………………………………………..
{EXTENDEDSETTINGS.EN_US} Loaded setting ActiveIndexVolumeAgentsListInitialCapacity=30 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
{EXTENDEDSETTINGS.EN_US} Loaded setting ItemTimeoutWaitMinutes=15 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
{EXTENDEDSETTINGS.EN_US} Loaded setting IndexingExecutionTimeout=6 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
{EXTENDEDSETTINGS.EN_US} Loaded setting IndexingMaxRequestLength=76800 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
{EXTENDEDSETTINGS.EN_US} Loaded setting SearchMinimumThreads=4 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
{EXTENDEDSETTINGS.EN_US} Loaded setting SearchMaximumThreads=200 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
{EXTENDEDSETTINGS.EN_US} Loaded setting SearchPerformanceCountersEnabled=1 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
………………………………………………….
{EXTENDEDSETTINGS.EN_US} Loaded setting CustomPropertyRetrievableTextLimit=1000 for object 1E298FA1B4684E248AD8805B38451504C1d10000d3x.NIKON.LOCAL, section=81
{EXTENDEDSETTINGS.EN_US} Loaded setting MaxConsecutiveFailedItems=25 for object 1E298FA1B4684E248AD8805B38451504C1d10000d3x.NIKON.LOCAL, section=81
{EXTENDEDSETTINGS.EN_US} Loaded setting MaxUpdateErrors=3 for object 1E298FA1B4684E248AD8805B38451504C1d10000d3x.NIKON.LOCAL, section=81
{EXTENDEDSETTINGS.EN_US} Loaded setting IndexLocnFolderPathCharacters=[\x00-\x7f]+ for object 1E298FA1B4684E248AD8805B38451504C1d10000d3x.NIKON.LOCAL, section=81
{STATEMANAGER.EN_US} Site extended setting IndexLocnFolderPathCharacters value: [\x00-\x7f]+
 
 
  • Checks for the service and that the Server Cache location has been configured correctly as this is imperative to the functioning of the 64bit Indexing Engine and is used for optimizing large Search result sets when querying Indexvolumes. The check is to create, then delete a temporary file in the cache location to ensure its existence and correct level of access.
{EVINDEXADMINUTILS.EN_US} Fetched indexing service entry Id[1B98FB5124B38454382C100DFA149141A1710000d3x.NIKON.LOCAL] for computer name[D3X] and computerEID[1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL]
{EVINDEXADMINUTILS.EN_US} Index Service EntryId[1B98FB5124B38454382C100DFA149141A1710000d3x.NIKON.LOCAL].
{INDEXADMINSERVICE.EN_US} Checking for server cache folder.
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Entry [m_nNumTries = 40]
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Entry [m_nNumTries = 40]
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
{INDEXADMINSERVICE.EN_US} Server cache folder exists.
 
  •  All WCF services and clients will check for the default EV port (i.e. 5114) as defined programmatically and if not available then use the value configured in the Directory DB SiteEntry table. If this is also not available and/or is the same as the default port then errors will be raised. This however means that all WCF Services need to be able to share the same port. This requires the ‘port sharing service’ to be running on that machine and available when the ‘Net.TCP Port Sharing Service’ is running. This is available on all operating systems that support .NET Framework 3.0, however the service is not enabled by default. This will be enabled when EV is installed and checked for by Deployment Scanner. It should be noted here that if a Group Policy disables this service errors will occur. If the port sharing service is disabled then IAS will attempt to set it to manual and start it up when it is started. If it cannot start it then IAS will fail to start. The same also applies to the Windows Activation Service (WAS).
{SERVICEBASEEX.EN_US} Started enabling NetTcpPortSharing service.
{SERVICEBASEEX.EN_US} Checking if current start mode for NetTcpPortSharing service is 'Disabled'.
{STATEMANAGER.EN_US} Current start mode for NetTcpPortSharing service is 'Manual'.
{SERVICEBASEEX.EN_US} Completed enabling NetTcpPortSharing service.
{SERVICEBASEEX.EN_US} Started enabling Windows Process Activation Service service.
{SERVICEBASEEX.EN_US} Checking if current start mode for Windows Process Activation Service is 'Disabled'.
{STATEMANAGER.EN_US} Current start mode for Windows Process Activation Service is 'Manual'.
{SERVICEBASEEX.EN_US} Completed enabling Windows Process Activation Service service.
{INDEXADMINSERVICE.EN_US} Checking Windows Process Activation Service status.
{INDEXADMINSERVICE.EN_US} Checking if Windows Process Activation Service is started.
{INDEXADMINSERVICE.EN_US} Windows Process Activation Service is started.
 
 
  • Checks access to the indexlocation and loads further configuration settings applicable to the index location.
{SERVICEBASEEX.EN_US} Started index locations check.
{INDEXADMINSERVICE.EN_US} Check index locations
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Entry [m_nNumTries = 40]
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
………………………………………………………………..
{STATEMANAGER.EN_US} Validating path using regular expression rule {0.EN_US}.
{STATEMANAGER.EN_US} Index location C:\Index_Location\index1 is not closed
{STATEMANAGER.EN_US} Index location C:\Index_Location\index1 is not in backup mode
{STATEMANAGER.EN_US} Validating path using regular expression rule {0.EN_US}.
{STATEMANAGER.EN_US} Index location C:\Index_Location\index2 is not closed
………………………….
{SERVICEBASEEX.EN_US} Completed index locations check.
{INDEXADMINSERVICE.EN_US} Indexing service startup pre-reqs completed (1500.0288 ms)
 
 
Once the Pre-Requisites checks have completed the configuration checks are started:
  •  Checks if the appropriate ASP.NET website exists for the 64 Bit Indexing Engine. If this is not found, then creates the appropriate virtual directory and configures permissions accordingly. Only the VSA is allowed to access this website. If the website already exists then checks will be made to ensure that permissions are unaltered and are all consistent (“Anonymous Access” is disabled). These configuration changes will not impact any physical files in that virtual directory. These startup checks can’t recover from cases where files in the virtual directory are missing/changed/lost. However these checks can change the web.config, to ensure that certain settings are as expected by EV as necessary.
  • Checks whether the Website Ports or protocols (http/https) have changed and ensures correct communication between IAS/IVP/IQS and the Website is maintained. To be noted that for SSL configuration only ‘Ignore’ and ‘Accept’ are supported for client certificates. IAS will constantly monitor the Website configuration and if it detects that ‘Require’ has been selected then IAS will revert this to ‘Accept’ and log an error to this effect.
  • Loads configuration settings in order to ensure that everything is set accordingly
  
{SERVICEBASEEX.EN_US} Indexing service startup configuration started
{INDEXADMINSERVICE.EN_US} Configuring indexing engine web site
{INDEXINGENGINEMONITOR.EN_US} RunAspNETRegIIS started for: NIKON\vault
{INDEXINGENGINEMONITOR.EN_US} RunAspNETRegIIS completed
{INDEXINGENGINEMONITOR.EN_US} CreateIndexingApplicationPool started
{INDEXINGENGINEMONITOR.EN_US} CreateIndexingApplicationPool completed
3{INDEXINGENGINEMONITOR.EN_US} CreateIndexingApplication started
{INDEXINGENGINEMONITOR.EN_US} CreateIndexingApplication completed
{INDEXINGENGINEMONITOR.EN_US} ConfigureApplicationHost started
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Entry [m_nNumTries = 40]
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
{EXTENDEDSETTINGS.EN_US} Loaded setting ActiveIndexVolumeAgentsListInitialCapacity=30 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
....
{INDEXINGENGINEMONITOR.EN_US} ConfigureApplicationHost completed
{INDEXINGENGINEMONITOR.EN_US} ConfigureIndexingApplication startedBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
...   
{EXTENDEDSETTINGS.EN_US} Loaded setting MaxIndexVolumeSize_Items=5000000 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
{INDEXINGENGINEMONITOR.EN_US} ConfigureIndexingApplication completed
{INDEXADMINSERVICE.EN_US} Configuring indexing engine web site completed
 
  • Perform index metadata synchronization. This process validates the internal configuration and checks that requisite files exist and performs updates as required. Metadata in this context pertains to the files and settings comprising the internal structure of the 64-bit Index Volumes.
{SERVICEBASEEX.EN_US} Started indexing metadata configuration.
{SERVICEBASEEX.EN_US} Updating indexing engine configuration file
{SERVICEBASEEX.EN_US} Resetting indexing engine configuration file hidden and read-only attributes
{SERVICEBASEEX.EN_US} Indexing engine configuration file hidden and read-only attributes have been reset
{SERVICEBASEEX.EN_US} Setting indexing engine configuration file install-dir option
{SERVICEBASEEX.EN_US} Indexing engine configuration file install-dir option has been set
{SERVICEBASEEX.EN_US} Setting indexing engine configuration file base-url option
3{SERVICEBASEEX.EN_US} Indexing engine configuration file base-url option has been set
{INDEXINGENGINEMONITOR.EN_US} Updating indexing engine metadata location
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Entry [m_nNumTries = 40]
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
{INDEXINGENGINEMONITOR.EN_US} IndexEngine metadata location is C:\Program Files (x86)\Enterprise Vault\EVIndexing\data\indexmetadata.
{INDEXINGENGINEMONITOR.EN_US} Checking indexing engine metadata location info
{INDEXINGENGINEMONITOR.EN_US} Reading indexing engine metadata location info
{INDEXINGENGINEMONITOR.EN_US} Indexing engine metadata location directory: search-collections
....
{INDEXINGENGINEMONITOR.EN_US} Reading indexing engine metadata location info completed
{INDEXINGENGINEMONITOR.EN_US} Checking indexing engine metadata location info
{INDEXINGENGINEMONITOR.EN_US} Updating indexing engine metadata location
 Completed
 
  • Starts the Indexing Engine and checks whether any synchronization requires to be performed. This will be done if IVSyncNeeded flag is set in the Directory DB or if the count of index volumes (for that server) in the Directory DB fails to match the count in the metadata. If during this operation a stop request is received then all index volume sync requests are abandoned and no more startup routines are followed through. The process will perform the following:
    • Starts the 64-bit Indexing Engine
    • Load extended configuration settings pertinent to IndexVolumes
    • Calls the Search Service and Collection Broker
    • Gets a list of Indexvolumes to compare against the EV DB entries.
    • Checks for any inconsistencies
    • Performs updates as necessary
    • Starts the Indexing Engine error monitoring process to manage errors received from the engine.
{SERVICEBASEEX.EN_US} Start indexing engine and perform index volume synchronization started
{INDEXADMINSERVICE.EN_US} Waking up indexing engine
{SERVICEBASEEX.EN_US} Waiting for some more time for Indexing Service to start. Start time[09:39:32], Log Time[09:39:32], Elapsed Time[00:00:02.0156637 ms]
{INDEXADMINSERVICE.EN_US} WakeUpIndexEngine completed
{SERVICEBASEEX.EN_US} Started query service configuration.
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Entry [m_nNumTries = 40]
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
4{EXTENDEDSETTINGS.EN_US} Loaded setting ActiveIndexVolumeAgentsListInitialCapacity=30 for object 1F78CC7C1796A6C44B60C311EC6EB131D1410000d3x.NIKON.LOCAL, section=82
{EXTENDEDSETTINGS.EN_US} Loaded setting ItemTimeoutWaitMinutes=15 for object
...
{SERVICEBASEEX.EN_US} Resetting query service configuration file hidden and read-only attributes
{SERVICEBASEEX.EN_US} Query service configuration file hidden and read-only attributes have been reset
{SERVICEBASEEX.EN_US} Waiting for some more time for Indexing Service to start. Start time[09:39:32], Log Time[09:39:32], Elapsed Time[00:00:04.0157021 ms]
...
{IndexingWCFProxy`1} Calling SearchServiceGet
{SERVICEBASEEX.EN_US} Waiting for some more tme for Indexing Service to start. Start time[09:39:32], Log Time[09:39:32], Elapsed Time[00:00:06.0157405 ms]
{IndexingWCFProxy`1} [15115ms] Called SearchServiceGet
{IndexingWCFProxy`1} Calling CollectionBrokerGet
{SERVICEBASEEX.EN_US} Collection broker configuration ok, so not setting.
{SERVICEBASEEX.EN_US} Completed query service configuration.
{SERVICEBASEEX.EN_US} Inside PerformIVSynchronization method.
{STATEMANAGER.EN_US} Checking if index volume synchronisation is required for computer D3X.
{STATEMANAGER.EN_US} Getting index volume names started
{IndexingWCFProxy`1} Calling RepositoryListXml
{IndexingWCFProxy`1} [67ms] Called RepositoryListXml
{STATEMANAGER.EN_US} Getting index volume names completed
{STATEMANAGER.EN_US} Got names of index volumes from indexing engine. Total 1 Index volumes found in Indexing Engine repository.
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Entry [m_nNumTries = 40]
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
...
{INDEXADMINSERVICE.EN_US} Starting indexing engine
{INDEXINGENGINEMONITOR.EN_US} Starting Collection Broker...
{IndexingWCFProxy`1} Calling CollectionBrokerStart
{IndexingWCFProxy`1} [80ms] Called CollectionBrokerStart
{INDEXINGENGINEMONITOR.EN_US} Starting Search Service...
{IndexingWCFProxy`1} Calling SearchServiceStart
Event ID: 41299 The Indexing Service is pending initialization.|Requesting additional time for initialization routines....
{IndexingWCFProxy`1} [37ms] Called RepositoryGet
{VELOCITYINDEXINGENGINEERRORS.EN_US} Purge error options set to LogSplitFrequency:DAILY AppLogExpire:-1 SysLogExpire:7 MaxLogSize:2000000
{INDEXINGENGINEMONITOR.EN_US} Read enum error options
{VELOCITYINDEXINGENGINEERRORS.EN_US} Initialize default enum error options MaxItems:10000 LastDate:01/01/1970 00:00:00
{VELOCITYINDEXINGENGINEERRORS.EN_US} Enum error options set to MaxItems:10000 LastDate:19/07/2011 15:55:16
...
{ERRORINFOCOLLECTION.EN_US} ErrorInfoCollection::LoadMessages() - Message loaded: INCLUDE - FATAL_ERROR_NO_ERROR MESSAGE DISABLED True False
{ERRORINFOCOLLECTION.EN_US} ErrorInfoCollection::LoadMessages() - Message loaded: INCLUDE - FATAL_ERROR_OCCURRED MESSAGE DISABLED True False Overrides:[FATAL_ERROR_OCCURRED ERROR LOG True [database or disk is full]. Please check available disk space at the index locations. True \[database or disk is full\]]
...
{INDEXINGENGINEMONITOR.EN_US} Starting error monitoring thread
{INDEXINGENGINEMONITOR.EN_US} Started error monitoring thread
{INDEXINGENGINEMONITOR.EN_US} EnumErrors started
{INDEXINGENGINEMONITOR.EN_US} Setting enum parameters MaxItems:10000, StartDate:19/07/2011 15:55:16, EndDate:20/07/2011 09:39:54
{INDEXINGENGINEMONITOR.EN_US} Get all messages from core index engine
{INDEXINGENGINEMONITOR.EN_US} Enumerate indexing engine errors
{IndexingWCFProxy`1} Calling ReportsSystemReporting
{IndexingWCFProxy`1} [79ms] Called ReportsSystemReporting
{INDEXINGENGINEMONITOR.EN_US} EnumErrors completed
{INDEXINGENGINEMONITOR.EN_US} ReadPurgeOptions started
{INDEXINGENGINEMONITOR.EN_US} Read purge error options
{IndexingWCFProxy`1} Calling RepositoryGet
{IndexingWCFProxy`1} [27ms] Called RepositoryGet
{VELOCITYINDEXINGENGINEERRORS.EN_US} Purge error options set to LogSplitFrequency:DAILY AppLogExpire:-1 SysLogExpire:7 MaxLogSize:2000000
{INDEXINGENGINEMONITOR.EN_US} ReadPurgeOptions completed
{INDEXINGENGINEMONITOR.EN_US} Starting error purging thread
{INDEXINGENGINEMONITOR.EN_US} Started error purging thread
{INDEXADMINSERVICE.EN_US} StartIndexEngine succeeded
{INDEXADMINSERVICE.EN_US} Start indexing engine and perform index volume synchronisation completed (20297.2647 ms)
 
  • Open WCF service to register end points and expose IndexAdminImpl DCOM object for native clients
    • An Endpoint can be considered to be a URL used to connect to the 64 Bit Engine.
  • Cleans up the error log files
  • Determines if IndexBroker.exe needs to be started by performing a directory DB look up and check if there are any legacy index volumes managed by this index service.
    • If any legacy index volumes are found, then it launches the IndexBroker.exe process using DCOMServerManager class (via StateManager).
    • DCOMServerManager will also be responsible for monitoring the health of IndexBroker.exe and restart the process in case of abnormal shutdown.
  • Starts “EVIndexVolumesProcessor.exe” (IVP) and “EVIndexQueryServer.exe” (IQS) in parallel and ensures that IVP and IQS are restarted in case of any abnormal shutdown.
{SERVICEBASEEX.EN_US} Start child processes and register indexing service endpoints started
{SERVICEBASEEX.EN_US} Starting child processes for Index Service.
{EXECUTIONCONTEXT.EN_US} Last-modified timestamp set on metadata folders. Will purge log database now.
{INDEXINGENGINEMONITOR.EN_US} PurgeErrors started
{INDEXINGENGINEMONITOR.EN_US} Purging indexing engine errors log
{STATEMANAGER.EN_US} Created a mutex for controlling launching of IndexBroker.
{SERVICEBASEEX.EN_US} Starting IndexBroker.
{STATEMANAGER.EN_US} Calling DCOMServerManager.Start
{DCOMSERVERFACTORY.EN_US} Attempting to start DCOM Server with GUID eb0f5829-7144-4978-9c14-aee8ec8e7249
{IndexingWCFProxy`1} [61ms] Called ReportingCleanNow
{INDEXINGENGINEMONITOR.EN_US} PurgeErrors completed
Event ID: 7345 IndexBroker has started on this server to manage old 32 bit index volumes. |
{IndexBroker_DCOMServer} Successfully started the DCOM Server
{SERVICEBASEEX.EN_US} IndexBroker successfully started.
{SERVICEBASEEX.EN_US} Starting child processes: {EVIndexVolumesProcessor,EVIndexQueryServer}
{SERVICEBASEEX.EN_US} Starting child process 'EVIndexVolumesProcessor'
{SERVICEBASEEX.EN_US} Starting child process 'EVIndexQueryServer'
{CHILDPROCESSMANAGER.EN_US} Inside AsyncStartChildProcess to start child process
{ProcessManager..ctor} Title:EV Index Volumes Processor Filename:EVIndexVolumesProcessor.exe WorkingDir:C:\Program Files (x86)\Enterprise Vault
{MANAGEDOBJECTSTATE.EN_US} Owner:EV Index Volumes Processor
{MANAGEDOBJECTSTATE.EN_US} Owner:EV Index Query Server
{PROCESSMANAGER.EN_US} Process started - 7172
{LOG.EN_US} IndexVolumesProcessor start.
{MANAGEDPROCESS.EN_US} Process starting - "C:\Program Files (x86)\Enterprise Vault\EVIndexVolumesProcessor.exe" -
{MANAGEDOBJECTSTATE.EN_US} Owner:EVIndexQueryServer
{MANAGEDPROCESS.EN_US} Process starting - "C:\Program Files (x86)\Enterprise Vault\EVIndexQueryServer.exe"
{MANAGEDPROCESS.EN_US} Using Process manager
{CHILDPROCESSMANAGER.EN_US} Started EVIndexQueryServer.exe as child process.
{SERVICEBASEEX.EN_US} Waiting for some more time for Indexing Service to start. Start time[09:39:32], Log Time[09:39:52], Elapsed Time[00:00:26.0473751 ms]
{SERVICEBASEEX.EN_US} Waiting for some more time for Indexing Service to start. Start time[09:39:32], Log Time[09:39:52], Elapsed Time[00:00:28.0474135 ms
{PROCESSMANAGER.EN_US} EVIndexVolumesProcessor New State:Running Old:Starting My:Starting
{SERVERMANAGER.EN_US} EV Index Volumes Processor New:Running Old:Starting My:Stopped
{CHILDPROCESSMANAGER.EN_US} Process pretty Name: EV Index Volumes Processor Target State:Running Achieved:True T/O:60000 ms
{CHILDPROCESSMANAGER.EN_US} Started EVIndexVolumesProcessor.exe as child process.
{SERVICEBASEEX.EN_US} Starting background thread for managing index service host.
{STATEMANAGER.EN_US} Started background thread Id:17 for managing index service host.
{STATEMANAGER.EN_US} Inside OpenServiceEndpoints.
{STATEMANAGER.EN_US} Registered IndexAminCOM with COM SCM with cookie 16
(EVIndexAdminService)    <6728>    EV-L    {INDEXADMINSERVICE.EN_US} Start child processes and register indexing service endpoints completed (6109.4923 ms)
 
  • Starts the background thread to perform the discovery of pending items to be indexed. This is done using StoragePendingWorkDiscovery class.
  • StoragePendingWorkDiscovery checks on a regular basis whether there are any indexvolumes that require to be synchronized.
    • A ‘Full’ check (consists of 3 parts) is done every 10 hours
    • The Full Check gets a list of index volumes owned by the Indexing service from the Directory database (stored proc: EnumVolumesForPendingWorkCheck).
    • Processes the list obtained above to extract the Index Volumes for the appropriate vault store database(s) and then determines if there are any pending additions, deletions or updates (stored proc: CheckIsPendingRevisions) for Index Volumes belonging to the respective Archives in the Vault Store Databases.
    • Any volumes found to have pending work, are queued for submission to the relevant Index Volumes Processor on their respective servers (64bit) or IndexServer(32bit).
    • An hourly check that only selects Indexvolumes that have their WorkPending flag set to 1 or when the service is first started
    • Retrieves batches of volumes to be processed in batches of 25000. This will be across all available VaultStore DB’s.
    • Ensures that only one instance of the ProcessVolumeSynchronization process is running at any point in time so as to avoid overlap if processing of a batch exceeds the hourly interval.
{SERVICEBASEEX.EN_US} Fetching interval values from registry
{STORAGEPENDINGWORKDISCOVERY.EN_US} StoragePendingWorkDiscoveryInterval : 01:00:00
{STORAGEPENDINGWORKDISCOVERY.EN_US} RetryFailedIndexVolumesInterval : 06:00:00
{STORAGEPENDINGWORKDISCOVERY.EN_US} StorageFullPendingWorkDiscoveryInterval : 10:00:00
{EXECUTIONCONTEXT.EN_US} StoragePendingWorkDiscovery is performing it's periodic check of index volumes...
{EXECUTIONCONTEXT.EN_US} (Including check for failed volumes)
{EXECUTIONCONTEXT.EN_US} (Performing FULL check for pending work)    {VELOCITYPROCESSPRIORITYMONITOR.EN_US} Process priority info: crawler-service - Normal
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Entry [m_nNumTries = 40]
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
{VELOCITYPROCESSPRIORITYMONITOR.EN_US} Process priority info: dispatch - Normal
{VELOCITYPROCESSPRIORITYMONITOR.EN_US} Process priority info: execute-worker - Normal
{SERVICEBASEEX.EN_US} VelocityProcessPriorityMonitor starting
{INDEXADMINSERVICE.EN_US} Miscellaneous indexing service startup tasks completed (62.5012 ms)
{SERVICEBASEEX.EN_US} Completed Index Admin Service startup routines in a background thread
EV~I    |Event ID: 41302 The Indexing Service has completed its initialization. The service is now functioning fully.
{SERVICEBASEEX.EN_US} Indexing Service is running.
{EXECUTIONCONTEXT.EN_US} VelocityProcessPriorityMonitor is performing it's periodic check of process priorities
{STATEMANAGER.EN_US} Started WCF ServiceHost and listening for IndexAdmin service contract...
EV~I    |Event ID: 41297 The Indexing Service has started (10.0.0.1311).
{STORAGEPENDINGWORKDISCOVERY.EN_US} Processing 15184 volume records
CBaseDirectoryServiceWrapper::CreateDirectoryService() - Successfully communicated with an EV Directory Service on the local machine
CDirectoryVaultObject::GetAttributeListFromType Unknown type - GetOpenIndexVolumesByIndexingService
{STORAGEPENDINGWORKDISCOVERY.EN_US} Adding volume (Identity:3) to list of volumes to be checked
kDiscovery.ProcessVolume} Adding volume (Identity:136) to list of volumes to be checked
{STORAGEPENDINGWORKDISCOVERY.EN_US} Adding volume (Identity:137) to list of volumes to be checked
 ......... 
{STATEMANAGER.EN_US} Started WCF ServiceHost and listening for IndexAdmin service contract...
{INDEXADMINSERVICE.EN_US} Miscellaneous indexing service startup tasks completed (62.4996 ms)
{SERVICEBASEEX.EN_US} Completed Index Admin Service startup routines in a background thread
|Event ID: 41302 The Indexing Service has completed its initialization. The service is now functioning fully.

 

 

 




Article URL http://www.symantec.com/docs/HOWTO56312


Terms of use for this information are found in Legal Notices