Transactions 在DB2中设置最大事务持续时间

Transactions 在DB2中设置最大事务持续时间,transactions,db2,Transactions,Db2,在DB210.1中,有没有办法设置事务的最大持续时间 我的应用程序在数据库上进行了大约10分钟的查询。但是,我的应用程序只等待240秒,因此在此之后事务将超时。 但是在我的db监视器上,我看到查询仍然在运行,并且使用了大量CPU。 我还想停止该查询,因为我的应用程序无论如何都不会看到结果(使用当前配置)。有没有办法配置DB2来停止这种长时间运行的查询 在我的应用程序中,我运行以下命令: List<MyData> result = query.getResultList(); 尽管查

在DB210.1中,有没有办法设置事务的最大持续时间

我的应用程序在数据库上进行了大约10分钟的查询。但是,我的应用程序只等待240秒,因此在此之后事务将超时。 但是在我的db监视器上,我看到查询仍然在运行,并且使用了大量CPU。 我还想停止该查询,因为我的应用程序无论如何都不会看到结果(使用当前配置)。有没有办法配置DB2来停止这种长时间运行的查询

在我的应用程序中,我运行以下命令:

List<MyData> result = query.getResultList();
尽管查询命令没有被中断,但会一直等到数据库完成并且我得到一个事务异常。因此,连接仍然完好无损,但我的事务在此之前已超时。
(应用程序正在WAS 8.0上运行)

我猜查询继续执行的原因是,运行它的连接返回到池中时,它没有关闭

DB2forLUW包括WorkloadManager特性,它允许您为特定的可识别工作负载定义各种阈值,并在超过阈值时执行一些操作,包括停止正在运行的活动。您可以在手册中找到

请注意,大多数Workload Manager功能都需要针对DB2的Advanced Enterprise Edition许可证

0000000b TimeoutManage I   WTRN0124I: When the timeout occurred the thread with which the transaction is, or was most recently, associated was Thread[WebContainer : 305,5,main]. The stack trace of this thread when the timeout occurred was: 
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:140)