Javax.transaction.RollbackException
Please take few moments to look at this code. I can't see what I am doing wrong. Can you? it is about the RollbackException. the create method inserts a record in de database, but I am not sure if the container rolls it back, or may be the primary key class is not well implemented.
Your help is very appreciated. I am stack here since 3 days ;(
The create method in the Movie_LoanBean
public Movie_LoanKey ejbCreate (int Member,int Movie,int copy_number,java.sql.Date DayDate_Loaned)
throws CreateException {
if (Member == 0 || Movie == 0 || copy_number == 0 || DayDate_Loaned == null ) {
throw new CreateException(
"Rerquired fields are not filled.");
try {
insertMovie_Loan(Member , Movie , copy_number , DayDate_Loaned );
this.Member = Member;
this.Movie = Movie;
this.copy_number = copy_number;
this.DayDate_Loaned = DayDate_Loaned;
return new Movie_LoanKey(Member, Movie, copy_number, DayDate_Loaned);
} catch (Exception e) {
throw new CreateException (e.toString());
private void insertMovie_Loan(int Member,int Movie,int copy_number,java.sql.Date DayDate_Loaned)
throws SQLException {
makeConnection();
System.out.println("in insertMovie_Loan");
String insertStatement = "INSERT INTO Movie_Loan2 VALUES(?, ?, ?, ?)";
PreparedStatement prepStmt = con.prepareStatement(insertStatement);
prepStmt.setInt(1, Member);
prepStmt.setInt(2, Movie);
prepStmt.setInt(3, copy_number);
prepStmt.setDate(4, (java.sql.Date) DayDate_Loaned);
prepStmt.executeUpdate();
prepStmt.close();
System.out.println("leaving insertMovie_Loan");
releaseConnection();
The primary key class
public class Movie_LoanKey implements java.io.Serializable {
public int Member;
public int Movie;
public int copy_number;
public java.sql.Date DayDate_Loaned;
public Movie_LoanKey() {}
public Movie_LoanKey(int Member, int Movie, int copy_number, java.sql.Date DayDate_Loaned) {
this.Member = Member;
this.Movie = Movie;
this.copy_number = copy_number;
this.DayDate_Loaned = DayDate_Loaned;
public int getMember() {
return Member;
public int getMovie() {
return Movie;
public int getcopy_number() {
return copy_number;
public java.sql.Date getDayDate_Loaned() {
return DayDate_Loaned;
public boolean equals (Object obj) {
if ( obj == null || !( obj instanceof Movie_LoanKey ))
return false;
else if ( (((Movie_LoanKey) obj).Member == Member) && (((Movie_LoanKey) obj).Movie == Movie) && (((Movie_LoanKey) obj).copy_number == copy_number) && (((Movie_LoanKey) obj).DayDate_Loaned == DayDate_Loaned) )
return true;
else
return false;
public String toString() {
return String.valueOf(Member) + String.valueOf(Movie) + String.valueOf(copy_number) + DayDate_Loaned.toString() ;
public int hashCode() {
String tmp0 = String.valueOf(Member) ;
String tmp1 = String.valueOf(Movie) ;
String tmp2 = String.valueOf(copy_number) ;
String tmp3 = DayDate_Loaned.toString();
return tmp0.concat(tmp1).concat(tmp2).concat(tmp3).hashCode();
The client
import java.util.*;
import java.math.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
public class LoanClient {
public static void main(String[] args) {
try {
Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimpleLoan");
Movie_LoanHome home = (Movie_LoanHome) PortableRemoteObject.narrow(objref,
Movie_LoanHome.class);
java.sql.Date d1 = java.sql.Date.valueOf("04-01-05");
Movie_Loan duke = home.create(1,3,4,d1);
System.exit(0);
} catch (Exception ex) {
System.err.println("Caught an exception.");
ex.printStackTrace();
When I run this code I get the following error:
java.rmi.ServerException: RemoteException occurred in server thread; nested exce
ption is:
java.rmi.RemoteException: Transaction aborted; nested exception is: java
x.transaction.RollbackException; nested exception is:
javax.transaction.RollbackException
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.ja
va:170)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:65)
at MovieLoanHome_Stub.create(Unknown Source)
at LoanClient.main(Unknown Source)
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 com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:28
5)
at com.sun.enterprise.appclient.Main.<init>(Main.java:420)
at com.sun.enterprise.appclient.Main.main(Main.java:92)
Caused by: java.rmi.RemoteException: Transaction aborted; nested exception is: j
avax.transaction.RollbackException; nested exception is:
javax.transaction.RollbackException
at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.ja
va:213)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:79
7)
at com.sun.ejb.containers.EJBHomeInvocationHandler.invoke(EJBHomeInvocat
ionHandler.java:194)
It means that your code somewhere throws a system exception.
Have you tried to debug you'r bean ? Run EJB server under an IDE with debugging capabilities (JBuilder, IDEA).
This would speed up your development.
Why do you use a BMP beans ? In this case CMP would work without any problems.
Similar Messages
-
Javax.transaction.RollbackException occurs on delete
Hello,
I am using a container managed transaction to add, modify and delete data. On adding, the transaction commits successfully. However, on delete the transaction throws a javax.transaction.RollbackException.
The following is the start of the log file entry:
EJB5018: An exception was thrown during an ejb invocation on [DirBean]
javax.ejb.EJBException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaction marked for rollback.
javax.transaction.RollbackException: Transaction marked for rollback.I have checked on the database table foreign key they seem in order.
What might be the cause of the rollbackException since hibernate does not display the content of the nested exception?The value in transaction-manager.xml was initially 30 not 30000.
I tried setting syncMaxWaitTime=600 and transaction-manager.xml to 600000. Same result.
I tried setting syncMaxWaitTime=600 and transaction-manager.xml to 600.
Also the same result. Transaction timeout is still occurring.
SOA suite was stopped and restarted each time.
I'm going to test on 10.1.2 to see if something possible got broken in 10.1.3. -
Javax.transaction.RollbackException: Transaction marked for rollback
Hello all,
This is my first topic/question in the forums. I am relatively novice with J2EE programming so please pardon my ignorance. I have spend several hours thying to figure out the following issue.
So here is the scenario. I have a JSF ManagedBean called SymbolProcessBean. Here is part of its declaration
@PersistenceContext(name = "persistence/LogicalName", unitName = "MantisPU")
public class SymbolProcessBean {
@Resource
private UserTransaction utx;
}The Bean is callef by a h:command from a jsp page
<h:commandLink action="#{symbolProcessBean.processSymbol}" value="Process"/>In part of the process the Bean read data from a webpage and persists them in a MySQL database. Here is the loop:
try {
// Create a URL for the desired page
String urlStr = "http://ichart.finance.yahoo.com/table.csv?s=" + this.selectedSymbol.getTicker();
if (firstNewDay != null)
urlStr += "&a=" + firstNewDay.get(Calendar.MONTH) +
"&b=" + firstNewDay.get(Calendar.DATE) +
"&c=" + firstNewDay.get(Calendar.YEAR);
URL url = new URL(urlStr);
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
outText = in.readLine() + "<br />"; // Discard first line
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
utx.begin();
em = (EntityManager) ctx.lookup("persistence/LogicalName");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
while ((str = in.readLine()) != null) {
// Use togenizer to parse comma separated fields
StringTokenizer strtok = new StringTokenizer(str, ",");
// Read the data from the line
Date recordDate = formatter.parse(strtok.nextToken());
Float open = Float.valueOf(strtok.nextToken());
Float high = Float.valueOf(strtok.nextToken());
Float low = Float.valueOf(strtok.nextToken());
Float close = Float.valueOf(strtok.nextToken());
Integer volume = Integer.valueOf(strtok.nextToken());
Float adj_close = Float.valueOf(strtok.nextToken());
// Set the PriceRecord data members
PriceRecord pr = new PriceRecord();
pr.setSymbol(this.selectedSymbol);
pr.setRecordDate(recordDate);
pr.setOpen(open);
pr.setHigh(high);
pr.setLow(low);
pr.setClose(close);
pr.setVolume(volume);
pr.setAdjClose(adj_close);
// Create Record
em.persist(pr);
this.selectedSymbol.getPriceRecordCollection().add(pr);
// Add record string to output text
outText += str + "<br />";
in.close();
this.selectedSymbol = em.merge(this.selectedSymbol);
utx.commit();
} catch (Exception e) {
utx.rollback();
throw e;
}All this works fine on the first invocation of the command link and the Bean reads the data from yahoo for a Stock symbol and persists into the database. When the command link is clicked again for a different stock then the utx.commit(); throws a "javax.transaction.RollbackException: Transaction marked for rollback" exception. NOTE that when I redeploy the application and run it again it will work. But it works only the first time. The second time it will throw the exception.
I am not sure why this happens. I looked in the create() methods of the autogenerated JPA Controllers (PriceRecordJpaController) and they allways commit the transaction. Why would it fail in my case? Is there a way to "refresh" the transaction?
Thank you in advance.
Edited by: kkyriako on Nov 11, 2009 10:37 PMThank you for your responses. I had no idea that when a runtime exception is thrown the transaction will be marked for rollback. The getCause of the exception is null however I got the following stack trace from the GlashFish log:
WARNING:
Local Exception Stack:
Exception [EclipseLink-7197] (Eclipse Persistence Services - 1.0.1 (Build 20080905)): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Null primary key encountered in unit of work clone [ejb.entities.PriceRecord[idPriceRecord=null]].
at org.eclipse.persistence.exceptions.ValidationException.nullPrimaryKeyInUnitOfWorkClone(ValidationException.java:1305)
at org.eclipse.persistence.descriptors.changetracking.DeferredChangeDetectionPolicy.calculateChanges(DeferredChangeDetectionPolicy.java:84)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.calculateChanges(UnitOfWorkImpl.java:557)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1320)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.issueSQLbeforeCompletion(UnitOfWorkImpl.java:2848)
at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.issueSQLbeforeCompletion(RepeatableWriteUnitOfWork.java:223)
at org.eclipse.persistence.transaction.AbstractSynchronizationListener.beforeCompletion(AbstractSynchronizationListener.java:157)
at org.eclipse.persistence.transaction.JTASynchronizationListener.beforeCompletion(JTASynchronizationListener.java:68)
at com.sun.enterprise.transaction.JavaEETransactionImpl.commit(JavaEETransactionImpl.java:411)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.commit(JavaEETransactionManagerSimplified.java:843)
at com.sun.enterprise.transaction.UserTransactionImpl.commit(UserTransactionImpl.java:198)
at ejb.logic.SymbolProcessBean.accessURLData(SymbolProcessBean.java:165)
at ejb.logic.SymbolProcessBean.processSymbol(SymbolProcessBean.java:182)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:431)
at org.apache.catalina.core.StandardWrapperValve.preInvoke(StandardWrapperValve.java:462)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:139)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:186)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
at com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
at com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
at com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
at com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
at com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)SymbolProcessBean.java:165 is the utx.commit(). The idPriceRecord is the primary key of the table. It is an autoincrement field. I do not modify it before the em.persist(pr); statement so it goes as null. However the first time when I execute the commit everything is persisted in the database. When I run a second time for a different symbol then I get the exception until I redeploy the wed site. Maybe the persistence layer does not update the idPriceRecord with the value generated by MySQL. Nuy why does that does not cause a problem the first time? -
Javax.transaction.RollbackException: Timed out
Hi All,
Using SOA suite 10.1.3.1, I've written an async bpel process that calls a synchronous web service that can sometimes require several minutes to complete. If the process takes longer than about 45 seconds, an exception is logged - javax.transaction.RollbackException: Timed out.
In the process manager console I have set syncMaxWaitTime to 600 (it was initially 45).
I tried to find the <transaction-config timeout=...> value in server.xml. It is not there. If I add the value, it is removed when I stop and start the SOA suite. There is a value in server.xml:
<transaction-manager-config path="transaction-manager.xml" />
In transaction-manager.xml there is an attribute "transaction-timeout" on the transaction-manager element. It was initially set to 30. I changed it to 600 and restarted the SOA suite but the javax.transaction.RollbackException still occurs after about 45 seconds.
Are there other parameters that need to be set to stop this timeout?
Wayne Stielau
Open Text CorporationThe value in transaction-manager.xml was initially 30 not 30000.
I tried setting syncMaxWaitTime=600 and transaction-manager.xml to 600000. Same result.
I tried setting syncMaxWaitTime=600 and transaction-manager.xml to 600.
Also the same result. Transaction timeout is still occurring.
SOA suite was stopped and restarted each time.
I'm going to test on 10.1.2 to see if something possible got broken in 10.1.3. -
How to skip javax.transaction.RollbackException Transaction has been mark
I am debugging my testcase for which I inspect objects which consumes time and when I go to next line which calls a localdelegate I get times out exception Is there any way I can inform oc4j to ignore timeout.
Hi ,
It looks like intial context factory is missing in the weblogic-ejb-jar.xml, try to add the following line and see.
<initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
Rule out any typos, Make sure you have specified the exact names in destination-jndi-name,connection-factory-jndi-name in the weblogic-ejb*.xml file.
Thanks -
Javax.transaction.TransactionRolledbackException
Hi
I am getting a weblogic.ejb.extensions.LockTimedOutException when a call an entity bean for the second time. The first time I call the account entity bean from a session bean it returns all the accounts without any problems. However the next time I call the same bean from the same session I get a time out error. It seems to get as far as the last record and the locks. It also seems to use the same context for the last record as it did on the first read. See bold ctx. I have tried changing the isolation level of the beans and increasing the time out limit. I've attached the output below. Has anyone any suggestion.
Thanks
Claire
1st Read from Session Bean
After creating Data Packets601212 ::69000512
before find by account
after find by accountEJBObject: '-915484003', home: 'eon.common.Account', ctx: '-916794723', pk: 'com.bankframe.common.ejb.account.interfaces.AccountPK@64476f25'
accountDp{Account Balance=13010.7, Uncleared Funds=600.0, DATA PACKET NAME=ACCOUNT, OWNER=eontec Ltd, REQUEST_ID=00000, Currency=IEP, Debit Or Credit Balance=Credit, Account Number=69000512, Account T
ype=Chequing, Account Name=Current Account - No. 1, Sort Code=601212}
After creating Data Packets601212 ::77264300
before find by account
after find by accountEJBObject: '1776210589', home: 'eon.common.Account', ctx: '1775948445', pk: 'com.bankframe.common.ejb.account.interfaces.AccountPK@661c2d9f'
accountDp{Account Balance=2100.0, Uncleared Funds=0.0, DATA PACKET NAME=ACCOUNT, OWNER=eontec Ltd, REQUEST_ID=00000, Currency=GBP, Debit Or Credit Balance=Credit, Account Number=77264300, Account Type
=Deposit, Account Name=Term Deposit - Sterling, Sort Code=601212}
2nd Reand from Session Bean
After creating Data Packets601212 ::69000512
before find by account
after find by accountEJBObject: '704303773', home: 'eon.common.Account', ctx: '700895901', pk: 'com.bankframe.common.ejb.account.interfaces.AccountPK@64476f25'
accountDp{Account Balance=13010.7, Uncleared Funds=600.0, DATA PACKET NAME=ACCOUNT, OWNER=eontec Ltd, REQUEST_ID=00000, Currency=IEP, Debit Or Credit Balance=Credit, Account Number=69000512, Account T
ype=Chequing, Account Name=Current Account - No. 1, Sort Code=601212}
After creating Data Packets601212 ::77264300
before find by account
after find by accountEJBObject: '1776210589', home: 'eon.common.Account', ctx: '1775948445', pk: 'com.bankframe.common.ejb.account.interfaces.AccountPK@661c2d9f'
Thu Nov 23 09:45:57 GMT 2000:<I> <TX> Transaction (TxC (650302109, xid = 974971491652_10, timeout = 300, txState = Marked Rollback, root = null) rolled back after 300 sec.
FinderException weblogic.ejb.extensions.LockTimedOutException: Lock for primaryKey:com.bankframe.common.ejb.account.interfaces.AccountPK@661c2d9f timed out after 300000 ms.
finished creating dp
CustomerOverviewBean::processDataPacket()::Sending Result to the Client Excep
{DATA PACKET NAME=CUSTOMER OVERVIEW EXCEPTION, OWNER=eontec Ltd, REQUEST_ID=00000, Reason=javax.transaction.TransactionRolledbackException: Transaction: '974971491652_10' has been rolled back}
Thu Nov 23 09:46:00 GMT 2000:<I> <EJB JAR deployment ./classes/castaway-jars/customeroverview.jar> Exception during commit of transaction: '974971491652_10'
javax.transaction.RollbackException: Transaction TxC (650302109, xid = 974971491652_10, timeout = 0, txState = Rolledback, root = null has been rolled back.Reason: Transaction (TxC (650302109, xid = 9
74971491652_10, timeout = 300, txState = Marked Rollback, root = null) rolled back after 300 sec.
at weblogic.jts.internal.CoordinatorImpl.throwRollbackException(CoordinatorImpl.java:727)
at weblogic.jts.internal.CoordinatorImpl.commit(CoordinatorImpl.java:352)
at weblogic.jts.internal.TxContext.commit(TxContext.java:246)
at weblogic.ejb.internal.StatelessEJBObject.postInvokeOurTx(StatelessEJBObject.java:88)
at weblogic.ejb.internal.BaseEJBObject.postInvoke(BaseEJBObject.java, Compiled Code)
at com.bankframe.bs.customer.ejb.customeroverview.server.CustomerOverviewBeanEOImpl.processDataPacket(CustomerOverviewBeanEOImpl.java:107)
at com.bankframe.bs.customer.ejb.customeroverview.server.CustomerOverviewBeanEOImpl_ServiceStub.processDataPacket(CustomerOverviewBeanEOImpl_ServiceStub.java, Compiled Code)
at com.bankframe.ei.servlet.BankframeServlet.getResponseDataPackets(BankframeServlet.java:173)
at com.bankframe.ei.servlet.BankframeServlet.doGet(BankframeServlet.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java, Compiled Code)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java, Compiled Code)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java, Compiled Code)
at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java, Compiled Code)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java, Compiled Code)
at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java, Compiled Code)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled Code)
Thu Nov 23 09:46:00 GMT 2000:<I> <ServletContext-General> BankframeServlet: Thu Nov 23 09:46:00 GMT 2000::BankframeServlet::Error in method getResponseDataPackets, the data packet was: {Customer Numbe
r=996324364, DATA PACKET NAME=LIST CUSTOMER ACCOUNTS, OWNER=EON Technologies Ltd, Last Logged Date=20/02/2000, REQUEST_ID=80031}
Thu Nov 23 09:46:00 GMT 2000:<I> <ServletContext-General> BankframeServlet: Thu Nov 23 09:46:00 GMT 2000::BankframeServlet::Unexpected exception in com.bankframe.bs.customer.ejb.customeroverview.serve
r.CustomerOverviewBean.processDataPacket():
javax.transaction.RollbackException: Transaction TxC (650302109, xid = 974971491652_10, timeout = 0, txState = Rolledback, root = null has been rolled back.Reason: Transaction (TxC (650302109, xid = 9
74971491652_10, timeout = 300, txState = Marked Rollback, root = null) rolled back after 300 sec.
at weblogic.jts.internal.CoordinatorImpl.throwRollbackException(CoordinatorImpl.java:727)
at weblogic.jts.internal.CoordinatorImpl.commit(CoordinatorImpl.java:352)
at weblogic.jts.internal.TxContext.commit(TxContext.java:246)
at weblogic.ejb.internal.StatelessEJBObject.postInvokeOurTx(StatelessEJBObject.java:88)
at weblogic.ejb.internal.BaseEJBObject.postInvoke(BaseEJBObject.java, Compiled Code)
at com.bankframe.bs.customer.ejb.customeroverview.server.CustomerOverviewBeanEOImpl.processDataPacket(CustomerOverviewBeanEOImpl.java:107)
at com.bankframe.bs.customer.ejb.customeroverview.server.CustomerOverviewBeanEOImpl_ServiceStub.processDataPacket(CustomerOverviewBeanEOImpl_ServiceStub.java, Compiled Code)
at com.bankframe.ei.servlet.BankframeServlet.getResponseDataPackets(BankframeServlet.java:173)
at com.bankframe.ei.servlet.BankframeServlet.doGet(BankframeServlet.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java, Compiled Code)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java, Compiled Code)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java, Compiled Code)
at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java, Compiled Code)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java, Compiled Code)
at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java, Compiled Code)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled Code)
; nested exception is:
javax.transaction.RollbackException: Transaction TxC (650302109, xid = 974971491652_10, timeout = 0, txState = Rolledback, root = null has been rolled back.Reason: Transaction (TxC (650302109,
xid = 974971491652_10, timeout = 300, txState = Marked Rollback, root = null) rolled back after 300 sec.
What versions of the WebLogic you are using at windows and unix machines ? What are transaction attributes of the EJB methods you are invoking ?
-
Transaction RollbackException when running OIM's scheduler
Dear all,
When we run the custom scheduler ,we run into the following exception:
Exception when DeleteUser Thor.API.Exceptions.tcAPIException: An exception occurred during transaction completion: ; nested exception is:
javax.transaction.RollbackException: Timed out
at Thor.API.Operations.tcReconciliationOperationsClient.provideDeletionDetectionData(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
at Thor.API.Security.LoginHandler.oracleLoginSession.runAs(Unknown Source)
at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
at $Proxy14.provideDeletionDetectionData(Unknown Source)
at com.ncgc.oim.connector.UserReconciliation.DeleteUser(UserReconciliation.java:440)
at com.ncgc.oim.connector.UserReconciliation.execute(UserReconciliation.java:220)
at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run(Unknown Source)
at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionAction.run(Unknown Source)
at Thor.API.Security.LoginHandler.oracleLoginSession.runAs(Unknown Source)
at com.thortech.xl.scheduler.core.quartz.QuartzWrapper.execute(Unknown Source)
at org.quartz.core.JobRunShell.run(JobRunShell.java:178)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:477)
Besides, there are about 20000 users in the target system. Thanks in advance!Please check out the SAP note below
Note 1099234 - AA 669 in reporting w/ reporting date in future fiscal year
its seems like a program error...implement the note. -
MS SQL Server problem with MDB's: javax.transaction.xa.XAException
I am programming agents in j2ee and using MDB to implement the asynchronicity of
the agents.
Those MDB's get messages (MapMessage) from a controller (an SFSB) that contain
the agent's ID and the action that the agent has to perform. The MDB creates a
SFSB, and calls the appropriate action from this session bean. Those actions require
to read and write from my MS SQL Server 2000 XA database. But when running my
program, I often get this error, which doesn't seem to affect the action, because
when I check my database data, everything is updated correctly. So the program
still completes, but the errors slow down the execution (the program hangs for
about 3 seconds, each time the error occurs).
Does anybody has an explanation or solution for this?
Thank you...
This is the error output:
onMessage()
Reading MapMessage: 1
<26-apr-2004 14.34 u. CEST> <Error> <EJB> <BEA-010026> <Exception occurred during
commit of transaction Xid=BEA1-005F88135FFBA636FFF7(15619088),Status=Rolled back.
[Reason=javax.transaction.xa.XAException: [BEA][SQLServer JDBC Driver][SQLServer]xa_prepare
(0) returns -4],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=4,seconds
left=30,XAServerResourceInfo[JMS_JMS Server2_NotDurable]=(ServerResourceInfo[JMS_JMS
Server2_NotDurable]=(state=rolledback,assigned=lucille3_ms),xar=JMS_JMS Server2_NotDurable),XAServerResourceInfo[MSSQL
Connection Pool]=(ServerResourceInfo[MSSQL Connection Pool]=(state=rolledback,assigned=lucille3_ms),xar=MSSQL
Connection Pool),SCInfo[cluster+lucille3_ms]=(state=rolledback),local properties=({}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=lucille3_ms+127.0.0.1:8001+cluster+t3+,
XAResources={},NonXAResources={})],CoordinatorURL=lucille3_ms+127.0.0.1:8001+cluster+t3+):
javax.transaction.xa.XAException: [BEA][SQLServer JDBC Driver][SQLServer]xa_prepare
(0)returns -4
at weblogic.jdbcx.sqlserver.SQLServerImplXAResource.executeXaRpc(Unknown
Source)
at weblogic.jdbcx.sqlserver.SQLServerImplXAResource.prepare(Unknown Source)
at weblogic.jdbcx.base.BaseXAResource.prepare(Unknown Source)
at weblogic.jdbc.jta.DataSource.prepare(DataSource.java:821)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1161)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:395)
at weblogic.transaction.internal.ServerSCInfo$1.execute(ServerSCInfo.java:253)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Could not prepare resource 'MSSQL Connection
Pool
[BEA][SQLServer JDBC Driver][SQLServer]xa_prepare (0) returns -4 - with nested
exception:
[javax.transaction.xa.XAException: [BEA][SQLServer JDBC Driver][SQLServer]xa_prepare
(0) returns -4]
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1644)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:300)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:221)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:412)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170).>
I am programming agents in j2ee and using MDB to implement the asynchronicity of
the agents.
Those MDB's get messages (MapMessage) from a controller (an SFSB) that contain
the agent's ID and the action that the agent has to perform. The MDB creates a
SFSB, and calls the appropriate action from this session bean. Those actions require
to read and write from my MS SQL Server 2000 XA database. But when running my
program, I often get this error, which doesn't seem to affect the action, because
when I check my database data, everything is updated correctly. So the program
still completes, but the errors slow down the execution (the program hangs for
about 3 seconds, each time the error occurs).
Does anybody has an explanation or solution for this?
Thank you...
This is the error output:
onMessage()
Reading MapMessage: 1
<26-apr-2004 14.34 u. CEST> <Error> <EJB> <BEA-010026> <Exception occurred during
commit of transaction Xid=BEA1-005F88135FFBA636FFF7(15619088),Status=Rolled back.
[Reason=javax.transaction.xa.XAException: [BEA][SQLServer JDBC Driver][SQLServer]xa_prepare
(0) returns -4],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=4,seconds
left=30,XAServerResourceInfo[JMS_JMS Server2_NotDurable]=(ServerResourceInfo[JMS_JMS
Server2_NotDurable]=(state=rolledback,assigned=lucille3_ms),xar=JMS_JMS Server2_NotDurable),XAServerResourceInfo[MSSQL
Connection Pool]=(ServerResourceInfo[MSSQL Connection Pool]=(state=rolledback,assigned=lucille3_ms),xar=MSSQL
Connection Pool),SCInfo[cluster+lucille3_ms]=(state=rolledback),local properties=({}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=lucille3_ms+127.0.0.1:8001+cluster+t3+,
XAResources={},NonXAResources={})],CoordinatorURL=lucille3_ms+127.0.0.1:8001+cluster+t3+):
javax.transaction.xa.XAException: [BEA][SQLServer JDBC Driver][SQLServer]xa_prepare
(0)returns -4
at weblogic.jdbcx.sqlserver.SQLServerImplXAResource.executeXaRpc(Unknown
Source)
at weblogic.jdbcx.sqlserver.SQLServerImplXAResource.prepare(Unknown Source)
at weblogic.jdbcx.base.BaseXAResource.prepare(Unknown Source)
at weblogic.jdbc.jta.DataSource.prepare(DataSource.java:821)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1161)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:395)
at weblogic.transaction.internal.ServerSCInfo$1.execute(ServerSCInfo.java:253)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Could not prepare resource 'MSSQL Connection
Pool
[BEA][SQLServer JDBC Driver][SQLServer]xa_prepare (0) returns -4 - with nested
exception:
[javax.transaction.xa.XAException: [BEA][SQLServer JDBC Driver][SQLServer]xa_prepare
(0) returns -4]
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1644)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:300)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:221)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:412)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170).>
-
Hello, we have an OracleWeblogic 10.3.2 running on a Solaris OS.
In this AppServer we have a FullStack J2EE Application executing distributed transactions that involve 3 manageable resources:
TxDatasource (EJB),
NonTxDatasource with enableTwoPhaseCommit and
JMS
Some of the transactions are timing out while in 'Logging' state and I just cant figure out what the root cause is. As a defensive action I lowered the JTA Timeout seconds because I noticed the 'Logging' phase was taking too long and then timing out. Idea here was not to have too many threads hanging in Logging state and therefore use the JTA Timeout to overcome this problem and minimize impact.
Below, I'm posting a few exceptions thrown in applicaiton log. Any help is very appreciated.
####<Aug 12, 2011 11:40:11 AM EDT> <Error> <EJB> <brzfxap1> <FefxServer> <[ACTIVE] ExecuteThread: '175' for queue: 'weblogic.kernel.Default (self-tuning)'> <JG47515> <> <> <1313163611120> <BEA-010026> <Exception occurred during commit of transaction Name=[EJB com.citicorp.fx.credit.CreditServiceBean.askCreditQuery(com.citicorp.fx.credit.data.CreditQueryRequestData)],Xid=BEA1-7DB913B4CB2B36D47CB7(1248714554),Status=Rolled back. [Reason=javax.transaction.SystemException: Timed out while in 'Logging' state],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=82,seconds left=60,XAServerResourceInfo[TWOraDS_fefx]=(ServerResourceInfo[TWOraDS_fefx]=(state=rolledback,assigned=FefxServer),xar=TWOraDS,re-Registered = false),XAServerResourceInfo[WLStore_fefx_FefxFileStore]=(ServerResourceInfo[WLStore_fefx_FefxFileStore]=(state=rolledback,assigned=FefxServer),xar=WLStore_fefx_FefxFileStore1032009487,re-Registered = false),SCInfo[fefx+FefxServer]=(state=rolledback),properties=({weblogic.transaction.name=[EJB com.citicorp.fx.credit.CreditServiceBean.askCreditQuery(com.citicorp.fx.credit.data.CreditQueryRequestData)]}),local properties=({weblogic.jdbc.jta.TWOraDS=[ No XAConnection is attached to this TxInfo ]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=FefxServer+169.193.4.91:8107+fefx+t3+, XAResources={WLStore_fefx_FefxFileStore, TWOraDS_fefx, WLStore_fefx__WLS_FefxServer, weblogic.jdbc.wrapper.JTSXAResourceImpl, WSATGatewayRM_FefxServer_fefx},NonXAResources={})],CoordinatorURL=FefxServer+169.193.4.91:8107+fefx+t3+): weblogic.transaction.RollbackException: Timed out while in 'Logging' state
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1848)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:339)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:233)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:621)
at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(StatelessRemoteObject.java:60)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRetry(BaseRemoteObject.java:441)
at com.citicorp.fx.credit.CreditService_6w08fk_EOImpl.askCreditQuery(CreditService_6w08fk_EOImpl.java:75)
at com.citicorp.fx.client.creditquery.QueryProcessor.handleEvent(QueryProcessor.java:77)
at org.jac.creation.ProcessorAction.handleEvent(ProcessorAction.java:64)
at org.jac.runtime.AbstractAction.handleSecuredEvent(AbstractAction.java:73)
at org.jac.runtime.StateImpl.handleEvent(StateImpl.java:66)
at org.jac.runtime.ControllerImpl.handleEvent(ControllerImpl.java:123)
at org.jac.session.SessionImpl.handleEvent(SessionImpl.java:55)
at org.jac.session.SessionImpl.handleEvent(SessionImpl.java:78)
at org.jac.creation.JacImpl.handleEvent(JacImpl.java:53)
at org.jac.runtime.JACExecutor.handleEvent(JACExecutor.java:111)
at org.jac.runtime.JACExecutor.handleEventBySessionID(JACExecutor.java:103)
at org.jac.http.ControllerFilter.doFilter(ControllerFilter.java:63)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.citicorp.fx.util.compression.CompressionFilter.doFilter(CompressionFilter.java:189)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.citicorp.security.web.WebLogicSiteminderAuthenticationFilter.doFilter(WebLogicSiteminderAuthenticationFilter.java:65)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: javax.transaction.SystemException: Timed out while in 'Logging' state
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1797)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1609)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1885)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1519)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
... 2 more
.>
####<Aug 12, 2011 11:40:11 AM EDT> <Error> <EJB> <brzfxap1> <FefxServer> <[ACTIVE] ExecuteThread: '154' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1313163611119> <BEA-010026> <Exception occurred during commit of transaction Xid=BEA1-7DBB13B4CB2B36D47CB7(977835896),Status=Rolled back. [Reason=javax.transaction.SystemException: Timed out while in 'Logging' state],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=60,seconds left=60,XAServerResourceInfo[WLStore_fefx_FefxFileStore]=(ServerResourceInfo[WLStore_fefx_FefxFileStore]=(state=rolledback,assigned=FefxServer),xar=WLStore_fefx_FefxFileStore1032009487,re-Registered = false),XAServerResourceInfo[TWOraDS_fefx]=(ServerResourceInfo[TWOraDS_fefx]=(state=rolledback,assigned=FefxServer),xar=TWOraDS,re-Registered = false),SCInfo[fefx+FefxServer]=(state=rolledback),local properties=({weblogic.jdbc.jta.TWOraDS=[ No XAConnection is attached to this TxInfo ]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=FefxServer+169.193.4.91:8107+fefx+t3+, XAResources={WLStore_fefx_FefxFileStore, TWOraDS_fefx, WLStore_fefx__WLS_FefxServer, weblogic.jdbc.wrapper.JTSXAResourceImpl, WSATGatewayRM_FefxServer_fefx},NonXAResources={})],CoordinatorURL=FefxServer+169.193.4.91:8107+fefx+t3+): weblogic.transaction.RollbackException: Timed out while in 'Logging' state
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1848)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:339)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:233)
at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:500)
at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:371)
at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:327)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:4271)
at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3747)
at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5096)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: javax.transaction.SystemException: Timed out while in 'Logging' state
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1797)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1609)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1885)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1519)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
... 3 more
.>
This is the stack trace of the thread that hangs while waiting for the lock to write in the transaction file:
"[ACTIVE] ExecuteThread: '64' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x000000010dea3000 nid=0x1e2 in Object.wait() [0xfffffffda03ff000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at weblogic.transaction.internal.ServerTransactionImpl.log(ServerTransactionImpl.java:2005)
- locked <0xfffffffe64964b30> (a weblogic.transaction.internal.ServerTransactionImpl)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2320)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:273)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:233)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:621)
at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(StatelessRemoteObject.java:60)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRetry(BaseRemoteObject.java:441)
at com.citicorp.fx.credit.CreditService_6w08fk_EOImpl.askCreditQuery(CreditService_6w08fk_EOImpl.java:75)
at com.citicorp.fx.client.creditquery.QueryProcessor.handleEvent(QueryProcessor.java:77)
at org.jac.creation.ProcessorAction.handleEvent(ProcessorAction.java:64)
at org.jac.runtime.AbstractAction.handleSecuredEvent(AbstractAction.java:73)
at org.jac.runtime.StateImpl.handleEvent(StateImpl.java:66)
at org.jac.runtime.ControllerImpl.handleEvent(ControllerImpl.java:123)
at org.jac.session.SessionImpl.handleEvent(SessionImpl.java:55)
- locked <0xfffffffe0860e618> (a org.jac.session.SessionImpl)
at org.jac.session.SessionImpl.handleEvent(SessionImpl.java:78)
- locked <0xfffffffe0860e618> (a org.jac.session.SessionImpl)
at org.jac.creation.JacImpl.handleEvent(JacImpl.java:53)
at org.jac.runtime.JACExecutor.handleEvent(JACExecutor.java:111)
at org.jac.runtime.JACExecutor.handleEventBySessionID(JACExecutor.java:103)
at org.jac.http.ControllerFilter.doFilter(ControllerFilter.java:63)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.citicorp.fx.util.compression.CompressionFilter.doFilter(CompressionFilter.java:189)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.citicorp.security.web.WebLogicSiteminderAuthenticationFilter.doFilter(WebLogicSiteminderAuthenticationFilter.java:65)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Edited by: user8727499 on Aug 12, 2011 11:57 AMHello, we have an OracleWeblogic 10.3.2 running on a Solaris OS.
In this AppServer we have a FullStack J2EE Application executing distributed transactions that involve 3 manageable resources:
TxDatasource (EJB),
NonTxDatasource with enableTwoPhaseCommit and
JMS
Some of the transactions are timing out while in 'Logging' state and I just cant figure out what the root cause is. As a defensive action I lowered the JTA Timeout seconds because I noticed the 'Logging' phase was taking too long and then timing out. Idea here was not to have too many threads hanging in Logging state and therefore use the JTA Timeout to overcome this problem and minimize impact.
Below, I'm posting a few exceptions thrown in applicaiton log. Any help is very appreciated.
####<Aug 12, 2011 11:40:11 AM EDT> <Error> <EJB> <brzfxap1> <FefxServer> <[ACTIVE] ExecuteThread: '175' for queue: 'weblogic.kernel.Default (self-tuning)'> <JG47515> <> <> <1313163611120> <BEA-010026> <Exception occurred during commit of transaction Name=[EJB com.citicorp.fx.credit.CreditServiceBean.askCreditQuery(com.citicorp.fx.credit.data.CreditQueryRequestData)],Xid=BEA1-7DB913B4CB2B36D47CB7(1248714554),Status=Rolled back. [Reason=javax.transaction.SystemException: Timed out while in 'Logging' state],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=82,seconds left=60,XAServerResourceInfo[TWOraDS_fefx]=(ServerResourceInfo[TWOraDS_fefx]=(state=rolledback,assigned=FefxServer),xar=TWOraDS,re-Registered = false),XAServerResourceInfo[WLStore_fefx_FefxFileStore]=(ServerResourceInfo[WLStore_fefx_FefxFileStore]=(state=rolledback,assigned=FefxServer),xar=WLStore_fefx_FefxFileStore1032009487,re-Registered = false),SCInfo[fefx+FefxServer]=(state=rolledback),properties=({weblogic.transaction.name=[EJB com.citicorp.fx.credit.CreditServiceBean.askCreditQuery(com.citicorp.fx.credit.data.CreditQueryRequestData)]}),local properties=({weblogic.jdbc.jta.TWOraDS=[ No XAConnection is attached to this TxInfo ]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=FefxServer+169.193.4.91:8107+fefx+t3+, XAResources={WLStore_fefx_FefxFileStore, TWOraDS_fefx, WLStore_fefx__WLS_FefxServer, weblogic.jdbc.wrapper.JTSXAResourceImpl, WSATGatewayRM_FefxServer_fefx},NonXAResources={})],CoordinatorURL=FefxServer+169.193.4.91:8107+fefx+t3+): weblogic.transaction.RollbackException: Timed out while in 'Logging' state
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1848)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:339)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:233)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:621)
at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(StatelessRemoteObject.java:60)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRetry(BaseRemoteObject.java:441)
at com.citicorp.fx.credit.CreditService_6w08fk_EOImpl.askCreditQuery(CreditService_6w08fk_EOImpl.java:75)
at com.citicorp.fx.client.creditquery.QueryProcessor.handleEvent(QueryProcessor.java:77)
at org.jac.creation.ProcessorAction.handleEvent(ProcessorAction.java:64)
at org.jac.runtime.AbstractAction.handleSecuredEvent(AbstractAction.java:73)
at org.jac.runtime.StateImpl.handleEvent(StateImpl.java:66)
at org.jac.runtime.ControllerImpl.handleEvent(ControllerImpl.java:123)
at org.jac.session.SessionImpl.handleEvent(SessionImpl.java:55)
at org.jac.session.SessionImpl.handleEvent(SessionImpl.java:78)
at org.jac.creation.JacImpl.handleEvent(JacImpl.java:53)
at org.jac.runtime.JACExecutor.handleEvent(JACExecutor.java:111)
at org.jac.runtime.JACExecutor.handleEventBySessionID(JACExecutor.java:103)
at org.jac.http.ControllerFilter.doFilter(ControllerFilter.java:63)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.citicorp.fx.util.compression.CompressionFilter.doFilter(CompressionFilter.java:189)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.citicorp.security.web.WebLogicSiteminderAuthenticationFilter.doFilter(WebLogicSiteminderAuthenticationFilter.java:65)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: javax.transaction.SystemException: Timed out while in 'Logging' state
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1797)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1609)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1885)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1519)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
... 2 more
.>
####<Aug 12, 2011 11:40:11 AM EDT> <Error> <EJB> <brzfxap1> <FefxServer> <[ACTIVE] ExecuteThread: '154' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1313163611119> <BEA-010026> <Exception occurred during commit of transaction Xid=BEA1-7DBB13B4CB2B36D47CB7(977835896),Status=Rolled back. [Reason=javax.transaction.SystemException: Timed out while in 'Logging' state],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=60,seconds left=60,XAServerResourceInfo[WLStore_fefx_FefxFileStore]=(ServerResourceInfo[WLStore_fefx_FefxFileStore]=(state=rolledback,assigned=FefxServer),xar=WLStore_fefx_FefxFileStore1032009487,re-Registered = false),XAServerResourceInfo[TWOraDS_fefx]=(ServerResourceInfo[TWOraDS_fefx]=(state=rolledback,assigned=FefxServer),xar=TWOraDS,re-Registered = false),SCInfo[fefx+FefxServer]=(state=rolledback),local properties=({weblogic.jdbc.jta.TWOraDS=[ No XAConnection is attached to this TxInfo ]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=FefxServer+169.193.4.91:8107+fefx+t3+, XAResources={WLStore_fefx_FefxFileStore, TWOraDS_fefx, WLStore_fefx__WLS_FefxServer, weblogic.jdbc.wrapper.JTSXAResourceImpl, WSATGatewayRM_FefxServer_fefx},NonXAResources={})],CoordinatorURL=FefxServer+169.193.4.91:8107+fefx+t3+): weblogic.transaction.RollbackException: Timed out while in 'Logging' state
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1848)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:339)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:233)
at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:500)
at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:371)
at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:327)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:4271)
at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3747)
at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5096)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: javax.transaction.SystemException: Timed out while in 'Logging' state
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1797)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1609)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1885)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1519)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
... 3 more
.>
This is the stack trace of the thread that hangs while waiting for the lock to write in the transaction file:
"[ACTIVE] ExecuteThread: '64' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x000000010dea3000 nid=0x1e2 in Object.wait() [0xfffffffda03ff000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at weblogic.transaction.internal.ServerTransactionImpl.log(ServerTransactionImpl.java:2005)
- locked <0xfffffffe64964b30> (a weblogic.transaction.internal.ServerTransactionImpl)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2320)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:273)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:233)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:621)
at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(StatelessRemoteObject.java:60)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRetry(BaseRemoteObject.java:441)
at com.citicorp.fx.credit.CreditService_6w08fk_EOImpl.askCreditQuery(CreditService_6w08fk_EOImpl.java:75)
at com.citicorp.fx.client.creditquery.QueryProcessor.handleEvent(QueryProcessor.java:77)
at org.jac.creation.ProcessorAction.handleEvent(ProcessorAction.java:64)
at org.jac.runtime.AbstractAction.handleSecuredEvent(AbstractAction.java:73)
at org.jac.runtime.StateImpl.handleEvent(StateImpl.java:66)
at org.jac.runtime.ControllerImpl.handleEvent(ControllerImpl.java:123)
at org.jac.session.SessionImpl.handleEvent(SessionImpl.java:55)
- locked <0xfffffffe0860e618> (a org.jac.session.SessionImpl)
at org.jac.session.SessionImpl.handleEvent(SessionImpl.java:78)
- locked <0xfffffffe0860e618> (a org.jac.session.SessionImpl)
at org.jac.creation.JacImpl.handleEvent(JacImpl.java:53)
at org.jac.runtime.JACExecutor.handleEvent(JACExecutor.java:111)
at org.jac.runtime.JACExecutor.handleEventBySessionID(JACExecutor.java:103)
at org.jac.http.ControllerFilter.doFilter(ControllerFilter.java:63)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.citicorp.fx.util.compression.CompressionFilter.doFilter(CompressionFilter.java:189)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.citicorp.security.web.WebLogicSiteminderAuthenticationFilter.doFilter(WebLogicSiteminderAuthenticationFilter.java:65)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Edited by: user8727499 on Aug 12, 2011 11:57 AM -
Exceptions - javax.transaction.HeuristicMixedException In Logs
Using Oracle BPM 10.3 MP2 Enterprise Edition
Version: 10.3.2
Build: #100874.
This exception is coming up in weblogic console logs.
####<Apr 29, 2011 8:14:52 AM CDT> <Error> <JTA> <fada1wap29> <BPM-CNM29> <BPM Directory Polling> <<anonymous>> <BEA1-1E6FEB3B248E3819C483> <> <1304082892584> <BEA-110412> <Xid=BEA1-1E6FEB3B248E3819C483(215626675),Status=Committed,HeuristicErrorCode=XA_HEURHAZ,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds left=120,activeThread=Thread[BPM Directory Polling,5,Pooled Threads],XAServerResourceInfo[aqualogicCNM-JDBCDataSource]=(ServerResourceInfo[aqualogicCNM-JDBCDataSource]=(state=committed,assigned=BPM-CNM29),xar=aqualogicCNM-JDBCDataSource,re-Registered = false),SCInfo[bpmXprod+BPM-CNM29]=(state=committed),properties=({}),local properties=({weblogic.jdbc.jta.aqualogicCNM-JDBCDataSource=[ No XAConnection is attached to this TxInfo ]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=BPM-CNM29+10.128.245.238:7001+bpmXprod+t3+, XAResources={WLStore_bpmXprod__WLS_BPM-CNM29, aqualogicCNM-JDBCDataSource, weblogic.jdbc.wrapper.JTSXAResourceImpl, engineCNM-JDBCDataSource},NonXAResources={})],CoordinatorURL=BPM-CNM29+10.128.245.238:7001+bpmXprod+t3+) completed heuristically: (aqualogicCNM-JDBCDataSource, HeuristicHazard, ()) >
####<Apr 29, 2011 8:14:52 AM CDT> <Info> <EJB> <fada1wap29> <BPM-CNM29> <BPM Directory Polling> <<anonymous>> <> <> <1304082892588> <BEA-010227> <EJB Exception occurred during invocation from home or business: fuego.ejbengine.ejb.engine_startup_enginecnm_mjkqiy_LocalHomeImpl@11241739 threw exception: fuego.server.exception.EngineRuntimeException: Server runtime exception. An error has occurred during the commit. Details : [Caused by 1 exceptions:
javax.transaction.HeuristicMixedException: (aqualogicCNM-JDBCDataSource, HeuristicHazard, ())
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:302)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
at weblogic.transaction.internal.TransactionManagerImpl.commit(TransactionManagerImpl.java:283)
at weblogic.ejb.container.internal.usertransactioncheck.BaseUserTransactionProxy.commit(BaseUserTransactionProxy.java:28)
at fuego.connector.impl.J2EETransactionCoordinator.commit(J2EETransactionCoordinator.java:55)
at fuego.connector.ConnectorTransaction.commit(ConnectorTransaction.java:413)
at fuego.transaction.TransactionAction.commit(TransactionAction.java:302)
at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:481)
at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
at fuego.server.execution.DefaultEngineExecution.executeAutomaticWork(DefaultEngineExecution.java:62)
at fuego.server.execution.EngineExecution.executeAutomaticWork(EngineExecution.java:42)
at fuego.ejbengine.ejb.EngineStartupBean.executeItem(EngineStartupBean.java:189)
at fuego.ejbengine.ejb.EngineStartupBean.updateFromDirectory(EngineStartupBean.java:169)
at fuego.ejbengine.ejb.engine_startup_enginecnm_mjkqiy_ELOImpl.updateFromDirectory(engine_startup_enginecnm_mjkqiy_ELOImpl.java:365)
at fuego.ejbengine.servlet.DirectoryPollingServlet$DirectoryPollingTask.runImpl(DirectoryPollingServlet.java:43)
at fuego.ejbengine.servlet.AbstractSchedulerServlet$ScheduledTask.run(AbstractSchedulerServlet.java:199)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
And also
weblogic.transaction.RollbackException: Could not prepare resource 'aqualogicCNM-JDBCDataSource
[BEA][Oracle JDBC Driver]Oracle XA Error Occurred. Native Error: 24756
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1818)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:336)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:230)
at weblogic.transaction.internal.TransactionManagerImpl.commit(TransactionManagerImpl.java:283)
at weblogic.ejb.container.internal.usertransactioncheck.BaseUserTransactionProxy.commit(BaseUserTransactionProxy.java:28)
at fuego.connector.impl.J2EETransactionCoordinator.commit(J2EETransactionCoordinator.java:55)
at fuego.connector.ConnectorTransaction.commit(ConnectorTransaction.java:413)
at fuego.transaction.TransactionAction.commit(TransactionAction.java:302)
at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:481)
at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:79)
at fuego.server.execution.DefaultEngineExecution.executeWithoutComponentImmediate(DefaultEngineExecution.java:185)
at fuego.server.execution.EngineExecution.executeWithoutComponentImmediate(EngineExecution.java:86)
at fuego.server.AbstractSecureEngineImpl.getBookmarks(AbstractSecureEngineImpl.java:75)
at fuego.ejbengine.EJBSecureEngineAdapter.getBookmarks(EJBSecureEngineAdapter.java:98)
at fuego.ejbengine.engine_enginecnm_ljzdng_EOImpl.getBookmarks(engine_enginecnm_ljzdng_EOImpl.java:1176)
at fuego.ejbengine.engine_enginecnm_ljzdng_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:85)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: javax.transaction.xa.XAException: [BEA][Oracle JDBC Driver]Oracle XA Error Occurred. Native Error: 24756
at weblogic.jdbcx.oracle.OracleImplXAResource.checkError(Unknown Source)
at weblogic.jdbcx.oracle.OracleImplXAResource.prepare(Unknown Source)
at weblogic.jdbcx.base.BaseXAResource.prepare(Unknown Source)
at weblogic.jdbc.jta.DataSource.prepare(DataSource.java:867)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1277)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:500)
at weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:380)
at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:2581)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2228)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:270)
... 25 more
<Apr 29, 2011 8:28:11 AM CDT> <Warning> <JTA> <BEA-110486> <Transaction BEA1-4C1D5A1A76393819C483 cannot complete commit processing because resource [weblogic.jdbc.wrapper.JTSXAResourceImpl] is unavailable. The transaction will be abandoned after 78,152 seconds unless all resources acknowledge the commit decision.>
Any one faced similar issueHi Tim,
I remember that one from writing a 2pc tx manager ... I don't know when it
happens in WL but it usually occurs in a tx manager when a series of
resources are being committed successfully and then one fails (although it
was already prepared for commit) so the manager has to figure out
"heuristically" what to do with the remaining prepared resources -- should
it commit or roll back -- and then it has to report that some were both
(i.e. "mixed").
Are you using 2pc ... multiple resources ... etc.?
Peace,
Cameron Purdy
Tangosol Inc.
<< Tangosol Server: How Weblogic applications are customized >>
<< Download now from http://www.tangosol.com/download.jsp >>
"Tim Ozor" <[email protected]> wrote in message
news:3c079160$[email protected]..
We are seeing the following exception very sporadically with WL6.1. I am
curious as to whether anybody could provide any useful information that
would aid in our debug.
Thanks.
Tim Ozor ([email protected])
javax.transaction.HeuristicMixedException
at
weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTra
nsactionImpl.java:237)
at
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransaction
Impl.java:190)
at
weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68
at
weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(UnknownSource)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:296)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:265)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
2)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace -
Weblogic.transaction.RollbackException:
Hi All,
We are using a JMS bridge in our senario.The Flow is as follows. Message is been posted in a queue(JMS Queue)
and the host Queue recevies thye message from there it is configured with a bridge where it is targeted to different weblogic server's Queue and whlie transfering the messege from one Queue to the romote queue we are getting error.
The connection between the Queue through bridge is established but after some time we are getting the above error
FYI
####<Dec 3, 2008 1:31:48 PM GMT> <Debug> <MessagingBridge> <DSK-PNQ-900617> <RefCgServer> <ExecuteThread: '8' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-200006> <Messaging bridge debugging RUNTIME! Bridge MB.REF_TO_RG1 Successfully got connection to the source destination.>
We are facing the following error:-
javax.transaction.xa.XAException
javax.transaction.xa.XAException
at weblogic.jms.backend.BEXAResource.prepare(BEXAResource.java:903)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1234)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:441)
at weblogic.transaction.internal.ServerSCInfo$1.execute(ServerSCInfo.java:253)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
Bridge "MB.REF_TO_RG1" encountered some problems in one of its adapters or underlying systems. It stopped transferring messages and will try to reconnect to the adapters shortly. (The exception caught was weblogic.transaction.RollbackException: Could not prepare resource 'JMS_cgJMSStore - with nested exception:
[javax.transaction.xa.XAException].)>
Please help.
Regards
RakeshHi Rakesh,
You may have better luck if you post to the "WebLogic Server - General" forum?
WebLogic Server - General -
Hi All,
We have migrated from WLS 9.2 to WLS 10.3.2.
We have messaging bridge which is configured to send messages from a weblogic cluster having 3 managed servers to IBM MQ V 7 queue.
However the messaging bridge is failing with the exception with a huge trace as mentioned below:
####<Jun 2, 2010 11:35:51 AM EDT> <Debug> <MessagingBridgeRuntimeVerbose> <snjcprdcriba02> <citmqgatewayserver2> <[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-0002269D8ED345D237A5> <> <1275492951488> <BEA-000000> <Exception:
weblogic.jms.common.JMSException: weblogic.messaging.kernel.KernelException: Error enlisting GXA transaction
at weblogic.jms.dispatcher.DispatcherAdapter.convertToJMSExceptionAndThrow(DispatcherAdapter.java:110)
at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncTran(DispatcherAdapter.java:53)
at weblogic.jms.client.JMSProducer.toFEProducer(JMSProducer.java:1272)
at weblogic.jms.bridge.internal.MessagingBridge.processMessages(MessagingBridge.java:1457)
at weblogic.jms.bridge.internal.MessagingBridge.beginForwarding(MessagingBridge.java:1002)
at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1079)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused By: weblogic.jms.common.JMSException: weblogic.messaging.kernel.KernelException: Error enlisting GXA transaction
at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:1070)
at weblogic.messaging.dispatcher.DispatcherServerRef.invoke(DispatcherServerRef.java:276)
at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:141)
at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused By: weblogic.jms.common.JMSException: weblogic.messaging.kernel.KernelException: Error enlisting GXA transaction
at weblogic.jms.dispatcher.Request.handleThrowable(Request.java:87)
at weblogic.jms.dispatcher.Request.getResult(Request.java:52)
at weblogic.jms.frontend.FEProducer.sendRetryDestination(FEProducer.java:1045)
Caused By: weblogic.jms.common.JMSException: weblogic.messaging.kernel.KernelException: Error enlisting GXA transaction
at weblogic.jms.dispatcher.Request.handleThrowable(Request.java:87)
at weblogic.jms.dispatcher.Request.getResult(Request.java:52)
at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused By: weblogic.jms.common.JMSException: weblogic.messaging.kernel.KernelException: Error enlisting GXA transaction
at weblogic.jms.backend.BEDestinationImpl.sendIssueMessage(BEDestinationImpl.java:1923)
at weblogic.jms.backend.BEDestinationImpl.send(BEDestinationImpl.java:2111)
at weblogic.jms.backend.BEDestinationImpl.wrappedSend(BEDestinationImpl.java:2054)
at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused By: weblogic.messaging.kernel.KernelException: Error enlisting GXA transaction
at weblogic.messaging.kernel.internal.KernelImpl.getGXATransaction(KernelImpl.java:538)
at weblogic.messaging.kernel.internal.QueueImpl.send(QueueImpl.java:316)
at weblogic.jms.backend.BEDestinationImpl.sendIssueMessage(BEDestinationImpl.java:1876)
at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused By: weblogic.store.gxa.GXAException: Transaction already rolled back, or the transaction manager has timed out this resource.
at weblogic.store.gxa.internal.GXAResourceImpl.enlist(GXAResourceImpl.java:523)
at weblogic.messaging.kernel.internal.KernelImpl.getGXATransaction(KernelImpl.java:536)
at weblogic.messaging.kernel.internal.QueueImpl.send(QueueImpl.java:316)
at weblogic.jms.backend.BEDestinationImpl.sendIssueMessage(BEDestinationImpl.java:1876)
at weblogic.jms.backend.BEDestinationImpl.send(BEDestinationImpl.java:2111)
at weblogic.jms.backend.BEDestinationImpl.wrappedSend(BEDestinationImpl.java:2054)
at weblogic.jms.backend.BEDestinationImpl.invoke(BEDestinationImpl.java:1542)
at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:961)
at weblogic.messaging.dispatcher.DispatcherImpl.dispatchAsyncInternal(DispatcherImpl.java:139)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused By: weblogic.transaction.RollbackException: Tx marked rollback due to unexpected internal exception
start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMERR : A resource manager error has occured in the transaction branch
javax.transaction.xa.XAException: Unexpected Exception for XAResource 'eis/jms/WLSConnectionFactoryJNDIXA':0java.lang.ArrayIndexOutOfBoundsException: 0
at weblogic.connector.outbound.ConnectionPool.findXATxConnectionHandler(ConnectionPool.java:2079)
at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.useXAResourceFromPool(RecoveryOnlyXAWrapper.java:404)
at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.validate(RecoveryOnlyXAWrapper.java:384)
at weblogic.connector.transaction.outbound.XAWrapper.start(XAWrapper.java:472)
at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.start(RecoveryOnlyXAWrapper.java:32)
at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1201)
at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1134)
at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:275)
at weblogic.transaction.internal.XAServerResourceInfo.enlistIfStatic(XAServerResourceInfo.java:174)
at weblogic.transaction.internal.ServerTransactionImpl.enlistStaticallyEnlistedResources(ServerTransactionImpl.java:1574)
at weblogic.transaction.internal.ServerTransactionManagerImpl.dispatchRequest(ServerTransactionManagerImpl.java:571)
at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:132)
at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at weblogic.connector.outbound.ConnectionPool.findXATxConnectionHandler(ConnectionPool.java:2079)
at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.useXAResourceFromPool(RecoveryOnlyXAWrapper.java:404)
at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.validate(RecoveryOnlyXAWrapper.java:384)
at weblogic.connector.transaction.outbound.XAWrapper.start(XAWrapper.java:472)
at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.start(RecoveryOnlyXAWrapper.java:32)
at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1201)
Any pointers to address this issue would be helpful.
Thanks in advance.The key exception seems to be an "ArrayIndexOutOfBounds" exception in the adapter code:
Caused By: weblogic.transaction.RollbackException: Tx marked rollback due to unexpected internal exception start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMERR : A resource manager error has occured in the transaction branch
javax.transaction.xa.XAException: Unexpected Exception for XAResource 'eis/jms/WLSConnectionFactoryJNDIXA':0java.lang.ArrayIndexOutOfBoundsException: 0
at weblogic.connector.outbound.ConnectionPool.findXATxConnectionHandler(ConnectionPool.java:2079)An array-index-out-of-bounds exception is normally not expected or handled, and could be a sign of a Bug in the WebLogic. My only other guess is that the upgraded domain is somehow referencing an adapter from the original domain -- a configuration that's not supported.
To see if you can get a working bridge, perhaps try creating an XA capable bridge from scratch. The console should guide you through most of the steps, and you can reference your old configuration for the MQ specific URL, JNDI context factory, connection factory, and dest values...
Hope this helps,
Tom -
Hi, I'm doing a "proof of concept" on XA transaction spanning two servers.
In order to get it as simple as possible I have configured two servers and
deployed the same MDB on both. I'm also only using JMS resources to simplify
the test.
The goal is to send a message to two different JMS servers (each deployed in
a Weblogic server) both coordinated by an XA UserTransaction started in the
client.
The deployed MDB of each server just listens to a topic and prints out the
received TextMessage.
The configuration is as follows:
* Server 1
Domain name: a
Server name: a00
config.xml (extract):
<JMSServer Name="a.a00.JMSServer" PagingStore="a.a00.JMSFileStore"
Store="a.a00.JMSFileStore" Targets="a00">
<JMSTopic JNDIName="xajms.test.Topic" Name="XA JMS Proof of Concept"
StoreEnabled="true"/>
</JMSServer>
<JMSFileStore Directory="config/a/a00.jmsfilestore"
Name="a.a00.JMSFileStore"/>
<JMSConnectionFactory JNDIName="a.a00.JMSConnectionFactory"
Name="a.a00.JMS Connection Factory" Targets="a00"
UserTransactionsEnabled="true" XAConnectionFactoryEnabled="true"/>
* Server 2
Domain name: b
Server name: b00
config.xml (extract):
<JMSServer Name="b.b00.JMSServer" PagingStore="b.b00.JMSFileStore"
Store="b.b00.JMSFileStore" Targets="b00">
<JMSTopic JNDIName="xajms.test.Topic" Name="XA JMS Proof of Concept"
StoreEnabled="true"/>
</JMSServer>
<JMSFileStore Directory="config/b/b00.jmsfilestore"
Name="b.b00.JMSFileStore"/>
<JMSConnectionFactory JNDIName="b.b00.JMSConnectionFactory"
Name="b.b00.JMS Connection Factory" Targets="b00"
UserTransactionsEnabled="true" XAConnectionFactoryEnabled="true"/>
and here is an extract of client code:
068 UserTransaction utx;
069
070 InitialContext ctx1,ctx2;
071
072 System.out.println("Retrieving initial context for server 1");
073 ctx1 = (InitialContext) getInitialContext(SERVER_1,PORT_1);
074
075 System.out.println("Retrieving initial context for server 2");
076 ctx2 = (InitialContext) getInitialContext(SERVER_2,PORT_2);
077
078 utx = (UserTransaction)
ctx1.lookup("javax.transaction.UserTransaction");
079 utx.setTransactionTimeout(30);
080
081 System.out.println("Begining transaction");
082 utx.begin();
083
084 System.out.println("Sending message to server 1");
085 ref.send(ctx1, JMS_FACTORY_1, args[0]);
086
087 System.out.println("Sending message to server 2");
088 ref.send(ctx2, JMS_FACTORY_2, args[0]);
089
090 System.out.println("Ending transaction...");
091 if (args[1].equals("commit"))
092 utx.commit();
093 else
094 utx.rollback();
end the result of executing it from a third machine:
CASE I:
Retrieving initial context for server 1
Retrieving initial context for server 2
Begining transaction
Sending message to server 1
Sending message to server 2
Ending transaction...
javax.transaction.SystemException: SubCoordinator 'b00+127.0.0.1:7001+b+'
not available
Start server side stack trace:
javax.transaction.SystemException: SubCoordinator 'b00+127.0.0.1:7001+b+'
not available
at
weblogic.transaction.internal.TransactionImpl.abort(TransactionImpl.java:965
at
weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:20
0)
at
weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTran
sactionImpl.java:1619)
at
weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTra
nsactionImpl.java:217)
at
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransaction
Impl.java:189)
at
weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68
at
weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
2)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
End server side stack trace
<<no stack trace available>>
--------------- nested within: ------------------
weblogic.transaction.RollbackException: SubCoordinator
'b00+127.0.0.1:7001+b+' not available
Start server side stack trace:
javax.transaction.SystemException: SubCoordinator 'b00+127.0.0.1:7001+b+'
not available
at
weblogic.transaction.internal.TransactionImpl.abort(TransactionImpl.java:965
at
weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:20
0)
at
weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTran
sactionImpl.java:1619)
at
weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTra
nsactionImpl.java:217)
at
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransaction
Impl.java:189)
at
weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68
at
weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
2)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: SubCoordinator
'b00+127.0.0.1:7001+b+' not available - with nested exception:
[javax.transaction.SystemException: SubCoordinator 'b00+127.0.0.1:7001+b+'
not available]
at
weblogic.transaction.internal.TransactionImpl.throwRollbackException(Transac
tionImpl.java:1524)
at
weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTra
nsactionImpl.java:265)
at
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransaction
Impl.java:189)
at
weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68
at
weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
2)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
End server side stack trace
- with nested exception:
[javax.transaction.SystemException: SubCoordinator 'b00+127.0.0.1:7001+b+'
not available
Start server side stack trace:
javax.transaction.SystemException: SubCoordinator 'b00+127.0.0.1:7001+b+'
not available
at
weblogic.transaction.internal.TransactionImpl.abort(TransactionImpl.java:965
at
weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:20
0)
at
weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTran
sactionImpl.java:1619)
at
weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTra
nsactionImpl.java:217)
at
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransaction
Impl.java:189)
at
weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68
at
weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
2)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
End server side stack trace
at
weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.
java:85)
at
weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:136)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy3.commit(Unknown Source)
at
weblogic.transaction.internal.TransactionImpl.commit(TransactionImpl.java:29
4)
at
weblogic.transaction.internal.TransactionManagerImpl.commit(TransactionManag
erImpl.java:247)
at
weblogic.transaction.internal.TransactionManagerImpl.commit(TransactionManag
erImpl.java:240)
at xajms.client.Send2BothTopics.main(Send2BothTopics.java:110)
real 1m6.530s
user 0m1.380s
sys 0m0.050s
If I swap message sending order the output changes to:
CASE II:
Retrieving initial context for server 1
Retrieving initial context for server 2
Begining transaction
Sending message to server 2
Sending message to server 1
Ending transaction...
weblogic.transaction.internal.TimedOutException: Timed out
tx=0:8c9a9deee02fe21e after 30 seconds
Start server side stack trace:
weblogic.transaction.internal.TimedOutException: Timed out
tx=0:8c9a9deee02fe21e after 30 seconds
at
weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransaction
Impl.java:1228)
at
weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTr
ansactions(ServerTransactionManagerImpl.java:488)
at
weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManag
erImpl.java:1629)
at
weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTran
sactionManagerImpl.java:451)
at
weblogic.transaction.internal.TransactionManagerImpl$1.run(TransactionManage
rImpl.java:1595)
at java.lang.Thread.run(Thread.java:479)
End server side stack trace
<<no stack trace available>>
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Timed out tx=0:8c9a9deee02fe21e
after 30 seconds
Start server side stack trace:
weblogic.transaction.internal.TimedOutException: Timed out
tx=0:8c9a9deee02fe21e after 30 seconds
at
weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransaction
Impl.java:1228)
at
weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTr
ansactions(ServerTransactionManagerImpl.java:488)
at
weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManag
erImpl.java:1629)
at
weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTran
sactionManagerImpl.java:451)
at
weblogic.transaction.internal.TransactionManagerImpl$1.run(TransactionManage
rImpl.java:1595)
at java.lang.Thread.run(Thread.java:479)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Timed out tx=0:8c9a9deee02fe21e
after 30 seconds - with nested exception:
[weblogic.transaction.internal.TimedOutException: Timed out
tx=0:8c9a9deee02fe21e after 30 seconds]
at
weblogic.transaction.internal.TransactionImpl.throwRollbackException(Transac
tionImpl.java:1524)
at
weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTra
nsactionImpl.java:265)
at
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransaction
Impl.java:189)
at
weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68
at
weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
2)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
End server side stack trace
- with nested exception:
[weblogic.transaction.internal.TimedOutException: Timed out
tx=0:8c9a9deee02fe21e after 30 seconds
Start server side stack trace:
weblogic.transaction.internal.TimedOutException: Timed out
tx=0:8c9a9deee02fe21e after 30 seconds
at
weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransaction
Impl.java:1228)
at
weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTr
ansactions(ServerTransactionManagerImpl.java:488)
at
weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManag
erImpl.java:1629)
at
weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTran
sactionManagerImpl.java:451)
at
weblogic.transaction.internal.TransactionManagerImpl$1.run(TransactionManage
rImpl.java:1595)
at java.lang.Thread.run(Thread.java:479)
End server side stack trace
at
weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.
java:85)
at
weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:136)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy3.commit(Unknown Source)
at
weblogic.transaction.internal.TransactionImpl.commit(TransactionImpl.java:29
4)
at
weblogic.transaction.internal.TransactionManagerImpl.commit(TransactionManag
erImpl.java:247)
at
weblogic.transaction.internal.TransactionManagerImpl.commit(TransactionManag
erImpl.java:240)
at xajms.client.Send2BothTopics.main(Send2BothTopics.java:110)
real 1m32.231s
user 0m1.390s
sys 0m0.030s
not to be said that I have "some" questions about it:
1. Why it doesn't work?
2. Why order of message sending brings two different results?
3. In CASE I:
What is the meaning of the exception "javax.transaction.SystemException:
SubCoordinator 'b00+127.0.0.1:7001+b+' not available"
Why is it using the loopback (127.0.0.1) ip? Is that code being runned
inside the server with the SERVER_2 (192.168.1.3) ip?
4. In case II:
How is that the message of the exception is
"weblogic.transaction.internal.TimedOutException: Timed out
tx=0:8c9a9deee02fe21e after 30 seconds" when it's clear the program took
more than one and a half minutes to execute?
Most of the time is spent after printing the "Ending transaction..." line.
The first part of the program is executed in a few seconds (about 2 or 3 it
depends of the time to get initial context against both servers)
I'm really puzzled with this. I don't know what to think about it. Is this
so weird nobody have tried something like this?
I have done some other test for which the results are:
a) Commenting lines related to UserTransaction (82,91-94)
It works OK. Both servers receive the message.
b) Commenting lines 85 or 88 (related to sending messages to each server)
It works OK. Both servers receive the message. I pressume there is no
"real" XA transaction as there is only one resource involved on it.
c) In CASE I launching the client with "rollback" as second parameter I
neither get any exception nor messages are delivered which would be OK
d) In CASE II launching the client with "rollback" as second parameter I get
a "javax.transaction.SystemException: Timeout during rollback processing"
and messages are not delivered.
Any idea?. I really need this to work in order to free our server for heavy
asyncronous loads and deploy new stuff on it.
PS.
I attach both servers config.xml files and both MDB and client full code. If
you are going to test it you must add a new user and group to weblogic
default file realm:
New user: subscriber
New group: xajms
of course you must add the new user to the new group in order to make it
work.
Here are the lines extracted from server's domain "fileRealm.properties"
file reflecting the new user and group (defined on ejb-jar.xml and
weblogic-ejb-jar.xml files on the "role" section):
group.xajms=subscriber
user.subscriber=0x6b9a704bebc709dd083edd61ed000236eb23987f
The client receives two parameters. The first one is a string to be sent as
message body, the second one is either "commit" or "rollback" just to test
XA transaction doing it's work as expected.
Thanks in advance.
Regards.
Ignacio.
[xajmspoc.zip]
do you connect to 10g database inside onBusinessEvent using Non-XA/XA connection??. I guess it could be bcoz of Non-XA connection (or) XA Without Global Transaction support, and this connection is listed with the transaction manager and it is trying to commit it after onMessage.
For Global Transactions options, go to your weblogic console and check the following path.
(Datasource -> Advanced Options -> Global Transactions -> Honor Global Transactions should be true)
Let me know if you need any help
Rao Kotha. -
Hello guys,
I have been setting a production system with bitronix transaction manager, SQL server 2008, XA transactions and jetty 6. In the beginning this software was configured to run with MySQL. But one of my customer decided to move everything to MSSQL server 2008.
In that moment I was trying to get this up and running for some weeks (The configuration was completely different) and finally I got it.
The configuration with MSSQL server was running perfectly during 1 month but then from one day to other the error message I will show now appeared and I do not how to solve it. I almost read all the hints from google about this exception but nothing helped
me out.
I hope you guys can help me to find a way to solve it.
- I tried different version of the jdbc driver 3.0 and 4.0.
- I tried to export exactly the database to my localserver and it's running perfectly with the same configuration.
The problem is that I cannot reproduce the error in other place that is not the customer and at the same time I have no access to their internal database server. They installed all the XA transaction stuff (dll in binn, enable XA, and grant the permissions
for SQLXAUser), I am quite sure because it was running for one month without any problem.
I asked to the customer if anything happenend on their server (microsoft updates, machines reboot, ...) but nothing of these happened.
Also I tried this link out but did not help me.
<a href="http://social.msdn.microsoft.com/Forums/sqlserver/en-US/15c1e6f5-ec1e-4376-8f45-25e61ffc1306/the-function-start-has-failed-no-transaction-cookie-was-returned?forum=sqldataaccess">http://social.msdn.microsoft.com/Forums/sqlserver/en-US/15c1e6f5-ec1e-4376-8f45-25e61ffc1306/the-function-start-has-failed-no-transaction-cookie-was-returned?forum=sqldataaccess</a>
The exception is the following:
[2014-05-15 14:06:08,842] INFO 3666[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - Starting Bitronix Transaction Manager
[2014-05-15 14:06:08,951] INFO 3775[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - Extract ./webapps/myscript-fpp-wrapper-server.war to D:\Temp\Jetty_0_0_0_0_8080_myscript.fpp.wrapper.server.war__myscript.form.wrapper.server__.bnwnn7\webapp
[2014-05-15 14:06:10,324] INFO 5148[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - NO JSP Support for /myscript-form-wrapper-server, did not find org.apache.jasper.servlet.JspServlet
[2014-05-15 14:06:12,742] WARN 7566[main] - org.dozer.config.GlobalSettings.loadGlobalSettings(GlobalSettings.java:118) - Dozer configuration file not found: dozer.properties. Using defaults for all Dozer global properties.
[2014-05-15 14:06:13,288] WARN 8112[main] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:100) - SQL Error: 0, SQLState: null
[2014-05-15 14:06:13,288]ERROR 8112[main] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:101) - error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource fppDataSource in state ACCESSIBLE with
usage count 1 wrapping SQLServerXAConnection:1 on ProxyConnectionID:1
[2014-05-15 14:06:13,319]ERROR 8143[main] - org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:220) - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'moduleRegistration' defined in class path resource [com/visionobjects/myscript/fpp/wrapper/module-registration.xml]: Invocation of init method failed; nested exception is
org.hibernate.exception.GenericJDBCException: could not execute query
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mortbay.start.Main.invokeMain(Main.java:194)
at org.mortbay.start.Main.start(Main.java:534)
at org.mortbay.start.Main.start(Main.java:441)
at org.mortbay.start.Main.main(Main.java:119)
Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2235)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1597)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
at com.visionobjects.myscript.fpp.form.dao.impl.ModuleInfoDaoImpl.getModuleInfo(ModuleInfoDaoImpl.java:57)
at com.visionobjects.myscript.fpp.ModuleRegistration$1.doInTransactionWithoutResult(ModuleRegistration.java:73)
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at com.visionobjects.myscript.fpp.ModuleRegistration.init(ModuleRegistration.java:66)
at com.visionobjects.myscript.fpp.ModuleRegistration.start(ModuleRegistration.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 33 more
Caused by: java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource fppDataSource in state ACCESSIBLE with usage count 1 wrapping SQLServerXAConnection:1 on ProxyConnectionID:1
at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:86)
at bitronix.tm.resource.jdbc.JdbcConnectionHandle.prepareStatement(JdbcConnectionHandle.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:63)
at $Proxy29.prepareStatement(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
at org.hibernate.loader.Loader.doQuery(Loader.java:696)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2232)
... 52 more
Caused by: bitronix.tm.internal.BitronixSystemException: cannot enlist an XAResourceHolderState with uniqueName=fppDataSource XAResource= XAResourceID:1 with XID a Bitronix XID [6A657474792D6670702D73657276657200000145FFC68B9B00000000 : 6A657474792D6670702D73657276657200000145FFC68BCA00000002],
error=XAER_RMERR
at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:100)
at bitronix.tm.resource.common.TransactionContextHelper.enlistInCurrentTransaction(TransactionContextHelper.java:70)
at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:84)
... 66 more
<b>Caused by: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: The function START: has failed. No transaction cookie was returned </b>
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:642)
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.start(SQLServerXAResource.java:674)
at bitronix.tm.internal.XAResourceHolderState.start(XAResourceHolderState.java:211)
at bitronix.tm.internal.XAResourceManager.enlist(XAResourceManager.java:108)
at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:93)
... 68 more
I think the "bold" exception is the key.
Also the configuration file of my jetty server.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!-- developpment jetty configuration -->
<!-- launch with main class : org.mortbay.start.Main app arguments:
deploy-conf/jetty-conf/mysql/jetty-dev.xml vm arguments : -Xmx1024M -DSTOP.KEY=stop
-DSTOP.PORT=6669 to stop : - - stop -Xmx1024M -DSTOP.KEY=stop -DSTOP.PORT=6669 -->
<Configure id="Server" class="org.mortbay.jetty.Server">
<Array id="plusConfig" type="java.lang.String">
<Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
<Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
<Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
<Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
<Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
</Array>
<Array id="serverClasses" type="java.lang.String">
</Array>
<Array id="systemClasses" type="java.lang.String">
</Array>
<!-- web apps -->
<Set name="handler">
<New id="handlerContext" class="org.mortbay.jetty.handler.ContextHandlerCollection">
<Set name="handlers">
<Array id="handlerArray" type="org.mortbay.jetty.webapp.WebAppContext">
<!-- wrapper server -->
<Item>
<New class="org.mortbay.jetty.webapp.WebAppContext">
<Arg>./webapps/myscript-fpp-wrapper-server.war</Arg>
<Arg>/myscript-form-wrapper-server</Arg>
<Set name="serverClasses">
<Ref id="serverClasses" />
</Set>
<Set name="ConfigurationClasses">
<Ref id="plusConfig" />
</Set>
</New>
</Item>
<!-- form server -->
<Item>
<New class="org.mortbay.jetty.webapp.WebAppContext">
<Arg>./webapps/myscript-fpp-form-server.war
</Arg>
<Arg>/myscript-form-server</Arg>
<Set name="serverClasses">
<Ref id="serverClasses" />
</Set>
<Set name="ConfigurationClasses">
<Ref id="plusConfig" />
</Set>
</New>
</Item>
<!-- hwr server -->
<Item>
<New class="org.mortbay.jetty.webapp.WebAppContext">
<Arg>./webapps/myscript-fpp-hwr-server.war</Arg>
<Arg>/myscript-form-hwr-server</Arg>
<Set name="serverClasses">
<Ref id="serverClasses" />
</Set>
<Set name="ConfigurationClasses">
<Ref id="plusConfig" />
</Set>
</New>
</Item>
</Array>
</Set>
</New>
</Set>
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
<Set name="port">8080</Set>
</New>
</Arg>
</Call>
<!-- Use the jdk 1.5 platformMBeanServer -->
<Call id="MBeanServer" class="java.lang.management.ManagementFactory"
name="getPlatformMBeanServer" />
<Get id="Container" name="container">
<Call name="addEventListener">
<Arg>
<New class="org.mortbay.management.MBeanContainer">
<Arg>
<Ref id="MBeanServer" />
</Arg>
<Call name="start" />
</New>
</Arg>
</Call>
</Get>
<!-- Setup the RMIRegistry on a specific port -->
<Call id="rmiRegistry" class="java.rmi.registry.LocateRegistry"
name="createRegistry">
<Arg type="int">2099</Arg>
</Call>
<!-- Setup the JMXConnectorServer on a specific rmi server port -->
<Call id="jmxConnectorServer" class="javax.management.remote.JMXConnectorServerFactory"
name="newJMXConnectorServer">
<Arg>
<New class="javax.management.remote.JMXServiceURL">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
</Arg>
<Arg />
<Arg>
<Ref id="MBeanServer" />
</Arg>
<Call name="start" />
</Call>
<!--************************* -->
<!-- embbeded ActiveMQ Broker -->
<!--************************* -->
<New id="brokerService" class="org.apache.activemq.broker.BrokerService">
<Set name="brokerName">fppBrokerActiveMQ</Set>
<Set name="dataDirectoryFile"></Set>
<Call name="getSystemUsage">
<Call name="getMemoryUsage">
<Set name="limit">26428800</Set>
</Call>
<Call name="getStoreUsage">
<Set name="limit">204857600</Set>
</Call>
</Call>
<Call name="addConnector">
<Arg>nio://localhost:61615</Arg>
</Call>
<Call name="start"></Call>
</New>
<!-- ************************** -->
<!-- common fpp jndi resources -->
<!-- ************************** -->
<!-- ui debug properties -->
<New id="fpp.common-ui.velocityProperties" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.common-ui.velocityProperties</Arg>
<Arg>
<New class="java.util.Properties">
<Put name="spring.resource.loader.class">org.springframework.ui.velocity.SpringResourceLoader
</Put>
<Put name="spring.resource.loader.cache">false</Put>
<Put name="velocimacro.library.autoreload">true</Put>
</New>
</Arg>
</New>
<New id="fpp.wrapper-server.properties" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.wrapper-server.properties</Arg>
<Arg>
<New class="java.util.Properties">
<Put name="fpp.wrapper-server.instanceServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/instance?wsdl
</Put>
<Put name="fpp.wrapper-server.formServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/form?wsdl
</Put>
<Put name="fpp.wrapper-server.formDeprecatedServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/formDeprecated?wsdl
</Put>
<Put name="fpp.wrapper-server.hwrResourceServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/hwrResource?wsdl
</Put>
<Put name="fpp.wrapper-server.defaultEnvironmentName">default</Put>
<Put name="fpp.wrapper-server.defaultEnvironmentType">STANDARD</Put>
<Put name="fpp.wrapper-server.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.show_sql">true</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.cache.use_query_cache">false</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.cache.use_second_level_cache">false</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.cache.use_structured_cache">false</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
</New>
</Arg>
</New>
<!-- transaction manager - bitronix -->
<Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
<Set name="serverId">jetty-fpp-server</Set>
<Set name="gracefulShutdownInterval">45</Set>
<Set name="logPart1Filename">btm/btm1.tlog</Set>
<Set name="logPart2Filename">btm/btm2.tlog</Set>
</Call>
<Set name="gracefulShutdown">60000</Set>
<Call name="addLifeCycle">
<Arg>
<New class="bitronix.tm.integration.jetty6.BTMLifeCycle" />
</Arg>
</Call>
<New class="org.mortbay.jetty.plus.naming.Transaction">
<Arg>
<Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
</Arg>
</New>
<New class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>java:/TransactionManager</Arg>
<Arg>
<Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
</Arg>
</New>
<New id="userTransactionManager" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>java:comp/TransactionManager</Arg>
<Arg>
<Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
</Arg>
</New>
<New id="userTransactionManager" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>java:comp/UserTransaction</Arg>
<Arg>
<Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
</Arg>
</New>
<!-- database data source -->
<New id="fppDataSource" class="bitronix.tm.resource.jdbc.PoolingDataSource">
<Set name="uniqueName">fppDataSource</Set>
<Set name="className">com.microsoft.sqlserver.jdbc.SQLServerXADataSource</Set>
<Set name="minPoolSize">0</Set>
<Set name="maxPoolSize">50</Set>
<Get name="driverProperties">
<Put name="serverName">DYHVDB01</Put>
<Put name="instanceName">ALPHA</Put>
<Put name="integratedSecurity">false</Put>
<Put name="databaseName">tdb_digipen_fpp</Put>
<Put name="user">manage_digipen</Put>
<Put name="password">5T1fte?</Put>
<!--Needed to test??<Put name="pinGlobalTxToPhysicalConnection">true</Put>-->
</Get>
<Call name="init" />
</New>
<!-- Jms connection factories -->
<New id="fppServerConnectionFactory" class="bitronix.tm.resource.jms.PoolingConnectionFactory">
<Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
<Set name="uniqueName">fppServerConnectionFactory</Set>
<Set name="minPoolSize">4</Set>
<Set name="maxPoolSize">40</Set>
<Set name="allowLocalTransactions">true</Set>
<Get name="driverProperties">
<Put name="brokerURL">nio://localhost:61615?jms.prefetchPolicy.all=50</Put>
<New class="org.apache.activemq.RedeliveryPolicy">
<Set name="maximumRedeliveries">-1</Set>
<Set name="backOffMultiplier">2</Set>
</New>
</Get>
<Call name="init" />
</New>
<!-- JMS Queues & topics -->
<New id="formNotifiationTopic" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>fpp/formNotifiationTopic</Arg>
<Arg>
<New class="org.apache.activemq.command.ActiveMQTopic">
<Arg>formNotifiationTopic</Arg>
</New>
</Arg>
</New>
<New id="fieldJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>fpp/fieldJmsQueue</Arg>
<Arg>
<New class="org.apache.activemq.command.ActiveMQQueue">
<Arg>fieldJmsQueue</Arg>
</New>
</Arg>
</New>
<New id="fieldNotifJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>fpp/fieldNotifJmsQueue</Arg>
<Arg>
<New class="org.apache.activemq.command.ActiveMQQueue">
<Arg>fieldNotifJmsQueue</Arg>
</New>
</Arg>
</New>
<New id="inkJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>fpp/inkJmsQueue</Arg>
<Arg>
<New class="org.apache.activemq.command.ActiveMQQueue">
<Arg>inkJmsQueue</Arg>
</New>
</Arg>
</New>
<!-- native library services -->
<New id="myscriptLicenseService" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/myscriptLicenseService</Arg>
<Arg>
<New
class="com.visionobjects.licensemanager.impl.MyscriptLicenseServiceImpl">
<Arg>localhost</Arg>
</New>
</Arg>
</New>
<!-- *********************** -->
<!-- form server properties -->
<!-- *********************** -->
<New id="fpp.form.properties" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.form.properties</Arg>
<Arg>
<New class="java.util.Properties">
<Put name="fpp.form.defaultEnvironmentName">default</Put>
<Put name="fpp.form.defaultEnvironmentType">STANDARD</Put>
<Put name="fpp.form.jbpm.job.nbexecutor">4</Put>
<Put name="fpp.form.jbpm.job.idleinterval">1000</Put>
<Put name="fpp.form.field.notif.nbconsumers">2</Put>
<Put name="fpp.form.ink.nbconsumers">2</Put>
<Put name="fpp.form.instance.instanceValidationMode">STANDARD</Put>
<Put name="fpp.form.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
<!--<Put name="fpp.form.formdb.hibernate.show_sql">true</Put>-->
<Put name="fpp.form.formdb.hibernate.show_sql">true</Put>
<Put name="fpp.form.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
<Put name="fpp.form.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup
</Put>
<Put name="fpp.form.formdb.hibernate.cache.use_query_cache">false</Put>
<Put name="fpp.form.formdb.hibernate.cache.use_second_level_cache">false</Put>
<Put name="fpp.form.formdb.hibernate.cache.use_structured_cache">false</Put>
<Put name="fpp.form.formdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
<Put name="fpp.form.jbpmdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
<Put name="fpp.form.jbpmdb.hibernate.show_sql">true</Put>
<Put name="fpp.form.jbpmdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
<Put name="fpp.form.jbpmdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup
</Put>
<Put name="fpp.form.jbpmdb.hibernate.cache.use_query_cache">false</Put>
<Put name="fpp.form.jbpmdb.hibernate.cache.use_second_level_cache">false</Put>
<Put name="fpp.form.jbpmdb.hibernate.cache.use_structured_cache">false</Put>
<Put name="fpp.form.jbpmdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
<Put name="fpp.form.scheduler.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.MSSQLDelegate</Put>
<Put name="fpp.form.scheduler.dataSource.driver">com.microsoft.sqlserver.jdbc.SQLServerDriver</Put>
<Put name="fpp.form.scheduler.dataSource.URL">jdbc:sqlserver://DYHVDB01\ALPHA;DatabaseName=tdb_digipen_fpp;integratedSecurity=false
</Put>
<Put name="fpp.form.scheduler.dataSource.user">manage_digipen</Put>
<Put name="fpp.form.scheduler.dataSource.password">5T1fte?</Put>
<!-- Cron Format A cron expression is a string comprised of 6 or 7 fields
separated by white space. Fields can contain any of the allowed values, along
with various combinations of the allowed special characters for that field.
The fields are as follows: Field Name Mandatory Allowed Values Allowed Special
Characters Seconds YES 0-59 , - * / Minutes YES 0-59 , - * / Hours YES 0-23
, - * / Day of month YES 1-31 , - * ? / L W Month YES 1-12 or JAN-DEC , -
* / Day of week YES 1-7 or SUN-SAT , - * ? / L # Year NO empty, 1970-2099
, - * / -->
<Put name="fpp.form.purge.moduleinfo.cron">0 0/1 * * * ?</Put>
<Put name="fpp.form.purge.instances.cron">0 0 * * * ?</Put>
<Put name="fpp.form.purge.instances.defaultcase">365</Put>
<Put name="fpp.form.purge.instances.case1">10</Put>
<Put name="fpp.form.purge.instances.case2">60</Put>
<Put name="fpp.form.purge.instances.case3">100</Put>
<Put name="fpp.form.purge.instances.case4">30</Put>
<Put name="fpp.form.purge.instances.case5">60</Put>
<Put name="fpp.form.export.cron">0 0 * * * ?</Put>
<Put name="fpp.form.export.exportpath">C:\FPP</Put>
<Put name="fpp.form.export.exportMode">REGULAR</Put>
<Put name="fpp.form.export.buildingType">INCREMENTAL</Put>
<Put name="fpp.form.export.addInformations">true</Put>
</New>
</Arg>
</New>
<New id="fppFormDbDataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>jdbc/fppFormDbDataSource</Arg>
<Arg>
<Ref id="fppDataSource"></Ref>
</Arg>
</New>
<New id="fppJbpmDbDataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>jdbc/fppJbpmDbDataSource</Arg>
<Arg>
<Ref id="fppDataSource" />
</Arg>
</New>
<New id="formJmsTopicConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/formJmsTopicConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<New id="fieldProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fieldProducerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<New id="fieldNotifConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fieldNotifConsumerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<New id="inkConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/inkConsumerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<!-- HWR SERVER -->
<New id="fpp.hwr-server.properties" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.hwr-server.properties</Arg>
<Arg>
<New class="java.util.Properties">
<Put name="fpp.hwr-server.formbroker.uri">failover:nio://localhost:61615</Put>
<Put name="fpp.hwr-server.fieldConsumers">4</Put>
<Put name="fpp.hwr-server.resourceManager.memoryUsageThreshold">262144000</Put>
<Put name="fpp.hwr-server.resourceManager.resourceCountThreshold">150</Put>
<Put name="fpp.hwr-server.resourceManager.idleTimeLimit">1800000</Put>
<Put name="fpp.hwr-server.resourceManager.timeToLive">3600000</Put>
<Put name="fpp.hwr-server.resourceManager.wakeUpInterval">100000</Put>
<Put name="fpp.hwr-server.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
<Put name="fpp.hwr-server.formdb.hibernate.show_sql">true</Put>
<Put name="fpp.hwr-server.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
<Put
name="fpp.hwr-server.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup</Put>
<Put name="fpp.hwr-server.internal.dumpRecognition">false</Put>
</New>
</Arg>
</New>
<New id="myscriptHwrService" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/myscriptHwrService</Arg>
<Arg>
<New class="com.visionobjects.myscript.commons.hwr.engine.HwrEngineService">
<Set name="handwritingContextUserLimit">50</Set>
<Set name="resourceUserLimit">0</Set>
<Set name="otherObjectUserLimit">500</Set>
<Call name="doStart" />
</New>
</Arg>
</New>
<New id="fieldNotificationProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fieldNotificationProducerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<New id="fieldConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fieldConsumerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<!-- wrapper -->
<New id="fppWrapperServerConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<Set name="brokerURL">nio://localhost:61615</Set>
<Set name="redeliveryPolicy">
<New class="org.apache.activemq.RedeliveryPolicy">
<Set name="maximumRedeliveries">-1</Set>
<Set name="backOffMultiplier">2</Set>
</New>
</Set>
</New>
<New id="formNotificationConsumerFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/formNotificationConsumerFactory</Arg>
<Arg>
<Ref id="fppWrapperServerConnectionFactory" />
</Arg>
</New>
<New id="inkProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/inkProducerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppWrapperServerConnectionFactory" />
</Arg>
</New>
<!-- JMX/SENSORS -->
<New id="inkJmsQueueUrl" class="java.lang.String">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
<New id="inkJmsQueueObjectName" class="java.lang.String">
<Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=inkJmsQueue
</Arg>
</New>
<New id="fieldNotifJmsQueueUrl" class="java.lang.String">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
<New id="fieldNotifJmsQueueObjectName" class="java.lang.String">
<Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=fieldNotifJmsQueue
</Arg>
</New>
<New id="fieldJmsQueueUrl" class="java.lang.String">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
<New id="fieldJmsQueueObjectName" class="java.lang.String">
<Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=fieldJmsQueue
</Arg>
</New>
<New id="formNotifiationTopicUrl" class="java.lang.String">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
<New id="formNotifiationTopicObjectName" class="java.lang.String">
<Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=formNotifiationTopic
</Arg>
</New>
<New id="server.list" class="java.util.HashMap">
<!-- InkJmsQueue -->
<Put name="WRP">
<New class="java.util.ArrayList">
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8081</Arg>
</New>
</Arg>
</Call>
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8084</Arg>
</New>
</Arg>
</Call>
</New>
</Put>
<Put name="FORM">
<New class="java.util.ArrayList">
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8080</Arg>
</New>
</Arg>
</Call>
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8084</Arg>
</New>
</Arg>
</Call>
</New>
</Put>
<Put name="HWR">
<New class="java.util.ArrayList">
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8083</Arg>
</New>
</Arg>
</Call>
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8084</Arg>
</New>
</Arg>
</Call>
</New>
</Put>
</New>
<New id="fpp.form.jmx.properties" class="java.util.HashMap">
<!-- InkJmsQueue -->
<Put name="inkJmsQueueSize">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">QueueSize</Put>
</New>
</Put>
<Put name="inkJmsConsumerCount">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">ConsumerCount</Put>
</New>
</Put>
<Put name="inkJmsDequeueCount">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">DequeueCount</Put>
</New>
</Put>
<Put name="inkJmsAverageEnqueueTime">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">AverageEnqueueTime</Put>
</New>
</Put>
<Put name="inkJmsMaxEnqueueTime">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">MaxEnqueueTime</Put>
</New>
</Put>
<!--FieldNotifJmsQueue -->
<Put name="fieldNotifJmsQueueSize">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">QueueSize</Put>
</New>
</Put>
<Put name="fieldNotifJmsConsumerCount">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">ConsumerCount</Put>
</New>
</Put>
<Put name="fieldNotifJmsDequeueCount">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">DequeueCount</Put>
</New>
</Put>
<Put name="fieldNotifJmsAverageEnqueueTime">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">AverageEnqueueTime</Put>
</New>
</Put>
<Put name="fieldNotifJmsMaxEnqueueTime">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">MaxEnqueueTime</Put>
</New>
</Put>
</New>
<New id="fpp.form.ui.parameters" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.form.ui.parameters</Arg>
<Arg>
<New
class="com.visionobjects.myscript.fpp.ui.parameters.impl.UIParametersServiceImpl">
<Set name="jmxProperties">
<Ref id="fpp.form.jmx.properties"></Ref>
</Set>
<Set name="serverList">
<Ref id="server.list"></Ref>
</Set>
</New>
</Arg>
</New>
</Configure>
Thanks so much in advance.
Hello guys,
I have been setting a production system with bitronix transaction manager, SQL server 2008, XA transactions and jetty 6. In the beginning this software was configured to run with MySQL. But one of my customer decided to move everything to MSSQL server 2008.
In that moment I was trying to get this up and running for some weeks (The configuration was completely different) and finally I got it.
The configuration with MSSQL server was running perfectly during 1 month but then from one day to other the error message I will show now appeared and I do not how to solve it. I almost read all the hints from google about this exception but nothing helped
me out.
I hope you guys can help me to find a way to solve it.
- I tried different version of the jdbc driver 3.0 and 4.0.
- I tried to export exactly the database to my localserver and it's running perfectly with the same configuration.
The problem is that I cannot reproduce the error in other place that is not the customer and at the same time I have no access to their internal database server. They installed all the XA transaction stuff (dll in binn, enable XA, and grant the permissions
for SQLXAUser), I am quite sure because it was running for one month without any problem.
I asked to the customer if anything happenend on their server (microsoft updates, machines reboot, ...) but nothing of these happened.
Also I tried this link out but did not help me.
<a href="http://social.msdn.microsoft.com/Forums/sqlserver/en-US/15c1e6f5-ec1e-4376-8f45-25e61ffc1306/the-function-start-has-failed-no-transaction-cookie-was-returned?forum=sqldataaccess">http://social.msdn.microsoft.com/Forums/sqlserver/en-US/15c1e6f5-ec1e-4376-8f45-25e61ffc1306/the-function-start-has-failed-no-transaction-cookie-was-returned?forum=sqldataaccess</a>
The exception is the following:
[2014-05-15 14:06:08,842] INFO 3666[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - Starting Bitronix Transaction Manager
[2014-05-15 14:06:08,951] INFO 3775[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - Extract ./webapps/myscript-fpp-wrapper-server.war to D:\Temp\Jetty_0_0_0_0_8080_myscript.fpp.wrapper.server.war__myscript.form.wrapper.server__.bnwnn7\webapp
[2014-05-15 14:06:10,324] INFO 5148[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - NO JSP Support for /myscript-form-wrapper-server, did not find org.apache.jasper.servlet.JspServlet
[2014-05-15 14:06:12,742] WARN 7566[main] - org.dozer.config.GlobalSettings.loadGlobalSettings(GlobalSettings.java:118) - Dozer configuration file not found: dozer.properties. Using defaults for all Dozer global properties.
[2014-05-15 14:06:13,288] WARN 8112[main] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:100) - SQL Error: 0, SQLState: null
[2014-05-15 14:06:13,288]ERROR 8112[main] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:101) - error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource fppDataSource in state ACCESSIBLE with
usage count 1 wrapping SQLServerXAConnection:1 on ProxyConnectionID:1
[2014-05-15 14:06:13,319]ERROR 8143[main] - org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:220) - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'moduleRegistration' defined in class path resource [com/visionobjects/myscript/fpp/wrapper/module-registration.xml]: Invocation of init method failed; nested exception is
org.hibernate.exception.GenericJDBCException: could not execute query
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mortbay.start.Main.invokeMain(Main.java:194)
at org.mortbay.start.Main.start(Main.java:534)
at org.mortbay.start.Main.start(Main.java:441)
at org.mortbay.start.Main.main(Main.java:119)
Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2235)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1597)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
at com.visionobjects.myscript.fpp.form.dao.impl.ModuleInfoDaoImpl.getModuleInfo(ModuleInfoDaoImpl.java:57)
at com.visionobjects.myscript.fpp.ModuleRegistration$1.doInTransactionWithoutResult(ModuleRegistration.java:73)
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at com.visionobjects.myscript.fpp.ModuleRegistration.init(ModuleRegistration.java:66)
at com.visionobjects.myscript.fpp.ModuleRegistration.start(ModuleRegistration.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 33 more
Caused by: java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource fppDataSource in state ACCESSIBLE with usage count 1 wrapping SQLServerXAConnection:1 on ProxyConnectionID:1
at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:86)
at bitronix.tm.resource.jdbc.JdbcConnectionHandle.prepareStatement(JdbcConnectionHandle.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:63)
at $Proxy29.prepareStatement(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
at org.hibernate.loader.Loader.doQuery(Loader.java:696)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2232)
... 52 more
Caused by: bitronix.tm.internal.BitronixSystemException: cannot enlist an XAResourceHolderState with uniqueName=fppDataSource XAResource= XAResourceID:1 with XID a Bitronix XID [6A657474792D6670702D73657276657200000145FFC68B9B00000000 : 6A657474792D6670702D73657276657200000145FFC68BCA00000002],
error=XAER_RMERR
at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:100)
at bitronix.tm.resource.common.TransactionContextHelper.enlistInCurrentTransaction(TransactionContextHelper.java:70)
at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:84)
... 66 more
<b>Caused by: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: The function START: has failed. No transaction cookie was returned </b>
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:642)
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.start(SQLServerXAResource.java:674)
at bitronix.tm.internal.XAResourceHolderState.start(XAResourceHolderState.java:211)
at bitronix.tm.internal.XAResourceManager.enlist(XAResourceManager.java:108)
at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:93)
... 68 more
I think the "bold" exception is the key.
Also the configuration file of my jetty server.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!-- developpment jetty configuration -->
<!-- launch with main class : org.mortbay.start.Main app arguments:
deploy-conf/jetty-conf/mysql/jetty-dev.xml vm arguments : -Xmx1024M -DSTOP.KEY=stop
-DSTOP.PORT=6669 to stop : - - stop -Xmx1024M -DSTOP.KEY=stop -DSTOP.PORT=6669 -->
<Configure id="Server" class="org.mortbay.jetty.Server">
<Array id="plusConfig" type="java.lang.String">
<Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
<Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
<Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
<Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
<Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
</Array>
<Array id="serverClasses" type="java.lang.String">
</Array>
<Array id="systemClasses" type="java.lang.String">
</Array>
<!-- web apps -->
<Set name="handler">
<New id="handlerContext" class="org.mortbay.jetty.handler.ContextHandlerCollection">
<Set name="handlers">
<Array id="handlerArray" type="org.mortbay.jetty.webapp.WebAppContext">
<!-- wrapper server -->
<Item>
<New class="org.mortbay.jetty.webapp.WebAppContext">
<Arg>./webapps/myscript-fpp-wrapper-server.war</Arg>
<Arg>/myscript-form-wrapper-server</Arg>
<Set name="serverClasses">
<Ref id="serverClasses" />
</Set>
<Set name="ConfigurationClasses">
<Ref id="plusConfig" />
</Set>
</New>
</Item>
<!-- form server -->
<Item>
<New class="org.mortbay.jetty.webapp.WebAppContext">
<Arg>./webapps/myscript-fpp-form-server.war
</Arg>
<Arg>/myscript-form-server</Arg>
<Set name="serverClasses">
<Ref id="serverClasses" />
</Set>
<Set name="ConfigurationClasses">
<Ref id="plusConfig" />
</Set>
</New>
</Item>
<!-- hwr server -->
<Item>
<New class="org.mortbay.jetty.webapp.WebAppContext">
<Arg>./webapps/myscript-fpp-hwr-server.war</Arg>
<Arg>/myscript-form-hwr-server</Arg>
<Set name="serverClasses">
<Ref id="serverClasses" />
</Set>
<Set name="ConfigurationClasses">
<Ref id="plusConfig" />
</Set>
</New>
</Item>
</Array>
</Set>
</New>
</Set>
<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
<Set name="port">8080</Set>
</New>
</Arg>
</Call>
<!-- Use the jdk 1.5 platformMBeanServer -->
<Call id="MBeanServer" class="java.lang.management.ManagementFactory"
name="getPlatformMBeanServer" />
<Get id="Container" name="container">
<Call name="addEventListener">
<Arg>
<New class="org.mortbay.management.MBeanContainer">
<Arg>
<Ref id="MBeanServer" />
</Arg>
<Call name="start" />
</New>
</Arg>
</Call>
</Get>
<!-- Setup the RMIRegistry on a specific port -->
<Call id="rmiRegistry" class="java.rmi.registry.LocateRegistry"
name="createRegistry">
<Arg type="int">2099</Arg>
</Call>
<!-- Setup the JMXConnectorServer on a specific rmi server port -->
<Call id="jmxConnectorServer" class="javax.management.remote.JMXConnectorServerFactory"
name="newJMXConnectorServer">
<Arg>
<New class="javax.management.remote.JMXServiceURL">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
</Arg>
<Arg />
<Arg>
<Ref id="MBeanServer" />
</Arg>
<Call name="start" />
</Call>
<!--************************* -->
<!-- embbeded ActiveMQ Broker -->
<!--************************* -->
<New id="brokerService" class="org.apache.activemq.broker.BrokerService">
<Set name="brokerName">fppBrokerActiveMQ</Set>
<Set name="dataDirectoryFile"></Set>
<Call name="getSystemUsage">
<Call name="getMemoryUsage">
<Set name="limit">26428800</Set>
</Call>
<Call name="getStoreUsage">
<Set name="limit">204857600</Set>
</Call>
</Call>
<Call name="addConnector">
<Arg>nio://localhost:61615</Arg>
</Call>
<Call name="start"></Call>
</New>
<!-- ************************** -->
<!-- common fpp jndi resources -->
<!-- ************************** -->
<!-- ui debug properties -->
<New id="fpp.common-ui.velocityProperties" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.common-ui.velocityProperties</Arg>
<Arg>
<New class="java.util.Properties">
<Put name="spring.resource.loader.class">org.springframework.ui.velocity.SpringResourceLoader
</Put>
<Put name="spring.resource.loader.cache">false</Put>
<Put name="velocimacro.library.autoreload">true</Put>
</New>
</Arg>
</New>
<New id="fpp.wrapper-server.properties" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.wrapper-server.properties</Arg>
<Arg>
<New class="java.util.Properties">
<Put name="fpp.wrapper-server.instanceServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/instance?wsdl
</Put>
<Put name="fpp.wrapper-server.formServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/form?wsdl
</Put>
<Put name="fpp.wrapper-server.formDeprecatedServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/formDeprecated?wsdl
</Put>
<Put name="fpp.wrapper-server.hwrResourceServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/hwrResource?wsdl
</Put>
<Put name="fpp.wrapper-server.defaultEnvironmentName">default</Put>
<Put name="fpp.wrapper-server.defaultEnvironmentType">STANDARD</Put>
<Put name="fpp.wrapper-server.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.show_sql">true</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.cache.use_query_cache">false</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.cache.use_second_level_cache">false</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.cache.use_structured_cache">false</Put>
<Put name="fpp.wrapper-server.formdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
</New>
</Arg>
</New>
<!-- transaction manager - bitronix -->
<Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
<Set name="serverId">jetty-fpp-server</Set>
<Set name="gracefulShutdownInterval">45</Set>
<Set name="logPart1Filename">btm/btm1.tlog</Set>
<Set name="logPart2Filename">btm/btm2.tlog</Set>
</Call>
<Set name="gracefulShutdown">60000</Set>
<Call name="addLifeCycle">
<Arg>
<New class="bitronix.tm.integration.jetty6.BTMLifeCycle" />
</Arg>
</Call>
<New class="org.mortbay.jetty.plus.naming.Transaction">
<Arg>
<Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
</Arg>
</New>
<New class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>java:/TransactionManager</Arg>
<Arg>
<Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
</Arg>
</New>
<New id="userTransactionManager" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>java:comp/TransactionManager</Arg>
<Arg>
<Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
</Arg>
</New>
<New id="userTransactionManager" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>java:comp/UserTransaction</Arg>
<Arg>
<Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
</Arg>
</New>
<!-- database data source -->
<New id="fppDataSource" class="bitronix.tm.resource.jdbc.PoolingDataSource">
<Set name="uniqueName">fppDataSource</Set>
<Set name="className">com.microsoft.sqlserver.jdbc.SQLServerXADataSource</Set>
<Set name="minPoolSize">0</Set>
<Set name="maxPoolSize">50</Set>
<Get name="driverProperties">
<Put name="serverName">DYHVDB01</Put>
<Put name="instanceName">ALPHA</Put>
<Put name="integratedSecurity">false</Put>
<Put name="databaseName">tdb_digipen_fpp</Put>
<Put name="user">manage_digipen</Put>
<Put name="password">5T1fte?</Put>
<!--Needed to test??<Put name="pinGlobalTxToPhysicalConnection">true</Put>-->
</Get>
<Call name="init" />
</New>
<!-- Jms connection factories -->
<New id="fppServerConnectionFactory" class="bitronix.tm.resource.jms.PoolingConnectionFactory">
<Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
<Set name="uniqueName">fppServerConnectionFactory</Set>
<Set name="minPoolSize">4</Set>
<Set name="maxPoolSize">40</Set>
<Set name="allowLocalTransactions">true</Set>
<Get name="driverProperties">
<Put name="brokerURL">nio://localhost:61615?jms.prefetchPolicy.all=50</Put>
<New class="org.apache.activemq.RedeliveryPolicy">
<Set name="maximumRedeliveries">-1</Set>
<Set name="backOffMultiplier">2</Set>
</New>
</Get>
<Call name="init" />
</New>
<!-- JMS Queues & topics -->
<New id="formNotifiationTopic" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>fpp/formNotifiationTopic</Arg>
<Arg>
<New class="org.apache.activemq.command.ActiveMQTopic">
<Arg>formNotifiationTopic</Arg>
</New>
</Arg>
</New>
<New id="fieldJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>fpp/fieldJmsQueue</Arg>
<Arg>
<New class="org.apache.activemq.command.ActiveMQQueue">
<Arg>fieldJmsQueue</Arg>
</New>
</Arg>
</New>
<New id="fieldNotifJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>fpp/fieldNotifJmsQueue</Arg>
<Arg>
<New class="org.apache.activemq.command.ActiveMQQueue">
<Arg>fieldNotifJmsQueue</Arg>
</New>
</Arg>
</New>
<New id="inkJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>fpp/inkJmsQueue</Arg>
<Arg>
<New class="org.apache.activemq.command.ActiveMQQueue">
<Arg>inkJmsQueue</Arg>
</New>
</Arg>
</New>
<!-- native library services -->
<New id="myscriptLicenseService" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/myscriptLicenseService</Arg>
<Arg>
<New
class="com.visionobjects.licensemanager.impl.MyscriptLicenseServiceImpl">
<Arg>localhost</Arg>
</New>
</Arg>
</New>
<!-- *********************** -->
<!-- form server properties -->
<!-- *********************** -->
<New id="fpp.form.properties" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.form.properties</Arg>
<Arg>
<New class="java.util.Properties">
<Put name="fpp.form.defaultEnvironmentName">default</Put>
<Put name="fpp.form.defaultEnvironmentType">STANDARD</Put>
<Put name="fpp.form.jbpm.job.nbexecutor">4</Put>
<Put name="fpp.form.jbpm.job.idleinterval">1000</Put>
<Put name="fpp.form.field.notif.nbconsumers">2</Put>
<Put name="fpp.form.ink.nbconsumers">2</Put>
<Put name="fpp.form.instance.instanceValidationMode">STANDARD</Put>
<Put name="fpp.form.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
<!--<Put name="fpp.form.formdb.hibernate.show_sql">true</Put>-->
<Put name="fpp.form.formdb.hibernate.show_sql">true</Put>
<Put name="fpp.form.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
<Put name="fpp.form.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup
</Put>
<Put name="fpp.form.formdb.hibernate.cache.use_query_cache">false</Put>
<Put name="fpp.form.formdb.hibernate.cache.use_second_level_cache">false</Put>
<Put name="fpp.form.formdb.hibernate.cache.use_structured_cache">false</Put>
<Put name="fpp.form.formdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
<Put name="fpp.form.jbpmdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
<Put name="fpp.form.jbpmdb.hibernate.show_sql">true</Put>
<Put name="fpp.form.jbpmdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
<Put name="fpp.form.jbpmdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup
</Put>
<Put name="fpp.form.jbpmdb.hibernate.cache.use_query_cache">false</Put>
<Put name="fpp.form.jbpmdb.hibernate.cache.use_second_level_cache">false</Put>
<Put name="fpp.form.jbpmdb.hibernate.cache.use_structured_cache">false</Put>
<Put name="fpp.form.jbpmdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
<Put name="fpp.form.scheduler.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.MSSQLDelegate</Put>
<Put name="fpp.form.scheduler.dataSource.driver">com.microsoft.sqlserver.jdbc.SQLServerDriver</Put>
<Put name="fpp.form.scheduler.dataSource.URL">jdbc:sqlserver://DYHVDB01\ALPHA;DatabaseName=tdb_digipen_fpp;integratedSecurity=false
</Put>
<Put name="fpp.form.scheduler.dataSource.user">manage_digipen</Put>
<Put name="fpp.form.scheduler.dataSource.password">5T1fte?</Put>
<!-- Cron Format A cron expression is a string comprised of 6 or 7 fields
separated by white space. Fields can contain any of the allowed values, along
with various combinations of the allowed special characters for that field.
The fields are as follows: Field Name Mandatory Allowed Values Allowed Special
Characters Seconds YES 0-59 , - * / Minutes YES 0-59 , - * / Hours YES 0-23
, - * / Day of month YES 1-31 , - * ? / L W Month YES 1-12 or JAN-DEC , -
* / Day of week YES 1-7 or SUN-SAT , - * ? / L # Year NO empty, 1970-2099
, - * / -->
<Put name="fpp.form.purge.moduleinfo.cron">0 0/1 * * * ?</Put>
<Put name="fpp.form.purge.instances.cron">0 0 * * * ?</Put>
<Put name="fpp.form.purge.instances.defaultcase">365</Put>
<Put name="fpp.form.purge.instances.case1">10</Put>
<Put name="fpp.form.purge.instances.case2">60</Put>
<Put name="fpp.form.purge.instances.case3">100</Put>
<Put name="fpp.form.purge.instances.case4">30</Put>
<Put name="fpp.form.purge.instances.case5">60</Put>
<Put name="fpp.form.export.cron">0 0 * * * ?</Put>
<Put name="fpp.form.export.exportpath">C:\FPP</Put>
<Put name="fpp.form.export.exportMode">REGULAR</Put>
<Put name="fpp.form.export.buildingType">INCREMENTAL</Put>
<Put name="fpp.form.export.addInformations">true</Put>
</New>
</Arg>
</New>
<New id="fppFormDbDataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>jdbc/fppFormDbDataSource</Arg>
<Arg>
<Ref id="fppDataSource"></Ref>
</Arg>
</New>
<New id="fppJbpmDbDataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>jdbc/fppJbpmDbDataSource</Arg>
<Arg>
<Ref id="fppDataSource" />
</Arg>
</New>
<New id="formJmsTopicConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/formJmsTopicConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<New id="fieldProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fieldProducerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<New id="fieldNotifConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fieldNotifConsumerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<New id="inkConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/inkConsumerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<!-- HWR SERVER -->
<New id="fpp.hwr-server.properties" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.hwr-server.properties</Arg>
<Arg>
<New class="java.util.Properties">
<Put name="fpp.hwr-server.formbroker.uri">failover:nio://localhost:61615</Put>
<Put name="fpp.hwr-server.fieldConsumers">4</Put>
<Put name="fpp.hwr-server.resourceManager.memoryUsageThreshold">262144000</Put>
<Put name="fpp.hwr-server.resourceManager.resourceCountThreshold">150</Put>
<Put name="fpp.hwr-server.resourceManager.idleTimeLimit">1800000</Put>
<Put name="fpp.hwr-server.resourceManager.timeToLive">3600000</Put>
<Put name="fpp.hwr-server.resourceManager.wakeUpInterval">100000</Put>
<Put name="fpp.hwr-server.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
<Put name="fpp.hwr-server.formdb.hibernate.show_sql">true</Put>
<Put name="fpp.hwr-server.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
<Put
name="fpp.hwr-server.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup</Put>
<Put name="fpp.hwr-server.internal.dumpRecognition">false</Put>
</New>
</Arg>
</New>
<New id="myscriptHwrService" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/myscriptHwrService</Arg>
<Arg>
<New class="com.visionobjects.myscript.commons.hwr.engine.HwrEngineService">
<Set name="handwritingContextUserLimit">50</Set>
<Set name="resourceUserLimit">0</Set>
<Set name="otherObjectUserLimit">500</Set>
<Call name="doStart" />
</New>
</Arg>
</New>
<New id="fieldNotificationProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fieldNotificationProducerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<New id="fieldConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fieldConsumerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppServerConnectionFactory" />
</Arg>
</New>
<!-- wrapper -->
<New id="fppWrapperServerConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<Set name="brokerURL">nio://localhost:61615</Set>
<Set name="redeliveryPolicy">
<New class="org.apache.activemq.RedeliveryPolicy">
<Set name="maximumRedeliveries">-1</Set>
<Set name="backOffMultiplier">2</Set>
</New>
</Set>
</New>
<New id="formNotificationConsumerFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/formNotificationConsumerFactory</Arg>
<Arg>
<Ref id="fppWrapperServerConnectionFactory" />
</Arg>
</New>
<New id="inkProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/inkProducerJmsConnectionFactory</Arg>
<Arg>
<Ref id="fppWrapperServerConnectionFactory" />
</Arg>
</New>
<!-- JMX/SENSORS -->
<New id="inkJmsQueueUrl" class="java.lang.String">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
<New id="inkJmsQueueObjectName" class="java.lang.String">
<Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=inkJmsQueue
</Arg>
</New>
<New id="fieldNotifJmsQueueUrl" class="java.lang.String">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
<New id="fieldNotifJmsQueueObjectName" class="java.lang.String">
<Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=fieldNotifJmsQueue
</Arg>
</New>
<New id="fieldJmsQueueUrl" class="java.lang.String">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
<New id="fieldJmsQueueObjectName" class="java.lang.String">
<Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=fieldJmsQueue
</Arg>
</New>
<New id="formNotifiationTopicUrl" class="java.lang.String">
<Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
</Arg>
</New>
<New id="formNotifiationTopicObjectName" class="java.lang.String">
<Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=formNotifiationTopic
</Arg>
</New>
<New id="server.list" class="java.util.HashMap">
<!-- InkJmsQueue -->
<Put name="WRP">
<New class="java.util.ArrayList">
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8081</Arg>
</New>
</Arg>
</Call>
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8084</Arg>
</New>
</Arg>
</Call>
</New>
</Put>
<Put name="FORM">
<New class="java.util.ArrayList">
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8080</Arg>
</New>
</Arg>
</Call>
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8084</Arg>
</New>
</Arg>
</Call>
</New>
</Put>
<Put name="HWR">
<New class="java.util.ArrayList">
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8083</Arg>
</New>
</Arg>
</Call>
<Call name="add">
<Arg>
<New class="java.lang.String">
<Arg>http://localhost:8084</Arg>
</New>
</Arg>
</Call>
</New>
</Put>
</New>
<New id="fpp.form.jmx.properties" class="java.util.HashMap">
<!-- InkJmsQueue -->
<Put name="inkJmsQueueSize">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">QueueSize</Put>
</New>
</Put>
<Put name="inkJmsConsumerCount">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">ConsumerCount</Put>
</New>
</Put>
<Put name="inkJmsDequeueCount">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">DequeueCount</Put>
</New>
</Put>
<Put name="inkJmsAverageEnqueueTime">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">AverageEnqueueTime</Put>
</New>
</Put>
<Put name="inkJmsMaxEnqueueTime">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="inkJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="inkJmsQueueObjectName" />
</Put>
<Put name="attribute">MaxEnqueueTime</Put>
</New>
</Put>
<!--FieldNotifJmsQueue -->
<Put name="fieldNotifJmsQueueSize">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">QueueSize</Put>
</New>
</Put>
<Put name="fieldNotifJmsConsumerCount">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">ConsumerCount</Put>
</New>
</Put>
<Put name="fieldNotifJmsDequeueCount">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">DequeueCount</Put>
</New>
</Put>
<Put name="fieldNotifJmsAverageEnqueueTime">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">AverageEnqueueTime</Put>
</New>
</Put>
<Put name="fieldNotifJmsMaxEnqueueTime">
<New class="java.util.HashMap">
<Put name="urlQueue">
<Ref id="fieldNotifJmsQueueUrl" />
</Put>
<Put name="objectName">
<Ref id="fieldNotifJmsQueueObjectName" />
</Put>
<Put name="attribute">MaxEnqueueTime</Put>
</New>
</Put>
</New>
<New id="fpp.form.ui.parameters" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="Server" />
</Arg>
<Arg>fpp/fpp.form.ui.parameters</Arg>
<Arg>
<New
class="com.visionobjects.myscript.fpp.ui.parameters.impl.UIParametersServiceImpl">
<Set name="jmxProperties">
<Ref id="fpp.form.jmx.properties"></Ref>
</Set>
<Set name="serverList">
<Ref id="server.list"></Ref>
</Set>
</New>
</Arg>
</New>
</Configure>
Thanks so much in advance.
-
Problem in using javax.transaction.UserTransaction
Hi
I am using tomcat 5.0 . I got the error when I used javax.transaction.UserTransaction interface. Prbabaly it is deprecated. is there any other way to use tx.begin() and tx.commit() for getting the data from the database?the app server per se has no affect on the persistence layer.
perhaps you had the right drivers available on one but not the other. perhaps the jndi data source setup isn't the same on both.
but if the code's written properly it should run the same regardless of app server.
%
Maybe you are looking for
-
Java Web Start aborts after upgrading to 10.4.4
After the upgrade to 10.4.4 Java Web Start (and any clients) aborts as soon as I try to launch them. I have two clients (CGoban2 and Pokerpages Poker Client) I think uses Java Web Start and they worked fine under Mac OS X 10.4.3. Even if I try to sta
-
When Background task raises exception that is not handeled
Hi, I am using a background task that uses a method which does not handle exceptions raised by the function module it calls in turn. When such situation arises, i want to build some sort of exception handling mechanism in my workflow. e.g, BG task us
-
Hello, I want to display a form from within BSP when a user hits a button. Allow me to explain : I've got a BSP page written in HTML and/or HTMLB combined with ABAP. There's a button on the form. In the OnInputProcessing, a custom Function Module
-
Hi all, I have an issue with my site and i am putting it out there to your assistance. When I add a product to my cart and then select to view my cart, the cart displays as "uberoom.asia", as it should. But then when I proceed onto the "checkout" the
-
Reference issue in Sales & Distribution
Hi All I m having some configuration problem.I m trying to create sales order. As soon as I put details like Order type,sales org,div & distribution channel and press enter I get pop up window of 'create with ref'. It may be some reference issue. It