当前位置: 首页 > 编程语言 > C#

db4o客户端-服务器似乎一次只能处理一个查询?Share

时间:2023-04-10 19:47:37 C#

db4o客户端/服务器似乎一次只能处理一个查询?我们正在评估db4o(来自http://www.db4o.com的OO-DBMS)。我们已经对客户端/服务器模型进行了性能测试,在该模型中我们启动服务器并同时与几个客户端对话。看起来服务器一次只能处理来自一个客户端的查询。我们是否错过了允许这样做的配置开关?服务器实现如下。客户端为每个操作连接、查询(只读)和断开连接,并且操作在客户端进程中的多个工作线程之后立即运行。如果我们将客户端进程分别定位到同一台服务器,我们会看到相同的行为。有什么建议么?编辑:我们现在已经发现并试验了Lazy和SnapshotQueryModes,虽然这(部分)缓解了阻塞服务器问题,但当我们的客户端(我们运行40个等待1的并发测试客户端)时,我们仍然看到严重的并发问题-300毫秒在发出随机操作请求之前锤击服务器。似乎有来自LINQ提供程序和IO内部的异常:-(publicclassDb4oServer:ServerConfiguration,IMessageRecipient{privateboolstop;#regionIMessageRecipientMemberspublicvoidProcessMessage(IMessageContextcon,objectmessage){if(messageisStopDb4oServer){Close();}}#endregionpublicstaticvoidMain(string[]args){//Ingestion.Do();newDb4oServer().Run(true,true);}publicvoidRun(boolshouldIndex,boolshouldOptimizeNativeQueries){锁(this){varcfg=Db4oFactory.NewConfiguration();if(shouldIndex){cfg.ObjectClass(typeof(Sequence)).ObjectField("k__BackingField").Indexed(true);cfg.ObjectClass(typeof(Vlip))。ObjectField("k__BackingField").Indexed(true);}if(shouldOptimizeNativeQueries){cfg.OptimizeNativeQueries(true);}varserver=Db4oFactory.OpenServer(cfg,FILE,PORT);server.GrantAccess("0","kieran"");server.GrantAccess("1","kieran");server.GrantAccess("2","kieran");server.GrantAccess("3","kieran");//server.Ext()。Configure().ClientServer().SingleThreadedClient(false);服务器.Ext().Configure().MessageLevel(3);server.Ext().Configure().Diagnostic().AddListener(newDiagnosticToConsole());server.Ext().Configure().ClientServer().SetMessageRecipient(this);尝试{if(!stop){Monitor.Wait(this);}}catch(Exceptione){Console.WriteLine(e.ToString());}server.Close();}}publicvoidClose(){lock(this){stop=true;Monitor.PulseAll(这个);好吧,在db40服务器上有一些东西是一次不允许的太多的客户端,因为它对某些人来说太多了,你也锁定了它,这在这种情况下没有帮助。以上是C#学习教程:db4oclient/server好像一次只能处理一个查询?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

猜你喜欢