WEB下的水晶报表预览问题(高手帮忙)

zhangjiang264 2009-12-08 11:10:37
现在的做法是:先load水晶报表,然后生成PDF文件到硬盘,最后打开PDF文件。
当用户少一点的时候能够正常使用,但是用户一躲起来使用时:就提示错误:
The maximum report processing jobs limit configured by your system administrator has been reached
网上找到说:
Crystal Report 和ReportDocument都会占用内存,而我们平时并没有显示调用关闭,这样Report Docement
关了之后,Crystal Report依然驻留内存.

但是在代码里,已经释放了内存。
crReportDocument_ap.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, gpath_ap)
crReportDocument_ap.Dispose()

请教高手。
谢谢

...全文
152 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
reason159 2010-07-28
  • 打赏
  • 举报
回复
顶一顶~~~~
zhangjiang264 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 ltxpossible 的回复:]
水晶报表对多任务处理是用限制的
每个CPU核心最多支持几个报表处理(应该是在Export那里)
一般做法都是多进程处理或者设置线程排队处理
PS:多线程处理 一般不好控制(当存在多个报表公用子报表的情况下)
[/Quote]

这位兄弟
能不能贴点代码看看具体做法啊
ltxpossible 2009-12-09
  • 打赏
  • 举报
回复
水晶报表对多任务处理是用限制的
每个CPU核心最多支持几个报表处理(应该是在Export那里)
一般做法都是多进程处理或者设置线程排队处理
PS:多线程处理 一般不好控制(当存在多个报表公用子报表的情况下)
zhangjiang264 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 babyt 的回复:]
引用 11 楼 zhangjiang264 的回复:
各位高手,现在又出现这种错误。
Not enough memory for operation



那就是系统资源不足了,要么数据量太大,要么就是并发大了。
[/Quote]
这位兄弟:
我们是5个人一块儿测试的,刚开始两次是可以正常打印的。
但是差不多第三次的时候,大家都报这个错误了。
Not enough memory for operation
我想问问大家,是不是也有同样的问题。大家是怎么解决的?还是这是crystal report的瓶颈。
没法解决。
冰糖_adam 2009-12-09
  • 打赏
  • 举报
回复
jf
zyploveme 2009-12-09
  • 打赏
  • 举报
回复
顶一下哈
zhangjiang264 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yanm7788 的回复:]
引用 6 楼 cjf111 的回复:
  请问高手区啊

阿泰就是这方面的高手
[/Quote]
阎王爷,帮忙解决一下
yanm7788 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cjf111 的回复:]
  请问高手区啊
[/Quote]
阿泰就是这方面的高手
cjf111 2009-12-08
  • 打赏
  • 举报
回复
请问高手区啊
阿泰 2009-12-08
  • 打赏
  • 举报
回复
1: 修改注册表下面两个键的值。
[HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\InProcServer]
修改"PrintJobLimit"="1000"

[HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\Server]
修改"PrintJobLimit"="1000"

注意,你的版本可能不是10.2

2:即时dispose对象
3:定期重启服务器

这是官方对此问题的解释和解决方法,英文文档,有时间可以详细参考一下
http://download.csdn.net/source/1587653

PS:
无论你怎么设置怎么编程,水晶报表对大并发支持是不足的。
如果并发大到一定程度,需要用到排队和多进程处理机制,这个也是水晶报表服务器版的处理方法。
zhangjiang264 2009-12-08
  • 打赏
  • 举报
回复
关键是少量用户使用正常,用户一多就会提示错误:
The maximum report processing jobs limit configured by your system administrator has been reached

zhangjiang264 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 z307755214 的回复:]
C# codeprotectedvoid Page_UnLoad(object sender, EventArgs e)//页面关闭时释放 {
crReportDocument_ap.Dispose();

}
[/Quote]
请问我的做法有什么不对吗?
雷肿么了 2009-12-08
  • 打赏
  • 举报
回复

protected void Page_UnLoad(object sender, EventArgs e)//页面关闭时释放
{
crReportDocument_ap.Dispose();

}

zhangjiang264 2009-12-08
  • 打赏
  • 举报
回复
自己顶一下,
阿泰 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhangjiang264 的回复:]
各位高手,现在又出现这种错误。
Not enough memory for operation

[/Quote]

那就是系统资源不足了,要么数据量太大,要么就是并发大了。
阿泰 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhangjiang264 的回复:]



1.我注册表里面没有这个键值都是100,一个是75.都是默认的。
  如果都改成1000的话,会不会有什么其他影响啊。。这个是什么概念?

[/Quote]

1:没问题
3:定期重启(比如在晚上的空闲时间)这个基本上是很必要的。
zhangjiang264 2009-12-08
  • 打赏
  • 举报
回复
各位高手,现在又出现这种错误。
Not enough memory for operation
冰糖_adam 2009-12-08
  • 打赏
  • 举报
回复
学习了
zhangjiang264 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 babyt 的回复:]
1: 修改注册表下面两个键的值。 
[HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\InProcServer]
修改"PrintJobLimit"="1000"

[HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\Server]
修改"PrintJobLimit"="1000"

注意,你的版本可能不是10.2

2:即时dispose对象
3:定期重启服务器

这是官方对此问题的解释和解决方法,英文文档,有时间可以详细参考一下
http://download.csdn.net/source/1587653

PS:
无论你怎么设置怎么编程,水晶报表对大并发支持是不足的。
如果并发大到一定程度,需要用到排队和多进程处理机制,这个也是水晶报表服务器版的处理方法。
[/Quote]
请问高手:
1.我注册表里面没有这个键值都是100,一个是75.都是默认的。
如果都改成1000的话,会不会有什么其他影响啊。。这个是什么概念?
2:即时dispose对象,这个已经在代码里面写了
3:定期重启服务器,这个好像不大现实啊。因为服务器上还有其他系统,不只有这个站点。
现在是每次出现问题就需要重启才能解决。客户抱怨这些问题

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