我们正在为我们的报告应用程序之一使用Jasper报告,并使用'SELECT'查询来获取数据并使用Jasper报告模板生成报告。他们是一些旧的查询,有些没有调整,他们的性能取决于他们采取的参数。以前的日期范围,类别等Jasper报告导致使用SELECT语句的CURSOR问题
最近,我们遇到了奇怪的游标问题,应用程序所支持的游标数很高,有时高达900,这导致了一些严重的空间问题。我们正在手动关闭它们以暂时解决此问题。然而,这个问题一再出现,并且一直是一个严重的问题。
我对'SELECT'语句的理解是他们会隐式使用CURSOR方法,但要确保一旦操作完成,它们就会关闭。而且我们对应用程序方面没有太多的控制。
调试/故障排除问题:
- 数据库使用 - 甲骨文,贾斯珀 - JasperReports的-3.7.0,ODBC驱动程序 - ojdbc14
我们跑不过DBA查询,看看有没问题,它只是一个 定期SELECT查询,我们没有明确地创建任何游标。
将DB调用更改为只读状态,不起作用。
看起来像Jasper服务器使用常规的JDBC准备语句 - ODBC 驱动程序 - ojdbc14。
没有使用分页。
问题:
我们走出引线在这个问题上,如果有人能帮助我们这一点,将是巨大的。
编辑
SID = 4385具有带有开放光标的计数
SQL_ID COUNT(*)
- djuwsn5numsqv以下SQL 2
- fw5920rbrun82 131 0wk7fbztn67zh 1
- c29qmb59gggtv 1
- 6y1ajq8xaw294 1
- 9q3btvwzg96k6 487 ------- >>>
- 3zzkryq60kua1 1
- anp287ycdrnp6 1
- 58tzy7dhpwnq4 1
- cfgz3kzhx53jy 1
- 0bxwy62tx9n2w 1
- cygg3t2hc6mr2 12
- 29s08m4n6xuwt 1
sql_id = 9q3btvwzg96k6不断打开新的游标。
您是否收到错误消息?它是游标还是会话?如果你得到一个ORA-xxxxx消息,它会帮助你发布它。 –
打开jasper-reports中的日志记录以获取更多信息log4j.logger.net.sf.jasperreports.engine.query = debug –
@PetterFriberg我打开了日志记录并监视了几天。没有什么奇怪的,除了它显示结果集被更频繁地迭代。但是,我认为没关系。即使报告正在被各种用户使用。 – puri