今天遇到了一个很奇怪的问题。
检索一个表,因为这个表非常的大,用到分区表循环检索,一共循环1056次。
使用了多线程之后,如果把检索数据库的方法设置为synchronized,那么每次执行完PreparedStatement之后调用PreparedStatement.close()就会关闭open_cursor。
如果把synchronized去掉。那么调用PreparedStatement.close()之后,open_cursor没有被关闭掉。达到最大游标数后报错。
有人遇到过这个问题吗?如何解决的?
检索一个表,因为这个表非常的大,用到分区表循环检索,一共循环1056次。
使用了多线程之后,如果把检索数据库的方法设置为synchronized,那么每次执行完PreparedStatement之后调用PreparedStatement.close()就会关闭open_cursor。
如果把synchronized去掉。那么调用PreparedStatement.close()之后,open_cursor没有被关闭掉。达到最大游标数后报错。
有人遇到过这个问题吗?如何解决的?
CONNECTION是同一个(框架里写的不能改)。每个pstmt是在调用检索方法的时候创建的