将数据库连接作为方法参数传递

时间:2012-04-06 11:29:25

标签: java oracle jdbc

有一个Web应用程序和一个jar应用程序。我在Web应用程序中创建一个连接对象,并将其作为方法参数传递给jar的类,并尝试根据jar中传递的连接执行存储过程。 / p>

但是当执行调用Stmt.executeUpdate()

时,存储过程的执行会停止

如果我犯错误,请你点亮一下吗?

由于

更多补充 -

  1. 我没有得到任何例外。它只是暂停。

  2. 在网络应用程序中
  3. 我这样做 - jar_common_class().deductMoney(Id,paidAmt,vle,cardno,pin,username,Service ,connection ,"");

  4. 然后在jar中我这样做 - public String[] deductMoney(String ID, double amount, String uni, String cardNo, String pin, String username, String service, Connection externalCon, String aff)

1 个答案:

答案 0 :(得分:0)

我感觉很精神,所以没有任何信息我会依赖经验......

我的猜测是存储过程正在更新Web应用程序正在使用的相同数据,并且存储过程试图锁定目标数据,但不能因为Web应用程序正在持有某种锁定关于数据,永远不要放手。因此,存储过程只是(正确地)等待Web应用程序释放其锁定。

要对此进行测试,请直接从命令行调用存储的proc java应用程序,然后它应该暂停,然后终止您的Web应用程序 - 查看存储的proc是否继续并完成。

如果 ,请查看每个应用程序请求的锁类型(例如,Web应用程序的隔离级别可能是“可重复读取”,这通常是一个糟糕的选择)和/或检查何时释放锁等