0

我受到以下限制,无法绕过它:

  1. 只读数据:Microsoft Access
  2. JET 4.0 旧版
  3. ASP.NET 2.0
  4. 共享主机,很少控制。
  5. 或映射器 - LLBL Gen Pro

该应用程序是一个只读工具,可以读取 APP_Data 文件夹中的大量 Microsoft Access 数据库。大部分工作正常。

在负载下,它开始无法访问 Access MDB。

访问 Access MDB 以限制访问错误的最佳策略是什么?现在我尝试,然后 Thread.Sleep(500) 出错,然后再试一次。

4

4 回答 4

2

我认为在访问 Access 数据库时可能有一些方法可以修改隔离/并发/锁定选项,以消除管理锁的开销。也许尝试“模式=共享拒绝无;” 在连接字符串中。如果您随时以任何方式修改数据,我不会使用它,因为它几乎抛弃了您使用数据库获得的所有隔离/并发管理。使用风险自负。

于 2009-11-20T19:09:53.353 回答
1

数据多久更改一次?如果它是只读的,您可以将数据库中的数据加载到缓存中并从那里读取而不是直接从数据库中读取吗?

得到什么样的具体错误。我认为它们是连接错误?

于 2009-11-20T18:58:44.343 回答
1

这是一个可怕的解决方案,但如果您真的“迷失在只有这些工具的荒岛上”并且访问数据库是完全只读的,那么为每个数据库创建多个副本并只允许一定数量的连接到任何一个他们一次。例如,如果您有 2 个访问数据库,MdbAA 和 MdbBB,则创建如下副本:

  • MdbAA01
  • MdbAA02
  • MdbAA03
  • MdbBB01
  • MdbBB02
  • MdbBB03

然后当请求 MdbAA 时,查看当前有多少请求正在访问 MdbAA01,如果超过阈值,则尝试 MdbAA02,等等。对 MdbBB 文件的任何请求执行相同操作。

就像我说的那样,这是一个非常糟糕的解决方案,但如果你真的别无选择,那么它可能对你有用。但实际上,听起来该应用程序已经超过了 Access(和共享主机),所以是时候升级架构了。

于 2009-11-20T19:19:21.150 回答
0

花一点钱,得到一些 sql 存储。您花了多少时间将拐杖安装到损坏的音响系统上?

如果该项目值得做,那么值得投资一些冷硬的现金。

如果企业试图迫使您走这条路,请解释为什么您的选择不可行。如果你一开始就建议了这个选项,那就培养一对并解释你错的原因,但这是你可以解决的方法。

对不起,如果那是轻率的。

于 2009-12-16T12:42:52.970 回答