VB.NET2010调用利用水晶报表2013的API,给Oracle创建session后不能释放session的问题

vb.net2010调用水晶报表的API,先使用PEOpenEngine,然后PEOpenPrintJob,然后使用PESetNthTableLocation后,会自动给... vb.net2010调用水晶报表的API,先使用PEOpenEngine,然后PEOpenPrintJob,然后使用PESetNthTableLocation后,会自动给Oracle创建一个
session来连接数据库,调用数据库中的数据以打印报表,接着用PEStartPrintJob打印报表,然后用PEClosePrintJob来关闭报表,
然后PECloseEngine关闭水晶报表引擎,这个时候创建的session应该是被释放的,但是没有被释放掉是什么原因呢?是用法错误吗?
如果直接在:使用PEOpenEngine,之后接着就使用PECloseEngine,这时候就可以关上session,但是这样一来就不能打印报表了,大神求助..
展开
 我来答
张怡宁_大魔王
推荐于2016-07-28 · TA获得超过401个赞
知道小有建树答主
回答量:479
采纳率:90%
帮助的人:126万
展开全部
你的数据库是出于什么模式运行,是专用模式还是共享模式呢,如果是共享模式的话可能是你的会话数达到上限,执行命令查看show parameter process;再查看select county(*) from v$process;
比较一下这两个数值是否超过进程上限,如果要查看你的数据库是否出于共享模式还是专用模式可以执行如下语句select distinct server from v$session;如果值全是ditected 则为专用模式,如果有shared则为共享模式,共享模式经常会导致楼主这样的问题,导致会话数达到上限,资源部够用的情况
不过,个人感觉的话,报表出错太频繁会影响工作效率,你要是经常出现这类状况的话还是考虑换一下finereport,后者的出错率不会有这么高
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式