成功的CRUD但是对于lasterror in play reactivemongo 2.3.8

时间:2015-04-14 20:55:08

标签: mongodb play-reactivemongo

已成功使用play(2.3.8)反应式Scala示例代码连接并创建/读取mongo实例但无法动摇LastError,因为我最初错误配置了主机名。启用调试:logger.reactivemongo = DEBUG显示详细信息:

[debug] r.c.a.MongoDBSystem - received a checked write request                          
[debug] r.api.Failover - Got an error, retrying... (try #1 is scheduled in 500 ms)      
reactivemongo.core.actors.Exceptions$PrimaryUnavailableException$: MongoError['No primary node is available!']
        at reactivemongo.core.actors.Exceptions$PrimaryUnavailableException$.<clinit>(actors.scala) ~[reactivemongo_2.11-0.10.5.0.akka23.jar:0.10.5.0.akka23]
        at reactivemongo.core.actors.MongoDBSystem$$anonfun$pickChannel$4.apply(actors.scala:508) ~[reactivemongo_2.11-0.10.5.0.akka23.jar:0.10.5.0.akka23]  
        at reactivemongo.core.actors.MongoDBSystem$$anonfun$pickChannel$4.apply(actors.scala:508) ~[reactivemongo_2.11-0.10.5.0.akka23.jar:0.10.5.0.akka23]  
        at scala.Option.getOrElse(Option.scala:120) ~[scala-library-2.11.4.jar:na]                                                                           
        at reactivemongo.core.actors.MongoDBSystem.pickChannel(actors.scala:508) ~[reactivemongo_2.11-0.10.5.0.akka23.jar:0.10.5.0.akka23]                   
[debug] r.c.a.MongoDBSystem - ConnectAll Job running... Status: Node[wengen:27017: Unknown (1/10 available connections), latency=0], auth=Set()              
[debug] r.c.a.MongoDBSystem - ConnectAll Job running... Status: Node[wengen:27017: Unknown (1/10 available connections), latency=0], auth=Set()              
[debug] r.c.a.MongoDBSystem - ConnectAll Job running... Status: Node[wengen:27017: Unknown (1/10 available connections), latency=0], auth=Set()              
[debug] r.c.a.MongoDBSystem - ConnectAll Job running... Status: Node[wengen:27017: Unknown (1/10 available connections), latency=0], auth=Set()              
[info] r.c.a.MongoDBSystem - The node set is now available                                                                                                   
[info] r.c.a.MongoDBSystem - The primary is now available                                                                                                    
[debug] r.c.a.MonitorActor - set: a primary is available                                                                   

and the insert of the POST is fine but for this lastError:

[debug] r.c.a.MongoDBSystem - Sending request expecting response Request(3001,0,Insert(0,playdb.newpersons),BufferSequence(DynamicChannelBuffer(ridx=0, widx=60, cap=64),WrappedArray()),reactivemongo.api.ReadPreference$Primary$@47979aa3,None) by connection Connection([id: 0xedfcbc47, /192.168.15.46:55680 => wengen/192.168.15.67:27017],Connected,Set(),None) of node wengen:27017                                                                                                                                                                                    
[debug] r.c.a.MongoDBSystem - Got a response from -302203833! Will give back message=Response(MessageHeader(110,45,3001,1),Reply(8,0,0,1),LittleEndianHeapChannelBuffer(ridx=36, widx=110, cap=110),ResponseInfo(-302203833)) to promise scala.concurrent.impl.Promise$DefaultPromise@bd0cdcc                                                                                       
[debug] r.c.a.MongoDBSystem - {3001} it's a getlasterror                                                                                                                                  
[debug] application - Successfully inserted with LastError: reactivemongo.core.commands.LastError: DatabaseException['empty lastError message']     
mongo中的

db.resetError()并没有摆脱这一点。插入物从集合中确认。代码在这里:https://github.com/nanothermite/playrctmongo

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

logback中覆盖:

<logger name="reactivemongo.api.Failover2">
    <level value="INFO"/>
</logger>

<logger name="reactivemongo.core.actors">
    <level value="INFO"/>
</logger>

这会使reactivemongo

的滥用DEBUG消息无声

答案 1 :(得分:1)

正如[debug][info]前缀所示,这不是错误。

当ReactiveMongo驱动程序管理连接池和replicaset时,这是一个详细的日志记录。

  

可以将日志记录级别设置为WARNING以禁止此类消息。