| Summary: | Round Trip Timeout does not prevent synchronous calls from blocking | ||
|---|---|---|---|
| Product: | JacORB | Reporter: | Martin Cornelius <Martin.Cornelius> |
| Component: | ORB | Assignee: | Gerald Brose <gerald.brose> |
| Status: | RESOLVED FIXED | ||
| Severity: | major | CC: | jacorb |
| Priority: | P2 | ||
| Version: | 2.3.0 | ||
| Hardware: | All | ||
| OS: | All | ||
|
Description
Martin Cornelius
2007-11-21 15:51:31 UTC
New write-timeout options are part of the CVS trunk. There is one for timeout sending requests and a separate value for timing out writing replies. These properties take a number of milliseconds to wait for a write. jacorb.connection.request.write_timeout jacorb.connection.reply.write_timeout The actual timeout enforces a deadline on the act of performing a blocking write. The implementation makes use of a single thread which makes use of a timer queue to wait a certain amount of time before signaling callback handlers. When using RTT, or either of the above timeout options, a callback is registered with the timer queue. This enables a single thread to handle all waiting functions. In the case of the write_timeouts when using traditional blocking IO, the callback handler will close the connection, which triggers the existing error handling code. Note that if the new NIO feature is used, the write_timeouts will never fire because the writer will never block. In that case, the RTT will perform as expected. We hope this is fixed now. |