[Mulgara-dev] 2.1.6, SOAP, Autocommit and Transactions

David Smith DMS at viewpointusa.com
Tue Jan 12 19:55:59 UTC 2010


Gentlemen,

I'm trying to track down a change in behavior that snuck up on me.

Problem:	
ITQL inserts/delete hanging (or not returning for a really long time).

Situation:
Using Mulgara 2.1.4 in production, duplicated problem with 2.1.6
Using SOAP (I know).

>>> What is the expected behavior for transactions, exceptions and
timeouts in SOAP calls? <<<

In general, when I need to perform updates (delete, insert) it will be
within a single SOAP call, surrounded by  AutoCommit OFF, ON statements.
I need to know when the update fails, and how to recover.

Further Description
There's been a change in behavior (not sure when it started), 
in that what used to happen if a second (or third, etc) thread attempted
to perform an operation while a first thread holds the writelock
(autocommit off), 
is that an exception would be thrown (usually indicating
MulgaraTransactionException).

In the past I was able to dig through the exception text and know
whether I needed to rollback or simply retry the operation.

What I am currently seeing that that the second thread (SOAP call)
hangs, and does not return.

If I artificially shorten the <TransactionTimeout> in conf file, I can
get an error like:

=========
javax.xml.soap.SOAPException: ItqlInterpreter error - Query failed:
transaction-timeout
Caused by: (MulgaraTransactionException) Attempt to activate failed
transaction
Caused by: (MulgaraTransactionException) transaction-timeout
=========

I need to help tracking down this issue.


Other puzzles:

I don't know how this relates, but I have also seen (occasionally) the
following log entries:

2010-01-11 16:21:23,761 [RMI TCP Connection(108)-10.3.3.51] -
org.mulgara.resolver.MulgaraTransactionFactory - Terminating session
while holding writelock:org.mulgara.resolver.DatabaseSession at 2ee02595:
org.mulgara.resolver.MulgaraInternalTransaction at 1c1150fb
2010-01-11 16:21:23,793 [btpool0-13 -
/webservices/services/ItqlBeanService] -
org.mulgara.itql.ItqlInterpreterBean - Execute query failed.  Returning
error
java.lang.ClassCastException: org.mulgara.query.operation.Deletion
cannot be cast to org.mulgara.query.operation.TxOp
	at
org.mulgara.itql.TqlAutoInterpreter.updateConnectionsForTx(TqlAutoInterp
reter.java:362)
	at
org.mulgara.itql.TqlAutoInterpreter.executeCommand(TqlAutoInterpreter.ja
va:118)
	at
org.mulgara.itql.ItqlInterpreterBean.executeCommand(ItqlInterpreterBean.
java:1156)
	at
org.mulgara.itql.ItqlInterpreterBean.execute(ItqlInterpreterBean.java:36
0)
	at
org.mulgara.itql.ItqlInterpreterBean.executeQueryToString(ItqlInterprete
rBean.java:419)
.
.
.
2010-01-11 16:21:23,793 [btpool0-13 -
/webservices/services/ItqlBeanService] -
org.mulgara.itql.ItqlInterpreterBean - Failed to execute query
javax.xml.soap.SOAPException: ItqlInterpreter error -
org.mulgara.query.operation.Deletion cannot be cast to
org.mulgara.query.operation.TxOp
	at
org.mulgara.itql.ItqlInterpreterBean.execute(ItqlInterpreterBean.java:38
2)
	at
org.mulgara.itql.ItqlInterpreterBean.executeQueryToString(ItqlInterprete
rBean.java:419)
	at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)




Thanks

Dave Smith
Viewpoint





This E-Mail may contain confidential and privileged information. It is intended solely for the recipient(s) indicated. Any review, use, or distribution by anyone other than the intended recipient(s) is strictly prohibited. If you have received this E-Mail in error or are not the intended recipient, please notify the sender and delete all copies immediately.



More information about the Mulgara-dev mailing list