Re: Software Caused Connection Abort (10053) on Client
Bob Scheifler <[email protected]> Fri, 2 Dec 2005 17:12:20 -0500
| Newsgroups | gmane.comp.java.sun.rmi |
|---|---|
| Message-ID | <[email protected]> |
> When everything works well, things go something like this: > ... > When things don't work well I get: > ... > Does that seem a little more correct? Yep. > I would have expected to get a > server side transport trace message saying something like "exception > thrown marshalling exception: ...". But I guess if I did then > "serviceCall" would have returned false and I wouldn't have had this > problem? The NoSuchObjectException was successfully marshalled on the server side, and serviceCall returned true. Then handleMessages mistook argument data as transport op, and closed the connection. All of that happened before the client got around to writing all of the argument data, so when the client to to write more argument data, the client gets the exception. > So this is good, I should be able to just change my #shouldRetry > predicate to include both NoSuchObjectException and MarshalException. Yes, although for MarshalException for calls in general you may want to consider if partial unmarshalling of arguments[*] on the server side violates any "at most once" semantics you want to maintain. Depending on what other kinds of stub changes between server restarts you might expect, you could also consider ConnectException, UnknownHostException, and ConnectIOException as worth retrying. (Activation retries for those exceptions, but does not retry for MarshalException.) [*] Probably very unlikely, but if your socket factory produces sockets with output streams that write additional data that can be processed nonatomically in between application data, then it could be worse than partial unmarshalling, it could be that server-side execution (upcall) will have taken place. - Bob =========================================================================== To unsubscribe, send email to [email protected] and include in the body of the message "signoff RMI-USERS". For general help, send email to [email protected] and include in the body of the message "help". For a list of frequently asked RMI questions please refer to: http://java.sun.com/j2se/1.3/docs/guide/rmi/faq.html To view past RMI-USERS postings, please see: http://archives.java.sun.com/archives/rmi-users.html