0

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

但是当调用Stmt.executeUpdate() 时,存储过程的执行会停止

你能在我犯错误的地方说明一下吗?

谢谢

更多补充——

  1. 我没有得到任何异常。它只是停止了。

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

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

4

1 回答 1

0

我感觉很通灵,所以在没有任何信息的情况下,我将依赖经验......

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

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

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

于 2012-04-06T13:37:52.450 回答