cancel
Showing results for 
Search instead for 
Did you mean: 

java.lang.RuntimeException nested transaction not supported by Transaction?

Former Member
0 Kudos

Hello,

i want to develop a little application for the mi.

I use a little function in the backend to get user information like name, qualification etc...

The code for the synchronisation looks like this:

   public String synchronize(boolean init){
  	
	  String errorInSynchronize = null;
	
	  try{

		  //Logger	  	
		  SyncLog mySyncLog = SyncLog.getInstance();
		
	  	  //String user = getUser();
		  User l_user = UserManager.getInstance().getCurrentUser();
		  
		  //get user_uniqueID  from l_user
		  String user = l_user.getUniqueID();
		
		  OutboundContainerFactory outfactory = OutboundContainerFactory.getInstance();
		  OutboundContainer outUser;
		  
		  if (outfactory == null) {
				errorInSynchronize = "OutboundContainerFactory.getInstance failed";
		  }
	   	  else 
	   	  {
	   	  		//set options for outboundContainer
		    	outUser = outfactory.createOutboundContainer(VisibilityType.SEPARATED, R3_METHOD_INIT_USER, OutboundContainer.TYPE_REQUEST);
		  		// add the name that has been typed into the JSP
		  		outUser.addItem("SYNC_USER", user);
		  		outUser.close();
		 	
				SyncManager.getInstance().synchronizeWithBackend();
		 	
	  	  }//endif
	  	  
  	} 
  	catch (SyncException ex) {
		errorInSynchronize = ex.getMessage();
  	} 
  	finally {
	  //aLogger.log(Severities.DEBUG, "UserInformationManager: Get information from R3 for user done.");
  	}
  	
  	return errorInSynchronize;

  }//end synchronize 

Everytime i want to synchronize i got the follow Failure Message:

java.lang.RuntimeException: nested transaction not supported by TransactionManager

java.lang.RuntimeException: nested transaction not supported by TransactionManager

at com.sap.ip.me.persist.core.IPersistenceManagerTXWrapper.beginTransaction(IPersistenceManagerTXWrapper.java:183)

at com.sap.ip.me.smartsync.persadp.Transaction.beginTransaction(Transaction.java:69)

at com.sap.ip.me.smartsync.persadp.PersistenceAdapterImpl.beginTransaction(PersistenceAdapterImpl.java:197)

at com.sap.ip.me.smartsync.persadp.PersistenceAdapterImpl.beginTransaction(PersistenceAdapterImpl.java:130)

at com.sap.ip.me.smartsync.meta.DescriptorRepository.onContextChange(DescriptorRepository.java:77)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.publishContextSwitch(SmartSyncRuntimeImpl.java:159)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.enterNewConext(SmartSyncRuntimeImpl.java:190)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.changeContext(SmartSyncRuntimeManager.java:261)

at com.sap.ip.me.smartsync.core.SmartSyncAdapterImpl.changeContext(SmartSyncAdapterImpl.java:96)

at com.sap.ip.me.core.ApplicationManager.switchSmartSyncContext(ApplicationManager.java:899)

at com.sap.ip.me.sync.SyncEventRegistryImpl.fireSyncEventNotifierMethod(SyncEventRegistryImpl.java:311)

at com.sap.ip.me.sync.SyncManagerImpl.raiseSyncEvent(SyncManagerImpl.java:1296)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:420)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:300)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at de.ids.me.ts.TS.synchronize(TS.java:220)

at de.ids.me.ts.TS.doHandleEvent(TS.java:116)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetNotThreadSafe(AbstractMEHttpServlet.java:343)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet(AbstractMEHttpServlet.java:687)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doPost(AbstractMEHttpServlet.java:704)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(AbstractMEHttpServlet.java:311)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

at org.apache.tomcat.core.Handler.service(Handler.java:287)

at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)

at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)

at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)

at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)

at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)

at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)

at java.lang.Thread.run(Thread.java:534)

[20060925 10:09:54:473] E [MI/Smartsync ] No transaction started to commit.

java.lang.IllegalStateException: No transaction started to commit.

at com.sap.ip.me.smartsync.persadp.PersistenceAdapterImpl.rollback(PersistenceAdapterImpl.java:332)

at com.sap.ip.me.smartsync.meta.DescriptorRepository.onContextChange(DescriptorRepository.java:101)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.publishContextSwitch(SmartSyncRuntimeImpl.java:159)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.enterNewConext(SmartSyncRuntimeImpl.java:190)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.changeContext(SmartSyncRuntimeManager.java:261)

at com.sap.ip.me.smartsync.core.SmartSyncAdapterImpl.changeContext(SmartSyncAdapterImpl.java:96)

at com.sap.ip.me.core.ApplicationManager.switchSmartSyncContext(ApplicationManager.java:899)

at com.sap.ip.me.sync.SyncEventRegistryImpl.fireSyncEventNotifierMethod(SyncEventRegistryImpl.java:311)

at com.sap.ip.me.sync.SyncManagerImpl.raiseSyncEvent(SyncManagerImpl.java:1296)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:420)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:300)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at de.ids.me.ts.TS.synchronize(TS.java:220)

at de.ids.me.ts.TS.doHandleEvent(TS.java:116)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetNotThreadSafe(AbstractMEHttpServlet.java:343)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet(AbstractMEHttpServlet.java:687)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doPost(AbstractMEHttpServlet.java:704)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(AbstractMEHttpServlet.java:311)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

