New Features in Ensemble 2009.1
Ensemble 2009.1 introduced the following new features:
Ability to Edit and Resend Messages
Object Gateway for .NET Services and Operations
Ability to Create a Studio Project from a Production
Automatic Documentation of a Production
Ensemble 2009.1 provided enhancements to the following features:
Testing Service for Virtual Document Messages
Sequence Manager Support for Non-HL7 Messages
Additional HL7 Schema Definitions
Ensemble Automatic Start Setting
Compatibility Issues for Upgrades to Ensemble 2009.1
The following changes in the 2009.1 release may affect the operation of your existing system. Review the following issues before upgrading a previous instance of Ensemble:
Changes in HL7 Storage Structure
This release of Ensemble changes the storage structure for HL7 message segments to avoid block contention and improve throughput of large systems.
Ensemble now stores message segments in the new format and converts old message segments to the new format the first time it opens the message as an object. Access to HL7 messages from SQL and from the Management Portal is compatible with both formats.
This change is transparent to most applications; however, if you have code that directly accesses or manipulates the segment globals, you must modify it to be compatible with the new structure. Contact the InterSystems WRC
for advice and guidance if you need to make such changes.
New ReplyCodeActions Property in Process and Operation Classes
This release introduces a new property, ReplyCodeActions
, for all business process and business operation classes. Formerly, this setting was available only on HL7 TCP business operations. This property allows you to specify how the host should handle each kind of response it receives from the remote system.
This change adds a boolean return value to the existing business operation callback method OnFailureTimeout()
. If you added an override of this method to your business operation classes, you must add Quit 0
to your implementation to preserve your custom behavior, and As %Boolean
to your method signature for it to compile.
If you upgrade to this release and your production configuration has existing reply codes of this type that do not begin with a colon (:
), Ensemble logs warnings in the Event Log for the item by the OnGetReplyAction()
when the production starts. For example:
Unrecognized reply code: '?E'
Unrecognized reply code: '?R'
Unrecognized reply code: '~'
There were also other changes to the default behavior of properties that may affect your production:
Changes to Default Behavior of HL7 Business Operation Reply Code Actions
A previous release updated and expanded the default behavior of the ReplyCodeActions
property with a value of:
This default indicates that Ensemble retries messages with acknowledgment codes AR or CR; for those with codes AE or CE, it suspends the current message, logs an error, and moves on to the next message. This behavior is more consistent with common HL7 processing. The new default also treats any message with codes AA or CA as Completed OK
and suspends messages that have a value in field MSA:1 that is not matched by any other listed reply code.
Changes to Default Behavior of Business Operation Retry Count
New Mechanism for Editing Messages Replaces the %DrawEditForm() Method
Increased Alert Level for Data Transformation Errors
In previous releases, Ensemble did not trigger an alert when it encountered an error in a data transformation; errors were only logged in the Event Log. Ensemble now reports such errors as alerts if you enable the Alert On Error
setting for the routing engine configuration item.
Changes to Pool Size Configuration Behavior on TCP Service
For TCP services, when Job Per Connection
is True, a freshly spawned job handles each new incoming socket connection rather than the listener job itself. Only one job at a time can be the listener, and one job must be the listener, so a TCP service configured with a Pool Size
greater than 1 still only starts one listener job. However, this listener can spawn an unlimited number of connection jobs if Job Per Connection
is set to True. If you set the Pool Size
to a value greater than 1, it serves as a limit on the number of simultaneous connection jobs that can exist. When this limit is reached, the listener does not accept any more connections until one or more of the existing connection jobs quits or dies. An Event Log warning appears when it first reaches the limit.
Renamed Column in Statistics Queries
Alert Support for Services Invoked Outside Ensemble
This Ensemble release adds error alerting and logging to the ProcessInput()
method of business service classes when you invoke the service from a job not started by Ensemble and, therefore, not running in its OnTask()
loop. The main examples of services invoked in this way are SOAP services and CSP web pages, but may also include language binding and stored procedure calls.
Changes in Empty Schema Category Behavior
In previous releases, if a data transformation processed an HL7 message that had no schema category associated with it, Ensemble modified the source message to have the schema category expected by the data transformation. In this release, the schema category remains empty. It is possible that if a message passed through multiple data transformations or routing engines, it may now fail in subsequent transformations or routing engines. To avoid this problem, specify the schema category in the business service.