Ok, maybe I shouldn't have said "fatally flawed".  But again, my gut tells
me that it is bad to have a dependency between server and client
interceptors if it is not absolutely needed.

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of Bill
> Burke
> Sent: Friday, February 21, 2003 4:12 PM
> To: [EMAIL PROTECTED]
> Subject: RE: [JBoss-dev] TxInterceptor split is really really bad
>
>
> I've been thinking and should have posted this before.  Your design is
> fataly flawed when I start applying it to the AOP framework.  Your design
> assumes that there is a proxy sitting in front of everything.  In AOP this
> is not the case.  If you look at
> varia/src/org/jboss/aop/plugins/TxSupport.java you'll see that I had to
> combine the clientInvoke and serverInvoke into one method because there is
> no proxy object between the application code and the object instance.
>
> Ok...no problem you say....Well, think of what happens when the app
> developer decides to remote an AOP'd object.  I will have to have
> 2 sets of
> interceptor chains and have to figure out whether the call is a
> remote call
> or local.  Well, I guess I could insert a flag into the Invocation on
> whether the call went through a proxy or not.  But do you see where I'm
> going?  I don't think its a good design to rely on the client to handle
> transaction semantics.  I don't think its a good idea for the "server" to
> have to rely on client logic unless it really has to.
>
> All and all, my gut tells me that the current client/tx design will cause
> problems.  I want interceptor designers in general to avoid this kind of
> dependency.
>
> Bill
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] Behalf Of David
> > Jencks
> > Sent: Wednesday, February 19, 2003 11:02 AM
> > To: [EMAIL PROTECTED]
> > Subject: RE: [JBoss-dev] TxInterceptor split is really really good
> >
> >
> > On 2003.02.19 09:37 Bill Burke wrote:
> > > >
> > > > What you implemented is fine. My only problem with it is that I
> > > > think it is more logical to let the server decide if it needs the
> > > > tx, and that I think the registration callback could be avoided
> > > > (with minimal redundant client side bookkeeping) even if the
> > > > decision is made on the server side.
> > > >
> > > > I got the impression that this implementation would also be used
> > > > in the other invokers, and that made me worry about CORBA
> > > > interoperability. If this approach will not be used with the IIOP
> > > > invoker, I have no problem with it.
> > > >
> > >
> > > Yes this was my exact worry and still is.  That we'll have to have a
> > > different set of interceptors on the server side for different
> > > transports.
> > > This is unexceptable because we want each EJB to be able to
> > listen to and
> > > service calls from different transports at the same time.
> > >
> > > David, I'm not suggesting to redesign your code, but is the design
> > > flexible
> > > enough so that we could switch to a server-side based design?
>  Iteration
> > > is
> > > a fine thing....
> >
> > I don't think we will have problems adapting my current design to use
> > corba.  Before we continue I think we should get a clear
> understanding of
> > what is supposed to happen when the corba tx policy and the j2ee
> > tx support
> > disagree.  Does anyone know where this is described in specs?
> >
> > Basically the corba design says "if there is a transaction in
> the context
> > it must always be transmitted and imported on the server" whereas
> > j2ee does
> > not always need to import the tx.  The purpose of the client side
> > interceptor is to not generate tx branches that won't be used.  I think
> > that any reasonable corba implementation is going to follow corba
> > semantics
> > and always generate a transaction branch on the client for the
> > remote call,
> > since as far as the corba spec goes, if the call is made within a tx the
> > transaction will in fact be used on the server.
> >
> > In my view the heaviest part of the process is generating a tx branch on
> > the client: once it is generated, then it has to be prepared and/or
> > committed.  The communication overhead on these messages is
> > likely to dwarf
> > any other resource usage.
> >
> > The choices I can see here are:
> >
> > 1. only generate the branch if it is needed, but do it right
> > away.  This is
> > what I implemented and I think it is simplest and the only one that is
> > likely to be comprehensible when someone looks at it in a week or two.
> >
> > 2. Only generate the branch if it is needed but do it after the work is
> > done.  I think this is Ole's proposal.  This introduces a lot of
> > bookkeeping on the client to associate client side transactions to
> > branches.  I don't think I'd be able to maintain this code, in a week I
> > wouldn't remember how it worked.  After spending a day to figure it out,
> > I'd simplify it to (1).
> >
> > 3. Always generate a branch immediately, but have the xaresource return
> > read-only on prepare if the tx did not need to be imported.  This is
> > unacceptable because it forces 2pc in the case that there is only
> > one other
> > branch.
> >
> > Don't we need a client side method-to-method-attributes map
> > anyway for many
> > other purposes such as determining if a return value can be cached?
> >
> > david
> >
> > >
> > > Bill
> > >
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
> > > The most comprehensive and flexible code editor you can use.
> > > Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
> > > www.slickedit.com/sourceforge
> > > _______________________________________________
> > > Jboss-development mailing list
> > > [EMAIL PROTECTED]
> > > https://lists.sourceforge.net/lists/listinfo/jboss-development
> > >
> > >
> >
> >
> > -------------------------------------------------------
> > This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
> > The most comprehensive and flexible code editor you can use.
> > Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
> > www.slickedit.com/sourceforge
> > _______________________________________________
> > Jboss-development mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/jboss-development
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
> The most comprehensive and flexible code editor you can use.
> Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
> www.slickedit.com/sourceforge
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development



-------------------------------------------------------
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to