Article ID: K00000560
Last Updated: January 21, 2018
Summary
This article describes the changes included in adTempus version 4.5.1, released on January 21, 2018.
Obtaining the Update
See the download page to download the latest version of adTempus. The setup program will update your installation.
Update to SQL Server 2017 Express
Previous adTempus 4.x releases included SQL Server 2012 Express. Beginning with version 4.5 the installation package includes SQL Server 2017 Express instead. (A separate installation package with SQL Server 2014 is available to support Windows Server 2008).
If you are upgrading from an earlier 4.x version, the installer will not upgrade your SQL Server installation. You can run the SQL Server 2017 Express installer separately if you wish to upgrade your SQL Server installation.
Changes in This Update
Version 4.5.1 replaces version 4.5, originally released on January 14, 2018. Version 4.5 has been withdrawn because it introduced two new problems (see below).
Version 4.5 includes some minor enhancements, plus fixes to issues found since the release of version 4.4. See article K00000539 for a list of changes in version 4.4.
The following changes are included in this update:
Actions |
| Add option to control Hold Type applied by Job Control Action | CR00007267 Enhancement | In previous version of adTempus (3.x and earlier), using the Hold or Release action in a Job Control Action disabled all execution for the target job, because there was a single hold type. In adTempus 4.x, the Job Control Action only holds triggers for the target job, allowing manual and chained execution.
A new option has been added to configure this behavior globally to restore the previous capability. A future release will allow the option to be configured separately on each Job Control Action.
|
Variables set by trigger or manually are not carried forward when restarting or chaining job | CR00007324 Defect | Job Variables that are set when running a job manually (in the Execute Job options window) or that are set by a trigger (for example, the FileName variable set by a File Trigger) do not get passed through when a Response is used to restart the job or chain another job. This problem was corrected. |
|
API |
| Support additional features for integrating running applications with adTempus | CR00007248 Enhancement | The ApplicationIntegration class has been enhanced to allow applications being run by adTempus to interact with the adTempus server to set job variables, capture files, send notification messages, and log messages to the job log. |
ExecutionHistoryItem.Refresh method does not perform immediate refresh | CR00007320 Defect | In the adTempus API, the ExecutionHistoryItem.Refresh method does not perform an immediate refresh of the instance as expected. The instance is only refreshed if 60 seconds have elapsed since the previous refresh. The code was corrected so that the refresh is immediate. |
|
Conditions |
| Job Condition for "running" or "not running" may not look at enough instances | CR00007274 Defect | When a Job Condition is configured to use the "Running" or "Not Running" rule, the Condition may look only at the most recent instance of the target job, when it should be looking at all instances. This may cause it to report false positives or false negatives for the condition. |
|
Console |
| Allow Termination or Force Execution when multiple instances selected in Console | CR00007316 Enhancement | The Terminate and Force Execution commands are now available when multiple job instances are selected in the Console (History and Job Monitor views). |
Remember previous selection when opening Job Selector window | CR00007317 Enhancement | When you open the Job Selector window (e.g., when selecting the target job for a Job Control Action), the selector will highlight the previously-selected job, or if there is no current setting, the most-recently-selected Job Group. These changes make repeated data entry quicker. |
|
Distributed Scheduling |
| Add option to abandon all jobs on Agent when Master loses communication with it | CR00007287 Enhancement | A new option has been added to handle cases where the Master loses communication with an Agent (because the Agent has been shut down or the network connection has failed). When this option is enabled, the Master will mark all jobs that were active on the Agent as "Abandoned." This is to assist in a scenario where a job is configured to not run if a previous instance is already running, or a queue has execution limits. Without the new auto-abandon option, in those scenarios, the Master would continue to think that the jobs on the Agent are active, until the connection to the Agent is restored and the Master receives updated status information. Thus new instances would be prevented from running.
This option currently is available only as a global configuration setting, which affects all agents, queues, and jobs.
To enable the option, go to the Advanced Server Options window in the Console and look for the option "DistributedScheduling:AbandonJobsWhenAgentLost". Set the Current Value to "true" and click OK to save the change.
|
Master continues trying to connect to deleted Remote Agent | CR00007263 Defect | If you delete a Remote Agent through the adTempus Console, the adTempus Master may continue trying to connect to the Agent until the next time the service is restarted. This results in warning messages written to the diagnostic logs but does not cause any operational problems. |
Next Start missing for jobs that run in a mirrored queue | CR00007265 Defect | When a job is assigned to a Queue that uses "Mirror" mode, the Console may not display the Next Start time for the job. |
Master may continue to show jobs as running after Agent is restarted | CR00007276 Defect | If an Agent is restarted while jobs are running, the "Abandoned" status may not get reported back to the Master correctly when the Agent starts up. This results in the Master continuing to show the jobs as active. |
Jobs abandoned on Agent not correctly reported to Master | CR00007283 Defect | If an Agent is restarted while jobs are active, those jobs are marked by the Agent with status Abandoned. However, that status update is not communicated correctly to the Master, which continues to show the instances as running. This causes further problems when a Queue has a limit on the number of concurrent jobs, or when a job is set to skip if another instance is already running, causing jobs to skip incorrectly, or to be queued waiting for previous instances that are not actually running. |
|
General |
| Add ability to "terminate" phantom active instances | CR00007257 Enhancement | In some scenarios (such as when database problems occur), adTempus may fail to record the completion of a job instance. This results in an instance that shows as active in the Console even though it is no longer running. Such a phantom instance may also disrupt job flow, in cases where other jobs depend on the state of the job, or where the job is configured to not allow multiple concurrent instances. Though the Console shows the "Terminate" command for the instance, using this command has no effect, as there is no real instance to terminate.
The adTempus server has been updated so that in situations like this the Terminate command will update the database record for the instance to show a status of "Unknown." The user can then use the "Override Status" command to set the instance to Succeeded or Failed as appropriate.
|
Handle scenarios where logon to Windows is slow | CR00007266 Enhancement | In rare cases (typically involving a corrupted user profile, or network connectivity problems), the logon process for a Windows user account may take a very long time to complete. In such cases, the job requesting the logon and any jobs subsequently triggered (even if they use a different user account) remain in "Starting" status with no indication of what the problem is.
adTempus has been updated to issue a warning message after waiting 1 minute for logon to complete and to fail the job after waiting 10 minutes. Additionally, other jobs that use different credentials are no longer delayed by the problem.
|
Improved error messages for FTP operations | CR00007313 Enhancement | |
Add option to adtexec command-line utility to allow termination of jobs | CR00007314 Enhancement | The adtexec command-line utility (used to submit job execution commands) has been enhanced to allow termination of jobs from the command line. See the adtexec command line reference for more information. |
New Trigger option to allow termination of prior instances | CR00007325 Enhancement | A new option has been added to the "Multiple Instances" settings on the Trigger page of a job's settings. When you choose "Terminate prior instances, then run," adTempus will terminate any running instances of the job before starting the new instance. |
Script execution may fail if two jobs try to execute the same script at the same time | CR00004096 Defect | If two jobs are executed at the same time, and both use the same Shared Script, the script may fail due to a compilation error. This happens because the script engine tries to compile two copies of the script at the exact same time, resulting in a file collision in the script cache. The script engine was modified to avoid this problem. |
Opening text edit window gives error "Could not compile script library InlineFunctions" | CR00007255 Defect | On a computer with a Console-Only installation of adTempus, opening the text editor results in an error because of a missing component in that installation type. For more information see Knowledge Base article K00000543. |
Job triggers do not fire after job is released from hold by Job Control Action | CR00007272 Defect | When a job is released from hold status by a Job Control Action in a Response, the job is not re-queued, and its triggers do not fire. Restarting the adTempus service or editing the job will cause the job to be queued and triggers will start working at that time. This was fixed so that triggering resumes when the job is released from hold. |
Jobs fail when running with elevated privileges, when adTempus service is running under a user account | CR00007275 Defect | This problem was resolved. |
Remote Agents view reports server error when system performance counters are corrupted | CR00007284 Defect | When you select the Remote Agents view in the adTempus Console, the Console fails with error "An error occurred on the server while processing the request."
This can happen if the Windows performance counters on the Master server have been corrupted. This indirectly causes a failure in adTempus when it is generating the load metrics reports that are shown in the Agents view.
The problem was corrected so that corrupted counters will no longer cause the problem.
|
Multiple job instances may end up running concurrently after step condition check | CR00007285 Defect | In some scenarios, when a job had conditions at the step level, multiple instances of the job or multiple could end up running after the condition check is complete, even when options are configured to not allow multiple concurrent instances, or to limit the number of jobs running in a queue. |
Job fails if Job Variable names contain some special characters | CR00007288 Defect | I you have defined a Job Variable with a name that contains certain punctuation characters (such as "\"), any job that defines or inherits that variable will fail with error 104: "An internal error occurred".
To work around this problem, remove the punctuation character from the variable name.
|
When rerunning job manually after failure, execution options window may default to starting job on step it was on at time of failure. | CR00007291 Defect | For more information see Knowledge Base article K00000546. |
Value of variable should not be written to Job Detail Log when variable has "Hide value from user" checked | CR00007303 Defect | |
"Show matching dates" option in Schedule does not reflect holiday settings from Schedule Trigger | CR00007310 Defect | This problem was resolved. |
|
Import/Export |
| Import does not behave as expected when importing existing jobs/groups and using the "Create new copy" option | CR00007318 Defect | This problem was resolved. |
|
Job Execution |
| Component update for FTP and SFTP | CR00007293 Enhancement |
This release includes an update to the third-party component adTempus uses for FTP and SFTP, which fixes some issues with this functionality. |
Service startup sequencing problem may cause some instances to get marked with the wrong status | CR00007269 Defect | Due to an issue with the way jobs are loaded at service startup, it was possible for the server to mark a job instance as "Abandoned" even if it had been triggered since the service start. This produced a secondary issue where the server thought the instance was still running even after it finished, preventing the execution of new instances of the job in cases where the queue or job was configured to limit concurrent instances. |
|
Report Designer |
| Add Preview capability to Report Designer | CR00007268 Enhancement | The Report Designer now has a Preview tab, which allows you to preview a report while you are designing it. |
|
Reports |
| Allow suppression of system-generated events on Object Change Log Report | CR00007312 Enhancement | A new option was added to the Object Change Log report to "Exclude system-generated changes." Checking this option excludes all events where the user is shown as "System." These events come from automated actions such as Job Variable Update tasks that modify a job definition.
Note: you can prevent adTempus from generating these change log entries in the first place, as described here.
|
|
Responses |
| Step status override Responses do not work correctly for some tasks | CR00007251 Defect | If a Step has a Response that overrides the step's status (forces it to Succeeded or Failed), the override has no effect for E-Mail, File Operation, or Database Operation tasks. The problem was corrected. |
Allow inheritance of responses for execution time threshold events | CR00007290 Defect | Previously it was not possible to define an execution time threshold event in a Response defined at the Group or Job level, and have that Response execute for task-level time threshold events. This was changed so Responses can now be configured this way. |
|
Scheduling |
| Scheduled execution may be missed in some scenarios when using holidays | CR00007309 Defect | For more information see Knowledge Base article K00000557. |
|
Scripting |
| Add ability for scripts to invoke Responses | CR00007253 Enhancement | Scripts can now trigger Responses for jobs. This can be used, for example, to make it easier for a script to trigger another job in a job chain.
To use this feature, add event "Invoked by a script" to the Response, and use the "tag" field to give the event a name or description. In the script, use the adTempus.ExecuteOnDemandResponses method to invoke the Response, passing the tag value to tell adTempus which response(s) to trigger.
|
Script collisions when multiple scripts run concurrently in same host | CR00007315 Defect | adTempus has been modified to not run more than one script concurrently in the same host process. This may result in more running instances of the "adtempus.jobhost" process than you are used to seeing. For more information see Knowledge Base article K00000558. |
|
Tasks |
| Modify file transfer task to allow upload without temporary file | CR00007249 Enhancement | When a File Transfer task uploads a file using FTP or SFTP, it uploads the file using a temporary name, then renames the temporary file to the final name. This is done so that any existing file is not corrupted in the event that the transfer does not complete successfully. However, in some scenarios the upload/rename operation causes problems and a direct upload is preferable.
A new advanced server option, "FileTransfer:UseTempFileForUpload", was added to control this. Set this option to False to turn on direct upload.
This setting affects all file transfer operations. A future version of adTempus will allow control over this setting at the file server or task level.
|
|
Triggers |
| E-mail trigger stops triggering if a login failure is encountered | CR00007304 Defect | If the e-mail trigger encounters a login failure or other error that it interprets as a configuration error, it logs an Alert and stops polling the mail server until the mail connection settings have been checked and re-saved. This was intended to prevent repeated connection attempts using incorrect settings or bad credentials, but in practice sometimes causes the trigger to stop monitoring due to transient failures that are interpreted incorrectly.
The behavior has been changed so that the trigger will log an Alert on failure but will continue trying to connect.
|
File Trigger fails to scan folder when user does not have permission for higher-level folder | CR00007319 Defect | When a File Trigger is configured to scan a folder but the job's user does not have permission for a higher-level folder in the hierarchy, the trigger ignores the folder but does not report an error.
For example, a trigger is configured to watch "d:\input files\customers\customer1\*.xml". The account that the job is running under has permission to view folders "d:\input files" and "d:\input files\customers\customer1" but does not have any permissions for "d:\input files\customers".
When scanning for trigger files, adTempus starts at the root folder and works its way down to the lowest level, one level at a time (this allows it to accommodate folder name wildcards). If it encounters a level where it does not have sufficient permission, it will either get an access error (if it does not have View permission) or will not "see" the next level of folders (if it does not have List permission). Therefore it never gets to the "d:\input files\customers\customer1" folder to look for files.
This behavior was changed so that when there are no wildcards in the path adTempus will scan the lowest-level target folder directly, so the trigger will work correctly as long as the job's user account has permission for that folder.
|
|
Changes in release 4.5.1
Version 4.5.1 corrects two problems introduced in version 4.5 (which has been withdrawn):
Job Execution |
| No reason given when job fails due to login failure | CR00007328 Defect | For more information see Knowledge Base article K00000561. |
Job may fail when two or more jobs start at exactly the same time for the same user account | CR00007329 Defect | If two or more jobs are started at the same time for the Credential Profile, some jobs may fail with a non-specific error. This is caused by a problem with the way the user login process is handled in this scenario. The problem was fixed. |
|