What's New in adTempus 4

The following sections describe new and changed features for adTempus version 4. If you are upgrading from adTempus 2, you can find information about other changes since version 2 in the version 3 documentation.

Throughout this documentation, new and updated features are marked with a icon in the left margin.

Be sure to read the information on changes to the security model if you are upgrading, as you will need to review and adjust your security configuration, and possibly create new security logins for users.

Installation and Configuration

adTempus now supports side-by-side installation of multiple versions of the adTempus server software (e.g., version 4 can be installed without uninstalling or upgrading version 3).

adTempus now supports multiple instances of the adTempus server on a single computer, allowing you to run two or more completely isolated adTempus servers on a computer.

Security

The adTempus security model has changed:

See the Security Changes topic for more information.

Job Variables

Job Variables can now be assigned a data type (such as date/time). You can use formatting strings (such as "yyyy-MM-dd" for a date value) when inserting Job Variables using variable tokens.

A new option in the Job Variable definition lets you hide the value of the variable, so it is not visible within the adTempus Console.

A new Variable Selector button () now appears next to all text fields that support Job Variables. This button opens a text edit window that allows you to edit text and insert variables from a list.

The new Job Variable Update Task and Job Variable Update Action let a job easily set update a Job Variable. The update can be applied to the executing instance of the job, or it can update the variable definition at the Job, Group, or Server level. The related new Job Variable Condition lets you set a condition on the value of a variable.

The Job Condition now has an option to a Job Variable when selecting a target job instance (see here).

Inline function scripts allow you to call a function in a script and insert the result anywhere you can use a Job Variable. For example, you can use the syntax %=GetDate("yyyy-MM-dd")% to insert the current date at runtime.

Jobs

The Enabled option and related Hold/Release commands, and the Allow job to be triggered by other jobs option, have been replaced with a new Hold Status that allows you to allow or block three kinds of execution separately: scheduled (triggers), on demand (manual), and execution by Job Control Actions. The option to run a job even if it is held (previously available in the execution options for a Job Control Action and when executing a job on demand) has been removed: it is not possible to override the job's Held status.

The User Interaction settings have been simplified. The option to run a job in the console session has been eliminated.

Jobs can be assigned user-defined tags, which can be used to filter jobs in the new Job Monitor view.

New Response Events allow you to execute Responses when:

The Sequence Jobs Tool simplifies linking and reordering jobs that are connected using Responses.

Job Groups

You can now configure Responses at the group level. Responses defined for a group apply to all jobs within the group and its sub-groups. For example, you can configure the same failure notification rules to be used by all jobs within the group.

Job Groups can now be configured to use a Cycle ID, which gets attached to all jobs that run during a single processing cycle. This makes it easier to configure Job Conditions to target only jobs that ran in the same cycle.

Job Groups now have the same Hold Status option as Jobs. Use this option to temporarily block execution of all jobs in the group. Unlike the previous option to hold or release all jobs in the group, this option does not permanently change the settings for the individual jobs. That is, when you remove the Hold status for the Group, any jobs that were on hold before you held the group remain on hold.

Job Queues

You can now configure Responses at the queue level. Responses defined for a queue apply to all jobs within the queue.

Job Queues now have the same Hold Status option as Jobs. Use this option to temporarily block execution of all jobs in the queue.

Tasks

Program Execution Task

The Program Execution Task now allows you to execute a batch file that is stored in adTempus. The adTempus script editor is used to edit the batch file from with adTempus.

Users who are currently using the Program Execution Task to call an external batch file should consider importing their batch files to take advantage of this new feature. Since the batch file is stored within adTempus, you do not need to worry about deploying the batch file to agents, and changes to the batch file can be tracked using the adTempus auditing and snapshot features.

The batch file can also call shared batch files, which are managed from the Shared Scripts view. This allows for reuse of batch file code.

Users who in the past have created jobs with a large number of steps that each execute a Program Execution Tasks may want to use internal batch files instead, if you are not using conditions or responses on individual steps. This makes it easier to rearrange the order of programs, or to copy and paste command lines between programs.

Using checkpoints you can still get feedback about the progress of the batch file and start or restart a batch file from a particular location.

Database Operation Task

The SQL Server Job Task available in version 3 has been replaced with the Database Operation Task, which supports running jobs, querying, and executing SQL against SQL Server, Oracle, and MySQL databases.

E-Mail Processing Task

The new E-Mail Processing Task can be used to retrieve e-mail messages from a POP3 or IMAP server and save the message body or attachments for further processing.

File Transfer Task

The new File Transfer Task allows for copying, moving, and deleting files. It supports local files and FTP and SFTP servers.

File Compression/Uncompression

The new File Compression and File Uncompression tasks allow for creating and uncompressing ZIP archives.

Job Variable Update Task

The new Job Variable Update Task allows jobs to easily update Job Variable definitions.

Computer Restart Task

The Computer Restart Task now support shutdown/restart of remote computers and can be configured to work even if the user account used for the job is not an Administrator account.

Service Control Task

