我们最近将主文件服务器从工作站硬件上的 NetWare 更改为实际服务器硬件上的 Windows Server 2003 Enterprise SP2。从那时起,我们偶尔会遇到一个问题,即使用 Crystal Reports 的内部应用程序无法打开服务器上的 .rpt 文件。我终于找到了原因……每当某个 .rpt 文件从所有用户那里获得总共 20 个锁定时,问题就开始了。现在我们只需要弄清楚如何修复它。
当从我们的某个程序调用某个报告文件时,它会锁定服务器。但是,似乎释放锁定的唯一方法是关闭程序本身,而不仅仅是报告。因此,每个用户的锁定不断增加,直到总数达到 20 个,每个人都开始出现错误。现在每个人都必须重新启动程序以释放所有锁定,然后一切都会恢复正常。当所有内容都在 NetWare 服务器上时,这种情况从未发生过,这让我相信这是一个 Windows 问题。但是是 Windows 没有释放锁定吗?有没有办法增加我们看到的这个明显的 20 个锁定限制?每个工作站(Windows 2000 和 XP)上的设置是否会导致这种情况?
我确实在experts-exchange.com上找到了一篇帖子(http://www.experts-exchange.com/Database/Reporting_/Crystal_Reports/Q_20624991.html) 表示 Crystal Reports 将一次打开的单个报告副本数限制为 20 个,并且应用程序可能没有正确清理自身。但是,就像我说的,我们在使用 NetWare 时从未遇到过这个问题,但现在我们在使用 Windows 时遇到了这个问题。
只是想看看是否有人有什么想法。
谢谢!
答案1
听起来,当您使用 Netware 时,CR 无法设置锁,因此您无法让大量客户端连接到该报告。现在它在 Windows 上运行,它已正确设置锁。
答案2
您可以尝试在客户端工作站上禁用机会锁定,作为测试。我不建议在服务器上禁用此功能。
答案3
我们发现 ESRI GIS 用户打开全局模板时也存在同样的问题。第 21 位用户无法在 GIS 中打开文件,Execl 也无法打开,但记事本仍能打开文件。但记事本是唯一一款不锁定文件的应用程序。其他模板在打开时不会锁定文件。我们能以某种方式阻止锁定吗?托管文件的共享是只读的。