Skip to main content
Skip table of contents

Salient Features0

The actual transfer of the large file attached with the large message follows certain message transfer semantics explained below:

Consumer Discovery

The message producer waits for the initial message (handshake) from the consumer before any message fragments are sent. In the point-to-point (request/reply) messaging model, the discovery phase ends as soon as the handshake message is received from the consumer. In the publish-subscribe model, the discovery phase continues to receive handshake messages from new consumers. The duration for which the producer waits for handshake messages is determined by the requestTimeOut value set by the user in the message object.

Fragment Size

A large file is broken into fragments of size <fragment size> as set by the user in the message object. Fragments in multiples of TCP/IP window size are recommended for optimal performance.

Window Size

Window size is the number of message fragments sent by the message producer before an acknowledgment is received from the message consumer. For instance, for a window size of 50, 50 fragments of size <fragment size> are sent to the server. The producer then stops sending new fragments until an acknowledgment is received from the message consumer. Once an acknowledgment is received, the message transfer continues.

Sequencing

Every message fragment sent has a sequence number attached to it by the message producer. The message consumer expects the fragments to be received in the same sequence as the order in which they were sent. If the sequence is disturbed then the consumer re-requests those fragments that could not be received sequentially. A producer, on receiving such requests, starts sending the fragments from the sequence number mentioned in the request.

Handling Duplication

In rare cases a message fragment is received more than once. In such cases, the message consumer ignores the duplicate fragments.

Handling lost fragments

The message consumer identifies lost fragments using the sequence number associated with each fragment. When a fragment is not received, the consumer re-requests those fragments which could not be received sequentially. A producer, upon receiving such requests, starts sending the fragments from the sequence number mentioned in the request.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.