我不是专业人员,至今还没有工作,所以回答可能没有什么建设性,不过,站在讨论的立场上,我还是可以给你点意见的!
很明显,你的问题出在用户点取消的时候,执行事务的代码无法接收用户的取消信息,因此无法回滚,我不知道有没有相关的监听机制,你可以查一下,如果没有,使用jms中的相关内容,可以获得用户的请求!如果系统中,连jms都不用(毕竟使开发的难度扩大了),那就要在代码的结构方面动动脑筋了!如果你用的是jsp,是不是可以在用一个session级别的变量做标志变量,而在每执行完一个任务的时候,检查这个变量,看看是不是应该回滚,当然,这不算是好的就解决方法,不过,很简单!可能你在实际当中,会发现更好的方法,竟请指教!