All exchanged operations (OC) return a feedback to the
sender. There a message is designedto confirm that the
reciver has received the message and is now in charge of the further processing.
IF Partner → SIHOT.PMS SIHOT.PMS → IF Partner
The answer could look like:
<?xml version="1.0" encoding="ISO-8859-1"?> <SIHOT-Document> <TN>4713</TN> <OC>ACK</OC> <RC>1</RC> <MSG>room not occupied</MSG> <ORG>disp_4711</ORG> </SIHOT-Document>
|TN||Transaction Number||uns. Long.|
|RC||Return Code. Here we refer to the content of the MSG tag.||uns. Long|
|MSG||Message Text, error message in plain text (optional)||String|
|ORG||Origin, this is the identifier of the SIHOT workstation that processed this operation.||String|
If an operation used the
<TN> tag, this tag has also to be returned to the sender. The same procedure applies to the
The external system needs to wait until it receives the
ACK or until the
socket is disconnected. Should the socket be disconnected, the external
system can assume a crash of the interface and handle this as an ACK
with an error code.
If the external system nonetheless needs to use a timeout how long it
waits for the
ACK, this timeout should at least be one minute. Our
system is a server where many processes interact and not a real time
server just for this interface. Normally, the
ACK will be sent within a
second but it might even take longer than a minute depending on system
load and database access by other services or users.
Should the external system deny a service since its timeout ended before the ACK on the posting record was received, it still needs to process the ACK when it comes later.
E.g. if a Pay-TV system sends a posting and its timeout ended before it
ACK, it may decide not to show the movie. If it receives
ACK later and the
RC is 0, this means that the posting was done
correctly in SIHOT. Since the movie was not shown, the Pay-TV
system should send a cancellation of the posting immediately.
Alternatively, it needs at least to show and log this problem.