| From: | Jan de Visser <jdevisser(at)digitalfairway(dot)com> | 
|---|---|
| To: | pgsql-jdbc(at)postgresql(dot)org | 
| Subject: | Re: pgsql XA with weblogic 8.1? | 
| Date: | 2005-11-28 20:06:39 | 
| Message-ID: | 200511281506.39492.jdevisser@digitalfairway.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-jdbc | 
On Monday 28 November 2005 14:19, Jan de Visser wrote:
> On Monday 28 November 2005 12:39, Kris Jurka wrote:
> > On Mon, 28 Nov 2005, Jan de Visser wrote:
> > > Any of you have experience yet using Heikki's newfangled XA
> > > implementation with weblogic 8.1? I'm getting the exception below.
> > >
> > > ERROR: Could not establish connection with database core
> > > Nested exception: <<null>>
> > > Unexpected exception while enlisting XAConnection
> > > java.sql.SQLException: XA error: XAER_RMERR : A resource manager error
> > > has occured in the transaction branch start() failed on resource
> > > 'dfc.core': XAER_RMERR : A resource manager error has occured in the
> > > transaction branch
> > > org.postgresql.xa.PGXAException: suspend/resume and join not
> > > implemented at
> > > org.postgresql.xa.PGXAConnection.start(PGXAConnection.java:103)
> >
> > I don't use weblogic, but you might try addding either or both of these
> > parameters:
> >
> > http://e-docs.bea.com/wls/docs90/wlsmbeanref/core/index.html
> > JDBCXAParamsBean.XaEndOnlyOnce
> > JDBCXAParamsBean.KeepXaConnTillTxComplete
>
> Thanks, but that didn't work.
>
> It seems that wl calls a start( xid, TMRESUME ) (or TMJOIN, but I guess
> TMRESUME would make more sense) even though it never called end( xid,
> TMSUSPEND ) before (this is from browsing the driver code).
>
> Would it make sense to silently ignore a TMRESUME if the same xid is still
> active? I can cook up a patch...
Well, that wasn't it. I debugged a bit, and it turns out that WL sends a 
start(xid,TMJOIN) when committing entity EJBs. Don't ask me why (I'm not an 
XA expert by any stretch of the imagination). What I did is took the 
pragmatic approach, and allow a TMJOIN if the connection is in STATE_ENDED 
and if the xid is the same as the current xid. This seems to work.
Would that be acceptable/make sense?
JdV!!
-- 
--------------------------------------------------------------
Jan de Visser                     jdevisser(at)digitalfairway(dot)com
                Baruk Khazad! Khazad ai-menu!
--------------------------------------------------------------
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Benjamin Stookey | 2005-11-28 23:34:21 | Re: Deploying my application (nesting the jar) | 
| Previous Message | Jan de Visser | 2005-11-28 19:19:15 | Re: pgsql XA with weblogic 8.1? |