23.6.11. WS Reliable Messaging
Receiver-Side Schema Objects
Incoming messages table used to keep successfully received messages. An application on receiver side can access it in order to process the messages.
CREATE TABLE SYS_WSRM_IN_MESSAGE_LOG (
IML_INDENTIFIER varchar, -- references SYS_WSRM_IN_SEQUENCES.WIS_IDENTIFIER
IML_MESSAGE_ID int NOT NULL, -- unique per sequence
IML_EXPIRE_DATE datetime, -- when expires
IML_RECEIVE_DATE timestamp NOT NULL ,
IML_MESSAGE long varchar NOT NULL, -- the message itself
IML_STATE int,
primary key (IML_INDENTIFIER, IML_MESSAGE_ID)
)
;
Incoming sequences table; used to keep the successfully established message sequence and policy to be applied to it.
CREATE TABLE SYS_WSRM_IN_SEQUENCES
(
WIS_IDENTIFIER varchar, -- sequence identifier
WIS_VERSION varchar,
WIS_DELIVERY_ASSURANCE varchar,
WIS_SEQUENCE_EXPIRATION datetime,
WIS_INACTIVITY_TIMEOUT integer,
WIS_RETRANSMISSION_INTERVAL integer,
WIS_ACKNOWLEDGEMENT_INTERVAL integer,
primary key (WIS_IDENTIFIER)
)
;
Sender's Schema Objects
Outgoing messages log table is used to keep the outgoing messages, to track their state. It also keeps parameter to the soap request in order to re-send if are not already accepted.
CREATE TABLE SYS_WSRM_OUT_MESSAGE_LOG (
OML_INDENTIFIER varchar, -- references SYS_WSRM_OUT_SEQUENCES.WOS_IDENTIFIER
OML_MESSAGE_ID int NOT NULL, -- unique per sequence
OML_EXPIRE_DATE datetime, -- when expires
OML_SEND_DATE timestamp NOT NULL, -- when is sent
OML_MESSAGE long varchar NOT NULL,-- soap call parameters
OML_STATE int,
primary key (OML_INDENTIFIER, OML_MESSAGE_ID)
)
;
Outgoing sequences table is used to keep parameters for outgoing message sequences. It's used to persist their state.
CREATE TABLE SYS_WSRM_OUT_SEQUENCES (
WOS_IDENTIFIER varchar, -- sequence identifier
WOS_VERSION varchar,
WOS_DELIVERY_ASSURANCE varchar,
WOS_SEQUENCE_EXPIRATION datetime,
WOS_INACTIVITY_TIMEOUT integer,
WOS_RETRANSMISSION_INTERVAL integer,
WOS_ACKNOWLEDGEMENT_INTERVAL integer,
primary key (WOS_IDENTIFIER)
)
;