On Wed, May 30, 2001 at 07:19:26PM -0400, Anatoly Akkerman wrote:
>
> Hello everybody
Hello. I guess I should attempt to field this.
> I am running into problems with JBoss pools and Tyrex. This time it is a
> 2pc hueristic commit issue.
Great. A wurble-munging wickety booger.
> When Tyrex commits a distributed transaction in 2pc, it asks all the
> subordinate transactions to commit which ask their local XAResources to
> commit.
>
> Minerva on a commit call disassociates itself from the transaction (sets
> current to null).
Are you talking about Minerva's XADataSource implementation
(org.jboss.pool.jdbc.xa.wrapper.XA*)?
This implementation is just a wrapper for non-XA JDBC drivers so that they
can participate in transactions managed by a JTA transaction manager. It
doesn't magically give these drivers the ability to handle 2pc correctly.
I'm not sure what scenario exactly you're testing, but if you're using the
wrappers then you should not have more than one resource enlisted in the
transaction.
> Tyrex upon getting successful commits from the XAResources, being in 2pc
> sets heuristic to COMMIT and asks the XAResources to forget() the
> transaction.
I don't understand what JTA is talking about with "heuristic" this and
that. It seems like a mechanism for dealing with strange situations or
something.
What is Tyrex trying to achieve with this heuristic stuff? What do you
mean by "sets heuristic to COMMIT"?
> Minerva throws an exception because it already disassociated itself from
> the transaction (i.e. current == null while id is not null). Also, minerva
> assumes that the forget() is always called when a commit() or rollback()
> have failed. Well, this is not really true, forget can get called during a
> heuristic commit as in the case described above.
This may well be a problem with Minerva/JBossPool, but the wrappers really
aren't meant to handle anything complicated.
> Anyone can suggest to me where I could find out what is the correct
> semantics of the API? I've tried the jta spec but could not see anything
> conclusive. Any idea how minerva should handle this properly?
The JTA spec is all I have to go on. It refers to the X/Open XA spec, but
that's not free.
> Also, as a side issue, the jta spec says that the XAResources should
> support sharing (3.4.6) which seems to be lacking from the minerva (JBoss
> pool) implementation? Am I making a mistake here?
You are correct, it's not supported. It's a wraper for JDBC connections,
don't forget, not an actual XAResource implementation.
Toby.
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development