问题标签 [db4o]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在 Web 应用程序中使用 db4o IObjectContainer?(容器寿命?)
我正在评估 db4o 的 ASP .NET MVC 项目的持久性。
我想知道关于对象生命周期我应该如何在 Web 上下文中使用 IObjectContainer 。如我所见,我可以执行以下操作之一:
- 在应用程序启动时创建 IObjectContainer 并在整个应用程序生命周期内保持相同的实例。
- 每个请求创建一个 IObjectContainer。
- 启动一个服务器,并为每个数据库交互获取一个客户端 IObjectContainer。
这些选项在性能和并发方面有什么影响?
由于打开 IObjectContainer 时数据库被锁定,我很确定选项 2)会给我带来一些并发问题 - 选项 1 也会出现这种情况吗?
据我了解,如果我从 IObjectContainer 检索对象,它必须由同一个 IObjectContainer 实例保存 - 以便 db4o 将其识别为同一个对象。因此,如果我选择选项 3),我将不得不检索原始对象,进行必要的更改(从修改的对象复制数据),然后使用相同的 IObjectContainer 存储它。这是真的 ?
mongodb - 有没有人使用过包含大量数据的对象数据库?
像 MongoDB 和 db4o 这样的对象数据库最近得到了很多宣传。每个和他们一起玩的人似乎都喜欢它。我猜他们在他们的示例应用程序中处理了大约 640K 的数据。
有没有人尝试过使用具有大量数据(例如 50GB 或更多)的对象数据库?您是否仍然能够对它执行复杂的查询(例如从搜索屏幕)?它与您通常选择的关系数据库相比如何?
我只是好奇。我想尝试对象数据库,但我需要知道它是否适用于示例应用程序以外的东西。
.net - 在中等信任下将 db4o 与多个应用程序实例一起使用
我最近偶然发现了对象数据库引擎db4o,我认为它看起来非常有趣。我想在 ASP.NET MVC 应用程序中使用它,该应用程序将部署到中等信任下的共享托管环境。由于信任级别,我仅限于在嵌入式/进程内模式下使用 db4o。
这本身应该没问题,但托管服务提供商还透明地在多个(负载平衡)服务器实例中运行每个 Web 应用程序,并使用共享存储,我想说这对于每月 10 美元的托管服务商来说通常是一个非常好的功能。但是,由于具有写访问权限的 db4o 服务器实例(无论是进程内还是网络)锁定了底层数据库文件,因此使用同一个文件的多个应用程序实例将不起作用(或者至少我看不到如何它会)。
那么问题来了:在这个特定的环境下是否可以使用db4o?
我考虑过让每个应用程序都有自己的数据库,该数据库使用复制 (dRS) 与主数据库同步,但这种方法很可能会导致非常频繁的双向复制(在每个请求开始时读取主数据库更改,写入每次更改后掌握),我认为这不会非常有效。
Web 应用程序/环境特征总结:
- 阅读密集型(但并非完全只读)
- 在进行更改的时间和更改出现在所有应用程序实例的数据中的时间之间,一些延迟(几秒钟)是可以接受的
- 必须以中等信任度运行
- 不保证负载均衡器使用“粘性会话”
非常感谢所有建议!
c# - EmbeddedConfiguration 中的 UniqueConstraint
我刚开始在 C# 上使用 db4o,但在 DB 上设置 UniqueConstraint 时遇到了麻烦。
这是 db4o 配置
和要序列化的对象:
每次我提交一些值时,“对象引用未设置为对象的实例”。弹出异常,堆栈跟踪指向 UniqueFieldValueConstraint。另外,当我注释掉“Initialize Indexes”注释后的两行时,一切正常(除了可以保存非唯一键,这是个问题)~
提交代码(如果我在这部分也做错了什么:)
请帮忙?先谢谢了~
database - 如何在数据库 DB4O 上使用 distinct
像这样的数据:file1 file2 aaaa milk aaaa red bbbb box bbbb pen cccc rose 我想要得到这样的结果: file1: aaaa bbbb cccc 谁能告诉我如何使用 DB4objects 在线等待....
java - 如何从 Web 应用程序使用 OSGi 服务?
我正在尝试开发一个将从 HTTP OSGi 服务启动的 Web 应用程序,该应用程序需要使用其他 OSGi 服务(db4o OSGi),因为我需要引用一个BundleContext
. 我尝试了两种不同的方法来获取 Web 应用程序中的 OSGi 上下文:
BundleContext
将的存储在Activator
Web 服务可以导入和使用的类的静态字段中。- 使用
FrameworkUtil.getBundle(this.getClass()).getBundleContext()
(作为Web 应用程序this
的一个类的实例MainPage
)。
我认为第一个选项是完全错误的,但无论如何我在两个选项中的类加载器都有问题。在第二个中,它提出了一个LinkageError
:
也尝试过Equinox,我有一个类似的错误:
引发异常的代码是:
在最后一行引发了异常,database
类是ObjectContainer
,如果我将此变量的类型更改Object
为不引发异常,但它作为一个没有用Object
:)
更新:我尝试使用其他服务而不是 db4o,它们按预期工作。也许 db4o OSGi 包在加载它自己的类时做了一些奇怪的事情,或者我没有正确使用它。如果我从非 Web 包中使用它,它也可以工作。
db4o - Db4o Mvc 应用程序架构
我目前正在测试 Db4o 以获得一个 asp.net MVC 2 应用程序的想法,但有一些事情我不太确定最好的方法。
我希望我的应用程序使用可猜测的路由而不是 Id 来引用我的实体,但我也认为我需要某种 Id 来更新场景。
所以例如我想要
/country/usa 而不是 /country/1
我可能想更改键名(可能不是在一个国家/地区,而是在其他实体上)所以我认为我需要一个 Id 作为引用来在更新它的字段之前检索对象。从其他评论看来,UUID 的使用时间似乎有点长,并且更愿意使用我自己的 id 来彻底分离关注点。
看看 KandaAlpha 项目,我不太热衷于设计的某些方面,而是更喜欢 S#arp 架构,他们使用 [domainsignature] 和 EntityWithTypedId、IEntityDuplicateChecker、IHasAssignedId、BaseObject 和 IValidatable 之类的东西他们的实体来控制插入/更新行为,这看起来更清晰、更可扩展,涵盖了验证,并且很好地封装在核心和基础存储库类中。
那么将 S#arp 架构移植到 Db4o 是否有意义,或者我是否仍在考虑 oodb 世界中的 rdbms?
还有在 Db4o 中管理索引(包括上述唯一索引)的最佳实践吗?例如,它们应该基于模型元数据并在引导程序中使用 DI 加载,还是应该更像 Automapper.CreateMap 那样加载?
我知道这是一个漫无边际的问题,但非常感谢任何想法、想法或建议的阅读材料。
谢谢麦克
java - 如何安装和使用 db4o for Android?
我不得不承认我是 Java 和 Android 的新手。db4o 似乎是替代 SQLite http://developer.db4o.com/Platforms/Java/Android.aspx的优秀数据库框架。我想将它用于我的 Android 应用程序。我不知道如何:将 db4o 导入/安装/附加/上传到 Android 手机。我应该将 JAR 文件 db4o-7.12.132.14217-all-java5.jar 放在哪里,以便将其上传到 Android 手机并可以从应用程序中调用它?请多多指教!非常感谢!!!
编辑
除了答案,这里还有官方文档:http: //developer.db4o.com/Documentation/Reference/db4o-7.4/net2/reference/html/reference/platform_specific_issues/android.html
java - 为 Db4oEmbedded EmbeddedConfiguration 设置唯一键约束
我想为 Db4oEmbedded EmbeddedConfiguration 设置唯一键约束。
这是我的代码:
最后一行抛出异常。我不知道为什么。我正在为 Java 运行 Android SDK 1.5 和 db4o 7.12。请多多指教。谢谢!
.net - 在.net 中连接到 db4o 时使用 Windows 集成身份验证?
当针对 db40 服务器打开客户端时,它似乎需要用户名和密码
有没有办法使用集成的 windows 来代替?