Question:

Currently it looks like every remote call is load balanced with a round
robin algorithm.
What if the user initiates a transaction (user transaction) and the
transaction lasts over three method invokations.
If I have three servers clustered, this means that the invokation will
happen on one server for each call, and since the transactional information
may not be replicated, the client will get some funky results.
I think I'm telling the truth here :), because with JDBC when having a
transaction open, the EJB server has to reserve that connection until the
transaction is committed. And since the JDBC connection is pinned to one
server, if invoking a call on another server, you suddenly lose your
transactional context.

I would recommend that once you start making invokations on a bean, that you
pin the invokations to one server and don't switch server until the current
one is crashed.

just my $0.02

public ContainerRemote getRemoteTarget()
    {
        if (father.crs.length == 0)
        {
            findTargetsSynchronously ();
            if (father.crs.length == 0)
                return null;
        }
        synchronized (father.crs)
        {
            cursorRemote = ( (cursorRemote + 1) % father.crs.length );
            return father.crs[cursorRemote];
        }
    }

~
Namaste - I bow to the divine in you
~
Filip Hanik
Software Architect
[EMAIL PROTECTED]
www.filip.net


_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to