issue with rollbacktransaction after deleterecord

hi, im having some strange behaviour using rollbacktransaction to rollback some deletes.
Im working with servoy 5.2.2 and using DBFs.
The thing is that i have a table view over a related founset with no more than 8 records more or less, and users can add and delete records. Normally when i delete any of those records and then cancel (rollbacktransaction), i have no mayor problems, but when the deleted record is the first one on the list then the cancel process takes really long! if i erase any of the others it just take a sec but if its the first one its a really long and unacceptable wait. Something similar happens sometimes when i erase more than one record (including or not the first one) and then cancel, but its like random, sometimes fast, sometimes not.
So im really confused here, any ideas? any similar problems or something?
thanks in advance

You see this in servoy developer or the webclient?
If that is the case then what you can try if it takes so long that you can go to the admin page and dump the stack at the moment of the wait, maybe we can see what it is doing.

this happens in both developer and client (im using smart client)
ive dumped the stack but this really doesnt tells me anything (most surely cause i dont know how to translate or make this information useful)
if this tells u anything id be glad if u let me know
thanks

Current time: Wed May 25 10:38:09 UYT 2011

Server Information
Servoy version 5.2.2 -build 1002
Port used by RMI Registry: 1099
Repository version 38

Current time: Wed May 25 10:38:09 UYT 2011

Uptime:  6 days 22 hours 37 minutes 50 seconds

JDK Information
java.vm.name=Java HotSpot(TM) Client VM
java.version=1.6.0_23
java.vm.info=mixed mode
java.vm.vendor=Sun Microsystems Inc.

Operating System Information
os.name=Windows Server 2008
os.version=6.0
os.arch=x86

System Information
Heap memory: allocated=190304K, used=108566K, max=253440K
None Heap memory: allocated=69984K, used=69934K, max=163840K

Thread: RMI TCP Connection(210)-10.198.101.151, state: RUNNABLE, total cpu time: 0.0ms, total user time: 0.0ms
  java.net.SocketInputStream.socketRead0(Native Method)
  java.net.SocketInputStream.read(Unknown Source)
  com.sun.net.ssl.internal.ssl.InputRecord.readFully(Unknown Source)
  com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
  com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
  com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
  com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
  java.io.BufferedInputStream.fill(Unknown Source)
  java.io.BufferedInputStream.read(Unknown Source)
  com.servoy.j2db.rmi.compressing.CompressingInputStream.readIn(CompressingInputStream.java:99)
  com.servoy.j2db.rmi.compressing.CompressingInputStream.read(CompressingInputStream.java:85)
  java.io.FilterInputStream.read(Unknown Source)
  sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
  sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
  sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: RMI RenewClean-[10.198.101.151:3017], state: TIMED_WAITING, total cpu time: 31.25ms, total user time: 31.25ms
  java.lang.Object.wait(Native Method)
  java.lang.ref.ReferenceQueue.remove(Unknown Source)
  sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: RMI TCP Connection(207)-10.198.101.151, state: RUNNABLE, total cpu time: 225109.375ms, total user time: 217765.625ms
  com.hxtt.sql.dn.a(Unknown Source)
  com.hxtt.sql.c4.new(Unknown Source)
  com.hxtt.sql.c4.next(Unknown Source)
  org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
  org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
  org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
  org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
  com.servoy.j2db.dataprocessing.BufferedDataSet.<init>(BufferedDataSet.java:195)
  com.servoy.j2db.dataprocessing.Zu.Za(Zu.java:665)
  com.servoy.j2db.dataprocessing.Zu.Za(Zu.java:123)
  com.servoy.j2db.dataprocessing.Zu.performQuery(Zu.java:418)
  sun.reflect.GeneratedMethodAccessor432.invoke(Unknown Source)
  sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  java.lang.reflect.Method.invoke(Unknown Source)
  sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
  sun.rmi.transport.Transport$1.run(Unknown Source)
  java.security.AccessController.doPrivileged(Native Method)
  sun.rmi.transport.Transport.serviceCall(Unknown Source)
  sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
  sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
  sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: ClientExportNotifyListner[19], state: RUNNABLE, total cpu time: 0.0ms, total user time: 0.0ms
  java.net.SocketInputStream.socketRead0(Native Method)
  java.net.SocketInputStream.read(Unknown Source)
  com.sun.net.ssl.internal.ssl.InputRecord.readFully(Unknown Source)
  com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
  com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
  com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
  com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
  java.io.BufferedInputStream.fill(Unknown Source)
  java.io.BufferedInputStream.read(Unknown Source)
  com.servoy.j2db.rmi.compressing.CompressingInputStream.readIn(CompressingInputStream.java:99)
  com.servoy.j2db.rmi.compressing.CompressingInputStream.read(CompressingInputStream.java:85)
  java.io.DataInputStream.readInt(Unknown Source)
  com.servoy.j2db.rmi.ServerTwoWaySocketFactory$1.run(ServerTwoWaySocketFactory.java:106)

