24 October 2018
This release contains some changes to the internal database within TIF.
These changes are applied when starting the TIF server the first time after upgrading. Subsequent startup of TIF are not affected.
If your database contains large amount of data, then this first time start-up after upgrading may take a few more minutes than normal. DO NOT ABORT/KILL THE TIF PROCESS DURING THIS UPGRADE PHASE. THIS MAY CORRUPT YOUR DATABASE. |
You can achieve better performance and search capabilities by integrating a search engine with the TIF Admin UI. As of this release, TIF supports using the Elasticsearch (https://www.elastic.co/) engine together with TIF.
Using a search engine will not only help you to easier find and identify errors in your integration use-cases, it will also reduce a lot of load on the TIF server since many internal queries from the Admin UI to the internal database are relatively costly to execute.
It is a straightforward and easy operation to integrate with Elasticsearch. You only need to download and install Elasticsearch as a standalone service, and then add two properties in TIF to point out the Elasticsearch URL.
Below is an image showing new global search field in Admin UI after enabling the Elasticsearch Integration.
The result of the last executions per job is now saved in order to be able to find possible errors. You can from the Admin UI see these logs.
The Admin UI related to the Scheduler have been updated, see the screenshot below.
From this view you inactivate/activate specific jobs, see if a job has terminated with errors. You can also trigger a scheduled job to start instantly and not wait for the next triggering time.
The state of a job will be persisted. E.g. if you inactivate a job and restart the TIF server - the job will still be inactivated upon the next start-up. This is a behaviour change compared to earlier version. |
You may now specify conditions that must be met in order to transfer the payload to a certain destination.
Within the job configuration, the destinations now support two different attributes called if
and unless
.
Here you specify the name (or names) of a property/parameter that must be OR must not be present on the Job itself in order to transfer the data to the destination in question.
An example of such is shown below:
<Job>
<Name>Test Job</Name>
<TransferData>
<Payload>tvc:payload/BasicInfo.xml</Payload>
<Destinations>
<Http id="http-1" if="send.to.1" />
<Http id="http-2" unless="send.to.1" />
</Destinations>
</TransferData>
</Job>
In the example above, either the destination http-1 or http-2 will be used, depending on the precence of the parameter send.to.1.
The if and unless attributes may be used in conjunction to each other as well.
In Admin UI, there is a link to job configuration in job view. The job configuration is displayed in jobs that belong to service of type ENOVIA.
It is possible to create new jobs with <NewJob>
event handler. The handler supports injecting custom code to specify input for new job.
An example configuration:
<Job>
...
<Events>
<Success>
<NewJob jobcfg="tvc:jobcfg/MyJob.xml" ... />
</Success>
</Events>
</Job>
Service and its jobs can be deleted from Admin UI. The options are available in the "Actions" menu of service view.
In Admin UI, it is possible to create a new job without providing an object id.
The form for creating new jobs can be accessed from the "Actions" menu of the "Jobs" view.
The list of JAR file exclusions is now combined of two properties exclude.jar.file.pattern.defaults
and exclude.jar.file.pattern
. Defaults contain exclusions that prevent known JAR file conflicts and usually should not be modified.
Instead, it is recommended to add exclusions by configuring exclude.jar.file.pattern
. The configuration is done within ${TIF_HOME}/modules/enovia/etc/module.custom.properties
.
Below is the list of fixed bugs as of this release.
Issue No | Description |
---|---|
508 |
HTML content visible in job table |
486 |
Job is completed with errors even before one or more destinations might have retry attempts left |
479 |
Retryable destination throws "no transactional context" exception |