Summary

This article describes the changes included in adTempus version 4.4, released on October 30, 2016.

Installation Notes

The database configuration wizard will run at the end of setup to make minor updates to the adTempus database to improve performance. This update will add new indexes to the database but will not otherwise affect the database structure or your data. It is not necessary to take a database backup before applying the update. The change will not prevent the database from being used by earlier versions of adTempus if you subsequently reverse the update to version 4.4.

Obtaining the Update

See the download page to download the latest version of adTempus. The setup program will update your installation.

Changes in This Update

This release includes some minor enhancements, plus fixes to issues found since the release of version 4.3. See article K00000509 for a list of changes in version 4.3.

The following changes are included in this update:

Console
Warn when manually executing more than one jobCR00007183
Enhancement

If you use the Run command in the Console when more than one job is selected, all selected jobs are executed, though this is easy to overlook in the Execution Options window.

A new warning message was added to prevent accidental execution of multiple jobs.

Dim failure icon for job when all failed instances have been acknowledgedCR00007234
Enhancement

Previously, a Job would be shown in the Console with a red failure icon until the next successful run, even if all failed instances had been acknowledged.

This has been changed so that the failure icon appears "dimmed" once all failures have been acknowledged.

See also related change CR00007235.
Don't add " - Copy" to job name duplicating Job GroupCR00007178
Defect
When a Job Group is duplicated, the jobs within the group will no longer have " - Copy" appended to the name.
Job list may not maintain correct scroll position after refreshCR00007182
Defect

When the adTempus Console refreshes to show the latest data while you are in a job list view, the list scrolls to keep the selected job in view. If you had paged so that job was out of view, you lose your position.

This was corrected to maintain the correct scroll position rather than scrolling to the selected job.

Unexpected error when port number not specified for incoming mail serverCR00007186
Defect

When setting up an incoming mail server, if you leave the Server Port box empty, the Console gives error

adTempus Console has encountered a problem"

Number Conversion from string '"' to type 'Integer' is not valid

After closing the error window, you can enter a port number value (use 0 for the default) and successfully save the provider.

Canceling an edit operation after duplicating an object results in unexpected Console errorCR00007203
Defect

If you duplicate an object (such as a Job Step) and then click Cancel in the edit window for the object or one of its children, the Console may fail with an "unexpected error" message.

This problem was resolved.

Object type selector in Deleted Objects window does not work correctlyCR00007216
Defect
When you search in the Deleted Objects window, the search shows objects based on the highlighted object type, rather than the checked object type(s). This problem was corrected.
Distributed Scheduling
Changes to queue limit behavior for Load Balanced queuesCR00007175
Enhancement

Consider the scenario where a Queue is configured to use Load Balancing across multiple computers, and a limit is set to restrict the number of jobs that can execute concurrently in the queue on a single computer.

In previous versions, if all available agents were at or above the limit, a job was still dispatched to an agent (generally the agent with the lowest number of active and pending jobs). The job would then be queued for execution on the agent until an execution slot was available.

This has the drawback of potentially sending a job to an agent where it will wait for a long time to execute, while jobs that get triggered later may get executed first on other agents whose jobs took less time to run.

This behavior has been changed so that jobs will only be dispatched to agents that have available execution slots. If no agent has an available slot, the job will remain queued until a slot is available. All jobs sent to the queue for execution will be dispatched to agents in the order that they were triggered.

Master server incorrectly logs error message when executing Job Control Action for AgentCR00007193
Defect

For more information see Knowledge Base article K00000528.

Users are incorrectly able to modify some jobs on AgentsCR00007230
Defect
When you connect the Console to an adTempus server running in Agent/Standalone mode, you should not be able to modify jobs that are managed by the Master. However, adTempus may allow you to do this. This problem was corrected.
General
Show warning indicators for jobs with instances in "warning" stateCR00007235
Enhancement

The adTempus Console highlights jobs, groups, and queues that contain instances with an error state (such as failed) by showing an error icon next to the job, or on the group or queue icon. This feature was expanded to also highlight instances with a warning status (such as abandoned or aborted) by showing a warning icon. As with the error indicator, the warning indicator is removed when the instance's status is acknowledged.

See also related change CR00007234.

Console performance enhancementsCR00007239
Enhancement
Changes were made to improve the performance (responsiveness) of the Console for customers with large amounts of history data, particularly when using the Job Monitor, Failed Jobs, and Alerts views.
"Reset Master" option not enabled in Engine Mode toolCR00007184
Defect

When you run the Engine Mode Utility, the Reset Master option may not be enabled when it should be when the utility starts.

Workaround: Click to select a different engine mode, then click back to the original setting. This should enable the option.

This problem was resolved.
Inline function calls always evaluated in C#CR00007196
Defect

When you use an inline function call, the syntax for any code or strings in the call is processed in the C# language, even if the inline function library is set to use VB.NET. This can cause unexpected errors when compiling the code.