Thread: TaskExecuter[1], state: WAITING, total cpu time: 62.5ms, total user time: 0.0ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  com.servoy.j2db.util.TaskExecuter.run(TaskExecuter.java:70)
  java.lang.Thread.run(Unknown Source)

Thread: FormCache Monitor, state: TIMED_WAITING, total cpu time: 0.0ms, total user time: 0.0ms
  java.lang.Thread.sleep(Native Method)
  com.servoy.j2db.server.headlessclient.dataui.TemplateGenerator$FormCache$1.run(TemplateGenerator.java:122)
  java.lang.Thread.run(Unknown Source)

Thread: TaskExecuter[0], state: WAITING, total cpu time: 250.0ms, total user time: 187.5ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  com.servoy.j2db.util.TaskExecuter.run(TaskExecuter.java:70)
  java.lang.Thread.run(Unknown Source)

Thread: pool-1-thread-3, state: WAITING, total cpu time: 125.0ms, total user time: 93.75ms
  sun.misc.Unsafe.park(Native Method)
  java.util.concurrent.locks.LockSupport.park(Unknown Source)
  java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
  java.util.concurrent.DelayQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: pool-1-thread-2, state: WAITING, total cpu time: 203.125ms, total user time: 125.0ms
  sun.misc.Unsafe.park(Native Method)
  java.util.concurrent.locks.LockSupport.park(Unknown Source)
  java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
  java.util.concurrent.DelayQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: http-8080-7, state: WAITING, total cpu time: 73625.0ms, total user time: 61562.5ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:423)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:449)
  java.lang.Thread.run(Unknown Source)

Thread: http-8080-6, state: RUNNABLE, total cpu time: 1500.0ms, total user time: 859.375ms
  sun.management.ThreadImpl.getThreadInfo0(Native Method)
  sun.management.ThreadImpl.getThreadInfo(Unknown Source)
  sun.management.ThreadImpl.getThreadInfo(Unknown Source)
  com.servoy.j2db.server.servlets.ConfigServlet.Zt(ConfigServlet.java:3647)
  com.servoy.j2db.server.servlets.ConfigServlet.service(ConfigServlet.java:3490)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
  org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
  org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
  org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
  java.lang.Thread.run(Unknown Source)

Thread: http-8080-5, state: WAITING, total cpu time: 27515.625ms, total user time: 20718.75ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:423)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:449)
  java.lang.Thread.run(Unknown Source)

Thread: http-8080-4, state: WAITING, total cpu time: 71937.5ms, total user time: 44843.75ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:423)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:449)
  java.lang.Thread.run(Unknown Source)

Thread: http-8080-3, state: WAITING, total cpu time: 2125.0ms, total user time: 1531.25ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:423)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:449)
  java.lang.Thread.run(Unknown Source)

Thread: http-8080-2, state: WAITING, total cpu time: 9062.5ms, total user time: 8406.25ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:423)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:449)
  java.lang.Thread.run(Unknown Source)

Thread: http-8080-1, state: WAITING, total cpu time: 843.75ms, total user time: 765.625ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:423)
  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:449)
  java.lang.Thread.run(Unknown Source)

Thread: http-8080-Acceptor-0, state: RUNNABLE, total cpu time: 93.75ms, total user time: 31.25ms
  java.net.PlainSocketImpl.socketAccept(Native Method)
  java.net.PlainSocketImpl.accept(Unknown Source)
  java.net.ServerSocket.implAccept(Unknown Source)
  java.net.ServerSocket.accept(Unknown Source)
  org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
  org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:317)
  java.lang.Thread.run(Unknown Source)

Thread: ContainerBackgroundProcessor[StandardEngine[Catalina]], state: TIMED_WAITING, total cpu time: 60625.0ms, total user time: 31062.5ms
  java.lang.Thread.sleep(Native Method)
  org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1579)
  java.lang.Thread.run(Unknown Source)

