We have seen in the previous chapter that the
MessageChannel interface has methods to send
data using a
boolean send(Message message); boolean send(Message message, long timeout)
Both the methods
above will take the
send method takes over. When the message is not
delivered for whatever reason after a predefined time, the second method
steps in and throws an exception.
Note the return value of these methods,
indicates the success or failure of the message delivery.
The timeout variable can be set to zero, positive, or negative values.
If the timeout variable is negative, the thread will block
indefinitely until it is able to publish the message successfully. If it
is set to zero, the
send method will
return instantly, whether the sending was successful or not. If it is
greater than zero, the sending thread will honor that amount of time
before throwing an error if it is unable to push the message to the
The interesting point is that the
MessageChannel interface does not define any
methods for receiving messages. Receiving a message largely depends on the
receiver’s semantics: Point-to-Point (P2P) or
P2P mode, only one receiver will get the message delivered, even if multiple receivers ...