The Service Control Task now allows you to start and stop services on remote computers and can be configured to work even if the user account used for the job is not an Administrator account.

Notification Task

The Notification Task can now be used to send messages to ad-hoc e-mail addresses without configuring them as Notification Recipients in adTempus.

Conditions

The Job Instance Properties window now shows the status of all conditions for an active or completed instance. While a job is waiting for conditions to be met, this allows you to check to see what conditions have not been met. After a job has run, you can use this information to see, for example, which file caused a File Condition to be met.

Job Condition

The Job Condition has several new rules for selecting a target job instance. ClosedDetails

The following new instance rules have been added:

  • Most recent since previous successful execution of current job. adTempus will look at the most recent instance of the target job that executed since the last successful execution of the dependent job.
  • Most recent in cycle. adTempus will look at the most recent instance of the target job that has the same Cycle ID as the dependent job.
  • Most recent instance since date/time specified in a Job Variable. adTempus will retrieve the current value of the specified variable (which must be defined as a Date/Time variable) and then look at the most recent instance of the target job that executed since that date/time.
  • Any instance since previous successful execution of current job. adTempus will look at all instances that have completed since the last successful execution of the dependent job. If any of these instances matches the Rule, the condition will be satisfied.
  • Any instance in cycle. adTempus will look at all instances of the target job that have the same Cycle ID as the dependent job.
  • Any instance since date/time specified in a Job Variable. adTempus will retrieve the current value of the specified variable (which must be defined as a Date/Time variable) and then look at all instances of the target job that have executed since that date/time.

In addition, the Cycle ID concept has been introduced as a way to link jobs that are running as part of the same processing cycle, making it easier for a condition to target an instance from the same day's cycle as the dependent job.

Two new target condition rules have been added: "Job has not run" and "Job has not run successfully." These rules can be used to have one job take action (such as send a notification message) if another job has not run by the expected time. Example.

Job Variable Condition

The new Job Variable Condition lets you set a condition on the value of a variable.

Triggers

You can now define Job Variables at the Job Trigger level, allowing you to set different variables for a job based on how it is triggered.

E-Mail Trigger

The new E-Mail Trigger can be used to retrieve e-mail messages from a POP3 or IMAP server and trigger jobs based on properties of the message (such as keywords in the message, or specific kinds of attachments).

File Trigger

The File Trigger can now watch for files on FTP and SFTP servers.

A new option allows adTempus to use the file's last modification to determine whether the file is still being updated by another application.

The interval at which adTempus checks for file creations/deletions/modifications is now configurable.

A new option allows you to configure adTempus to wait on more than one file using "and" logic (e.g., trigger when file A and file B have both been created).

If target files are on a removable or network drive, adTempus now has better handling for scenarios where the drive is removed or the network connection is lost. Previous versions treated this scenario as a file deletion (because the target files were not found). The trigger now waits until the drive is present again and compares the new state of the file system to the state before the drive was disconnected.

Job Trigger

The new Job Trigger simplifies the linking together of dependent jobs. It functions similarly to the Job Control Action, except that it is configured on the job to be run, not on the dependency job. It also allows the job to be configured to wait for more than one to complete, providing some of the same capability of the Job Condition.

Schedule Trigger

Shared Schedules and Holiday Sets can now have rules that apply only to specific years.

The start time for scheduled jobs can now be randomized within a set limit to ease the load on adTempus or the server. For example, if you have a large number of jobs that run every hour, you can configure them to start randomly within 5 minutes of the beginning of the hour.

The Day Selection window has been reorganized to be easier to use.

The floating day rule has been enhanced to include "on or before" and "on or after" options in addition to the existing "before" and "after" options.

The weekday rule now allows you to skip weeks (e.g., every third Monday).

The predefined "weekday" (Monday through Friday) and "weekend" (Saturday, Sunday) options have been removed from the weekday and floating rules; the floating day rule has been enhanced to support alternative definitions for the work week. For example, you can now schedule to run a job on the 5th business day of the month where business days are defined as Sunday through Thursday rather than Monday through Friday.

Scripting

The script hosting process has been improved to provide better performance, especially when many scripts are being executed at the same time.

adTempus natively supports Windows PowerShell scripts, which are stored and edited within adTempus just like other scripts.

New inline function scripts allow you to call a function in a script and insert the result anywhere you can use a Job Variable. For example, you can use the syntax %=GetDate("yyyy-MM-dd")% to insert the current date at runtime.

