DB4O中的Web应用程序

时间:2011-04-08 19:18:00

标签: asp.net db4o

如果我要使用db4o在ASP.NET中开发一个Web应用程序,它将是什么类型的数据库:本地或远程类型,以及为什么?

2 个答案:

答案 0 :(得分:3)

我认为你的意思是“嵌入式”与“客户端服务器”(这是db4o可以运行的两种基本模式。

您很可能想要“客户端服务器”,以便您可以启动多个客户端会话(每个请求可能一个?)。

关于将数据库放在何处的决定取决于您的方案。理想情况下,您将构建您的解决方案,以便您可以通过配置执行此操作。在单个服务器部署的情况下,您可以在进程中为db40提供服务的方式。

但是,如果您需要更多的马力,您可以将db40从另一台机器上运行以分发工作。请注意,在这种情况下,您将有更多的网络开销/延迟。

答案 1 :(得分:2)

db4o的C / S模式意味着网络通信速度较慢。如果您需要多个客户端会话,则不一定需要使用C / S,因为存在一种嵌入式服务器模式,允许并行处理多个事务而无需网络通信的开销:

http://developer.db4o.com/documentation/reference/db4o-8.0/java/reference/Content/client-server/embedded.htm

因此,如果您的用例允许,您可以在Web服务器端打开嵌入式服务器,并允许您的服务器端asp.net应用程序使用多个事务(例如,每个Web会话一个)与db4o通信以持久化对象。请注意,在这种情况下,您无法从客户端持久保存对象(Web客户端会与应用程序的服务器端进行对话,从而处理持久性问题)。

重要说明:在Web场景中,会话结束时关闭db4o对象容器的情况并不少见。如果执行此操作,db4o将不再跟踪该对象,并且将在下一个会话中将其视为新对象。您必须找到一种方法将对象重新连接到服务器端的db4o标识以用于其他会话(您可以通过在服务器端再次查询该对象来实现此目的)。

最佳!

德国