at org.apache.tomcat.core.Handler.service(Handler.java:287)

at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)

at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)

at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)

at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)

at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)

at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)

at java.lang.Thread.run(Thread.java:534)

Knows anybody some kind of failure message and knows whats wrong?

Thanx

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

didn't know anybody this problem?

The trace looks like this:

[20060927 07:36:11:969] I [MI/API/Logging ] ***** LOG / TRACE SWITCHED ON

[20060927 07:36:11:969] I [MI/API/Logging ] ***** Mobile Engine version: MI 25 SP 16 Patch 03 Build 200607280509

[20060927 07:36:11:969] I [MI/API/Logging ] ***** Current timezone: Europe/Berlin

[20060927 07:36:11:969] I [MI/Sync ] Thread=Thread-7 took lock for synchronization.

[20060927 07:36:11:969] P [MI/Sync ] Use following gateway for synchronization: "****"

[20060927 07:36:11:969] D [MI/Sync ] Synchronisation: Fire SyncEvent 0

[20060927 07:36:11:969] P [MI/Core ] Thread Thread-7 switched context to MI2853484152454429 / 4502273827DA004F020000003E99FAC3 (User: (SHARED), MSD: Name: / MOBILEENGINE_JSP (V. 251300), Target=, Type=com.sap.ip.me.core.FrameworkApplicationType) (stack level 1)

[20060927 07:36:11:969] I [MI/API/Sync ] SyncEvent Performing com.sap.ip.me.ccms.remotetracing.RemoteTracingListener on ConversationId MI2853484152454429

[20060927 07:36:11:969] D [MI/Smartsync ] Smart Sync framework: entering new context :MI2853484152454429 - MI2853484152454429

[20060927 07:36:11:969] E [MI/Smartsync ] Transaction FrameworkTransaction (Thread=null): Can not start a new transaction because there is still a pending one.

java.lang.IllegalStateException: Transaction FrameworkTransaction (Thread=null): Can not start a new transaction because there is still a pending one.

at com.sap.ip.me.smartsync.persadp.Transaction.beginTransaction(Transaction.java:57)

at com.sap.ip.me.smartsync.persadp.PersistenceAdapterImpl.beginTransaction(PersistenceAdapterImpl.java:197)

at com.sap.ip.me.smartsync.persadp.PersistenceAdapterImpl.beginTransaction(PersistenceAdapterImpl.java:130)

at com.sap.ip.me.smartsync.data.DataRuntimeImpl.onContextChange(DataRuntimeImpl.java:191)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.publishContextSwitch(SmartSyncRuntimeImpl.java:160)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.enterNewConext(SmartSyncRuntimeImpl.java:190)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.changeContext(SmartSyncRuntimeManager.java:261)

at com.sap.ip.me.smartsync.core.SmartSyncAdapterImpl.changeContext(SmartSyncAdapterImpl.java:96)

at com.sap.ip.me.core.ApplicationManager.switchSmartSyncContext(ApplicationManager.java:899)

at com.sap.ip.me.sync.SyncEventRegistryImpl.fireSyncEventNotifierMethod(SyncEventRegistryImpl.java:311)

at com.sap.ip.me.sync.SyncManagerImpl.raiseSyncEvent(SyncManagerImpl.java:1296)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:420)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:300)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at de.ids.me.ts.TS.synchronize(TS.java:226)

at de.ids.me.ts.TS.doHandleEvent(TS.java:122)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetNotThreadSafe(AbstractMEHttpServlet.java:343)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet(AbstractMEHttpServlet.java:687)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doPost(AbstractMEHttpServlet.java:704)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(AbstractMEHttpServlet.java:311)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

at org.apache.tomcat.core.Handler.service(Handler.java:287)

at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)

at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)

at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)

at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)

at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)

at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)

at java.lang.Thread.run(Unknown Source)

[20060927 07:36:11:979] E [AppLog/MI/API/Sync ] Problems while sync event processing

java.lang.RuntimeException: Transaction FrameworkTransaction (Thread=null): Can not start a new transaction because there is still a pending one.

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.publishContextSwitch(SmartSyncRuntimeImpl.java:166)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.enterNewConext(SmartSyncRuntimeImpl.java:190)

at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.changeContext(SmartSyncRuntimeManager.java:261)

at com.sap.ip.me.smartsync.core.SmartSyncAdapterImpl.changeContext(SmartSyncAdapterImpl.java:96)

at com.sap.ip.me.core.ApplicationManager.switchSmartSyncContext(ApplicationManager.java:899)

at com.sap.ip.me.sync.SyncEventRegistryImpl.fireSyncEventNotifierMethod(SyncEventRegistryImpl.java:311)

at com.sap.ip.me.sync.SyncManagerImpl.raiseSyncEvent(SyncManagerImpl.java:1296)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:420)

at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:300)

at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)

at de.ids.me.ts.TS.synchronize(TS.java:226)

at de.ids.me.ts.TS.doHandleEvent(TS.java:122)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGetNotThreadSafe(AbstractMEHttpServlet.java:343)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doGet(AbstractMEHttpServlet.java:687)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.doPost(AbstractMEHttpServlet.java:704)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at com.sap.ip.me.api.runtime.jsp.AbstractMEHttpServlet.service(AbstractMEHttpServlet.java:311)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

at org.apache.tomcat.core.Handler.service(Handler.java:287)

at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)

at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)

at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)

at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)

at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)

at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)

at java.lang.Thread.run(Unknown Source)

Thanx