|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-10-28 关键字: db4o C/S 并发
db4o简介: db4o 是一个开源的纯面向对象数据库引擎,对于 Java 与 .NET 开发者来说都是一个简单易用的对象持久化工具,使用简单。 ----------------------------------------------------------------------------------------------------- 对db4o很是感兴趣,最近在学习db4o,学习的过程中,想到一个问题:就是在C/S模式下,多个客户端同时访问数据库,如何保证对全局共享数据的可靠并发访问。例如,在db4o中C/S模式下如何实现并发地安全可靠地生成唯一有序序号。--类似关系数据库中的sequence。 看了db4o API 和相关资料,发现了一下两种方法, 1.信号量方式 ExtObjectContainer类中定义了信号量相关函数。 SetSemaphore,和ReleaseSemaphore。 从帮助文档(SetSemaphore)来看, Possible usecases for semaphores: 可以实现对共享数据的可靠访问。 2.使用Message方式(Db4objects.Db4o.Messaging 命名空间中定义),使用服务器端单例运行一段代码,所有共享相关的处理,交给这段代码来执行。 http://developer.db4o.com/Resources/view.aspx/Reference/Client-Server/Messaging 从实现角度来说,使用信号量加锁方式可能更符合我们以往的编程习惯(多线程并发编程)。而基于消息的方式个人直观感觉,系统整体并发性能会更好一些。关于Message方式,从资料得倒以下启示: 1,任意代码可以被在服务器端执行。2,代码将被序列化并通过网络发送,3,更改代码后,应该更新所有客户端。4,MessageSender 对象可以被复用来发送多个Message。5,可以控制服务器做某些事情,比如关闭,重启,备份,限制客户端等。 引用资料。 http://www.ibm.com/developerworks/cn/java/j-lo-db4o1/ http://www.open-open.com/open16610.htm
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
浏览 695 次



