QAnywhere message delivery

Messages are sent from a client message store to a server message store, and then on to another client message store. QAnywhere does this via queues: a message is put on a queue in the client message store; when it is received by the server message store, it is put on a queue for delivery to one or more client message stores; and when it is received by a client message store, it is put on a queue for pickup.

Once a message is sent, it gets delivered unless one of the following occurs:

  • The message expires (only if an expiration is specified).

  • The message is canceled via Sybase Central or via the cancelMessage API call.

  • The device from which the message is sent is lost irretrievably before it can synchronize with the server message store (or for some other reason, synchronization is impossible).

A message does not get delivered more than once. If an application successfully acknowledges or commits the receipt of a message, then the same message is not delivered again. There is a possible exception with JMS servers: in the event of the MobiLink server or JMS server crashing, there is a possibility that a message could get delivered twice.