HL7Connect functions as a store and forward agent for HL7 messages. HL7Connect may accumulate many messages and documents in the database. This section of the documentation describes the tools available for:
Messages and documents are stored in a compressed form (ZLib Compression) unless otherwise specified in the Global Settings.
There is no technical limit to the number of messages HL7Connect can store. However as the number of stored messages grows, performance will begin to deteriorate. There are two impacts on performance:
The overall size of the database is the effective upper limit on the system, and is entirely dependent on the database server infrastructure and the database administrator. There is no direct impact on HL7Connect performance, though some users have reported that HL7Connect is prone to timing out while the database server is busy performing backups. In these cases, the longer the database takes to backup the HL7Connect database, the more often these timeouts occur.
As the messages store and message queue grow, the core functions of HL7Connect, particularly resending messages, become slower and slower. This is simply due to the work that the database server must do to service the HL7Connect store and queue. Note that the queue stores both messages waiting to be sent, and the record of successfully sending messages to interfaces in the past.
Operational experience suggests that for a normal server dedicated to HL7Connect running Microsoft SQL Server 2005/2008, the performance impacts start to become noticeable at around 4-5 million messages in the store. We recommend that administrators set storage limits for all messages, and either archive or delete them so that the message store does not continue to grow.
Managing Message Expiry Dates describes how administrators can manage the storage periods of messages to ensure that the messages are available as long as they are wanted, and deleted or archived automatically once they are not.
||The length of time that messages or documents that have sent to an outgoing interface will be stored|
||The period of time for storing messages or documents that are not routed to any outgoing interface|
|Accepted Messages/Documents||How long messages or documents are stored after being accepted by the remote system|
|Rejected Messages||How long messages or documents rejected by the remote system are stored for|
Each stored message can have one or more annotations associated with it. Each annotation has a name, and may hold any arbitrary string data. The can only be one value for each name. Message Annotations can be used for several different purposes:
Annotations are generally set by incoming scripts (using event.Message.SetAnnotation - consult the scripting documentation under "THL7ConnectMessage" for further information), though scripts can also modify the message annotations when an external system replies to a message. It is also possible to edit the annotations through the web interface on a per-message basis.Messages may be routed or selected based on their annotation value.