When WS-RM is in use, some types of intermittent problems need to be handled by the WS-RM code without any impact on the application. These include all types of connection problems (after the initial WS-RM connection which establishes a Sequence), both where there's an actual I/O error in making a connection or getting a response, and where an incomplete message is received.
One way of handling connection problems would be to use special handling in the transports, to catch and basically ignore exceptions when WS-RM is engaged. That's messy, with a lot of special case code. It seems like a simpler alternative would be to just always decouple the WS-RM send from the client request processing (or server response processing), basically treating everything as though it were a retransmission. That way the retransmit logic can just ignore any exceptions and continue on its way. Does that make sense? Handling incomplete receive messages looks more involved. There are many places in the code where XMLStreamException is caught and converted into a Fault. I suppose I'd need to intercept the Fault handling and look at whether the Fault was internally generated or received from the other endpoint, and only pass those received from the other endpoint on to the application. Is there any easy way I can tell? Thanks for any suggestions, - Dennis
