TibrvCmTransport.sendRequest()
Method
Declaration
TibrvMsgsendRequest
(
TibrvMsg msg,
double timeout)
throws TibrvException
Purpose
Send a labeled request message and wait for a reply.
Blocking can Stall Event Dispatch
Warning |
This call blocks all other activity on its program thread. If appropriate, programmers must ensure that other threads continue dispatching events on its queues. |
Parameter |
Description |
|
Send this request message. Wildcard subjects are illegal. |
|
Maximum time (in seconds) that this call can block while waiting for a reply. |
Remarks
Programs that receive and process the request message cannot determine that the sender has blocked until a reply arrives.
The sender and receiver must already have a certified delivery agreement, otherwise the request is not certified.
The request message must have a valid destination subject; see TibrvMsg.setSendSubject().
A certified request does not necessarily imply a certified reply; the replying program determines the type of reply message that it sends.
Operation
This method operates in several synchronous steps:
Procedure
1. | Create a TibrvCmListener that listens for messages on the reply subject of msg . |
2. | Label and send the outbound message . |
3. | Block until the listener receives a reply; if the time limit expires before a reply arrives, then return null . (The reply event uses a private queue that is not accessible to the program.) |
4. | Return the reply message as the value of the method call. |