Summary 

If you run scripts that use the Microsoft Excel COM (ActiveX) API to load an manipulate workbooks, your scripts may fail if you run many such scripts at the same time or in quick succession.

Symptoms

Scripts that use Excel automation fail with one of the following errors:

Script compilation error: (-2147417848) (Line nn, Column 0) [ADT005066E]
The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))

Cause

This error indicates that the Excel process failed to initialize properly when the COM system tried to load it. The failure appears to be caused by problems with shared resources within the Excel API ActiveX component.

Note: Excel and other Microsoft Office applications are not designed to be run as a "server" application, and Microsoft does not support this usage. See Microsoft knowledge base article 257757 for more information.

Resolution

Running each script in a separate host process appears to eliminate this problem. To do this, edit the Script Properties in adTempus and check the Run isolated from other scripts option for the scripts that execute Excel. This will cause adTempus to run each script in a separate host process, which eliminates the problem.

More Information

See the Script Security and Isolation topic in the adTempus help for more information about how scripts are run and about script isolation.

When multiple scripts are run at the same time for the same user, adTempus will run them all in the same instance of the script hosting process. If more than one of these scripts is using the Excel API, only one copy of the Excel automation library (ActiveX DLL) is loaded for the process, and all scripts are using that shared copy. This can produce problems with shared resources within the library, which is not designed for this kind of use. By running each script in a separate instance of the host process, each script loads its own copy of the Excel DLL, thus avoiding the problem.

Prior to version 4, adTempus always ran each script in its own host process instance, so this issue did not occur. Therefore it is possible that Excel automation jobs that worked properly in adTempus 3 will fail when moved to adTempus 4.