OK, I'll do that and then post a link to the page.

-Bill


On Thu, 2006-05-18 at 11:27 -0400, Davanum Srinivas wrote:
> How about a summary in wiki of what you think the solution should look
> like? with code snippets? I got lost reading all the emails on the
> thread:)
> 
> -- dims
> 
> On 5/18/06, Bill Nagy <[EMAIL PROTECTED]> wrote:
> > Hi dims,
> >
> > I'm happy to do that, but it's not an insignificant amount of work and
> > so I wanted to try to get some high-level agreement before I went down
> > that path.
> >
> > -Bill
> >
> > On Thu, 2006-05-18 at 11:08 -0400, Davanum Srinivas wrote:
> > > Bill,
> > >
> > > Could u please flesh it out? It may be easier to push the proposal
> > > with a proposed patch :)
> > >
> > > thanks,
> > > dims
> > >
> > > On 5/16/06, Bill Nagy <[EMAIL PROTECTED]> wrote:
> > > > Since v1.0 has been released, and now that everyone has had time to
> > > > recuperate, I would like to resume the discussion below.  The full
> > > > thread can be found at http://marc.theaimsgroup.com/?l=axis-
> > > > dev&m=114573566701675&w=2 if you need your memory refreshed.
> > > >
> > > > -Bill
> > > >
> > > >
> > > > On Sat, 2006-04-22 at 15:53 -0400, Bill Nagy wrote:
> > > > Hi Sanjiva and Glen,
> > > >
> > > > On Tue, 2006-04-18 at 01:35 +0600, Sanjiva Weerawarana wrote:
> > > > > > OK, so you're suggesting that we architect another plug point in the
> > > > > > message receivers where handler (type)/message receiver (programming
> > > > > > model) specific  plugins can be added to move things between the 
> > > > > > Axis2
> > > > > > contexts and whatever is required by the programming model.  I
> > > > > > completely agree, and was actually going to suggest that in a later
> > > > > > discussion (for a different reason.)
> > > > >
> > > > > Basically yes but I wasn't suggesting another plugpoint- u can just 
> > > > > use
> > > > > the message receiver plugpoint and write your own message receiver
> > > > > right??
> > > > >
> > > >
> > > > I'm going to start a new discussion thread for this, as it's really a
> > > > separate issue from the discussion below.
> > > >
> > > > > >  That still doesn't really address
> > > > > > the general problem of allowing handlers to "clean up" when 
> > > > > > necessary.
> > > > > > If a handler acquires a resource/starts a protocol, it's not 
> > > > > > generally
> > > > > > desirable to leave everything waiting for a timeout upon completion 
> > > > > > or
> > > > > > an error (which is all that can currently be done under some
> > > > > > circumstances.)
> > > > >
> > > > > Accepted.
> > > > >
> > > > > > I was trying to keep my examples simple for the sake of discussion. 
> > > > > >  You
> > > > > > could imagine scenarios where responsibility of managing 
> > > > > > transactions
> > > > > > falls upon the middleware (handler in this case.)  If the handler
> > > > > > creates a transaction when a message comes in, it may be desirable 
> > > > > > for
> > > > > > the handler to be responsible for committing the transaction after 
> > > > > > the
> > > > > > message finishes being processed.
> > > > >
> > > > > OK then let's address that .. what you're suggesting is that it would 
> > > > > be
> > > > > useful for a module author to be able to give some code that should be
> > > > > run once a MEP is complete. I agree with that .. so let's come up 
> > > > > with a
> > > > > model to make that work.
> > > > >
> > > >
> > > > I'm not sure that I would necessarily tie the code to the module itself.
> > > > Logically the code is most likely tied to the piece of function that a
> > > > single handler is implementing (e.g. if a handler creates a transaction,
> > > > it seems most logical that it should be the one to commit or abort the
> > > > transaction.)  That is why I was suggesting extending the Handler
> > > > interface with another method.  I will agree that this is more of a code
> > > > structure issue than anything.  (While it does require a retrofit of
> > > > existing handlers, it does not require changes to the deployment
> > > > mechanism/module.xml.)
> > > >
> > > > Likewise, I'm not sure that I would tie it to a MEP either.  [The
> > > > following is from the inbound perspective:] In the case of a failure,
> > > > there is no guarantee that a MEP will have been resolved (e.g. if the
> > > > dispatch fails after security and one of the initial RM handlers has
> > > > executed, there would be no way for them to clean up if the execution of
> > > > their completion code is tied to the MEP.)  The only handlers/modules
> > > > who would be assured that their completion code would be executed in the
> > > > case of all faults are those who execute everything post-dispatch.  This
> > > > would create an avoidable inconsistency in the handler/module
> > > > mechanism.
> > > >
> > > > I believe that a more consistent solution would be to have the
> > > > handlers/phases that have executed during the processing of the message
> > > > be invoked again (in the reverse order) after processing of the message
> > > > path has been completed (e.g. Key: IH == inbound handler, OH == outbound
> > > > handler --  one-way inbound: IH1, IH2, MessageReceiver, IH2, IH1 --
> > > > request-response inbound: IH1, IH2, MessageReceiver, OH1, OH2,
> > > > Transport, OH2, OH1, IH2, IH1)  Since the phases are executed
> > > > explicitly, some portion of the completion path will depend upon the
> > > > unwinding of the Java call stack, while some will be explicit.  While I
> > > > recognize that this is more complex of a solution than what Glen
> > > > proposed,  I believe that it addresses the issues above and that it will
> > > > lead to a more easily understandable flow in the code.
> > > >
> > > > -Bill
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
> 
> 

Reply via email to