使用Quartz作业

时间:2015-10-15 16:36:52

标签: groovy quartz-scheduler

我在quartz作业中使用groovy.sql.Sql.rows(sql,parameters)来调用存储过程。有时存储过程超时但它不会将异常传播给调用代码。对于以下代码中的ex,异常永远不会进入try / catch块 -

            try{
                    res = db.rows(sql, parameter) //db is of type groovy.sql.Sql
                } 
                catch(Exception e) {
                    log.error("error in calling the proc", e)
                }

我在日志中看到的唯一一件事是来自sql.SQL的警告,它看起来像这样 -

[quartzScheduler_Worker-1] WARN  sql.Sql  - Failed to execute: { call stored_prod_name(?, ?, ?, ?) } because: JZ006: Caught IOException: java.net.SocketTimeoutException: Read timed out

在此之后我的整个JVM挂起了!我想从超时恢复,但我似乎无法捕获异常。我做错了什么?

0 个答案:

没有答案