Symptoms

The adTempus service fails to start. The Event Log contains the following message from adTempus:

Server initialization failed. Check previous Event Log messages for additional information, or contact support personnel

The diagnostic log shows the following error information:

 

Looking for missing Linked Servers
ERROR ArcanaDevelopment.adTempus.Server.JobManager [(null)] - Startup failure
System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at ArcanaDevelopment.adTempus.Server.JobManager.CheckLinkedServerConversion()

Cause

This problem occurs when two or more Linked Servers are linked to this adTempus server, using the same server name. This can happen due to a bug that causes adTempus to save the servers with the name "localhost" rather than the correct server name.

Resolution

Two workarounds are available:

Hotfix (preferred)

The latest adTempus hotfix contains a fix that will allow the service to start.

Database Update

For customers who cannot apply the hotfix, it is also possible to correct the data problem through direct manipulation of the database. Contact Arcana Development support for assistance with performing this action or if you are comfortable working with the database directly you can perform this procedure using SQL Server Management Studio or the adTempus database utility:

1. Execute this query:

select machineid, name from trustedserver

2. Locate the records with duplicate names. They will probably be named "localhost".

3. If feasible, determine the correct name for each server. To do this, go to each remote adTempus instance that you believe might be linked to this instance (and that does not appear by name in the query) and look at the MachineID value under Registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Arcana Development\adTempus\Instances\Default". Match the MachineID returned by the query to the MachineID in the Registry. The name column in the TrustedServer table should be set to the name of the computer where you found the matching MachineID.

4. Update the TrustedServer table with the correct computer names. If you skipped step 3, you can just use a unique name for each record, such as "localhost1", "localhost2", etc.

For each record execute this command:

update trustedserver set name='newname' where machineid='machineid from original query'

After you perform this update, the adTempus service should start.

Status

Arcana Development is currently investigating the underlying cause of the duplicate entries.