Thread: ModificationWatcher Task, state: TIMED_WAITING, total cpu time: 15.625ms, total user time: 0.0ms
  java.lang.Thread.sleep(Native Method)
  org.apache.wicket.util.time.Duration.sleep(Duration.java:445)
  org.apache.wicket.util.thread.Task$1.run(Task.java:130)
  java.lang.Thread.run(Unknown Source)

Thread: pool-4-thread-1, state: TIMED_WAITING, total cpu time: 0.0ms, total user time: 0.0ms
  sun.misc.Unsafe.park(Native Method)
  java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
  java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
  java.util.concurrent.DelayQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: RMI Scheduler(0), state: TIMED_WAITING, total cpu time: 234.375ms, total user time: 93.75ms
  sun.misc.Unsafe.park(Native Method)
  java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
  java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
  java.util.concurrent.DelayQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: SocketAccepter[1], state: WAITING, total cpu time: 906.25ms, total user time: 718.75ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  com.servoy.j2db.util.TaskExecuter.run(TaskExecuter.java:70)
  java.lang.Thread.run(Unknown Source)

Thread: Swing-Shell, state: WAITING, total cpu time: 0.0ms, total user time: 0.0ms
  sun.misc.Unsafe.park(Native Method)
  java.util.concurrent.locks.LockSupport.park(Unknown Source)
  java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
  java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: AWT-Windows, state: RUNNABLE, total cpu time: 93.75ms, total user time: 62.5ms
  sun.awt.windows.WToolkit.eventLoop(Native Method)
  sun.awt.windows.WToolkit.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: Java2D Disposer, state: WAITING, total cpu time: 31.25ms, total user time: 31.25ms
  java.lang.Object.wait(Native Method)
  java.lang.ref.ReferenceQueue.remove(Unknown Source)
  java.lang.ref.ReferenceQueue.remove(Unknown Source)
  sun.java2d.Disposer.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: SocketAccepter[0], state: WAITING, total cpu time: 984.375ms, total user time: 781.25ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  com.servoy.j2db.util.TaskExecuter.run(TaskExecuter.java:70)
  java.lang.Thread.run(Unknown Source)

Thread: GC Daemon, state: TIMED_WAITING, total cpu time: 15.625ms, total user time: 15.625ms
  java.lang.Object.wait(Native Method)
  sun.misc.GC$Daemon.run(Unknown Source)

Thread: RMI Reaper, state: WAITING, total cpu time: 0.0ms, total user time: 0.0ms
  java.lang.Object.wait(Native Method)
  java.lang.ref.ReferenceQueue.remove(Unknown Source)
  java.lang.ref.ReferenceQueue.remove(Unknown Source)
  sun.rmi.transport.ObjectTable$Reaper.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: pool-1-thread-1, state: WAITING, total cpu time: 12515.625ms, total user time: 4890.625ms
  sun.misc.Unsafe.park(Native Method)
  java.util.concurrent.locks.LockSupport.park(Unknown Source)
  java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
  java.util.concurrent.DelayQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: RMI TCP Accept-1099, state: WAITING, total cpu time: 109.375ms, total user time: 78.125ms
  sun.misc.Unsafe.park(Native Method)
  java.util.concurrent.locks.LockSupport.park(Unknown Source)
  java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
  java.util.concurrent.ArrayBlockingQueue.take(Unknown Source)
  com.servoy.j2db.rmi.ServerTwoWaySocketFactory$TwoWayServerSocket.accept(ServerTwoWaySocketFactory.java:578)
  sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unknown Source)
  sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: 2 way Server Acceptor, state: RUNNABLE, total cpu time: 437.5ms, total user time: 281.25ms
  java.net.PlainSocketImpl.socketAccept(Native Method)
  java.net.PlainSocketImpl.accept(Unknown Source)
  java.net.ServerSocket.implAccept(Unknown Source)
  com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(Unknown Source)
  com.servoy.j2db.rmi.ServerTwoWaySocketFactory$TwoWayServerSocket.run(ServerTwoWaySocketFactory.java:596)
  java.lang.Thread.run(Unknown Source)

Thread: pool-2-thread-1, state: TIMED_WAITING, total cpu time: 0.0ms, total user time: 0.0ms
  sun.misc.Unsafe.park(Native Method)
  java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
  java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
  java.util.concurrent.DelayQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  java.lang.Thread.run(Unknown Source)