This was corrected so that inline function calls are processed in the same language specified for the InlineFunctions library.

For more information see Knowledge Base article K00000529.

When job fails, history record for instance does not indicate which step failedCR00007198
Defect
This problem was corrected so the "Step" column in the History pane of the job list will indicate which step failed.
"Internal error" if the same inline function is called more than once in a text blockCR00007200
Defect

If the same block of text calls the same Inline Function more than once, job execution fails with "an unexpected internal error."

This problem was corrected.

Unnecessary job chain data sent from Master to AgentCR00007204
Defect

For more information see Knowledge Base article K00000530.

"Force Execution" does not work for instance Queued for Execution after a condition waitCR00007206
Defect

A job instance was previously waiting for a condition to be met. The condition has been met, but the job is now in status "Queued for Execution" because the execution limit for the Job Queue has been reached. If you use the "Force Execution" command in the Console to override the limit and force the instance to execute immediately, nothing happens. The instance will still execute when a slot becomes available in the Queue, but immediate execution cannot be forced.

This problem was resolved.

Multiple Instance option does not work correctly in some Distributed Scheduling scenariosCR00007219
Defect

If a job is configured to use one of the Multiple Instance options other than "Execute," multiple instances may still be started for jobs assigned to a Queue that uses Load Balancing.

This problem was corrected.

Name/description of job step is not saved in job historyCR00007220
Defect

When you view a job instance from the job history, the names/descriptions for job steps are not displayed. This is occurring because adTempus is failing to save this information in the history.

The problem was corrected so the information will be stored when jobs are executed. For jobs run before the update was applied, the Console will show the current description for the step.

Audit and snapshot records are not retained when the "Keep forever" option is usedCR00007224
Defect
If you use the "Keep forever" setting for audit and snapshot records, adTempus mistakenly removes these records within 24 hours. The problem was corrected.
Job instance status not updated during executionCR00007229
Defect

A change made in version 4.3 had the unintended consequence that the status for a running job instance may not be correct. For example, it may show "Queued for Execution" when it should be "Running," or "Running" when it should show "Waiting for Condition." This problem only affects display of the status, not the actual execution of the job.

The problem was corrected.

Import/Export
When showing Export window, transfer selections from active viewCR00007238
Enhancement

If you have objects selected in the active view (e.g., the job list, Notification Recipients list, etc.) when you open the Export window, you will now be given the option to transfer the selections to the export window so those items are selected by default in the list of object available for export.

Previously there was no such link.

Jobs not queued for execution when auto-save option is used during importCR00007162
Defect
When you use the option to "Save all imported objects if no problems are found" when importing jobs into adTempus, jobs are saved but are not scheduled for execution. Editing the job or restarting the adTempus service causes them to be scheduled.
Console gives unexpected error when export fails due to file permissionsCR00007169
Defect
Import fails for decimal values if culture settings do not use "." as decimal separator and "," as thousands separatorCR00007189
Defect

For more information see Knowledge Base article K00000526.

Job identity not included when Log Message is exportedCR00007217
Defect
When a Log Message is exported and imported, it is correctly linked to the Instance that it belongs to, if appropriate. However, the link to the owning job is lost. Therefore the message no longer appears on the Log Messages tab for the job, but does appear in the instance details window if it is associated with a specific instance.
"Deselect All" button in Export window does not work correctlyCR00007237
Defect
This problem was resolved.
Job Execution
Log alert when program fails to initialize due to DLL initialization failureCR00007232
Enhancement
When a program run by adTempus fails with exit code -1073741502, this can indicate a lack of desktop heap memory that can cause additional jobs to fail with the same error. When this exit code is reported, adTempus will now log an Alert for the job, with a link to a KB article with more information about the error. An alert notification rule can be configured to notify administrators when this problem occurs.
ExecutionStart and ExecutionFinish job variables not always available as expectedCR00007221
Defect

If you use the Job.ExecutionFinish, JobStep.ExecutionStart, or JobStep.ExecutionFinish variables in your job (for example, in notification messages set by responses), the following problems occur:

  • The *.ExecutionFinish variables may not be set before Responses are executed, resulting in empty values if you use them in Responses.
  • The JobStep.* variables are not defined when job-level Responses are executed (they are only available to step-level Responses)

Both of these problems were corrected.

Job has status "Not Run" when all steps are skippedCR00007223
Defect

When no steps within a job are executed (e.g., because they were disabled or their conditions were not met), adTempus reports the job with status "Not Run," which is misleading because this status is also used for cases where a job was aborted before it began execution.

Further, when such a job executes on an Agent, the Master continues to report the job as active even after it has finished because of a problem interpreting this status.

The behavior has been changed so that a job will be reported as "Succeeded" even if none of its steps ran. As a result of this change the Master now reflects the correct state of the job.

Responses
Job Control Action targets incorrect step after duplicationCR00007213
Defect
This fix requires that the adTempus server be updated to resolve scenario 1, and the adTempus Console be updated to resolve scenario 2.

