This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Stateless Queries

From HL7Wiki
Revision as of 17:17, 23 August 2006 by Rene spronk (talk | contribs)
Jump to navigation Jump to search

HL7 Sweden has brought forward a use-case for a stateless query. The current query mechanism is based on the fact that it is assumed that the receiving application maintains the state of the result set. A query continuation message (part of the Query Transmission Pattern) need not contain more than the queryID, the responding system needs to derive everything from that ID.

The argument against a stateful implementation is that the server side query session state would complicate load balancing and fail over (large server farms using SOAP to serve a multitude of clients). The query mechanism in HL7 is essentially 20 years old, which means it has a proven track record, but we also have to realize that 20 years ago issues such as "load balancing" were probably not a design consideration.

Possible solution: Add a new (optional D-MIM) attribute in the queryAck and queryContinuation classes, called something like "continuationToken". This allows the server to send back a continuationToken containing the continuation state (which those that brougth the use case forward envision to be the relational database id of the last "record" returned). A stateless server could then conceptually add this id to the selection conditions.