Java 从grails应用程序中终止长时间运行的SQL查询
问这个问题可能会让我看起来很愚蠢,但我想消除我脑海中关于这个问题的任何疑问 所以。。问题是— 我们是否可以从我的grails应用程序中中止/终止一个从我的应用程序本身触发的select SQL 用外行的话来说— 我的屏幕上有“搜索”和“停止”按钮 “搜索”按钮上的操作将准备一个select SQL,执行和获取结果将花费相当长的时间 我想中止长时间运行的SQL,而不仅仅是应用程序停止等待结果。它应该通过单击“停止”按钮在后台中止SQL进程 我的数据库是OracleJava 从grails应用程序中终止长时间运行的SQL查询,java,oracle,grails,jakarta-ee,Java,Oracle,Grails,Jakarta Ee,问这个问题可能会让我看起来很愚蠢,但我想消除我脑海中关于这个问题的任何疑问 所以。。问题是— 我们是否可以从我的grails应用程序中中止/终止一个从我的应用程序本身触发的select SQL 用外行的话来说— 我的屏幕上有“搜索”和“停止”按钮 “搜索”按钮上的操作将准备一个select SQL,执行和获取结果将花费相当长的时间 我想中止长时间运行的SQL,而不仅仅是应用程序停止等待结果。它应该通过单击“停止”按钮在后台中止SQL进程 我的数据库是Oracle 请帮我清除脑子里的垃圾 您可能需
请帮我清除脑子里的垃圾 您可能需要使用查询超时。Grails使用Hibernate实现JPA JPA2持久性属性javax.persistence.query.timeout允许您设置查询的超时,前提是底层JDBC驱动程序支持它 因此,将以下内容添加到grails app/conf/Config.groovy中:
javax.persistence.query.timeout=9000
该值以毫秒为单位,因此为9秒。到目前为止您编码了什么?我这样做是因为GORM查询在事务中执行,当控制器呈现给客户端时,事务结束。那么,您是否以某种方式在后台保持事务打开?终止会话通常在数据库级别完成。终止运行时间过长的会话似乎不是一个好的做法。多长时间太长?考虑一个流水线程序来返回最初的几个结果,而用户正在等待其余的结果。