Issue 9016: Section: 11.3.9 (corba-rtf) Source: Remedy IT (Mr. Johnny Willemsen, jwillemsen(at)remedy.nl) Nature: Enhancement Severity: Significant Summary: The CORBA spec describes the following about the wait_for_completion parameter of the POA::destroy call: The wait_for_completion parameter is handled as follows: • If wait_for_completion is TRUE and the current thread is not in an invocation context dispatched from some POA belonging to the same ORB as this POA, the destroy operation returns only after all active requests have completed and all invocations of etherealize have completed. • If wait_for_completion is TRUE and the current thread is in an invocation context dispatched from some POA belonging to the same ORB as this POA, the BAD_INV_ORDER system exception with standard minor code 3 is raised and POA destruction does not occur. We have a use case where we have an ORB with two POA's, A1 and B1, each POA again has a child A2 and B2. In case we get a request for a servant of A2 to destroy POA B2 and we specify TRUE for wait_for_completion then we get an exception back, but this doesn't seem locally. We understand that when we want to destroy A1 when handling a request using a servant of A2 that we get an exception at that moment. We propose the change the description as following: The wait_for_completion parameter is handled as follows: • If wait_for_completion is TRUE and the current thread is not in an invocation context dispatched from some POA that is a child of this POA or from this POA itself, the destroy operation returns only after all active requests have completed and all invocations of etherealize have completed. • If wait_for_completion is TRUE and the current thread is in an invocation context dispatched from some POA that is a child of this POA or from the POA itself, the BAD_INV_ORDER system exception with standard minor code 3 is raised and POA destruction does not occur. Resolution: Revised Text: Actions taken: September 26, 2005: received issue April 11, 2012: Deferred Discussion: End of Annotations:===== m: webmaster@omg.org Date: 26 Sep 2005 08:54:56 -0400 To: Subject: Issue/Bug Report -------------------------------------------------------------------------------- Name: Johnny Willemsen Company: Remedy IT mailFrom: jwillemsen@remedy.nl Notification: Yes Specification: CORBA Section: 11.3.9 FormalNumber: 04-03-12 Version: 3.0.3 RevisionDate: Jan 2005 Page: 11-37 Nature: Enhancement Severity: Significant HTTP User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6 Description The CORBA spec describes the following about the wait_for_completion parameter of the POA::destroy call: The wait_for_completion parameter is handled as follows: . If wait_for_completion is TRUE and the current thread is not in an invocation context dispatched from some POA belonging to the same ORB as this POA, the destroy operation returns only after all active requests have completed and all invocations of etherealize have completed. . If wait_for_completion is TRUE and the current thread is in an invocation context dispatched from some POA belonging to the same ORB as this POA, the BAD_INV_ORDER system exception with standard minor code 3 is raised and POA destruction does not occur. We have a use case where we have an ORB with two POA's, A1 and B1, each POA again has a child A2 and B2. In case we get a request for a servant of A2 to destroy POA B2 and we specify TRUE for wait_for_completion then we get an exception back, but this doesn't seem locally. We understand that when we want to destroy A1 when handling a request using a servant of A2 that we get an exception at that moment. We propose the change the description as following: The wait_for_completion parameter is handled as follows: . If wait_for_completion is TRUE and the current thread is not in an invocation context dispatched from some POA that is a child of this POA or from this POA itself, the destroy operation returns only after all active requests have completed and all invocations of etherealize have completed. . If wait_for_completion is TRUE and the current thread is in an invocation context dispatched from some POA that is a child of this POA or from the POA itself, the BAD_INV_ORDER system exception with standard minor code 3 is raised and POA destruction does not occur. Reply-To: From: "Johnny Willemsen" To: "'Juergen Boldt'" , Subject: RE: issue 9016 - Core RTF issue Date: Tue, 27 Sep 2005 13:53:18 +0200 Organization: Remedy IT X-Mailer: Microsoft Office Outlook, Build 11.0.6353 Thread-Index: AcXC1M9/vDcKz8zaQEuS0b5OW7g8cgAhPefQ X-Virus-Scanned: by XS4ALL Virus Scanner X-Spam-Status: No, hits=-0.3 required=5.0 tests=FORGED_MUA_OUTLOOK,IN_REP_TO,MISSING_OUTLOOK_NAME, MSGID_HAS_NO_AT,QUOTED_EMAIL_TEXT version=2.55 X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-MIME-Autoconverted: from quoted-printable to 8bit by amethyst.omg.org id j8RCF4hh013847 Hi, I want to add that the POAManager has the same issue. If the POA handling the request has the same ORB as the POAManager that we want to change state, but the POA's are not related by parent/child relationship, then it would be possible to use the POAManager methods with wait_for_completion==true as far as I can tell. Johnny > The CORBA spec describes the following about the > wait_for_completion parameter of the POA::destroy call: The > wait_for_completion parameter is handled as follows: . If > wait_for_completion is TRUE and the current thread is not in > an invocation context dispatched from some POA belonging to > the same ORB as this POA, the destroy operation returns only > after all active requests have completed and all invocations > of etherealize have completed. . If wait_for_completion is > TRUE and the current thread is in an invocation context > dispatched from some POA belonging to the same ORB as this > POA, the BAD_INV_ORDER system exception with standard minor > code 3 is raised and POA destruction does not occur. We have > a use case where we have an ORB with two POA's, A1 and B1, > each POA again has a child A2 and B2. In case we get a > request for a servant of A2 to destroy POA B2 and we specify > TRUE for wait_for_completion then we get an exception back, > but this doesn't seem locally. We understand that when we > want to destroy A1 when handling a request using a servant of > A2 that we get an exception at that moment. We propose the > change the description as following: The wait_for_completion > parameter is handled as follows: . If wait_for_completion is > TRUE and the current thread is not in an invocation context > dispatched from some POA that is a child of this POA or from > this POA itself, the destroy operation returns only after all > active requests have completed and all invocations of > etherealize have completed. . If wait_for_completion is TRUE > and the current thread is in an invocation context dispatched > from some POA that is a child of this POA or from the POA > itself, the BAD_INV_ORDER system exception with standard > minor code 3 is raised and POA destruction does not occur. > > > > ================================= > Jürgen Boldt > Director, Member Services > > Object Management Group > 250 First Avenue, Suite 100 > Needham, MA 02494 > > Tel. +1 781 444 0404 ext. 132 > Fax: +1 781 444 0320 > email: juergen@omg.org > www www.omg.org > > ================================