Legacy Issue Number: 4820
Source: ICL ( Chris Wood)
I've just noticed there's a potential problem when using BiDir GIOP and the codeset conversion service context, or in fact any service context that has connection rather than request scope.
Take the following example:
A opens connection to B
A issues a request 1 (R1) containing the bidir service context, but not the codeset conversion service context.
B processes R1, marking the connection as bidirectional.
B invokes a callback object with a request (R2), this request does contain the codeset conversion service context, since B has noticed A has not set one for the request.
A symultaniously issues another request (R3), this one does contain the codeset service context, however the codesets it selects are different.
So we have a problem, which codesets should be used for the connection?
The obvious solution is to force each direction to negotiate it's own character encodings, however this is not stated anywhere in the spec AFAICS. This problem will also occour for any connection specific state as set up by service contexts.
Suggested resolution: add to the BiDir part of chapter 15 the following:
"For any connection level state negotiated by exchange of service contexts, each direction of a bidirectional connection should be negotiated independently. For example, the codeset negotiation process shall produce independent transmission codesets for each direction"
Reported: CORBA 2.6 — Fri, 1 Feb 2002 05:00 GMT
Disposition: Resolved — CORBA 3.0.2
see above, close no change
Updated: Fri, 6 Mar 2015 20:58 GMT