Issue 2630: SYNCH_WITH_SERVER issue (messaging-rtf) Source: (, ) Nature: Uncategorized Issue Severity: Summary: The description of the SynchScope policy of SYNCH_WITH_SERVER states that "the server-side ORB shall send a reply before invoking the target implementation." Because the target operation may be responsible for setting up the argument list (e.g. in DSI), this means that we lack any information about the request arguments at the time the response is sent. For methods declared oneway in IDL, this is well and good -- the method signature can only contain input parameters, and thus the response message will always be empty, and can be generated without type information. However, the DII allows an application to send a request oneway even if it does contain outs, inouts, return values, which would require the server to process the request in order to properly generate a response. Resolution: resolved Revised Text: In section 15.4.2.1, the description of response_flags describes how if the operation is declared oneway, or if it is invoked with DII with INV_NO_RESPONSE, the response flags can be set to either 0x1 (result of setting SYNC_WITH_SERVER) or 0x0 (result of setting SYNC_WITH_TRANSPORT or SYNC_NONE). If set to 0x1 for a oneway operation, receipt of a reply does not imply that the operation has necessarily completed. 2 way requests will have the flag set to 0x3 so I think that if the response_flags is set to 0x1, then the non-exceptional reply body should be empty (i.e. the equivalent of void return with no out/inout parameters). There are no backwards compatibility problems here since 1.1 or 1.0 servers will not receive a 1.2 request message. Therefore, add after second sentence in response_flags bullet, A non exception reply to a request message containing a response_flags value of 0x1 should contain an empty body, i.e. the equivalent of a void operation with no out/inout parameters. Actions taken: May 4, 1999: received issue January 9, 2001: closed issue Discussion: In section 15.4.2.1, the description of response_flags describes how if the operation is declared oneway, or if it is invoked with DII with INV_NO_RESPONSE, the response flags can be set to either 0x1 (result of setting SYNC_WITH_SERVER) or 0x0 (result of setting SYNC_WITH_TRANSPORT or SYNC_NONE). If set to 0x1 for a oneway operation, receipt of a reply does not imply that the operation has necessarily completed. 2 way requests will have the flag set to 0x3 so I think that if the response_flags is set to 0x1, then the non-exceptional reply body should be empty (i.e. the equivalent of void return with no out/inout parameters). There are no backwards compatibility problems here since 1.1 or 1.0 servers will not receive a 1.2 request message. Therefore, add after second sentence in response_flags bullet, A non exception reply to a request message containing a response_flags value of 0x1 should contain an empty body, i.e. the equivalent of a void operation with no out/inout parameters. End of Annotations:===== Date: Tue, 04 May 1999 16:07:26 -0400 From: "Matthew A. Mihic" Organization: IONA Technologies, Inc. X-Accept-Language: en To: messaging-rtf@omg.org, issues@omg.org Subject: SYNCH_WITH_SERVER issue Refers orbos/98-05-06. The description of the SynchScope policy of SYNCH_WITH_SERVER states that "the server-side ORB shall send a reply before invoking the target implementation." Because the target operation may be responsible for setting up the argument list (e.g. in DSI), this means that we lack any information about the request arguments at the time the response is sent. For methods declared oneway in IDL, this is well and good -- the method signature can only contain input parameters, and thus the response message will always be empty, and can be generated without type information. However, the DII allows an application to send a request oneway even if it does contain outs, inouts, return values, which would require the server to process the request in order to properly generate a response. What should the server do in this case? I'd suggest that the response messages generated by GIOP for SYNCH_WITH_SERVER always contain an empty message body, regardless of the actual method signature. Regards, Matt -- Matthew Mihic IONA Technologies, Inc. Phone: +1-617-949-4302 From: Bill Binko To: "'Matthew A. Mihic'" , messaging-rtf@omg.org, issues@omg.org Subject: RE: SYNCH_WITH_SERVER issue Date: Tue, 4 May 1999 16:14:42 -0400 We'd agree with that > What should the server do in this case? I'd suggest that the > response messages > generated by GIOP for SYNCH_WITH_SERVER always contain an > empty message body, > regardless of the actual method signature. We'd agree with that