For more information see Knowledge Base article K00000534.

Scripting
Enhance inline script capabilitiesCR00007202
Enhancement

Inline scripting has been updated to correct some design limitations. The updates support:

  • Nested inline function calls.
  • Inline function calls that use variables as arguments, when those variables evaluate to inline function calls.
Server logs file capture error when running external PowerShell scriptCR00007168
Defect

When an adTempus task runs an external PowerShell task with the option checked to capture the console output from the script, an error message is written to the adTempus diagnostic logs:

Failed to delete captured file PowerShell Output.txt
System.NullReferenceException: Object reference not set to an instance of an object.

This message does not cause any operational issues.

The underlying problem has been resolved.

Script Library editor doesn't allow adding references to other librariesCR00007195
Defect

When editing a Script Library, the "Included Script Libraries" list is always empty, so it is not possible to reference other Script Libraries.

This has been corrected so that a Script Library can reference other Script Libraries (so code in one library can call code in another).

Script execution fails if script references additional assembliesCR00007209
Defect

For more information see Knowledge Base article K00000532.

Security
Permissions not updated promptly for Dynamic Logins when Active Directory group membership changesCR00007208
Defect

When a user has been authenticated to adTempus using a dynamic login (based on Active Directory group membership), permissions assigned to the user may be cached until the next time the adTempus service is restarted. Therefore if the user's group membership changes, the user's permissions in the Console may not reflect that change until the next restart.

For example, user Rachel is a member of an Active Directory group that has been given permission to execute jobs in adTempus. She logs in to adTempus and is able to run jobs. She is subsequently removed from that Active Directory group, but when she logs in to adTempus she is still able to run jobs even though she should not be permitted. After the adTempus service is restarted, her permissions are correctly updated.

This problem was corrected so that cached permissions are discarded and the user's permissions are always recalculated each time she logs in to adTempus.

Note: Group membership changes won't be reflected until the user restarts the adTempus Console, as the permission assignment only happens when the user logs in. Also, it may be necessary for the user to log out of Windows for the user's login session to be updated with the group membership change.

Tasks
Set ADTTaskResult variable from result of scalar database selectionCR00007222
Enhancement
When you execute a database task to select a scalar value, the value will now be stored in the ADTTaskResult Job Variable in addition to the variable you specify in the task settings. It will also appear as the "Result" for the step in the job history.
File Compression task does not create target folder if it doesn't existCR00007188
Defect

If the target ZIP file is in a folder that does not exist, adTempus does not create it, and the compression task fails as a result.

This problem was corrected.

Triggers
Preliminary support for viewing Job Trigger statusCR00007174
Enhancement

Added preliminary support for viewing the status of Job Triggers, allowing user to see which rules have been satisfied for the trigger, and by which job instances.

To display the status, right-click the job and select the Trigger Status command at the bottom of the pop-up menu.

This option is only available if both the Console and the server are running adTempus 4.3.1.16125 or later.

Only Job Triggers currently report status.

Add status reporting for File TriggersCR00007179
Enhancement
Added preliminary support for viewing the status of File Triggers. To display the status, right-click the job and select the Trigger Status command at the bottom of the pop-up menu. This option is only available if both the Console and the server are running adTempus 4.3.1.16139 or later.
Log Alert when root folder for File Trigger does not existCR00007236
Enhancement
When it begins monitoring for a File Trigger, adTempus checks to see if the root folder for the path you have specified exists and is visible to the user account used for the job. If not, adTempus will log an Alert warning you of this condition, which may indicate that your trigger is misconfigured or does not have the appropriate security access.
Job Trigger reports wrong instance for target job(s)CR00007170
Defect

When a job is triggered by a Job Trigger, the Execution Reason for the instance lists the jobs and instances that satisfied the trigger. However, the instance number is always listed as 0 for all jobs.

This problem was fixed to show the correct instance number.

Job Trigger may execute for wrong instance when using Cycle IDCR00007171
Defect

For more information see Knowledge Base article K00000518.

Job Trigger may select trigger incorrectly when using "since previous execution of current job" optionsCR00007173
Defect

When you use one of the "{most recent|any} instance since previous [successful] execution of the current job" instance rules for a Job Trigger, adTempus may incorrectly trigger for an instance that ran prior to the most recent execution of the current job. This happens when the trigger targets more than one job. If one or more target rules was satisfied before the current execution but at least one was not, the target rules satisfied before the current execution may not be re-evaluated, causing the job to trigger without waiting for them to run again.

This problem was resolved.

File trigger failures when debug logging turned onCR00007190
Defect

When debug (diagnostic) logging is turned on for the adTempus service, File Triggers may fail if they are configured to detect modified files. An error is logged to the adTempus diagnostic log in this case: "Exception while checking monitor XXXXXX System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection."

Debug logging is turned off by default, so this problem does not affect most users.