Thread: PingScanner, state: TIMED_WAITING, total cpu time: 0.0ms, total user time: 0.0ms
  java.lang.Object.wait(Native Method)
  com.servoy.j2db.dataprocessing.Zn.run(Zn.java:38)
  java.lang.Thread.run(Unknown Source)

Thread: MessageScheduler, state: TIMED_WAITING, total cpu time: 0.0ms, total user time: 0.0ms
  java.lang.Object.wait(Native Method)
  com.servoy.j2db.dataprocessing.Zp.run(Zp.java:15)
  java.lang.Thread.run(Unknown Source)

Thread: MessagePreHandler, state: WAITING, total cpu time: 0.0ms, total user time: 0.0ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  com.servoy.j2db.dataprocessing.ClientMessagePreQueueHandler.run(ClientMessagePreQueueHandler.java:16)
  java.lang.Thread.run(Unknown Source)

Thread: DestroyJavaVM, state: RUNNABLE, total cpu time: 1093.75ms, total user time: 859.375ms

Thread: Wrapper-Connection, state: RUNNABLE, total cpu time: 171.875ms, total user time: 31.25ms
  java.net.SocketInputStream.socketRead0(Native Method)
  java.net.SocketInputStream.read(Unknown Source)
  java.net.SocketInputStream.read(Unknown Source)
  java.io.DataInputStream.readByte(Unknown Source)
  org.tanukisoftware.wrapper.WrapperManager.handleSocket(WrapperManager.java:4203)
  org.tanukisoftware.wrapper.WrapperManager.run(WrapperManager.java:4558)
  java.lang.Thread.run(Unknown Source)

Thread: Wrapper-Control-Event-Monitor, state: TIMED_WAITING, total cpu time: 62.5ms, total user time: 15.625ms
  java.lang.Thread.sleep(Native Method)
  org.tanukisoftware.wrapper.WrapperManager$3.run(WrapperManager.java:816)

Thread: Attach Listener, state: RUNNABLE, total cpu time: 0.0ms, total user time: 0.0ms

Thread: Signal Dispatcher, state: RUNNABLE, total cpu time: 0.0ms, total user time: 0.0ms

Thread: Finalizer, state: WAITING, total cpu time: 1703.125ms, total user time: 1656.25ms
  java.lang.Object.wait(Native Method)
  java.lang.ref.ReferenceQueue.remove(Unknown Source)
  java.lang.ref.ReferenceQueue.remove(Unknown Source)
  java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

Thread: Reference Handler, state: WAITING, total cpu time: 703.125ms, total user time: 687.5ms
  java.lang.Object.wait(Native Method)
  java.lang.Object.wait(Object.java:485)
  java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)

this is a dump of the server with a real smartclient, that doesn’t tell everything
For this to tell everything is to use the Debug smart client or a webclient.

but what i see now is this:

Thread: RMI TCP Connection(207)-10.198.101.151, state: RUNNABLE, total cpu time: 225109.375ms, total user time: 217765.625ms
com.hxtt.sql.dn.a(Unknown Source)
com.hxtt.sql.c4.new(Unknown Source)
com.hxtt.sql.c4.next(Unknown Source)
org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
com.servoy.j2db.dataprocessing.BufferedDataSet.(BufferedDataSet.java:195)
com.servoy.j2db.dataprocessing.Zu.Za(Zu.java:665)
com.servoy.j2db.dataprocessing.Zu.Za(Zu.java:123)
com.servoy.j2db.dataprocessing.Zu.performQuery(Zu.java:418)

so the smart client does a query and it waits on the result for that.

how can i see exactly what it does using debug?
all i see is that when i hit f5 on the rollbacktransaction call it takes long

no because very likely the client just waits for the database just as the stack above tells us.

But why it does that is the question, is it for example 1 query that just takes a long time, or is it many queries?
This you could ‘debug’ to clear the performance tab on the server. And then trigger the rollback
Look then again in the performance tab and see how many queries are done, and how much time they took.

well ive done what u said and i attached below the queries done when the rollback is called, and the 2 things i see is that on the firstRecord one the load foundset done is kinda weird (seems more complex than the ones done on other record) but the strange thing is that it sais it doesnt take even 1ms doing that or the rollback… so im still kinda confused.
is it normal that it works diferently on the first record than on the other one? if not, why could that be happening?

thanks

I have no idea what it does, for that you really have to profile it, (so really must make stackdumps in a sequence every X seconds as long as it takes for the rollback to finish)
so that you can really see what it constantly is doing.

The sql statements are pretty much the same, only a small variation there, but not in time.