<?xml version="1.0" encoding="utf-8"?><rss xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"><channel><title>adTempus Knowledge Base</title><link>http://www.arcanadev.com/support/kb.aspx</link><description>Showing the most recent 20 articles from the adTempus Knowledge Base</description><language>en-us</language><pubDate>Fri, 30 Mar 2012 16:09:26 GMT</pubDate><lastBuildDate>Fri, 30 Mar 2012 16:09:26 GMT</lastBuildDate><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>K00000213: All programs fail to run with error "A required privilege is not held by the client" when adTempus service set to run under user account</title><link>http://www.arcanadev.com/support/kb/K00000213.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;Whenever adTempus tries to run a program, the job fails, and the job log contains one of the following messages:&lt;/p&gt;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;
&lt;p&gt;Logon failed for user '&lt;em&gt;username&lt;/em&gt;': A required privilege is not held by the client.&lt;/p&gt;
&lt;p&gt;The program could not be started: A required privilege is not held by the client.  (1314)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;p&gt;These errors occur if the adTempus service has been configured to run under a user account that does not have the necessary permissions or privileges.&lt;/p&gt;
&lt;h2&gt;Resolution&lt;/h2&gt;
&lt;p&gt;See article &lt;a href="article.aspx?a=K00000215"&gt;&lt;a href="http://www.arcanadev.com/support/kb/K00000215.aspx"&gt;K00000215&lt;/a&gt;&lt;/a&gt; for information on configuring the user account properly.&lt;/p&gt;
&lt;p&gt;You may instead prefer to reconfigure adTempus to run under the Local System account. If you are using a remote SQL Server instance to host the adTempus database, you will in this case need to configure SQL Server to grant permission for the adTempus computer, as discussed in article &lt;a href="http://www.arcanadev.com/support/kb/K00000397.aspx"&gt;K00000397&lt;/a&gt;.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000213.aspx</guid><pubDate>Thu, 22 Mar 2012 15:34:00 GMT</pubDate></item><item><title>K00000397: Granting adTempus access to a remote database when running under the Local System account</title><link>http://www.arcanadev.com/support/kb/K00000397.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This artcle describes how to grant adTempus access to a remote SQL Server database when adTempus is running under the Local System account.&lt;/p&gt;
&lt;h2&gt;Background&lt;/h2&gt;
&lt;p&gt;The adTempus service by default runs under the Local System account, and this is the preferred account for the service.&lt;/p&gt;
&lt;p&gt;However, the Local System account by default cannot connect to a database hosted on a different computer. In such a configuration, the &lt;a href="http://www.arcanadev.com/adtempus/documentation/3.0/installation/database/Using_SQL_Server.htm"&gt;adTempus database configuration documentation&lt;/a&gt; recommends that you either change your database and adTempus to use explicit SQL Server authentication, or reconfigure the adTempus service to run under a user account that has the necessary database permissions (see article &lt;a href="http://www.arcanadev.com/support/kb/K00000215.aspx"&gt;K00000215&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;However, both of these approaches have drawbacks:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Many administrators prefer to avoid enabling explicit SQL Server authentication on the database server. &lt;/li&gt;
    &lt;li&gt;Running adTempus under a user account requires extra steps to enable account rights for the user account. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A third approach is to add access to SQL Server for the Local System account on the adTempus computer, as described in the following section.&lt;/p&gt;
&lt;h2&gt;Configuring SQL Server&lt;/h2&gt;
&lt;p&gt;Note: This procedure is only necessary if adTempus is running on a different computer than SQL Server. If they are on the same computer, no further configuration is needed.&lt;/p&gt;
&lt;p&gt;To grant adTempus access to a remote SQL Server, you must add a machine login to SQL Server. To do so, connect to SQL Server using SQL Server Management Studio or another management tool.&lt;/p&gt;
&lt;p&gt;In the database script below, make the following replacements:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Change "domain" to the name of your domain. &lt;/li&gt;
    &lt;li&gt;Change "computername" to the name of the computer where the adTempus service is running. Be sure to leave the "$" after the name as shown below. &lt;/li&gt;
    &lt;li&gt;Change "databasename" to the name of the adTempus database. &lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code"&gt;
&lt;pre&gt;CREATE LOGIN [domain\computername$] FROM WINDOWS with DEFAULT_DATABASE=[databasename]
go

use [databasename]
go

EXEC sp_grantdbaccess N'domain\computername$', N'domain\computername$'
go

exec sp_addrolemember N'db_accessadmin', N'domain\computername$'
GO

exec sp_addrolemember N'db_backupoperator', N'domain\computername$'
GO

exec sp_addrolemember N'db_datareader', N'domain\computername$'
GO

exec sp_addrolemember N'db_datawriter', N'domain\computername$'
GO

exec sp_addrolemember N'db_ddladmin', N'domain\computername$'
GO

exec sp_addrolemember N'db_owner', N'domain\computername$'
GO

exec sp_addrolemember N'db_securityadmin', N'domain\computername$'
GO
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Run the modified script and make sure that all statements succeeded.&lt;/p&gt;
&lt;p&gt;adTempus should now be able to connect to the database while running under the Local System account.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000397.aspx</guid><pubDate>Fri, 30 Mar 2012 16:09:26 GMT</pubDate></item><item><title>K00000309: Error when saving Script or ScriptLibrary on 64-bit platforms</title><link>http://www.arcanadev.com/support/kb/K00000309.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;When you edit a script that uses a Windows Script Host language such as VBScript or JScript, the adTempus Console gives the following error when you try to save or test the script:&lt;/p&gt;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;
&lt;p&gt;Retrieving the COM class factory for component with CLSID {0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} failed due to the following error: 80040154.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;.NET scripts (VB.NET, C#) are not affected. &lt;/p&gt;
&lt;p dir="ltr"&gt;The problem occurs only on 64-bit versions of Windows.&lt;/p&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;p&gt;When you save the script, adTempus tries to validate the script.&lt;/p&gt;
&lt;p&gt;To execute or validate VBScript or JScript scripts, adTempus uses a scripting engine component that is part of the Windows operating system. Microsoft has not created a 64-bit version of this component, and the adTempus Console (which runs as a 64-bit process) is not able to load the 32-bit scripting component and therefore fails with the error above.&lt;/p&gt;
&lt;p&gt;At execution time, adTempus avoids this issue by hosting the script within a 32-bit process.&lt;/p&gt;
&lt;h2&gt;Workaround&lt;/h2&gt;
&lt;p&gt;You may ignore the error. The script will save and execute correctly. If the script contains syntax or logic errors, the script will fail when the job is run, and the error details will be reported in the Job Log.&lt;/p&gt;
&lt;h2&gt;Status&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;B&gt;adTempus&lt;/b&gt;&lt;br&gt;This issue has been corrected and the fix will be included in the next maintenance update or software release. Customers affected by the problem may &lt;a href="http://www.arcanadev.com/support/supportrequest.aspx"&gt;contact us&lt;/a&gt; to obtain the fix now.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; 
</description><guid>http://www.arcanadev.com/support/kb/K00000309.aspx</guid><pubDate>Tue, 20 Mar 2012 19:56:39 GMT</pubDate></item><item><title>K00000366: adTempus reports database errors after server hosting database is renamed</title><link>http://www.arcanadev.com/support/kb/K00000366.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;If you are using the default SQL Server Express database for adTempus, and you rename the computer after the software has been installed, adTempus may report the following database error:&lt;/p&gt;
&lt;div class="message"&gt;Could not find server '&lt;em&gt;servername&lt;/em&gt;\ADTEMPUS' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers. (source=Microsoft OLE DB Provider for SQL Server; native error=7202; SQL state=42000) &lt;/div&gt;
&lt;p&gt;Where &lt;em&gt;servername&lt;/em&gt; is the new name of the computer.&lt;/p&gt;
&lt;p&gt;This problem may prevent adTempus from starting, or it may only appear occasionally, causing adTempus to report a catastrophic database failure.&lt;/p&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;p&gt;This problem occurs because of problems caused in SQL Server when the host computer is renamed.&lt;/p&gt;
&lt;h2&gt;Resolution&lt;/h2&gt;
&lt;p&gt;This problem can be updated by making a system update to SQL Server. &lt;/p&gt;
&lt;p&gt;To do this, run the "adtdbutil.exe" utility found in the adTempus program directory. When started, adtdbutil will connect to the adTempus database and display an empty command-entry window. Enter the following commands, pressing &lt;strong&gt;F5&lt;/strong&gt; to execute each one:&lt;/p&gt;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;
&lt;p&gt;sp_dropserver '&lt;em&gt;oldname&lt;/em&gt;\adtempus'&lt;/p&gt;
&lt;p&gt;sp_addserver '&lt;em&gt;newname&lt;/em&gt;\adtempus',local&lt;/p&gt;
&lt;p&gt;EXEC sp_serveroption '&lt;em&gt;newname&lt;/em&gt;\adtempus', 'DATA ACCESS', TRUE&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;where &lt;em&gt;oldname&lt;/em&gt; is the old name for the computer, and &lt;em&gt;newname&lt;/em&gt; is the new name.&lt;/p&gt;
&lt;p dir="ltr"&gt;After you have performed this operation, restart the adTempus service.&lt;/p&gt;
&lt;p dir="ltr"&gt;Note: If you do not know what the previous name of the computer was, enter the following command after starting adtdbutil, and press &lt;strong&gt;F5&lt;/strong&gt; to execute it:&lt;/p&gt;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;
&lt;p dir="ltr"&gt;select name from sys.servers&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;Use the name returned by this query in place of "&lt;em&gt;oldname&lt;/em&gt;\adtempus" in the commands shown above.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000366.aspx</guid><pubDate>Thu, 26 Jan 2012 15:04:15 GMT</pubDate></item><item><title>K00000395: SQL Server Express frequently logs message 17137 ("Starting up database")</title><link>http://www.arcanadev.com/support/kb/K00000395.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;When adTempus is installed using the default SQL Server Express database engine, you may see frequent informational messages in the Application log in the Event Viewer with source MSSQL$ADTEMPUS and event ID 17137, reading "Starting up database 'adtempus_computername'."&lt;/p&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;p&gt;This occurs if the adTempus database has the auto-close option set, which causes SQL Server to close the database whenever adTempus is not actively using it, and then reopen the database each when adTempus requests a new connection. Each time this happens, SQL Server logs the message. This situation may also reduce the performance of adTempus.&lt;/p&gt;
&lt;h2&gt;Resolution&lt;/h2&gt;
&lt;p&gt;To resolve this problem, update the adTempus database to turn off the auto-close option.&lt;/p&gt;
&lt;p&gt;To do this, start the adtdbutil tool found in the adTempus program directory (see article &lt;a href="http://www.arcanadev.com/support/kb/K00000385.aspx"&gt;K00000385&lt;/a&gt; for more information). After the tool starts and connects to the database, enter the following command into the query panel:&lt;/p&gt;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;
&lt;p&gt;alter database [&lt;em&gt;databasename&lt;/em&gt;] set auto_close off&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;Replace &lt;em&gt;databasename&lt;/em&gt; with the name of the adTempus database, which is shown in the Event Log message.&lt;/p&gt;
&lt;p dir="ltr"&gt;Press &lt;strong&gt;F5&lt;/strong&gt; to execute the command.&lt;/p&gt;
&lt;p dir="ltr"&gt;&amp;nbsp;&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000395.aspx</guid><pubDate>Thu, 01 Dec 2011 21:07:17 GMT</pubDate></item><item><title>K00000393: E-mail notification fails when trying to use a mail server that requires SSL or TLS</title><link>http://www.arcanadev.com/support/kb/K00000393.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;When you configure adTempus to use an SMTP server that requires SSL or TLS connections (any server, such as Google Mail, that requires you to connect to port 465 or 587), notification tests and notification messages will fail with error "Failed to connect to SMTP server." If you display the details for the error message, the details will contain the following message:&lt;/p&gt;
&lt;div class="message"&gt;530 5.7.0 Must issue a STARTTLS command first&lt;/div&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;p&gt;adTempus does not currently support SSL or TLS connections for e-mail.  &lt;/p&gt;
&lt;h2&gt;Status&lt;/h2&gt;
&lt;p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;B&gt;adTempus&lt;/b&gt;&lt;br&gt;This issue has been corrected and the fix will be included in the next maintenance update or software release. Customers affected by the problem may &lt;a href="http://www.arcanadev.com/support/supportrequest.aspx"&gt;contact us&lt;/a&gt; to obtain the fix now.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000393.aspx</guid><pubDate>Wed, 23 Nov 2011 15:44:10 GMT</pubDate></item><item><title>K00000392: Selecting a job in the adTempus Console results in error message "Arithmetic operation resulted in an overflow"</title><link>http://www.arcanadev.com/support/kb/K00000392.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;When you select a job in the adTempus Console, adTempus displays the following error message:&lt;/p&gt;
&lt;div class="message"&gt;Arithmetic operation resulted in an overflow&lt;/div&gt;
&lt;p&gt;After you acknowledge this message, you can still work with the job normally, though the information shown on the Statistics tab for the job may be incomplete.&lt;/p&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;p&gt;This error is caused by a math overflow when adTempus attempts to display statistics for the job.&lt;/p&gt;
&lt;h2&gt;Status&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;B&gt;adTempus&lt;/b&gt;&lt;br&gt;This issue has been corrected and the fix will be included in the next maintenance update or software release. Customers affected by the problem may &lt;a href="http://www.arcanadev.com/support/supportrequest.aspx"&gt;contact us&lt;/a&gt; to obtain the fix now.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; 
</description><guid>http://www.arcanadev.com/support/kb/K00000392.aspx</guid><pubDate>Mon, 21 Nov 2011 22:09:02 GMT</pubDate></item><item><title>K00000391: Recipients of notification messages cannot determine who else received the message</title><link>http://www.arcanadev.com/support/kb/K00000391.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;span style="font-size: 13px;"&gt;
&lt;p&gt;When adTempus sends a notification message the results of the Notification Task or a Notification Action, each recipient of that notification message receives a separate copy of the message addressed only to them. The recipient is not able to see which other recipients received the message.&lt;/p&gt;
&lt;/span&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;span style="font-size: 13px;"&gt;
&lt;p&gt;This behavior is by design, and stems from the ability of adTempus to customize the way each recipient receives a message, for example, by limiting the length of the message.&lt;/p&gt;
&lt;/span&gt;
&lt;h2&gt;Status&lt;/h2&gt;
&lt;span style="font-size: 13px;"&gt;
&lt;p&gt;In the next major release of adTempus, the notification framework will be updated so that a single message can be sent listing all notification recipients. Unfortunately, no workaround is currently available for this behavior.&lt;/p&gt;
&lt;/span&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000391.aspx</guid><pubDate>Mon, 21 Nov 2011 17:55:01 GMT</pubDate></item><item><title>K00000390: Using .NET Framework version 4.0 for scripts</title><link>http://www.arcanadev.com/support/kb/K00000390.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This article describes how to configure adTempus so that user scripts written in the .NET languages (such as VB.NET and C#) can use language features and assemblies from version 4.0 of the Microsoft .NET Framework.&lt;/p&gt;
&lt;h2&gt;More Information&lt;/h2&gt;
&lt;p&gt;adTempus version 3.x and earlier is built using version 2.0 of the .NET Framework, and any .NET scripts run by adTempus therefore also use version 2.0. If you want to run scripts that use features from later versions of the .NET Framework, you must update the adTempus runtime configuration files so that the newer version of the Framework will be loaded.&lt;/p&gt;
&lt;p&gt;First make sure that version 4.0 of the .NET Framework is installed on the computer where the adTempus service is running, and on any remote computers where you are running the adTempus Console.&lt;/p&gt;
&lt;p&gt;Next you must configure the adtjobhost program, which is responsible for executing the scripts. Edit the file "adtjobhost.exe.config" found in the adTempus program directory on the adTempus server (the computer where the adTempus service is installed and where jobs run). You can edit this file using a text editor such as Notepad.&lt;/p&gt;
&lt;p&gt;In this file, locate the line at the end of the file that reads&lt;/p&gt;
&lt;div class="literal"&gt;&amp;lt;/configuration&amp;gt;&lt;/div&gt;
&lt;p&gt;Immediately above this line, insert the following text:&lt;/p&gt;
&lt;div class="literal"&gt;&amp;lt;startup&amp;gt;&amp;lt;supportedRuntime version="v4.0.30319" /&amp;gt;&amp;lt;/startup&amp;gt;&lt;/div&gt;
&lt;p&gt;Save and close the file.&lt;/p&gt;
&lt;p&gt;Next you must configure the adTempus Console so that the correct version of the .NET Framework will be used for the script editor in the Console. Edit the "adtconsole.exe.config" file, also found in the adTempus program directory, and make the same change. After saving the file, you will need to close and restart the adTempus Console if it was running, in order for the change to take effect.&lt;/p&gt;
&lt;p&gt;Note: If you are running the adTempus Console on any remote computers, you will need to update adtconsole.exe.config on those computers as well.&lt;/p&gt;
&lt;p&gt;It is &lt;em&gt;not&lt;/em&gt; necessary to restart the adTempus service for the configuration changes to take effect.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000390.aspx</guid><pubDate>Fri, 04 Nov 2011 17:57:21 GMT</pubDate></item><item><title>K00000288: Configuring the automatic database backup</title><link>http://www.arcanadev.com/support/kb/K00000288.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;If you are using the default SQL Server Express database engine for adTempus, adTempus creates a database backup automatically each day around 1:30 AM. This article explains how to change the settings for the automatic backup.&lt;/p&gt;
&lt;h2&gt;More Information&lt;/h2&gt;
&lt;p&gt;The automatic backup cannot be configured through the adTempus Console, but some settings can be changed by setting options in the Registry on the computer where the adTempus service is running. Note that any changes you make will not take effect until the adTempus service is restarted.&lt;/p&gt;
&lt;p&gt;The following settings are stored under Registry key "HKEY_LOCAL_MACHINE\Software\Arcana Development\adTempus\options". If the "options" key does not exist, you will need to create it.&lt;/p&gt;
&lt;p&gt;Each setting is controlled by a string (REG_SZ) value created under the options key. You will need to create each value, as they are not present by default. Be sure to create each value as a STRING value. For example, to set the "Maintenance:DoDatabaseBackup" option, create (or modify if it already exists) the "Maintenance:DoDatabaseBackup" value.&lt;/p&gt;
&lt;table&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;b&gt;Option Name&lt;/b&gt; &lt;/td&gt;
            &lt;td&gt;&lt;b&gt;Description&lt;/b&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;Maintenance:DoDatabaseBackup&lt;/td&gt;
            &lt;td&gt;Controls whether the backup is performed. Set to "0" to disable backups. Set to "1" to enable backups. If no value is present, the backup will be performed.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Maintenance:BackupTime&lt;/td&gt;
            &lt;td&gt;Sets the time at which the backup will occur. Specify the time in the form "HH:mm". For example, "02:45" to run the backup at 2:45 AM, or "16:30" to run it at 4:30 PM.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Maintenance:LogBackupSuccess&lt;/td&gt;
            &lt;td&gt;Determines whether adTempus will log a message when the backup succeeds. If the value is set to "1", adTempus will log an informational message to the computer's Event Log and also to the Alerts log in adTempus indicating that the backup ran successfully. If this value is set to "0", adTempus will log a message only if the backup fails. Default value: "0".&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;You can change where the automatic backup is stored by setting the DatabaseBackupPath option. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: This option is set in a different location than the options described above.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The following settings are stored under Registry key "HKEY_LOCAL_MACHINE\Software\Arcana Development\adTempus".&lt;/p&gt;
&lt;p&gt;Each setting is controlled by a string (REG_SZ) value created under the key. You will need to create the value, as is is not present by default. &lt;/p&gt;
&lt;table&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;b&gt;Option Name&lt;/b&gt; &lt;/td&gt;
            &lt;td&gt;&lt;b&gt;Description&lt;/b&gt; &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;DatabaseBackupPath&lt;/td&gt;
            &lt;td&gt;Sets the path where the backup file will be written. This must be on a local drive (mapped network drives and UNC paths are not allowed) because the backup is performed by SQL Server, which is running under the Local System account and does not have access to remote resources. If no value is specified, the backup is written to the "data\backup" directory under the adTempus program directory.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;See Also&lt;/h2&gt;
&lt;p&gt;See the &lt;a href="http://www.arcanadev.com/link/1972"&gt;Backing Up and Restoring adTempus Data&lt;/a&gt; topic in the adTempus help for more information about database backups.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000288.aspx</guid><pubDate>Tue, 04 Oct 2011 15:28:20 GMT</pubDate></item><item><title>K00000388: Predefined Job Variables variables for adTempus 3.x</title><link>http://www.arcanadev.com/support/kb/K00000388.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;When adTempus runs a program or script, it defines Job Variablesthat the program or script can use. These variables are discussed in the &lt;a href="http://www.arcanadev.com/adtempus/documentation/3.0/objects/JobVariable/Predefined_Variables.htm"&gt;Predefined Variables&lt;/a&gt; topic in the adTempus 3.x help document.&lt;/p&gt;
&lt;p&gt;Some new variables have been added to adTempus since the last update of the documentation. This article provides the current list of variables.&lt;/p&gt;
&lt;h2&gt;More Information&lt;/h2&gt;
&lt;p&gt;The list below includes all of the predefined variables as of adTempus version 3.0.8.1.&lt;/p&gt;
&lt;table style="border-collapse: collapse;" border="1"&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;td&gt;Variable Name &lt;/td&gt;
            &lt;td&gt;Description &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;ADJobInstance &lt;/td&gt;
            &lt;td&gt;A GUID identifying this instance of the job. This value is used by the &lt;a href="http://www.arcanadev.com/../utilities/adtchkpt/adtChkpt_Utility.htm"&gt;adtchkpt utility program&lt;/a&gt;. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTExecutionReason &lt;/td&gt;
            &lt;td&gt;A message indicating why the job is being run, e.g., "scheduled execution". &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTExecutionAttempt &lt;/td&gt;
            &lt;td&gt;The execution attempt number. This value will be 1 for the first attempt and is incremented each time the job is restarted by a Job Control Action. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTJobDescription &lt;/td&gt;
            &lt;td&gt;The name of the job. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTInstanceID &lt;/td&gt;
            &lt;td&gt;The instance number for this instance. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTJobOID &lt;/td&gt;
            &lt;td&gt;The unique identifier for this job. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTTriggerClass &lt;/td&gt;
            &lt;td&gt;The name of the trigger that started the job. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ServerName &lt;/td&gt;
            &lt;td&gt;The name of the computer where the job is running. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTQueueName &lt;/td&gt;
            &lt;td&gt;The name of the Job Queue that the job is assigned to. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTGroupName &lt;/td&gt;
            &lt;td&gt;The full name of the Job Group that contains the job. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTJobStep &lt;/td&gt;
            &lt;td&gt;The unique identifier for this job step. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTStepNumber &lt;/td&gt;
            &lt;td&gt;The step number. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTJobCheckpoint &lt;/td&gt;
            &lt;td&gt;The checkpoint being passed to the program. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTStepRestartCount &lt;/td&gt;
            &lt;td&gt;The restart count. This value will be 0 for the first attempt and is incremented each time the step is restarted by a Job Control Action. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTStepDescription &lt;/td&gt;
            &lt;td&gt;The system-generated description of the step. Use ADTStepName to get the user-supplied name of the step. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTFullyQualifiedJobName&lt;/td&gt;
            &lt;td&gt;The fully-qualified name of the job, including the names of its ancestor groups, e.g., "Group 1\Group 1a\My Job".&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTJobNotes&lt;/td&gt;
            &lt;td&gt;The contents of the Description/Notes field from the job properties.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTStepNotes&lt;/td&gt;
            &lt;td&gt;The contents of the Description/Notes field from the job step properties.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTStepName&lt;/td&gt;
            &lt;td&gt;The name of the step, if specified.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ADTTaskResult&lt;/td&gt;
            &lt;td&gt;The exit code of the most recent Program Execution Task to be executed. &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ScriptResult&lt;/td&gt;
            &lt;td&gt;The Result value provided by the most recent script to be executed.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ConsoleOutputFileName&lt;/td&gt;
            &lt;td&gt;The name of the file containing the captured console output from the most recent step that captured console output.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Various triggers may also add additional variables. See the &lt;a href="http://www.arcanadev.com/adtempus/documentation/3.0/concepts/Triggers.htm"&gt;documentation for the individual triggers&lt;/a&gt; for more information.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000388.aspx</guid><pubDate>Mon, 12 Sep 2011 14:26:19 GMT</pubDate></item><item><title>K00000376: Web Request task and SQL Server Job task fail with error "The task could not be executed because a required software component is not installed on this computer"</title><link>http://www.arcanadev.com/support/kb/K00000376.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;After installing adTempus version 3.0.8 on a computer running a 64-bit version of Windows, jobs that use the Web Request task or the SQL Server Job task fail, and the following error message is reported in the job log:&lt;/p&gt;
&lt;div class="message"&gt;The task could not be executed because a required software component is not installed on this computer.&lt;/div&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;p&gt;This problem occurs because of a problem in the task hosting component of adTempus.&lt;/p&gt;
&lt;h2&gt;Resolution&lt;/h2&gt;
&lt;p&gt;This problem was resolved in version 3.0.8.1 of adTempus. If you are running version 3.0.8, download the latest release from the &lt;a href="http://www.arcanadev.com/adtempus/download.aspx"&gt;adTempus download page&lt;/a&gt; and run it to update your installation. &lt;/p&gt;
&lt;p&gt;If you are running version 3.0.8.1 or later and still experiencing the problem, submit as support request for assistance with this issue. Include with your support request the log files from the "logs" directory under the adTempus program directory.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000376.aspx</guid><pubDate>Fri, 22 Jul 2011 15:14:49 GMT</pubDate></item><item><title>K00000387: Allowing remote access to the adTempus SQL Server Express database</title><link>http://www.arcanadev.com/support/kb/K00000387.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This article describes how to configure the adTempus SQL Server Express installation to allow connections from remote computers.&lt;/p&gt;
&lt;h2&gt;More Information&lt;/h2&gt;
&lt;p&gt;When you use the default SQL Server Express installation to host the adTempus database, the database server is by default configured so that only local connections are allowed (no connections are allowed from other computers). In some cases you may wish to allow remote access (for example, to query the database from another computer). &lt;/p&gt;
&lt;div class="note"&gt;This change will enable users from other computers to query the adTempus database directly. Consider the security implications of this before making the change. In the default configuration, only members of the Administrators group will have access. &lt;/div&gt;
&lt;p&gt;To make this change:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Log in as an Administrator to the computer where the adTempus service is installed. &lt;/li&gt;
    &lt;li&gt;Go to the &lt;strong&gt;Start&lt;/strong&gt; menu, then &lt;strong&gt;Microsoft SQL Server 2005&lt;/strong&gt;, then &lt;strong&gt;Configuration Tools&lt;/strong&gt;, then &lt;strong&gt;SQL Server Surface Area Configuration&lt;/strong&gt;. &lt;/li&gt;
    &lt;li&gt;In the Surface Area Configuration tool, click the &lt;strong&gt;Surface Area Configuration for Services and Connections&lt;/strong&gt; link. &lt;/li&gt;
    &lt;li&gt;Expand &lt;strong&gt;ADTEMPUS&lt;/strong&gt;, then &lt;strong&gt;Database Engine&lt;/strong&gt;, and select &lt;strong&gt;Remote Connections&lt;/strong&gt;. &lt;/li&gt;
    &lt;li&gt;Check the option for &lt;strong&gt;Local and Remote Connections&lt;/strong&gt; and &lt;strong&gt;Using TCP/IP Only&lt;/strong&gt;. &lt;/li&gt;
    &lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;. &lt;/li&gt;
    &lt;li&gt;Using the Windows &lt;strong&gt;Services&lt;/strong&gt; tool, restart the "SQL Server (ADTEMPUS)" service. This will require restarting adTempus as well. &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Designating System Administrators&lt;/h3&gt;
&lt;p&gt;Depending on the version of Windows running on the computer, members of the Administrators group may automatically have access to SQL Server. On newer versions of Windows, only the user who installed adTempus and SQL Server will have access by default, and other users will need to be added.&lt;/p&gt;
&lt;p&gt;To add an additional user as a System Administrator for SQL Server:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Log in as an Administrator to the computer where the adTempus service is installed. &lt;/li&gt;
    &lt;li&gt;Go to the &lt;strong&gt;Start&lt;/strong&gt; menu, then &lt;strong&gt;Microsoft SQL Server 2005&lt;/strong&gt;, then &lt;strong&gt;Configuration Tools&lt;/strong&gt;, then &lt;strong&gt;SQL Server Surface Area Configuration&lt;/strong&gt;. &lt;/li&gt;
    &lt;li&gt;In the Surface Area Configuration tool, click the &lt;strong&gt;Add New Administrator&lt;/strong&gt; link. &lt;/li&gt;
    &lt;li&gt;Enter the appropriate user ID in the &lt;strong&gt;User to provision&lt;/strong&gt; box. &lt;/li&gt;
    &lt;li&gt;Select the "Member of SQL Server SysAdmin role on ADTEMPUS" privilege and click the right arrow button to add the privilege for the user. &lt;/li&gt;
    &lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt; to complete the configuration. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This will grant the selected user full permissions for the adTempus instance of SQL Server. To grant a lower level of access (such as read-only) use SQL Server Management Studio (see article &lt;a href="http://www.arcanadev.com/support/kb/K00000385.aspx"&gt;K00000385&lt;/a&gt;) and refer to SQL Server documentation on user and security management.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000387.aspx</guid><pubDate>Tue, 03 Jan 2012 19:11:37 GMT</pubDate></item><item><title>K00000385: How to query the adTempus database</title><link>http://www.arcanadev.com/support/kb/K00000385.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This article explains how to query the adTempus database.&lt;/p&gt;
&lt;h2&gt;More Information&lt;/h2&gt;
&lt;div class="note"&gt;
&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; Direct updates to the adTempus database are &lt;b&gt;not supported&lt;/b&gt; and may result in unrecoverable data corruption. Do not execute any updates against the adTempus database unless you are instructed to do so by a support engineer.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;adTempus data is stored in a SQL Server database, which can be queried using standard SQL Server client tools.&lt;/p&gt;
&lt;h3&gt;Standalone SQL Server Instance&lt;/h3&gt;
&lt;p&gt;If you are using your own SQL Server instance to host the adTempus database, you can use SQL Server Management Studio or any other SQL Server query tool to query the database.&lt;/p&gt;
&lt;h3&gt;SQL Server Express&lt;/h3&gt;
&lt;p&gt;If you are using the default SQL Server Express installation to host the database, no tools are provided as part of the SQL Server installation. Instead you can use the adtdbutil.exe tool found in the adTempus program directory.&lt;/p&gt;
&lt;p&gt;When you start adtdbutil it will automatically connect to the adTempus database and display a query panel. Enter your SQL query into the box and press &lt;strong&gt;F5&lt;/strong&gt; to execute it. Note that you can paste text into the query box using &lt;strong&gt;CTRL-V&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you prefer to use a more robust query tool you can download and install the free &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796"&gt;SQL Server Management Studio Express&lt;/a&gt; from Microsoft.&lt;/p&gt;
&lt;p&gt;Alternatively, if you already have Management Studio or another query tool installed on another computer, you can run that tool and connect to the adTempus database. You will first need to enable remote access to the adTempus database, as described in article &lt;a href="http://www.arcanadev.com/support/kb/K00000387.aspx"&gt;K00000387&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When connecting to the adTempus database from a remote computer, specify the server to connect to as "&lt;em&gt;computername&lt;/em&gt;\adtempus", where &lt;em&gt;computername&lt;/em&gt; is the name of the computer where adTempus is installed.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000385.aspx</guid><pubDate>Tue, 03 Jan 2012 19:01:26 GMT</pubDate></item><item><title>K00000354: "Cannot connect to database" error when running adTempus reports from Console</title><link>http://www.arcanadev.com/support/kb/K00000354.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;When you attempt to run one of the reports listed below from the adTempus Console, you receive the following error message:&lt;/p&gt;
&lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;
&lt;p&gt;Cannot connect to database&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem occurs with the following reports:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Job Accounting Report &lt;/li&gt;
    &lt;li&gt;Job History Report &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The problem may occur in the following scenarios:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;The user running the report is not a member of the Administrators group; or &lt;/li&gt;
    &lt;li&gt;adTempus is using the default SQL Server Express database, and the Console from which you are attempting to run the report is a remote Console (that is, it is running on a different computer than the adTempus service). &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Cause&lt;/h2&gt;
&lt;p&gt;The adTempus Console does not ordinarily communicate directly with the database (it communicates only with the adTempus service), so users using the Console do not need permission to access the adTempus database directly. However, these two reports do make a direct connection to the adTempus database, bypassing the Console and the service. As a result, the user running the reports must have read permission for the adTempus database.&lt;/p&gt;
&lt;p&gt;In addition, by default, SQL Server Express is configured to allow only local connections. Therefore the connection will fail if the report is being run from a remote computer.&lt;/p&gt;
&lt;h2&gt;Resolution&lt;/h2&gt;
&lt;p&gt;To resolve this issue you must reconfigure SQL Server to allow remote connections and/or to allow access to the user attempting to run the report.&lt;/p&gt;
&lt;h3&gt;Allow Remote Access to SQL Server Express&lt;/h3&gt;
&lt;p&gt;Follow the instructions in article &lt;a href="http://www.arcanadev.com/support/kb/K00000387.aspx"&gt;K00000387&lt;/a&gt; to allow remote access to SQL Server Express.&lt;/p&gt;
&lt;p&gt;The reports should now run correctly from the remote Console.&lt;/p&gt;
&lt;h3&gt;Grant Read Permission to Affected Users&lt;/h3&gt;
&lt;p&gt;The user who is running the Console must have read permissions for the adTempus database. This permission requirement is separate from any permissions that have already been configured within adTempus itself, and must be configured within SQL Server.&lt;/p&gt;
&lt;p&gt;Follow these instructions to make the changes.&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Determine whom you will grant access to, based on your security policies and on who needs access to the reports. You may choose to grant access to only a single user, or  to a group of users. In the example below, we assume that a Windows domain security group called "adTempus users" has already been created, and we grant access to members of that group. &lt;/li&gt;
    &lt;li&gt;Log in as an Administrator to the computer where the adTempus service is installed. &lt;/li&gt;
    &lt;li&gt;Run the "adtdbutil" program found in the adTempus program directory (e.g., "c:\program files\arcana development\adTempus\adtdbutil.exe"). This utility will connect to the adTempus database and display an empty query-entry box. &lt;/li&gt;
    &lt;li&gt;Enter the following text into the query box: &lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="sql"&gt;
&lt;pre&gt;CREATE LOGIN [MYDOMAIN\adTempus users] FROM WINDOWS; 
CREATE USER [MYDOMAIN\adTempus users] FOR LOGIN [MYDOMAIN\adTempus users]; 
EXEC sp_addrolemember N'db_datareader', N'MYDOMAIN\adTempus users';&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Note: Replace "MYDOMAIN\adTempus users" with the user name or group (including domain name, if appropriate) that you want to grant access to.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol start="5"&gt;
    &lt;li&gt;Press the &lt;strong&gt;F5&lt;/strong&gt; key to execute the command. &lt;/li&gt;
    &lt;li&gt;The Messages panel at the bottom of the window should display the message "Command completed successfully". &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The designated user(s) will now be able to run the reports.&lt;/p&gt;
&lt;p&gt;Note: If you are using your own SQL Server instance to host the adTempus database, you or your database administrator can use SQL Server Management Studio to make the necessary changes, and any changes should be made in accordance with your organization's security policies.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000354.aspx</guid><pubDate>Thu, 05 May 2011 16:52:03 GMT</pubDate></item><item><title>K00000386: Querying the adTempus database to obtain a list of notification recipients for each job</title><link>http://www.arcanadev.com/support/kb/K00000386.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This article provides a database query that can be used to get a list of all jobs that send notification messages and the recipients that each job notifies.&lt;/p&gt;
&lt;h2&gt;More Information&lt;/h2&gt;
&lt;p&gt;See article &lt;a href="http://www.arcanadev.com/support/kb/K00000385.aspx"&gt;K00000385&lt;/a&gt; for instructions on how to execute a database query.&lt;/p&gt;
&lt;p&gt;The following SQL query returns a list of all jobs that contain Notification Tasks or Notification Actions in Responses, and lists all of the notification recipients who receive notification for the job. The query reports on job-level and step-level Responses.&lt;/p&gt;
&lt;div class="sql"&gt;
&lt;pre&gt;select j.name as JobName,
0 as StepNumber,
cast(event as varchar(50)) as Event,
'Individual' as RecipientType,
nr.name as RecipientName
from job j join response r on j.oid=r.owner
join actions a on r.oid=a.owner
join notificationaction na on a.actionoid=na.oid
join notificationrecipients nrs on nrs.owner=na.oid
join notificationindividual nr on nr.oid=nrs.recipientoid
join events es on es.owner=r.oid
join jobeventfilter e on es.eventoid=e.oid
where j.instanceparent is null

union

select j.name as JobName,
0 as StepNumber,
cast(event as varchar(50)) as Event,
'Group' as RecipientType,
nr.name as RecipientName
from job j join response r on j.oid=r.owner
join actions a on r.oid=a.owner
join notificationaction na on a.actionoid=na.oid
join notificationrecipients nrs on nrs.owner=na.oid
join notificationgroup nr on nr.oid=nrs.recipientoid
join events es on es.owner=r.oid
join jobeventfilter e on es.eventoid=e.oid
where j.instanceparent is null

union

select j.name as JobName,
StepNumber,
cast(event as varchar(50)) as Event,
'Individual' as RecipientType,
nr.name as RecipientName
from job j join jobstep js on j.oid=js.owner
join response r on js.oid=r.owner
join actions a on r.oid=a.owner
join notificationaction na on a.actionoid=na.oid
join notificationrecipients nrs on nrs.owner=na.oid
join notificationindividual nr on nr.oid=nrs.recipientoid
join events es on es.owner=r.oid
join jobeventfilter e on es.eventoid=e.oid
where j.instanceparent is null

union

select j.name as JobName,
StepNumber,
cast(event as varchar(50)) as Event,
'Group' as RecipientType,
nr.name as RecipientName
from job j join jobstep js on j.oid=js.owner
join response r on js.oid=r.owner
join actions a on r.oid=a.owner
join notificationaction na on a.actionoid=na.oid
join notificationrecipients nrs on nrs.owner=na.oid
join notificationgroup nr on nr.oid=nrs.recipientoid
join events es on es.owner=r.oid
join jobeventfilter e on es.eventoid=e.oid
where j.instanceparent is null

union 
select j.name as JobName,StepNumber,'Notification Task' as Event,
'Individual' as RecipientType,
nr.name as RecipientName
from job j join jobstep js on j.oid=js.owner
join notificationtask nt on js.task=nt.oid
join notificationrecipients nrs on nrs.owner=nt.oid
join notificationindividual nr on nr.oid=nrs.recipientoid
where j.instanceparent is null

union 
select j.name as JobName,StepNumber,'Notification Task' as Event,
'Group' as RecipientType,
nr.name as RecipientName
from job j join jobstep js on j.oid=js.owner
join notificationtask nt on js.task=nt.oid
join notificationrecipients nrs on nrs.owner=nt.oid
join notificationgroup nr on nr.oid=nrs.recipientoid
where j.instanceparent is null


order by jobname,stepnumber,event,recipientname
&lt;/pre&gt;
&lt;/div&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000386.aspx</guid><pubDate>Thu, 05 May 2011 16:40:10 GMT</pubDate></item><item><title>K00000384: Diagnosing e-mail notification failures</title><link>http://www.arcanadev.com/support/kb/K00000384.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;When e-mail notification fails during a job, adTempus logs a message to the Job Log reporting the failure, along with an error message. In some cases this information will be enough to determine the cause of the problem, such as an invalid server address or password.&lt;/p&gt;
&lt;p&gt;In some cases, however, the error message may be a generic "Send failed" error message:&lt;/p&gt;
&lt;div class="message"&gt;SMTP notification to "someone@example.com" failed: Send failed.&lt;/div&gt;
&lt;p&gt;In this case, the adTempus diagnostic log will contain more detailed information about the failure.&lt;/p&gt;
&lt;h2&gt;More Information&lt;/h2&gt;
&lt;p&gt;To locate the the error information, find the most recent "adtempussrv.*.log" file in the "logs" directory under the adTempus program directory (on the computer where the adTempus service is running). Open this log file in a text editor such as Notepad and search for the string "Send failed: ChilkatLog:". Following this line in the log will be a detailed transcript of the mail session, including more detailed error information.&lt;/p&gt;
&lt;p&gt;If you are not able to determine the cause of the problem from the information in the log file, contact us for assistance.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000384.aspx</guid><pubDate>Wed, 04 May 2011 20:58:40 GMT</pubDate></item><item><title>K00000383: Scheduled executions are missed if a Schedule Trigger uses a "wraparound" scheduling scenario</title><link>http://www.arcanadev.com/support/kb/K00000383.aspx</link><description>&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;If a schedule is configured using a "wraparound" scenario, where the effective time period for the schedule crosses midnight, adTempus will fail to run jobs during a portion of the schedule period.&lt;/p&gt;
&lt;h2&gt;Example &lt;/h2&gt;
&lt;p&gt;A Schedule Trigger is configured to run at a specified interval, with a start time that is later in the day than the end time (for example, between 6:00 &lt;span class="smallcaps"&gt;am&lt;/span&gt; and 4:00 &lt;span class="smallcaps"&gt;am&lt;/span&gt;). The intended behavior is for the job to execute except during the period from 4:00 am to 6:00 am. Instead, adTempus will miss executions from 12:00 &lt;span class="smallcaps"&gt;am&lt;/span&gt; to 4:00 &lt;span class="smallcaps"&gt;am&lt;/span&gt;, and will only execute the job from 6:00 &lt;span class="smallcaps"&gt;am&lt;/span&gt; to 11:59 &lt;span class="smallcaps"&gt;pm&lt;/span&gt;.&lt;/p&gt;
&lt;h2&gt;Workaround&lt;/h2&gt;
&lt;p&gt;This scheduling scenario can be accommodated by using two separate schedules on the Schedule Trigger:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;The first Schedule is configured to execute the job at the desired interval between 12:00 &lt;span class="smallcaps"&gt;am&lt;/span&gt; and 4:00 &lt;span class="smallcaps"&gt;am&lt;/span&gt;. &lt;/li&gt;
    &lt;li&gt;The second Schedule is configured to execute the job at the desired interval between 6:00 &lt;span class="smallcaps"&gt;am&lt;/span&gt; and 11:59 &lt;span class="smallcaps"&gt;pm&lt;/span&gt;. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Status&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;B&gt;adTempus&lt;/b&gt;&lt;br&gt;This issue has been corrected and the fix will be included in the next maintenance update or software release. Customers affected by the problem may &lt;a href="http://www.arcanadev.com/support/supportrequest.aspx"&gt;contact us&lt;/a&gt; to obtain the fix now.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; 
</description><guid>http://www.arcanadev.com/support/kb/K00000383.aspx</guid><pubDate>Tue, 12 Apr 2011 17:37:37 GMT</pubDate></item><item><title>K00000382: Using a script to interpret a process exit code</title><link>http://www.arcanadev.com/support/kb/K00000382.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This article describes how to use a script to interpret exit codes from a process run by adTempus.&lt;/p&gt;
&lt;h2&gt;Background&lt;/h2&gt;
&lt;p&gt;When you run a process using a Program Execution Task in adTempus, the &lt;strong&gt;Success Criteria&lt;/strong&gt; rules on the &lt;a href="http://www.arcanadev.com/adtempus/documentation/3.0/objects/ProgramExecutionTask/properties/Advanced_Page.htm"&gt;&lt;strong&gt;Advanced&lt;/strong&gt; page of the step properties&lt;/a&gt; determine how adTempus knows whether the program succeeded. In most cases, you will be able to use one of the simple exit code rules. For example, most programs will return "0" for success and some value greater than 0 for a failure. Some programs may return "0" for success, "4" for a warning, or "8" for an error.&lt;/p&gt;
&lt;p&gt;However, some programs may use an exit code scheme that cannot be accommodated by a simple rule. For example, consider a program that has possible exit codes of 1, 2, 3, 23, 45, and 67, with exit codes 23 and 67 indicating success, and all others indicating failure. For such a scheme you can use a simple script to interpret the exit code and tell adTempus whether the program succeeded or failed.&lt;/p&gt;
&lt;h2&gt;Procedure&lt;/h2&gt;
&lt;p&gt;On the &lt;strong&gt;Advanced&lt;/strong&gt; page of the step properties, select the "Use a script" option in the &lt;strong&gt;Success Criteria&lt;/strong&gt; section. Click &lt;strong&gt;Select...&lt;/strong&gt; then &lt;strong&gt;New...&lt;/strong&gt; to create a new script.&lt;/p&gt;
&lt;p&gt;Make sure that "VB.NET" is selected as the script &lt;strong&gt;Language&lt;/strong&gt;, then replace the default script code with the following:&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre class="code"&gt;Imports System
Imports System.Collections
Imports ArcanaDevelopment.adTempus.Server

Public Class UserScript
    Inherits ArcanaDevelopment.adTempus.ScriptEngine.UserScriptBase

    Public Overrides Function Run() As Object
    'The ProcessExitCode variable contains the exit code from the program that was just run
    'The script must examine the exit code and return a True value if the step should be reported as successful
    'or False if it should be reported as failed.
		Select Case CInt(adTempus.JobVariables("ProcessExitCode"))
			Case 23,67
				Return True
			Case Else
				Return False
        End Select
    End Function
End Class
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Modify the "Case" line as necessary to specify the exit codes that represent successful execution (in this example, 23 and 67). Note that all&lt;/p&gt;
&lt;p&gt;After adTempus runs the program, it stores the program's exit code in a Job Variable named ProcessExitCode and then runs the script.&lt;/p&gt;
&lt;p&gt;The script retrieves the ProcessExitCode variable and returns a result based on its value. The script returns True if the exit code represents success, or False if it represents failure. In this example, the script returns True (success) for exit codes 23 and 67, and False (failure) for anything else.&lt;/p&gt;
&lt;p&gt;Based on the result of the script, adTempus reports the step as either successful or failed.&lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000382.aspx</guid><pubDate>Fri, 01 Apr 2011 20:32:29 GMT</pubDate></item><item><title>K00000381: Using a script to control a service on a remote computer</title><link>http://www.arcanadev.com/support/kb/K00000381.aspx</link><description>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;The Service Control Task in adTempus allows you to start or stop a service running on the same computer as adTempus, but does not allow you to control a service on a remote computer.&lt;/p&gt;
&lt;p&gt;Using a script it is possible to control a service on a remote computer.&lt;/p&gt;
&lt;h2&gt;Procedure&lt;/h2&gt;
&lt;p&gt;You will first create a &lt;a href="http://www.arcanadev.com/adtempus/documentation/3.0/objects/ScriptLibrary/Script_Library.htm"&gt;Script Library&lt;/a&gt; that contains supporting code.You will then create jobs that runs the script code.&lt;/p&gt;
&lt;h3&gt;Create the Script Library&lt;/h3&gt;
&lt;p&gt;1. In the adTempus Console, expand the &lt;strong&gt;Scripts&lt;/strong&gt; folder, then right-click &lt;strong&gt;Script Libraries&lt;/strong&gt; and choose &lt;strong&gt;New Script Library...&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;2. In the &lt;strong&gt;Script Library Properties&lt;/strong&gt; window:&lt;/p&gt;
&lt;p&gt;a. Name the library "ServiceControl" &lt;/p&gt;
&lt;p&gt;b. Select "VB.NET" for the &lt;strong&gt;Language&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;c. In the &lt;strong&gt;Referenced Assemblies&lt;/strong&gt; section, click the &lt;strong&gt;Add...&lt;/strong&gt; button. In the &lt;strong&gt;Add Assembly Reference&lt;/strong&gt; window select "System.ServiceProcess.dll" and click &lt;strong&gt;OK&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;d. Erase the default script code and paste in the following code:&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre class="code"&gt;Imports System.Collections.Generic 
Imports System 
Imports ArcanaDevelopment.adTempus.Server
Imports System.ServiceProcess

'Contains methods for controlling Windows services. See www.arcanadev.com/support/kb/K00000381.aspx for more information

Public Module ServiceControl
    Public Function StartService(serviceName As String,Optional computerName As String="") As Boolean 
		Try
			Dim controller As ServiceController
			
			controller=GetService(serviceName,computerName)
			If ServiceControllerStatus.Running=controller.Status Then
				adTempus.LogMessage(MessageTypeEnum.Informational,0,"Service " &amp;amp; ServiceDescription(serviceName,computerName) &amp;amp; " was already running")
			Else
				controller.Start()
				adTempus.LogMessage(MessageTypeEnum.Informational,0,"Started service " &amp;amp; ServiceDescription(serviceName,computerName))
			End If
			Return True
		Catch ex As Exception
			adTempus.LogMessage(MessageTypeEnum.Error,0,"An error occurred while starting service " &amp;amp; ServiceDescription(serviceName,computerName) &amp;amp; ": " &amp;amp; ex.Message)
			Return False
		End Try
    End Function

    Public Function StopService(serviceName As String,Optional computerName As String="") As Boolean 
		Try
			Dim controller As ServiceController
			
			controller=GetService(serviceName,computerName)
			If ServiceControllerStatus.Stopped=controller.Status Then
				adTempus.LogMessage(MessageTypeEnum.Informational,0,"Service " &amp;amp; ServiceDescription(serviceName,computerName) &amp;amp; " was already stopped")
			Else
				controller.Stop()
				adTempus.LogMessage(MessageTypeEnum.Informational,0,"Stopped service " &amp;amp; ServiceDescription(serviceName,computerName))
			End If
			Return True
		Catch ex As Exception
			adTempus.LogMessage(MessageTypeEnum.Error,0,"An error occurred while stopping service " &amp;amp; ServiceDescription(serviceName,computerName) &amp;amp; ": " &amp;amp; ex.Message)
			Return False
		End Try
    End Function

	Private Function GetService(serviceName As String,computerName As String) As ServiceController
		Dim controller As New ServiceController(serviceName)
		If Not String.IsNullOrEmpty(computerName) Then
			controller.MachineName=computerName
		End If
		Return controller
	End Function

	Private Function ServiceDescription(serviceName As String,computerName As String) As String
		If String.IsNullOrEmpty(computerName) Then
			Return """" &amp;amp; serviceName &amp;amp; """"
		Else
			Return """" &amp;amp; serviceName &amp;amp; """ on computer """ &amp;amp; computerName &amp;amp; """"
		End If
	End Function

End Module
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;e. Click &lt;strong&gt;OK&lt;/strong&gt; to save the Script Library.&lt;/p&gt;
&lt;h3&gt;Start a Service from a Script&lt;/h3&gt;
&lt;p&gt;Once the Script Library has been created you can call the StartService method from an adTempus script to start a service. &lt;/p&gt;
&lt;p&gt;To use the code defined in the Script Library:&lt;/p&gt;
&lt;p&gt;1. Create a new job, or edit an existing job. &lt;/p&gt;
&lt;p&gt;2. On the &lt;strong&gt;Steps&lt;/strong&gt; page of the &lt;strong&gt;Job Properties&lt;/strong&gt;, add a new step, selecting the "Execute a script" option in the &lt;strong&gt;Select Task&lt;/strong&gt; window.&lt;/p&gt;
&lt;p&gt;3. In the &lt;strong&gt;Script Execution Task Properties&lt;/strong&gt; window, select the "Execute a script stored in adTempus" option, then click the &lt;strong&gt;Select...&lt;/strong&gt; button.&lt;/p&gt;
&lt;p&gt;4. In the &lt;strong&gt;Select Script&lt;/strong&gt; window, click &lt;strong&gt;New...&lt;/strong&gt; to create a new script.&lt;/p&gt;
&lt;p&gt;5. In the &lt;strong&gt;Script Properties&lt;/strong&gt; window, select "VB.NET" as the script &lt;strong&gt;Language&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;6. Under &lt;strong&gt;Included Script Libraries&lt;/strong&gt;, check the "ServiceControl" library.&lt;/p&gt;
&lt;p&gt;7. To start service &lt;em&gt;serviceName&lt;/em&gt; on remote computer &lt;em&gt;computerName&lt;/em&gt;, use the following code:&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre class="code"&gt;Imports System
Imports System.Collections
Imports ArcanaDevelopment.adTempus.Server

Public Class UserScript
    Inherits ArcanaDevelopment.adTempus.ScriptEngine.UserScriptBase

    Public Overrides Function Run() As Object
        If StartService("&lt;i&gt;serviceName&lt;/i&gt;","&lt;i&gt;computerName&lt;/i&gt;") Then
                Return 0
        Else
                Return 8
        End If
    End Function
End Class&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Stop a Service from a Script&lt;/h3&gt;
&lt;p&gt;Once the Script Library has been created you can call the StopService method from an adTempus script to stop a service. &lt;/p&gt;
&lt;p&gt;To use the code defined in the Script Library:&lt;/p&gt;
&lt;p&gt;1. Create a new job, or edit an existing job. &lt;/p&gt;
&lt;p&gt;2. On the &lt;strong&gt;Steps&lt;/strong&gt; page of the &lt;strong&gt;Job Properties&lt;/strong&gt;, add a new step, selecting the "Execute a script" option in the &lt;strong&gt;Select Task&lt;/strong&gt; window.&lt;/p&gt;
&lt;p&gt;3. In the &lt;strong&gt;Script Execution Task Properties&lt;/strong&gt; window, select the "Execute a script stored in adTempus" option, then click the &lt;strong&gt;Select...&lt;/strong&gt; button.&lt;/p&gt;
&lt;p&gt;4. In the &lt;strong&gt;Select Script&lt;/strong&gt; window, click &lt;strong&gt;New...&lt;/strong&gt; to create a new script.&lt;/p&gt;
&lt;p&gt;5. In the &lt;strong&gt;Script Properties&lt;/strong&gt; window, select "VB.NET" as the script &lt;strong&gt;Language&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;6. Under &lt;strong&gt;Included Script Libraries&lt;/strong&gt;, check the "ServiceControl" library.&lt;/p&gt;
&lt;p&gt;7. To stop service &lt;em&gt;serviceName&lt;/em&gt; on remote computer &lt;em&gt;computerName&lt;/em&gt;, use the following code:&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre class="code"&gt;Imports System
Imports System.Collections
Imports ArcanaDevelopment.adTempus.Server

Public Class UserScript
    Inherits ArcanaDevelopment.adTempus.ScriptEngine.UserScriptBase

    Public Overrides Function Run() As Object
        If StopService("&lt;i&gt;serviceName&lt;/i&gt;","&lt;i&gt;computerName&lt;/i&gt;") Then
                Return 0
        Else
                Return 8
        End If
    End Function
End Class&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;Notes&lt;/h2&gt;
&lt;p&gt;The adTempus job must be run under the User Account of a user who has permission to control the specified service.&lt;/p&gt;
&lt;p&gt;The script will not try to start a service that is already running, or stop a service that is already stopped. &lt;/p&gt;
&lt;p&gt;The script will log an informational message in the job log if the service is successfully started or stopped, or an error message if an error occurs. If an error occurs, the script will also cause the step to fail.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;serviceName&lt;/em&gt; required by the scripts above is the internal service name for the service, which is not always the same as the display name shown in the Services tool in Windows. To find the internal name, run the Registry Editor and go to key &lt;span class="literal"&gt;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services&lt;/span&gt;. Under this key, locate the key for the service you want to control. The &lt;em&gt;serviceName&lt;/em&gt; is the key name. For example, the "Automatic Updates" service can be found under key "wuauserv". If you were controlling this service, you would use "wuauserv" as the &lt;em&gt;serviceName&lt;/em&gt; in the script.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description><guid>http://www.arcanadev.com/support/kb/K00000381.aspx</guid><pubDate>Thu, 24 Mar 2011 21:37:17 GMT</pubDate></item></channel></rss>