Script Libraries written using .NET languages (VB.NET and C#) can now be shared across languages (e.g., a C# script can reference a VB.NET library).

The base class for scripts written using .NET languages now exposes a Parameters object, which provides simplified access to information previously passed to scripts through Job Variables. For example, a script run to select files for a File Trigger can get a list of the files found by the trigger.

Scripts can now send e-mail messages and capture files to the file history.

When logging messages using the adTempus.LogMessage method, scripts can use the MessageTypeEnum.Debug logging level to send messages to a captured log file instead of writing to the Job Log. This option should be used when generating debug/detail messages or in other scenarios where a large number of messages is being logged for a script. This avoids filling up the job log database table with messages, which can slow console performance.

Auditing, Change Tracking, and Snapshots

Auditing (logging of changes made to objects) was previously only available for jobs but has now been extended to cover all adTempus objects (groups, queues, shared scripts, etc.).

adTempus can now be configured to take a snapshot of an object before it is updated. This allows you to later compare versions of the object, view the settings from an old version, or restore the object to its earlier state. This also allows for recovery of deleted objects.

adTempus can be configured to make a daily system-wide snapshot of all objects to augment the database backup. The snapshot allows for granular restoration of one or a few objects, whereas the database backup can only be used to restore the entire database.

See the Auditing and Snapshots Overview and the Auditing and Snapshots Settings for more information

E-Mail Notification for Alerts

The Alerts view now allows you to configure notification rules for alerts. For example, you can configure a rule to notify an administrator when adTempus reports an operational problem such as a database connection problem, or when a Remote Agent connection is lost.

Job Monitor View

The new Job Monitor view in the Console provides a view of recent, active, and upcoming jobs.

Distributed Scheduling Changes

The performance and stability of the Distributed Scheduling subsystem (Master/Agent communications) has been greatly improved, and some new features in the Remote Agents view make administration of Agents easier:

Credential Profiles can now be configured to use different credentials for one or more Agents. For example, if you are running jobs under a local user account instead of a domain account, or if an Agent is in a different domain, you can specify a different set of credentials to use when the job runs on that agent. See the Agent Profiles Page in the Credential Profile window for more information.

Other Console Improvements

Console performance/responsiveness have been greatly improved.

Many property windows (such as editing jobs) are now "modeless," meaning that you can have more than one open at a time.

Many grids (such as job and instance lists) now support column reordering and also allow you to choose which columns are displayed. Many new optional columns have been added. Right-click a column header to display a list of the available columns.

Search and Replace have been enhanced to include most text fields throughout adTempus. It is now possible to search the contents of captured files for jobs.

It is now possible to find/replace object references. For example, you can find all locations where a Credential profile is in use and replace the references with a different Credential Profile.

When a software update is installed on the adTempus server, Consoles installed on remote computers can download updated software from the server.

Export/Import

Export/Import now supports exporting/importing any top-level object (Notification Recipient, Script, etc.) without exporting a job that contains it. It is now possible to export and import server settings as well.

You can now specify a custom password to use when encrypting sensitive data (like passwords) in an export file, providing for greater security.

When importing jobs, you can choose to import all jobs as a copy. When you do this, adTempus generates a new identity value for each job so that they do not replace existing jobs. More information.

You can also choose to recreate the group structure of the import source under a different target group. For example, if you are importing jobs created on another server and want them all placed under a Job Group named "Imported Jobs," adTempus will recreate the group hierarchy from the source underneath this target group. More information.

The export file format has changed from the version 3 format, but adTempus 4 is able to read and write the version 3 format.

Job History

A new Job Detail Log created for each job instance contains various details from the job execution. The log shows the values of all Job Variables at the time of execution, and includes detailed informational messages about some operations. For example, the File Transfer Task reports here information about all the files that it transfers. Some informational messages that were previously reported to the Jog Log have been moved to the Detail Log.

Some informational messages have been removed or moved from the Job Log to the Detail Log to reduce the number of messages in the Job Log.

The informational message that gave the execution reason for each instance has been eliminated; the execution reason is now displayed in the Instance Details window.

Server Trust Relationships

In order for a Job Condition, Job Trigger, or Job Control Action to target another adTempus server, you must first establish a trust relationship between the servers using the Linked Servers window. If you are upgrading from a previous version, adTempus will log an Alert with ID 5270 at service startup if it finds remote targets for which no Linked Server definition has been created. You will need to configure the trust relationship before the condition or response can work.

New Reporting Platform

The reports included in the adTempus Console have been converted to a new reporting technology, and a new report designer tool makes it easier to customize reports or create new ones.

Miscellaneous Changes

The Process Termination Task and Program Execution Task now terminate the entire process tree when terminating a process. In previous versions of adTempus, if you terminated a batch file, for example, the batch file was terminated but any programs started by the batch file continued running. adTempus will now terminates processes started by the batch file.

Credential Profiles can now be configured to issue a reminder alert when the password needs to be changed.

Credential Profiles can be configured to use the adTempus system security context when executing Service Control Tasks and Computer Shutdown Tasks, allowing you to execute these operations without using an Administrator account for jobs.

A temporary directory is now created for each executing job, with the path available in the "ADTJobTemp" Job Variable. Tasks and scripts can use this directory to store temporary files, and adTempus will delete them when the job completes.

A quick Configuration Report can now be generated for top-level objects (Jobs, Groups, Notification Recipients, etc.).

New Response Events for jobs:

An improved About box (Help > About) includes various bits of technical information about the adTempus server.

The network broadcast notification address type has been removed from Notification Recipients, as the Messenger service is no longer supported as of Windows Vista/Windows Server 2008.