Cmp transaction exception
I am getting a sqlexception error message in the client(servlet) when my entity bean(cmp) performs the database operation.
I am invoking the entity bean thru the session bean which is called by the servlet (client).
I need my sqlexception to be delegated to my session bean instead of the client(servlet).
let me know if u guys have any solution for this.
i am using weblogic6.1 & oracle database.
hello ravi,
thanks for the answer.
so u mean to tell that i have to catch sqlexception where i invoke the entity bean call right?
i will try that.
ok i have one more question to u.
Assume that the client is getting the remote exception thrown by the container.
when i do a exp.getMessage() on the client side i am getting a full printstacktrace.
But i need just one single statement from the exception messages.
so how u handle this?
Thanks in advance.
radhakrishnan.
Similar Messages
-
User interference with CMP transaction (illegal termination of transaction)
Folks,
Have any one encountered this error before ? Let me know the root cause of this error if you do know about it.
thx.
Rajesh.Hello.
The error occurs when the method SmsOmniServiceBean.proceedOMNI() calls REMOTELY the method SmsOmniServiceBean.proceedOMNIinternal(). What is important is that the call is a remote call (using JNDI, the home and remote interface) that creates a new transaction (the method proceedOMNIinternal() transaction is defined as "requiresNew" in the ejb-jar.xml). This is done on purpose. If the proceedOMNIinternal() transaction is rolled back, we do not want that the whole transaction is rolled back.
Please note that the calling method proceedOMNI() is execute in a loop inside another method (proceedOMNIAll()), and the exception is thrown at some random point in the loop: sometimes near the middle, sometimes near the end.
Please note also that no entity bean are used in our application, nor in another application deployed on the server, so why "User interference with CMP" ?
Here is the stack trace:
com.evermind.server.rmi.OrionRemoteException: User interference with CMP transaction (illegal termination of transaction)
at SmsOmniService_StatelessSessionBeanWrapper92.proceedOMNIinternal(SmsOmniService_StatelessSessionBeanWrapper92.java:736)
at com.bnpparibas.bfi.sms.server.ejb.SmsOmniServiceBean.proceedOMNI(SmsOmniServiceBean.java:223)
at com.bnpparibas.bfi.sms.server.ejb.SmsOmniServiceBean.proceedOMNIAll(SmsOmniServiceBean.java:299)
at SmsOmniService_StatelessSessionBeanWrapper92.proceedOMNIAll(SmsOmniService_StatelessSessionBeanWrapper92.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:479)
Thank you in advance for your answer,
Pierre Laroche -
Just another cmp transaction question
Hi
I would like to know if it is possible to manage cmp transaction from the client code. For example I need to
execute some business method several times but I don't want the container to commit transaction after each execute but only if all executes were successfull.
BartekI think I understand your post but my problem is rather different. I have a session bean with a business method named process(..) that receives as an argument a org.dom4j.Document object and does an proper action. I works fine when that process() method is called only one . But now I wan't to call it several times , each time with different org.dom4j.Document perhaps and want to have tha transaction commited only after complete whole process. I am quite new I ejbs so it is possible that is quite a silly question but I need surety that the only way to do this is to make an another session bean business method that gets as a parameter for example a collection of org.dom4j.Document objects.
Thanks for help
Bartek -
Hello,
I've got some weird behaviour happening on my finders.
I've got a CMP bean and a Session bean on top of it.
The session bean has a method that performs the following:
1 - creates an instance of the CMP bean
2 - updates an attribute on this instance of the CMP
3 - perform another find on the CMP.
Now the first 2 steps are ok. The 3rd step is a problem.
If I do a find by PK then it works.
But if I perform a custom finder that specifies one of the attributes that was updated in step 2, (eg, age=1, where age is an attribute on the CMP etc), then it doesn't return the CMP.
If I retrieve the bean at this point in time through a find by PK and check the updated attribute, it returns the updated value.
So it is as if the custom finder is some how executed in a different transaction from the rest of the method, as it doesn't see the fact that I've updated the attribute in step 2.
Note that if I call the custom finder in step 1, after creation, it works properly.
I've got the transaction attribute on the session bean to Requires and all the entity bean methods are set to Requires.
BTW, I'm using OC4J 1.0.2.2.1.
Any ideas,
Thanks!!!,
Rickyyou can find DuplicateKeyException is this place
http://java.sun.com/j2ee/1.4/docs/api/
javax.ejb.DuplicateKeyException.
DuplicateKeyException - exception javax.ejb.DuplicateKeyException.
The DuplicateKeyException exception is thrown if an entity EJB object cannot be created because an object with the same key already exists.
But I cannot find how to use DuplicateKeyException in SAP applications
Very Sorry. -
Collection may have been accessed after transaction exception ?
I am using Forte for Java EE to create 2 CMP Entity
Beans : Employee and Paycheck. I access the Employee
Entity bean from servlet and then look up the associated Paycheck objects as shown below:
InitialContext initial = new InitialContext();
Object objref =
initial.lookup("java:comp/env/ejb/employee");
EmployeeLocalHome ref = (EmployeeLocalHome) objref;
if ( ref == null)
System.err.println("EmployeeLocalHome not found !");
EmployeeLocal emp = ref.findByPrimaryKey(new Integer(empid));
if ( emp == null)
System.err.println("Find failed..EmployeeLocal not found ! ");
Iterator paychecks = emp.getPaycheck().iterator()
At this point I get the exception:
java.lang.IllegalStateException: Collection may have been accessed after transaction completion.
at com.sun.ejb.persistence.PMSet.iterator(PMSet.java:72)
at payroll.paycheck.LoginViewBean.handleSubmitRequest(LoginViewBean.java:218)
Any pointers on where i am going wrong ?I have figured out what the problem is. I was running an old version of SAP GUI. Creating the GP with SAP Transaction defaults to GuiType=WinGui instead of WebGui.
-
Handling Functional Acknowledgement only in case of transaction exception
Hi ,
We have requirement to acknowledge client with only exception transactions. How can we handle this with B2B?
I have used the Functional Acknowledge concept wherein for Acknowledging EDI transactions, we are using Control D3 message format and moving the acknowledgement message to another JMS Queue.
But the acknowledgements/Control EDI messages are getting generated for both success as well as error cases and there is no way to distinguish between them. How can I restrict this to only Error cases.
Basically flow is like EDI Message Format --> JMS Queue --> B2B
--> (in success case) XML generated in B2B_IN_Queue (no ack required)
--> (in error case) generate CONTRL D3 message and send it to another JMS Queue.
Pls help.
Regards
AparnaHi All,
Can anyone pls answer my question?
Regards
Aparna -
How to handle transaction exception
Hi,
I am using jdev 11g.
I need to catch the exception in my transaction like (table not found, column must not be null, column not found, ...)
hereunder is my code.
public void saveOsaUser(OsaUser osaUser) throws Exception {
EntityManager em = getEntityManager();
try {
utx.begin();
em.joinTransaction();
em.persist(osaUser);
utx.commit();
} catch (Exception ex) {
try {
utx.rollback();
throw new Exception(ex.getLocalizedMessage());
} catch (SQLException sqle) {
throw new Exception(sqle.getLocalizedMessage());
} catch (IllegalArgumentException iae) {
throw new Exception(iae.getLocalizedMessage());
} catch (EJBException ejbe) {
throw new Exception(ejbe.getLocalizedMessage());
} catch (RuntimeException re) {
throw new Exception(re.getLocalizedMessage());
} catch (Exception e) {
throw new Exception(e.getLocalizedMessage());
} finally {
em.close();
}Whatever the error type, i always get the message : Transaction does not exist.
Kindly advice how can handle these SQL error (table not found, column must not be null, column not found, ...)
Regards
Emile BITARRepost
-
How do handle a rollbackException and other transaction exceptions
Hello,
I'm trying to do commit and rollbacks for my stateless session bean and I'm having a problem handling exceptions like javax.transaction.RollbackException. This causes me to be unable to complile my code. When I do put a catch in for the rollbackException it says it can't be reached. Below is the code:
if (madeConnection != true)
returnCode = 8;
else
UserTransaction ut = ejbContext.getUserTransaction();
ut.begin();
try{
statement = c.prepareCall("{call NBA907(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
java.lang.Integer dept = Integer.valueOf(department);
short dpt = dept.shortValue();
TrxNum = (short) recordId;
//**** Input parameters ****
statement.setString(1, AAA.toUpperCase());
statement.setString(2, BBB);
statement.setShort(3, CCC);
statement.setString(4, DDD.toUpperCase());
statement.setString(5, EEE);
statement.setString(6, FFF);
statement.setString(7, GGG);
statement.setString(8, HHH);
statement.setString(9, III);
statement.setString(10, JJJ);
statement.setString(11, KKK);
statement.setString(12, LLL);
statement.setShort(13, MMM);
statement.setString(14, NNN);
statement.setString(15, OOO);
//**** Output parameters ****
statement.registerOutParameter(16, Types.CHAR);
statement.registerOutParameter(17, Types.SMALLINT);
statement.registerOutParameter(18, Types.CHAR);
rs = statement.executeQuery();
sProcedureCode = statement.getString(16);
sqlCode = statement.getShort(17);
returnMessage = statement.getString(18);
if (!(sProcedureCode.equals("01")))
ut.setRollbackOnly();
System.out.println ("***************************************");
System.out.println("Method - updateRecord");
system.out.println("SQL Code - " + sqlCode);
System.out.println("SP Code - " + sProcedureCode);
System.out.println("Message - " + returnMessage);
System.out.println("*****************************************");
if (sProcedureCode.equals("99"))
returnCode = sqlCode;
else
returnCode = Integer.parseInt(sProcedureCode);
catch(SystemException e) {
System.out.println("SQLException caught: " + e.getMessage());
catch(SQLException e) {
System.out.println("SQLException caught: " + e.getMessage());
finally {
try {
ut.commit();
statement.close();
c.close();
catch (SQLException ignored) {}
Any ideas?
TIA,
J.ClanceyI got past the exception errors but the line
UserTransaction ut = ejbContext.getUserTransaction();
is returning a null. Below is the changes I made to get past that error.
public int updateRecord(String User, String Password, int recordId, String department, String description, String classCatg, String coordinate, String startMonth, String startYear, String endMonth, String endYear, String POSeason, String merchType, String Chain)
int returnCode = 0;
String sProcedureCode = null;
String returnMessage = null;
short sqlCode = 0;
String collectionId = "BA_ANBCS";
CallableStatement statement= null;
ResultSet rs = null;
String tranType = "C";
String tranNumber = null;
String storedProCode = null;
short TrxNum = 0;
boolean madeConnection = true;
Context ctx = null;
DataSource ds = null;
Connection c = null;
java.util.Properties parms = new java.util.Properties();
parms.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
try {
ctx = new InitialContext(parms);
catch (Exception e1)
System.out.println("Unable to get initial context");
System.out.println(e1);
try
ds = (DataSource)ctx.lookup("jdbc/DB2T");
c = ds.getConnection(User, Password);
catch (SQLException e) {
System.out.println("SQLException caught: " + e.getMessage());
madeConnection = false;
catch (Exception e) {
e.printStackTrace();
madeConnection = false;
if (madeConnection != true)
returnCode = 8;
else
System.out.println("Made Else");
UserTransaction ut = ejbContext.getUserTransaction();
try{
System.out.println("Before Begin");
ut.begin();
System.out.println("After Begin");
statement = c.prepareCall("{call NBA907(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
java.lang.Integer dept = Integer.valueOf(department);
short dpt = dept.shortValue();
TrxNum = (short) recordId;
//**** Input parameters ****
statement.setString(1, Chain.toUpperCase());
statement.setString(2, collectionId);
statement.setShort(3, dpt);
statement.setString(4, classCatg.toUpperCase());
statement.setString(5, merchType);
statement.setString(6, coordinate);
statement.setString(7, POSeason);
statement.setString(8, startMonth);
statement.setString(9, startYear);
statement.setString(10, endMonth);
statement.setString(11, endYear);
statement.setString(12, description);
statement.setShort(13, TrxNum);
statement.setString(14, tranType);
statement.setString(15, User);
//**** Output parameters ****
statement.registerOutParameter(16, Types.CHAR);
statement.registerOutParameter(17, Types.SMALLINT);
statement.registerOutParameter(18, Types.CHAR);
rs = statement.executeQuery();
sProcedureCode = statement.getString(16);
sqlCode = statement.getShort(17);
returnMessage = statement.getString(18);
System.out.println("Before SP Check");
if (!(sProcedureCode.equals("01")))
//c.rollback();
ejbContext.setRollbackOnly();
System.out.println("***********************************************");
System.out.println("Method - updateRecord");
System.out.println("Stored Procedure - NBA 907");
System.out.println("Record Number - " + TrxNum);
System.out.println("Department - " + dpt);
System.out.println("Class Category - " + classCatg);
System.out.println("Merch Type - " + merchType);
System.out.println("coordinate - " + coordinate);
System.out.println("POSeason - " + POSeason);
System.out.println("Start Month - " + startMonth);
System.out.println("Start Year - " + startYear);
System.out.println("End Month - " + endMonth);
System.out.println("End Year - " + endYear);
System.out.println("Description - " + description);
System.out.println("Chain - " + Chain);
System.out.println("User Id - " + User);
System.out.println("SQL Code - " + sqlCode);
System.out.println("SP Code - " + sProcedureCode);
System.out.println("Message - " + returnMessage);
System.out.println("***********************************************");
ut.commit();
if (sProcedureCode.equals("99"))
returnCode = sqlCode;
else
returnCode = Integer.parseInt(sProcedureCode);
catch (SystemException sysex) {
throw new EJBException
("Rollback failed: " + sysex.getMessage());
catch (RollbackException sysex) {
throw new EJBException
("Rollback failed: " + sysex.getMessage());
catch (NotSupportedException sysex) {
throw new EJBException
("Rollback failed: " + sysex.getMessage());
catch (HeuristicMixedException sysex) {
throw new EJBException
("Rollback failed: " + sysex.getMessage());
catch (HeuristicRollbackException sysex) {
throw new EJBException
("Rollback failed: " + sysex.getMessage());
catch(SQLException e) {
System.out.println("SQLException caught: " + e.getMessage());
try {
ut.setRollbackOnly();
catch (SystemException sysex) {
throw new EJBException
("Rollback failed: " + sysex.getMessage());
finally {
try {
statement.close();
c.close();
catch (SQLException ignored) {}
return returnCode;
I will also check page 396.
Thanks vickyk.
TIA for any help resolving this null problem.
J.Clancey -
My application deployed on weblogic 8.1 sp4 and ingres2.6,The ejb is BMP and
transaction type is "required",so i configured XA connection pool with
edbc.jar,which support XA transaction.but when excute an ejb mothod,it is
always throw the Exeption:
javax.ejb.FinderException: Unexpected exception while enlisting XAConnection
jav
a.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an
inproper co
ntext start() failed on resource 'flexstudio.xa.ds': XAER_PROTO : Routine
was in
voked in an inproper context
javax.transaction.xa.XAException
at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
at
weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
urceInfo.java:1140)
at
weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
sourceInfo.java:1072)
at
weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
ourceInfo.java:240)
at
weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
rverTransactionImpl.java:463)
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
334)
at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
ce.java:305)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
t(ExternalTransaction.java:53)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
Connection(ExternalTransaction.java:90)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
eryForList(GeneralStatement.java:123)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:613)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:587)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
ssionImpl.java:120)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
entImpl.java:78)
at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
at
com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
rkflowPackageInfoDAO.java:892)
at
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
dByName(WorkflowPackageBean.java:373)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
indByName(wfpackage_tzapts_Impl.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
(BeanManagedPersistenceManager.java:152)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1784)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1756)
at
weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
findByName(wfpackage_tzapts_HomeImpl.java:190)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
147)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
334)
at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
ce.java:305)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
t(ExternalTransaction.java:53)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
Connection(ExternalTransaction.java:90)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
eryForList(GeneralStatement.java:123)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:613)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:587)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
ssionImpl.java:120)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
entImpl.java:78)
at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
at
com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
rkflowPackageInfoDAO.java:892)
at
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
dByName(WorkflowPackageBean.java:373)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
indByName(wfpackage_tzapts_Impl.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
(BeanManagedPersistenceManager.java:152)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1784)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1756)
at
weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
findByName(wfpackage_tzapts_HomeImpl.java:190)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
147)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
at
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
dByName(WorkflowPackageBean.java:383)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
indByName(wfpackage_tzapts_Impl.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
(BeanManagedPersistenceManager.java:152)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1784)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1756)
at
weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
findByName(wfpackage_tzapts_HomeImpl.java:190)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
147)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
javax.ejb.FinderException: Unexpected exception while enlisting XAConnection
jav
a.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an
inproper co
ntext start() failed on resource 'flexstudio.xa.ds': XAER_PROTO : Routine
was in
voked in an inproper context
javax.transaction.xa.XAException
at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
at
weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
urceInfo.java:1140)
at
weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
sourceInfo.java:1072)
at
weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
ourceInfo.java:240)
at
weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
rverTransactionImpl.java:463)
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
334)
at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
ce.java:305)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
t(ExternalTransaction.java:53)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
Connection(ExternalTransaction.java:90)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
eryForList(GeneralStatement.java:123)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:613)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:587)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
ssionImpl.java:120)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
entImpl.java:78)
at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
at
com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
rkflowPackageInfoDAO.java:892)
at
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
dByName(WorkflowPackageBean.java:373)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
indByName(wfpackage_tzapts_Impl.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
(BeanManagedPersistenceManager.java:152)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1784)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1756)
at
weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
findByName(wfpackage_tzapts_HomeImpl.java:190)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
147)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
334)
at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
ce.java:305)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
t(ExternalTransaction.java:53)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
Connection(ExternalTransaction.java:90)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
eryForList(GeneralStatement.java:123)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:613)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:587)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
ssionImpl.java:120)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
entImpl.java:78)
at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
at
com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
rkflowPackageInfoDAO.java:892)
at
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
dByName(WorkflowPackageBean.java:373)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
indByName(wfpackage_tzapts_Impl.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
(BeanManagedPersistenceManager.java:152)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1784)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1756)
at
weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
findByName(wfpackage_tzapts_HomeImpl.java:190)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
147)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
at
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
dByName(WorkflowPackageBean.java:383)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
indByName(wfpackage_tzapts_Impl.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
(BeanManagedPersistenceManager.java:152)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1784)
at
weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
anager.java:1756)
at
weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
findByName(wfpackage_tzapts_HomeImpl.java:190)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
147)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
i hope to get more helpful information,so i turn on weblogic.debug
switch with
"-Dweblogic.Debug=weblogic.JDBCConn,weblogic.JDBCSQL,weblogic.JTA2PC,weblogic.JTAXA,weblogic.JTAJDBC"
the below is debug output, i dont know wht always inproper transaction
state.
<Mar 14, 2006 11:11:58 AM GMT+08:00> <Info> <WebLogicServer>
<BEA-000213> <Addin
g address: 129.184.13.228 to licensed client list>
<Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<java.lang.Excep
tion: TRACE: [ExecuteThread: '24' for queue:
'weblogic.kernel.Default']ServerTM[
ServerCoordinatorDescriptor=(CoordinatorURL=weblogic81sp4_test+129.184.13.228:80
01+Intetest+t3+,
XAResources={},NonXAResources={})].setTransactionTimeout(120).
at
weblogic.transaction.internal.TraceHelper.traceStack(TraceHelper.java
:28)
at
weblogic.transaction.internal.TransactionManagerImpl.setTransactionTi
meout(TransactionManagerImpl.java:415)
at
weblogic.ejb20.internal.MethodDescriptor.startTransaction(MethodDescr
iptor.java:252)
at
weblogic.ejb20.internal.MethodDescriptor.getInvokeTx(MethodDescriptor
.java:377)
at
weblogic.ejb20.internal.EJBRuntimeUtils.createWrapWithTxs(EJBRuntimeU
tils.java:324)
at
weblogic.ejb20.internal.BaseEJBHome.preHomeInvoke(BaseEJBHome.java:35
8)
at
weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:631)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
findByName(wfpackage_tzapts_HomeImpl.java:190)
at
com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:363)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
147)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>
<Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<Xid=BEA1-0002D2
21FAAB(2036170959),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,secon
ds since begin=0,seconds left=-1142305918) wakeUpAfterSeconds(120)>
<Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<BEA1-0002D221FA
AB: null: init(t/o=120,ttl=120)>
<Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<BEA1-0002D221FA
AB: null: setProperty: weblogic.transaction.name=[EJB
com.bull.flexflow.workflow
.workflowpackage.WorkflowPackageBean.findByName(java.lang.String)]>
<Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<BEA1-0002D221FA
AB: null: setName: [EJB
com.bull.flexflow.workflow.workflowpackage.WorkflowPacka
geBean.findByName(java.lang.String)]>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
com.b
ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
tring)]- -pool:flexstudio.xa.ds- > DataSource.getConnection>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
com.b
ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
tring)]- -pool:flexstudio.xa.ds- >
DataSource.refreshXAConnAndEnlist(inXAConn:nu
ll, conn:null, needsTxCtx:true)>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
com.b
ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
tring)]- -pool:flexstudio.xa.ds- > DataSource.getXAConnFromPool
waitSecs:117>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
com.b
ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
tring)]- -pool:flexstudio.xa.ds- <
DataSource.getXAConnFromPool:[EDBC-XAConnecti
on[5], owner=null, rmConn=EDBC-XAVirtConn[6]], Num XAConn:1>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<BEA1-0002D221FA
AB: [EJB
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
me(java.lang.String)]: setLocalProperty:
weblogic.jdbc.jta.flexstudio.xa.ds=webl
ogic.jdbc.wrapper.TxInfo@1aaa2594>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
com.b
ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
tring)]- -pool:flexstudio.xa.ds- XA conn assoc with
tx:[EDBC-XAConnection[5], ow
ner=flexstudio.xa.ds, rmConn=EDBC-XAVirtConn[6]]>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<BEA1-0002D221FA
AB: [EJB
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
me(java.lang.String)]: enlistResource:flexstudio.xa.ds>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<ResourceDescrip
tor[flexstudio.xa.ds]: getOrCreate gets rd: name = flexstudio.xa.ds
resourceType = 2
registered = true
scUrls = weblogic81sp4_test+129.184.13.228:8001+Intetest+t3+
xar = flexstudio.xa.ds
healthy = true
lastAliveTimeMillis = -1
numActiveRequests = 0
>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<BEA1-0002D221FA
AB: [EJB
com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
me(java.lang.String)]: setCoordinatorURL
=>ServerCoordinatorDescriptor=(Coordina
torURL=weblogic81sp4_test+129.184.13.228:8001+Intetest+t3+,
XAResources={},NonXA
Resources={})>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<BEA1-0002D221FA
AB6F1049B9: enlist flexstudio.xa.ds, beforeState=new>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<BEA1-0002D221FA
AB6F1049B9: XA.start(rm=flexstudio.xa.ds, xar=flexstudio.xa.ds,
flags=TMNOFLAGS)
>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<ResourceDescrip
tor[flexstudio.xa.ds]: Resource 'flexstudio.xa.ds'
setTransactionTimeout(120) no
t called. callSetTransactionTimeout=false,
supportsSetTransactionTimeout=true>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
<ResourceDescrip
tor[flexstudio.xa.ds]: startResourceUse, Number of active requests:1, last
alive
time:0 ms ago.>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
< -tx:null- -poo
l:flexstudio.xa.ds- > XAConnection.getXAResource,
xaConn:EDBC-XAConnection[5]>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
< -tx:null- -poo
l:flexstudio.xa.ds- < XAConnection.getXAResource,
xaRes:EDBC-XAConnection[5]>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
< -tx:null- -poo
l:flexstudio.xa.ds- >
XAResource.start(Xid:bea1-0002d221faab6f1049b9-666c6578737
47564696f2e78612e6473, flags:TMNOFLAGS), xaRes:EDBC-XAConnection[5]>
<Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
< -tx:null- -poo
l:flexstudio.xa.ds- < XA error: XAER_PROTO : Routine was invoked in an
inproper
context
javax.transaction.xa.XAException
at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
at
weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
urceInfo.java:1140)
at
weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
sourceInfo.java:1072)
at
weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
ourceInfo.java:240)
at
weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
rverTransactionImpl.java:463)
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
at
weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
334)
at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
ce.java:305)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
t(ExternalTransaction.java:53)
at
com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
Connection(ExternalTransaction.java:90)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
eryForList(GeneralStatement.java:123)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:613)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
MapExecutorDelegate.java:587)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
ssionImpl.java:120)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
entImpl.java:78)
at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
at
com.bullalbert wrote:
> My application deployed on weblogic 8.1 sp4 and ingres2.6,The ejb is BMP and
> transaction type is "required",so i configured XA connection pool with
> edbc.jar,which support XA transaction.but when excute an ejb mothod,it is
> always throw the Exeption:
Hi. In order to debug this we would need you to turn on
the JTAXA, JTA2PC, JTAJDBC debug flags and in the
Connection Pool under JDBCCOnnectionPoolMBean JDBCXADebugLevel="20".
Then reproduce and provide server logs for all servers involved in
the global transaction and the config.xml.
This is complex enough that you should open an official support case
to get help setting that up.
Joe
>
>
> ####################################################################
> javax.ejb.FinderException: Unexpected exception while enlisting XAConnection
> jav
> a.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an
> inproper co
> ntext start() failed on resource 'flexstudio.xa.ds': XAER_PROTO : Routine
> was in
> voked in an inproper context
> javax.transaction.xa.XAException
> at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
> at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
> at
> weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
> urceInfo.java:1140)
> at
> weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
> sourceInfo.java:1072)
> at
> weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
> ourceInfo.java:240)
> at
> weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
> rverTransactionImpl.java:463)
> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
> at
> weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
> 334)
> at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
> at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
> at
> weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
> ce.java:305)
> at
> com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
> t(ExternalTransaction.java:53)
> at
> com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
> Connection(ExternalTransaction.java:90)
> at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
> eryForList(GeneralStatement.java:123)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
> MapExecutorDelegate.java:613)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
> MapExecutorDelegate.java:587)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
> ssionImpl.java:120)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
> entImpl.java:78)
> at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
> at
> com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
> rkflowPackageInfoDAO.java:892)
> at
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
> dByName(WorkflowPackageBean.java:373)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
> indByName(wfpackage_tzapts_Impl.java:335)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
> (BeanManagedPersistenceManager.java:152)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1784)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1756)
> at
> weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
> findByName(wfpackage_tzapts_HomeImpl.java:190)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
> WLSkel.invoke(Unknown Source)
> at
> weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
> at
> weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
> ef.java:108)
> at
> weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
> at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
> dSubject.java:363)
> at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
> 147)
> at
> weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
> a:415)
> at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
> .java:30)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>
>
> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
> at
> weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
> 334)
> at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
> at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
> at
> weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
> ce.java:305)
> at
> com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
> t(ExternalTransaction.java:53)
> at
> com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
> Connection(ExternalTransaction.java:90)
> at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
> eryForList(GeneralStatement.java:123)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
> MapExecutorDelegate.java:613)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
> MapExecutorDelegate.java:587)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
> ssionImpl.java:120)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
> entImpl.java:78)
> at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
> at
> com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
> rkflowPackageInfoDAO.java:892)
> at
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
> dByName(WorkflowPackageBean.java:373)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
> indByName(wfpackage_tzapts_Impl.java:335)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
> (BeanManagedPersistenceManager.java:152)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1784)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1756)
> at
> weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
> findByName(wfpackage_tzapts_HomeImpl.java:190)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
> WLSkel.invoke(Unknown Source)
> at
> weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
> at
> weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
> ef.java:108)
> at
> weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
> at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
> dSubject.java:363)
> at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
> 147)
> at
> weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
> a:415)
> at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
> .java:30)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>
>
> at
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
> dByName(WorkflowPackageBean.java:383)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
> indByName(wfpackage_tzapts_Impl.java:335)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
> (BeanManagedPersistenceManager.java:152)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1784)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1756)
> at
> weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
> findByName(wfpackage_tzapts_HomeImpl.java:190)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
> WLSkel.invoke(Unknown Source)
> at
> weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
> at
> weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
> ef.java:108)
> at
> weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
> at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
> dSubject.java:363)
> at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
> 147)
> at
> weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
> a:415)
> at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
> .java:30)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> javax.ejb.FinderException: Unexpected exception while enlisting XAConnection
> jav
> a.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an
> inproper co
> ntext start() failed on resource 'flexstudio.xa.ds': XAER_PROTO : Routine
> was in
> voked in an inproper context
> javax.transaction.xa.XAException
> at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
> at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
> at
> weblogic.transaction.internal.XAServerResourceInfo.start(XAServerReso
> urceInfo.java:1140)
> at
> weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerRe
> sourceInfo.java:1072)
> at
> weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerRes
> ourceInfo.java:240)
> at
> weblogic.transaction.internal.ServerTransactionImpl.enlistResource(Se
> rverTransactionImpl.java:463)
> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
> at
> weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
> 334)
> at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
> at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
> at
> weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
> ce.java:305)
> at
> com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
> t(ExternalTransaction.java:53)
> at
> com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
> Connection(ExternalTransaction.java:90)
> at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
> eryForList(GeneralStatement.java:123)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
> MapExecutorDelegate.java:613)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
> MapExecutorDelegate.java:587)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
> ssionImpl.java:120)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
> entImpl.java:78)
> at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
> at
> com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
> rkflowPackageInfoDAO.java:892)
> at
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
> dByName(WorkflowPackageBean.java:373)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
> indByName(wfpackage_tzapts_Impl.java:335)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
> (BeanManagedPersistenceManager.java:152)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1784)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1756)
> at
> weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
> findByName(wfpackage_tzapts_HomeImpl.java:190)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
> WLSkel.invoke(Unknown Source)
> at
> weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
> at
> weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
> ef.java:108)
> at
> weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
> at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
> dSubject.java:363)
> at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
> 147)
> at
> weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
> a:415)
> at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
> .java:30)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>
>
> at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
> at
> weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
> 334)
> at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
> at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
> at
> weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
> ce.java:305)
> at
> com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.ini
> t(ExternalTransaction.java:53)
> at
> com.ibatis.sqlmap.engine.transaction.external.ExternalTransaction.get
> Connection(ExternalTransaction.java:90)
> at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQu
> eryForList(GeneralStatement.java:123)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
> MapExecutorDelegate.java:613)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(Sql
> MapExecutorDelegate.java:587)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSe
> ssionImpl.java:120)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapCli
> entImpl.java:78)
> at com.bull.flexflow.store.dao.DAO.getList(DAO.java:38)
> at
> com.bull.flexflow.store.dao.WorkflowPackageInfoDAO.findLikeTheName(Wo
> rkflowPackageInfoDAO.java:892)
> at
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
> dByName(WorkflowPackageBean.java:373)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
> indByName(wfpackage_tzapts_Impl.java:335)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
> (BeanManagedPersistenceManager.java:152)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1784)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1756)
> at
> weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
> findByName(wfpackage_tzapts_HomeImpl.java:190)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
> WLSkel.invoke(Unknown Source)
> at
> weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
> at
> weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
> ef.java:108)
> at
> weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
> at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
> dSubject.java:363)
> at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
> 147)
> at
> weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
> a:415)
> at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
> .java:30)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>
>
> at
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.ejbFin
> dByName(WorkflowPackageBean.java:383)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_Impl.ejbF
> indByName(wfpackage_tzapts_Impl.java:335)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> weblogic.ejb20.manager.BeanManagedPersistenceManager.collectionFinder
> (BeanManagedPersistenceManager.java:152)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1784)
> at
> weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityM
> anager.java:1756)
> at
> weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:648)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
> findByName(wfpackage_tzapts_HomeImpl.java:190)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
> WLSkel.invoke(Unknown Source)
> at
> weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
> at
> weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
> ef.java:108)
> at
> weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
> at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
> dSubject.java:363)
> at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
> 147)
> at
> weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
> a:415)
> at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
> .java:30)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>
>
> ##########################################################################################
> i hope to get more helpful information,so i turn on weblogic.debug
> switch with
> "-Dweblogic.Debug=weblogic.JDBCConn,weblogic.JDBCSQL,weblogic.JTA2PC,weblogic.JTAXA,weblogic.JTAJDBC"
> the below is debug output, i dont know wht always inproper transaction
> state.
>
>
> ##########################################################################################
>
>
> <Mar 14, 2006 11:11:58 AM GMT+08:00> <Info> <WebLogicServer>
> <BEA-000213> <Addin
> g address: 129.184.13.228 to licensed client list>
> <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <java.lang.Excep
> tion: TRACE: [ExecuteThread: '24' for queue:
> 'weblogic.kernel.Default']ServerTM[
> ServerCoordinatorDescriptor=(CoordinatorURL=weblogic81sp4_test+129.184.13.228:80
> 01+Intetest+t3+,
> XAResources={},NonXAResources={})].setTransactionTimeout(120).
> at
> weblogic.transaction.internal.TraceHelper.traceStack(TraceHelper.java
> :28)
> at
> weblogic.transaction.internal.TransactionManagerImpl.setTransactionTi
> meout(TransactionManagerImpl.java:415)
> at
> weblogic.ejb20.internal.MethodDescriptor.startTransaction(MethodDescr
> iptor.java:252)
> at
> weblogic.ejb20.internal.MethodDescriptor.getInvokeTx(MethodDescriptor
> .java:377)
> at
> weblogic.ejb20.internal.EJBRuntimeUtils.createWrapWithTxs(EJBRuntimeU
> tils.java:324)
> at
> weblogic.ejb20.internal.BaseEJBHome.preHomeInvoke(BaseEJBHome.java:35
> 8)
> at
> weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:631)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl.
> findByName(wfpackage_tzapts_HomeImpl.java:190)
> at
> com.bull.flexflow.workflow.workflowpackage.wfpackage_tzapts_HomeImpl_
> WLSkel.invoke(Unknown Source)
> at
> weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
> at
> weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
> ef.java:108)
> at
> weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
> at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
> dSubject.java:363)
> at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
> 147)
> at
> weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
> a:415)
> at
> weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
> .java:30)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>
> <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <Xid=BEA1-0002D2
> 21FAAB(2036170959),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,secon
> ds since begin=0,seconds left=-1142305918) wakeUpAfterSeconds(120)>
> <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <BEA1-0002D221FA
> AB: null: init(t/o=120,ttl=120)>
> <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <BEA1-0002D221FA
> AB: null: setProperty: weblogic.transaction.name=[EJB
> com.bull.flexflow.workflow
> .workflowpackage.WorkflowPackageBean.findByName(java.lang.String)]>
> <Mar 14, 2006 11:11:58 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <BEA1-0002D221FA
> AB: null: setName: [EJB
> com.bull.flexflow.workflow.workflowpackage.WorkflowPacka
> geBean.findByName(java.lang.String)]>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
> com.b
> ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
> tring)]- -pool:flexstudio.xa.ds- > DataSource.getConnection>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
> com.b
> ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
> tring)]- -pool:flexstudio.xa.ds- >
> DataSource.refreshXAConnAndEnlist(inXAConn:nu
> ll, conn:null, needsTxCtx:true)>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
> com.b
> ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
> tring)]- -pool:flexstudio.xa.ds- > DataSource.getXAConnFromPool
> waitSecs:117>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
> com.b
> ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
> tring)]- -pool:flexstudio.xa.ds- <
> DataSource.getXAConnFromPool:[EDBC-XAConnecti
> on[5], owner=null, rmConn=EDBC-XAVirtConn[6]], Num XAConn:1>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <BEA1-0002D221FA
> AB: [EJB
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
> me(java.lang.String)]: setLocalProperty:
> weblogic.jdbc.jta.flexstudio.xa.ds=webl
> ogic.jdbc.wrapper.TxInfo@1aaa2594>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000> < -tx:[EJB
> com.b
> ull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByName(java.lang.S
> tring)]- -pool:flexstudio.xa.ds- XA conn assoc with
> tx:[EDBC-XAConnection[5], ow
> ner=flexstudio.xa.ds, rmConn=EDBC-XAVirtConn[6]]>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <BEA1-0002D221FA
> AB: [EJB
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
> me(java.lang.String)]: enlistResource:flexstudio.xa.ds>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <ResourceDescrip
> tor[flexstudio.xa.ds]: getOrCreate gets rd: name = flexstudio.xa.ds
> resourceType = 2
> registered = true
> scUrls = weblogic81sp4_test+129.184.13.228:8001+Intetest+t3+
> xar = flexstudio.xa.ds
> healthy = true
> lastAliveTimeMillis = -1
> numActiveRequests = 0
>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <BEA1-0002D221FA
> AB: [EJB
> com.bull.flexflow.workflow.workflowpackage.WorkflowPackageBean.findByNa
> me(java.lang.String)]: setCoordinatorURL
> =>ServerCoordinatorDescriptor=(Coordina
> torURL=weblogic81sp4_test+129.184.13.228:8001+Intetest+t3+,
> XAResources={},NonXA
> Resources={})>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <BEA1-0002D221FA
> AB6F1049B9: enlist flexstudio.xa.ds, beforeState=new>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <BEA1-0002D221FA
> AB6F1049B9: XA.start(rm=flexstudio.xa.ds, xar=flexstudio.xa.ds,
> flags=TMNOFLAGS)
>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <ResourceDescrip
> tor[flexstudio.xa.ds]: Resource 'flexstudio.xa.ds'
> setTransactionTimeout(120) no
> t called. callSetTransactionTimeout=false,
> supportsSetTransactionTimeout=true>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JTA> <BEA-110027>
> <ResourceDescrip
> tor[flexstudio.xa.ds]: startResourceUse, Number of active requests:1, last
> alive
> time:0 ms ago.>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
> < -tx:null- -poo
> l:flexstudio.xa.ds- > XAConnection.getXAResource,
> xaConn:EDBC-XAConnection[5]>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
> < -tx:null- -poo
> l:flexstudio.xa.ds- < XAConnection.getXAResource,
> xaRes:EDBC-XAConnection[5]>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
> < -tx:null- -poo
> l:flexstudio.xa.ds- >
> XAResource.start(Xid:bea1-0002d221faab6f1049b9-666c6578737
> 47564696f2e78612e6473, flags:TMNOFLAGS), xaRes:EDBC-XAConnection[5]>
> <Mar 14, 2006 11:12:01 AM GMT+08:00> <Debug> <JDBC XA> <000000>
> < -tx:null- -poo
> l:flexstudio.xa.ds- < XA error: XAER_PROTO : Routine was invoked in an
> inproper
> context
> javax.transaction.xa.XAException
> at ca.edbc.jdbcx.EdbcXAConnect.start(EdbcXAConnect.java:349)
> at web -
Query under Transaction Exception....
Hello all:
I have a exception for using kodo3.0
e.g
GroupSetting groupSetting = null;
String filter = "this.organGroup.groupID == groupID";
String parameters = "Integer groupID";
Collection col = this.getJdoTemplate().find(GroupSetting.class, filter,
parameters, new Object[] { new Integer(groupID)});
Iterator it = col.iterator();
while (it.hasNext()) {
groupSetting = (GroupSetting) it.next();
return groupSetting;
I use Spring JdoDaoSupport,
when i let this code under a transaction,some Exception happen..
but if leave this code under a transction,there allways good...
I think mybe the result is Optimistic transaction....
test.GroupSettingBusinessTest -
org.springframework.jdbc.BadSqlGrammarException: Bad SQL grammar [] in
task 'JDO operation'; nested exception is
com.solarmetric.jdbc.ReportingSQLException: DB2 SQL error: SQLCODE: -511,
SQLSTATE: 42829, SQLERRMC: null {prepstmnt 107840951 SELECT
t0.GROUPSETTINGID, t0.ALLOWDRAW, t0.ALLOWSTRIKE, t0.ALLOWTRANSFER,
t0.ASCENDONLY, t0.AUTOAPPROVE, t0.BARVISIBLE, t0.DEFAULTLEVELNAME,
t0.LASTMODIFY, t0.MAXDRAW, t0.MAXRECHARGE, t0.MAXROWS, t0.MAXSTRIKE,
t0.MAXTRANSFER, t0.MINDRAW, t0.MINRECHARGE, t0.MINSTRIKE, t0.MINTRANSFER,
t0.GROUPID, t0.RECHARGEABLE, t0.USERTYPEMODIFICATION FROM
OLTP.GROUPSETTING t0 INNER JOIN OLTP.ORGANGROUP t1 ON t0.GROUPID =
t1.GROUPID WHERE (t1.GROUPID = ?) FOR UPDATE [reused=0]} [code=-511,
state=42829]
org.springframework.jdbc.BadSqlGrammarException: Bad SQL grammar [] in
task 'JDO operation'; nested exception is
com.solarmetric.jdbc.ReportingSQLException: DB2 SQL error: SQLCODE: -511,
SQLSTATE: 42829, SQLERRMC: null {prepstmnt 107840951 SELECT
t0.GROUPSETTINGID, t0.ALLOWDRAW, t0.ALLOWSTRIKE, t0.ALLOWTRANSFER,
t0.ASCENDONLY, t0.AUTOAPPROVE, t0.BARVISIBLE, t0.DEFAULTLEVELNAME,
t0.LASTMODIFY, t0.MAXDRAW, t0.MAXRECHARGE, t0.MAXROWS, t0.MAXSTRIKE,
t0.MAXTRANSFER, t0.MINDRAW, t0.MINRECHARGE, t0.MINSTRIKE, t0.MINTRANSFER,
t0.GROUPID, t0.RECHARGEABLE, t0.USERTYPEMODIFICATION FROM
OLTP.GROUPSETTING t0 INNER JOIN OLTP.ORGANGROUP t1 ON t0.GROUPID =
t1.GROUPID WHERE (t1.GROUPID = ?) FOR UPDATE [reused=0]} [code=-511,
state=42829]
com.solarmetric.jdbc.ReportingSQLException: DB2 SQL error: SQLCODE: -511,
SQLSTATE: 42829, SQLERRMC: null {prepstmnt 107840951 SELECT
t0.GROUPSETTINGID, t0.ALLOWDRAW, t0.ALLOWSTRIKE, t0.ALLOWTRANSFER,
t0.ASCENDONLY, t0.AUTOAPPROVE, t0.BARVISIBLE, t0.DEFAULTLEVELNAME,
t0.LASTMODIFY, t0.MAXDRAW, t0.MAXRECHARGE, t0.MAXROWS, t0.MAXSTRIKE,
t0.MAXTRANSFER, t0.MINDRAW, t0.MINRECHARGE, t0.MINSTRIKE, t0.MINTRANSFER,
t0.GROUPID, t0.RECHARGEABLE, t0.USERTYPEMODIFICATION FROM
OLTP.GROUPSETTING t0 INNER JOIN OLTP.ORGANGROUP t1 ON t0.GROUPID =
t1.GROUPID WHERE (t1.GROUPID = ?) FOR UPDATE [reused=0]} [code=-511,
state=42829]
at
com.solarmetric.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:67)
at
com.solarmetric.jdbc.LoggingConnectionDecorator.access$400(LoggingConnectionDecorator.java:19)
at
com.solarmetric.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:629)
at
com.solarmetric.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:351)
at
com.solarmetric.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:338)
at
kodo.jdbc.runtime.JDBCStoreManager.getResultInternal(JDBCStoreManager.java:843)
at kodo.jdbc.runtime.JDBCStoreManager.getResult(JDBCStoreManager.java:804)
at
kodo.jdbc.runtime.AbstractSelectResultObjectProvider.open(AbstractSelectResultObjectProvider.java:84)
at com.solarmetric.rop.WindowResultList.<init>(WindowResultList.java:46)
at
kodo.jdbc.runtime.JDBCFetchConfigurationImpl.newResultList(JDBCFetchConfigurationImpl.java:136)
at
kodo.runtime.CopyOnWriteFetchConfiguration.newResultList(CopyOnWriteFetchConfiguration.java:159)
at kodo.query.AbstractQuery.executeWithMap(AbstractQuery.java:718)
at kodo.query.AbstractQuery.executeWithArray(AbstractQuery.java:640)
at
org.springframework.orm.jdo.JdoTemplate$12.doInJdo(JdoTemplate.java:367)
at org.springframework.orm.jdo.JdoTemplate.execute(JdoTemplate.java:199)
at
org.springframework.orm.jdo.JdoTemplate.executeFind(JdoTemplate.java:180)
at org.springframework.orm.jdo.JdoTemplate.find(JdoTemplate.java:359)
at org.springframework.orm.jdo.JdoTemplate.find(JdoTemplate.java:353)
at
com.hintsoft.pubwin.net.bean.member.persistence.dao.jdo.GroupSettingDaoJdo.findGroupSettingPersistence(GroupSettingDaoJdo.java:47)
at
com.hintsoft.pubwin.net.bean.member.persistence.dao.jdo.GroupSettingDaoJdo.findGroupSetting(GroupSettingDaoJdo.java:61)
at
com.hintsoft.pubwin.net.bean.member.service.GroupSettingBusiness.findGroupSetting(GroupSettingBusiness.java:81)
at
com.hintsoft.pubwin.net.bean.member.service.GroupSettingBusiness$$FastClassByCGLIB$$80d45d10.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:632)
at
com.hintsoft.pubwin.net.bean.member.service.GroupSettingBusiness$$EnhancerByCGLIB$$e18f0ffa.findGroupSetting(<generated>)
at
com.hintsoft.pubwin.net.bean.member.testcase.test.GroupSettingBusinessTest.testFindGroupSetting(GroupSettingBusinessTest.java:69)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:392)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:276)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:167)Hi,
Could you clarify whether or not you're in a transaction when this
exception occurs? I noticed that there is a FOR UPDATE at the end of
the statement. That probably shouldn't be there outside of a
transaction. Please let us know if that's the problem.
Thanks,
Greg
jjyao wrote:
Hello all:
I have a exception for using kodo3.0
e.g
GroupSetting groupSetting = null;
String filter = "this.organGroup.groupID == groupID";
String parameters = "Integer groupID";
Collection col = this.getJdoTemplate().find(GroupSetting.class, filter,
parameters, new Object[] { new Integer(groupID)});
Iterator it = col.iterator();
while (it.hasNext()) {
groupSetting = (GroupSetting) it.next();
return groupSetting;
I use Spring JdoDaoSupport,
when i let this code under a transaction,some Exception happen..
but if leave this code under a transction,there allways good...
I think mybe the result is Optimistic transaction....
test.GroupSettingBusinessTest -
org.springframework.jdbc.BadSqlGrammarException: Bad SQL grammar [] in
task 'JDO operation'; nested exception is
com.solarmetric.jdbc.ReportingSQLException: DB2 SQL error: SQLCODE: -511,
SQLSTATE: 42829, SQLERRMC: null {prepstmnt 107840951 SELECT
t0.GROUPSETTINGID, t0.ALLOWDRAW, t0.ALLOWSTRIKE, t0.ALLOWTRANSFER,
t0.ASCENDONLY, t0.AUTOAPPROVE, t0.BARVISIBLE, t0.DEFAULTLEVELNAME,
t0.LASTMODIFY, t0.MAXDRAW, t0.MAXRECHARGE, t0.MAXROWS, t0.MAXSTRIKE,
t0.MAXTRANSFER, t0.MINDRAW, t0.MINRECHARGE, t0.MINSTRIKE, t0.MINTRANSFER,
t0.GROUPID, t0.RECHARGEABLE, t0.USERTYPEMODIFICATION FROM
OLTP.GROUPSETTING t0 INNER JOIN OLTP.ORGANGROUP t1 ON t0.GROUPID =
t1.GROUPID WHERE (t1.GROUPID = ?) FOR UPDATE [reused=0]} [code=-511,
state=42829]
org.springframework.jdbc.BadSqlGrammarException: Bad SQL grammar [] in
task 'JDO operation'; nested exception is
com.solarmetric.jdbc.ReportingSQLException: DB2 SQL error: SQLCODE: -511,
SQLSTATE: 42829, SQLERRMC: null {prepstmnt 107840951 SELECT
t0.GROUPSETTINGID, t0.ALLOWDRAW, t0.ALLOWSTRIKE, t0.ALLOWTRANSFER,
t0.ASCENDONLY, t0.AUTOAPPROVE, t0.BARVISIBLE, t0.DEFAULTLEVELNAME,
t0.LASTMODIFY, t0.MAXDRAW, t0.MAXRECHARGE, t0.MAXROWS, t0.MAXSTRIKE,
t0.MAXTRANSFER, t0.MINDRAW, t0.MINRECHARGE, t0.MINSTRIKE, t0.MINTRANSFER,
t0.GROUPID, t0.RECHARGEABLE, t0.USERTYPEMODIFICATION FROM
OLTP.GROUPSETTING t0 INNER JOIN OLTP.ORGANGROUP t1 ON t0.GROUPID =
t1.GROUPID WHERE (t1.GROUPID = ?) FOR UPDATE [reused=0]} [code=-511,
state=42829]
com.solarmetric.jdbc.ReportingSQLException: DB2 SQL error: SQLCODE: -511,
SQLSTATE: 42829, SQLERRMC: null {prepstmnt 107840951 SELECT
t0.GROUPSETTINGID, t0.ALLOWDRAW, t0.ALLOWSTRIKE, t0.ALLOWTRANSFER,
t0.ASCENDONLY, t0.AUTOAPPROVE, t0.BARVISIBLE, t0.DEFAULTLEVELNAME,
t0.LASTMODIFY, t0.MAXDRAW, t0.MAXRECHARGE, t0.MAXROWS, t0.MAXSTRIKE,
t0.MAXTRANSFER, t0.MINDRAW, t0.MINRECHARGE, t0.MINSTRIKE, t0.MINTRANSFER,
t0.GROUPID, t0.RECHARGEABLE, t0.USERTYPEMODIFICATION FROM
OLTP.GROUPSETTING t0 INNER JOIN OLTP.ORGANGROUP t1 ON t0.GROUPID =
t1.GROUPID WHERE (t1.GROUPID = ?) FOR UPDATE [reused=0]} [code=-511,
state=42829]
at
com.solarmetric.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:67)
at
com.solarmetric.jdbc.LoggingConnectionDecorator.access$400(LoggingConnectionDecorator.java:19)
at
com.solarmetric.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:629)
at
com.solarmetric.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:351)
at
com.solarmetric.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:338)
at
kodo.jdbc.runtime.JDBCStoreManager.getResultInternal(JDBCStoreManager.java:843)
at kodo.jdbc.runtime.JDBCStoreManager.getResult(JDBCStoreManager.java:804)
at
kodo.jdbc.runtime.AbstractSelectResultObjectProvider.open(AbstractSelectResultObjectProvider.java:84)
at com.solarmetric.rop.WindowResultList.<init>(WindowResultList.java:46)
at
kodo.jdbc.runtime.JDBCFetchConfigurationImpl.newResultList(JDBCFetchConfigurationImpl.java:136)
at
kodo.runtime.CopyOnWriteFetchConfiguration.newResultList(CopyOnWriteFetchConfiguration.java:159)
at kodo.query.AbstractQuery.executeWithMap(AbstractQuery.java:718)
at kodo.query.AbstractQuery.executeWithArray(AbstractQuery.java:640)
at
org.springframework.orm.jdo.JdoTemplate$12.doInJdo(JdoTemplate.java:367)
at org.springframework.orm.jdo.JdoTemplate.execute(JdoTemplate.java:199)
at
org.springframework.orm.jdo.JdoTemplate.executeFind(JdoTemplate.java:180)
at org.springframework.orm.jdo.JdoTemplate.find(JdoTemplate.java:359)
at org.springframework.orm.jdo.JdoTemplate.find(JdoTemplate.java:353)
at
com.hintsoft.pubwin.net.bean.member.persistence.dao.jdo.GroupSettingDaoJdo.findGroupSettingPersistence(GroupSettingDaoJdo.java:47)
at
com.hintsoft.pubwin.net.bean.member.persistence.dao.jdo.GroupSettingDaoJdo.findGroupSetting(GroupSettingDaoJdo.java:61)
at
com.hintsoft.pubwin.net.bean.member.service.GroupSettingBusiness.findGroupSetting(GroupSettingBusiness.java:81)
at
com.hintsoft.pubwin.net.bean.member.service.GroupSettingBusiness$$FastClassByCGLIB$$80d45d10.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:632)
at
com.hintsoft.pubwin.net.bean.member.service.GroupSettingBusiness$$EnhancerByCGLIB$$e18f0ffa.findGroupSetting(<generated>)
at
com.hintsoft.pubwin.net.bean.member.testcase.test.GroupSettingBusinessTest.testFindGroupSetting(GroupSettingBusinessTest.java:69)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:392)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:276)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:167) -
Hi
I am checking for one object and if that is null i want to throw Application exception from my EJB. Now if i thorw application exception container does not rollback the data. We need to set ctx.setRollbackOnly.
say i have method
public void setData(ValueObject MyVO)
if(MyVO!=null)
// do something
else
ctx.setRollbackOnly()
throw new myexception("Null obj VO");
am i on the right track. I beleive this will allow me to throw application exception as well as rollback the transcation.
I am using weblogic 7.0 with ejb2.0 and CMR relations. All my transactions attributes are set to Required
PranavHey thanks for your input.
But just a quick question for you.
Can i create a application exception extends EJBException
so that now when i thorw MyExp it will not have to call ctx.setRollbackOnly.
Like this
TestEJB.java
public void setData(MyVO vo)
if(vo==null)
thorw new MyExp("Cannot be null");
in this even if i dont call rollback on context still it will rollback cos now my exception is child of ejbexception(system exception)
am i right
which is the best way to do though.
This one or one which i asked as first quesrtion
thanks
pranav -
[EMF Transaction] Exception during rollback
On a number of occasions we have faced some exception during rollback, if our code encounters an exception while processing the transaction.
Here is a very typical example:
org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=1, size=1
at org.eclipse.emf.common.util.BasicEList.remove(BasicEList.java:602)
at org.eclipse.emf.common.notify.impl.NotifyingListImpl.doRemove(NotifyingListImpl.java:756)
at org.eclipse.emf.common.notify.impl.NotifyingListImpl.remove(NotifyingListImpl.java:707)
at org.eclipse.emf.ecore.change.impl.ListChangeImpl.process(ListChangeImpl.java:546)
at org.eclipse.emf.ecore.change.impl.ListChangeImpl.apply(ListChangeImpl.java:476)
at org.eclipse.emf.ecore.change.impl.FeatureChangeImpl.apply(FeatureChangeImpl.java:701)
at org.eclipse.emf.ecore.change.impl.FeatureChangeImpl.process(FeatureChangeImpl.java:611)
at org.eclipse.emf.ecore.change.impl.FeatureChangeImpl.apply(FeatureChangeImpl.java:518)
at org.eclipse.emf.ecore.change.impl.FeatureChangeImpl.apply(FeatureChangeImpl.java:493)
at org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl.apply(ChangeDescriptionImpl.java:300)
at org.eclipse.emf.transaction.util.CompositeChangeDescription.apply(CompositeChangeDescription.java:104)
at org.eclipse.emf.transaction.impl.TransactionImpl.doRollback(TransactionImpl.java:570)
at org.eclipse.emf.transaction.impl.TransactionImpl.commit(TransactionImpl.java:417)
at org.eclipse.emf.transaction.impl.TransactionalCommandStackImpl.doExecute(TransactionalCommandStackImpl.java:70)
at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165)
at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219)
at org.eclipse.emf.emfstore.internal.client.transaction.EMFStoreTransactionalCommandStack.execute(EMFStoreTransactionalCommandStack.java:52)
This seems to be caused by an attempt to remove an element from a list. Debugging here is showing that the rollback is trying to apply the undo changes produced by the transaction recorder. But the element that it is attempting to remove doesn't exist in the list, and thus the error. I suspect that this is because when the initial exception occurred that this command had not been executed yet. If that is the case, I would expect the rollback to have a way to check for the commands that have completed and to reverse them, but to ignore any commands that have never completed yet. Is it what I might be saying and what is the solution?
I'm adding below portion of the stacktrace that represents the original exception that triggered the rollback. This might help a bit in understanding the situation.
Caused by: java.lang.ClassCastException: ....
at com.castortech.util.emf.VersioningUtils.runInCompositeOperation(VersioningUtils.java:83)
at org.eclipse.sirius.table.business.internal.dialect.TableDialectServices.refresh(TableDialectServices.java:272)
at org.eclipse.sirius.business.internal.dialect.DialectManagerImpl.refresh(DialectManagerImpl.java:106)
at org.eclipse.sirius.business.api.dialect.command.RefreshRepresentationsCommand.doExecute(RefreshRepresentationsCommand.java:85)
at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
at org.eclipse.emf.common.command.CompoundCommand.execute(CompoundCommand.java:261)
at org.eclipse.sirius.business.internal.session.SessionEventBrokerImpl$PreCommitPriorityNotifyListenersCommand.launchCommands(SessionEventBrokerImpl.java:251)
at org.eclipse.sirius.business.internal.session.SessionEventBrokerImpl$PreCommitPriorityNotifyListenersCommand.doExecute(SessionEventBrokerImpl.java:242)
at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
at org.eclipse.emf.transaction.util.TriggerCommand.execute(TriggerCommand.java:113)
at org.eclipse.emf.transaction.impl.TransactionalCommandStackImpl.executeTriggers(TransactionalCommandStackImpl.java:218)
at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.precommit(TransactionalEditingDomainImpl.java:712)
at org.eclipse.emf.transaction.impl.TransactionImpl.commit(TransactionImpl.java:414)
at org.eclipse.emf.transaction.impl.TransactionalCommandStackImpl.doExecute(TransactionalCommandStackImpl.java:70)
at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165)
at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219)
at org.eclipse.emf.emfstore.internal.client.transaction.EMFStoreTransactionalCommandStack.execute(EMFStoreTransactionalCommandStack.java:52)
Thanks
AlainHi, Alain,
Indeed, the transaction will have difficulty rolling back if the
ChangeDescription cannot successfully be applied. However, a
ChangeDescription records only changes that actually are effected in
the model. I don't know how it could record changes that haven't yet
occurred.
Does your model have custom implementations of some of these list
features, as UML2 does, that perhaps coordinate changes with other
features? Could it be that undoing some changes causes side-effects in
others that then invalidate changes recorded in those?
Or are there non-ChangeDescription-based commands being undone by the
transaction that could interfere with ChangeDescriptions?
There's not really much that a transaction can do to validate the
applicability of a ChangeDescription ... it seems to me that it's up to
the model and the commands captured by a transaction to ensure that
undo will happen correctly. Although, perhaps failed rollback could
somehow be handled more gracefully? I'm not sure.
Cheers,
Christian
On 2015-08-08 18:12:21 +0000, Alain Picard said:
> On a number of occasions we have faced some exception during rollback,
> if our code encounters an exception while processing the transaction.
> Here is a very typical example:
>
>
> org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException:
> index=1, size=1
> at org.eclipse.emf.common.util.BasicEList.remove(BasicEList.java:602)
> at
> org.eclipse.emf.common.notify.impl.NotifyingListImpl.doRemove(NotifyingListImpl.java:756)
>
> at
> org.eclipse.emf.common.notify.impl.NotifyingListImpl.remove(NotifyingListImpl.java:707)
>
> at
> org.eclipse.emf.ecore.change.impl.ListChangeImpl.process(ListChangeImpl.java:546)
>
> at
> org.eclipse.emf.ecore.change.impl.ListChangeImpl.apply(ListChangeImpl.java:476)
>
> at
> org.eclipse.emf.ecore.change.impl.FeatureChangeImpl.apply(FeatureChangeImpl.java:701)
>
> at
> org.eclipse.emf.ecore.change.impl.FeatureChangeImpl.process(FeatureChangeImpl.java:611)
>
> at
> org.eclipse.emf.ecore.change.impl.FeatureChangeImpl.apply(FeatureChangeImpl.java:518)
>
> at
> org.eclipse.emf.ecore.change.impl.FeatureChangeImpl.apply(FeatureChangeImpl.java:493)
>
> at
> org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl.apply(ChangeDescriptionImpl.java:300)
>
> at
> org.eclipse.emf.transaction.util.CompositeChangeDescription.apply(CompositeChangeDescription.java:104)
>
> at
> org.eclipse.emf.transaction.impl.TransactionImpl.doRollback(TransactionImpl.java:570)
>
> at
> org.eclipse.emf.transaction.impl.TransactionImpl.commit(TransactionImpl.java:417)
>
> at
> org.eclipse.emf.transaction.impl.TransactionalCommandStackImpl.doExecute(TransactionalCommandStackImpl.java:70)
>
> at
> org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165)
>
> at
> org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219)
>
> at
> org.eclipse.emf.emfstore.internal.client.transaction.EMFStoreTransactionalCommandStack.execute(EMFStoreTransactionalCommandStack.java:52)
>
>
>
> This seems to be caused by an attempt to remove an element from a list.
> Debugging here is showing that the rollback is trying to apply the undo
> changes produced by the transaction recorder. But the element that it
> is attempting to remove doesn't exist in the list, and thus the error.
> I suspect that this is because when the initial exception occurred that
> this command had not been executed yet. If that is the case, I would
> expect the rollback to have a way to check for the commands that have
> completed and to reverse them, but to ignore any commands that have
> never completed yet. Is it what I might be saying and what is the
> solution?
>
> I'm adding below portion of the stacktrace that represents the original
> exception that triggered the rollback. This might help a bit in
> understanding the situation.
>
> Caused by: java.lang.ClassCastException: ....
> ...
> at
> com.castortech.util.emf.VersioningUtils.runInCompositeOperation(VersioningUtils.java:83)
>
> at
> org.eclipse.sirius.table.business.internal.dialect.TableDialectServices.refresh(TableDialectServices.java:272)
>
> at
> org.eclipse.sirius.business.internal.dialect.DialectManagerImpl.refresh(DialectManagerImpl.java:106)
>
> at
> org.eclipse.sirius.business.api.dialect.command.RefreshRepresentationsCommand.doExecute(RefreshRepresentationsCommand.java:85)
>
> at
> org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
>
> at
> org.eclipse.emf.common.command.CompoundCommand.execute(CompoundCommand.java:261)
>
> at
> org.eclipse.sirius.business.internal.session.SessionEventBrokerImpl$PreCommitPriorityNotifyListenersCommand.launchCommands(SessionEventBrokerImpl.java:251)
>
> at
> org.eclipse.sirius.business.internal.session.SessionEventBrokerImpl$PreCommitPriorityNotifyListenersCommand.doExecute(SessionEventBrokerImpl.java:242)
>
> at
> org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
>
> at
> org.eclipse.emf.transaction.util.TriggerCommand.execute(TriggerCommand.java:113)
>
> at
> org.eclipse.emf.transaction.impl.TransactionalCommandStackImpl.executeTriggers(TransactionalCommandStackImpl.java:218)
>
> at
> org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.precommit(TransactionalEditingDomainImpl.java:712)
>
> at
> org.eclipse.emf.transaction.impl.TransactionImpl.commit(TransactionImpl.java:414)
>
> at
> org.eclipse.emf.transaction.impl.TransactionalCommandStackImpl.doExecute(TransactionalCommandStackImpl.java:70)
>
> at
> org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165)
>
> at
> org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219)
>
> at
> org.eclipse.emf.emfstore.internal.client.transaction.EMFStoreTransactionalCommandStack.execute(EMFStoreTransactionalCommandStack.java:52)
>
>
>
> Thanks
> Alain -
JDBC Transaction - Exception management
Does anybody know how to catch ALL the SQL errors that could appear in a transaction composed for instance of 10 insert ?
List sqlExceptions = new ArrayList();
for(int i=0; i<commands.length; i++) {
try {
getStatement().executeUpdate(command);
} catch(SQLException ex) {
sqlExceptions.add(ex); -
Transaction Aborted Exceptions are seen when service downloading data
Hi,
We are getting two different types of exceptions while one service trying to download data from another service
There are two scenarios where we are getting these transaction exceptions that are seen when client's service downloads data from server's service.
1. The first kind of transaction exception is seen when service is trying to send the message to messaging queue in the InitialReceiveNext() method. The queue.send method throws this exception and the stack trace is as mentioned below:
04 Jun 2014 19:16:12,805 [BridgeExchanger] TRACE - Sending queue message 00000000-0000-0000-0000-000000000000\0 to queue private$\msgqueue
04 Jun 2014 19:16:12,806 [ClientBridgeEndpoint] ERROR - Error occurred during Receive!
System.Transactions.TransactionException: The operation is not valid for the state of the transaction. ---> System.TimeoutException: Transaction Timeout
— End of inner exception stack trace —
at System.Transactions.TransactionState.Promote(InternalTransaction tx)
at System.Transactions.Transaction.Promote()
at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction)
at System.Transactions.TransactionInterop.GetDtcTransaction(Transaction transaction)
at System.Messaging.MessageQueue.StaleSafeSendMessage(MQPROPS properties, IntPtr transaction)
at System.Messaging.MessageQueue.SendInternal(Object obj, MessageQueueTransaction internalTransaction, MessageQueueTransactionType transactionType)
at CI.Platform.Bus.Bridge.Client.BridgeExchanger.InitialReceiveNext(DownloadEndpoint endpoint)
at CI.Platform.Bus.Bridge.Client.BridgeExchanger.ReceiveNext()
at CI.Platform.Bus.Bridge.Client.ClientBridgeEndpoint.Exchange(Object state)
2. The second kind of exception is seen at the transaction.complete statement in the InitialReceiveNext() method. The stack trace is as shown below:
04 Jun 2014 23:15:59,152 [BridgeExchanger] DEBUG - Skipping the download message as the message is already downloaded..No new message is added to queue private$\msgqueue
04 Jun 2014 23:15:59,153 [ClientBridgeEndpoint] ERROR - Error occurred during Receive!
System.Transactions.TransactionAbortedException: The transaction has aborted. ---> System.TimeoutException: Transaction Timeout
— End of inner exception stack trace —
at System.Transactions.TransactionStateAborted.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState)
at System.Transactions.CommittableTransaction.Commit()
at System.Transactions.TransactionScope.InternalDispose()
at System.Transactions.TransactionScope.Dispose()
at CI.Platform.Bus.Bridge.Client.BridgeExchanger.InitialReceiveNext(DownloadEndpoint endpoint)
at CI.Platform.Bus.Bridge.Client.BridgeExchanger.ReceiveNext()
at CI.Platform.Bus.Bridge.Client.ClientBridgeEndpoint.Exchange(Object state)
If anybody has any insight please reply.
Thanks in advance!!!Hello,
Your two questions are both related to MSMQ forum. Please post threads on that forum for more effective response. Please refer to
http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/home?forum=msmq. Thank you for understanding.
Regards,
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Hi,
I'm having some issues in same cases with MDB transactions on WL. I have an MDB deployed on a 9.2 WL defined as a CMP with auto-acknowledge in the EJB descriptor (using EJB 2.1 standards) which listens on a queue which is defined in the local WL JMS module and mapped to an external Tibco EMS queue.
Used descriptor configuration :
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Container</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>acknowledgeMode</activation-config-property-name>
<activation-config-property-value>Auto-acknowledge</activation-config-property-value>
</activation-config-property>
</activation-config>
The MDB processes the message, accesses a DB and sends it of the an external system. When no exception happened the MDB method finishes and normally the container acknowledges
This all works great untill we put some load on the queue. Sometimes we note that a JMS message gets stuck in the input queue when lots of messages are being put on the input queue. We can trace that such messages actually were picked up by the MDB and processed to a certain extend.
Sometimes the processing log trace just stops in the middle of processing. Sometimes the entire processing log trace is present. However the JMS messages are kept in the input queue and seem to locked (they can't be flushed out as long as the component is still running).
It looks like the messages are awaiting acknowledgement from the WL container manager but somehow the transaction got lost and never got back to the external EMS to acknowledge the message in the input queue.
I was wondering if there is a way to monitor CMP transactions or the status of the container manager? As far as I know the container manager always tries to contact the remote EMS server to acknowledge the message in this setup. What would happen if the remote EMS server would be overloaded and could not respond back to the WL container manager to confirm message acknowledgment?Thanks for the reply. There are no errors what so ever regarding MDB issues. Not in the weblogic / console logging, nor in the logging of the component itself.
The MDB itself is setup to have 16 concurrent beans per component deployment. The component is clustered over 4 server instances. So there are quite some concurrent MDBs running. However since the messages get stuck for weeks eventhough the component only has bursts of messages to process, one would think that the the stuck messages would be processed whenever the component has some spare time (which it has a lot between the bursts).
Therefor i doubt it has anything to do with too little MDBs running. But frankly I have no idea what's wrong.
Maybe you are looking for
-
Forte Transaction Management & 2PC
Forte Transaction Management & 2PC The main purpose of 2PC in a distributed transaction manager is to enable recovery from a failure that occurs during the window of transaction commit processing. The Forte transaction manager was built with this in
-
How to instal camera raw in mac
Hi, I'd be obliged if someone could advise me how to instal camera raw 8 into an imac. many thanks
-
PGW2200 - CCME interconnection via SIP
I'm trying to connect Cisco CallManager Express directly to MGC without using proxy server. Everything is working perfect, i'm able to place calls in both directions. When i'm turning call forwarding for all calls on ephone-dn, it's working without a
-
BRFPlus - Possible for business users to change the rules ?
Hi, 1) Is it possible for business users to change the rules in decision table, tree, formula etc? 2) If yes, what are the steps to achieve it? Thanks. - julius
-
Question from Brand New User / Thanks
Hi - I'm a new smart phone user (Samsung Galaxy S III) with a very basic question (thanks). I have the 4GB data plan. When I click the "Internet" icon on the Home screen (and connect using the phone, instead of a Wi-Fi network), does my usage of da