2014-11-20 52 views
0

我遇到了MongoDB 2.6.5和Grails 2.4.4的问题,我无法解决。为了隔离问题,我创建了一个简单的2.4.4 grails应用程序,安装了grails mongodb插件(compile“:mongodb:3.0.2”),评论了hibernate的依赖关系,添加了我的mongodb数据源,并设置了一个简单的域类(com.nerds.Nerd)。当我产生-all,然后启动应用程序并导航到NerdController CRUD页面每次我收到以下错误:[GET]/MONGO /书呆子/指数 超时而:处理请求时发生mongodb grails简单的申请超时

MongoTimeoutException在10000毫秒后等待连接。堆栈跟踪如下: com.mongodb.MongoTimeoutException:超时,同时使用http://localhost:28017/

我还测试手动添加的数据和从查询蒙戈后等待10000毫秒

我可以访问蒙戈连接通过http。这一切工作正常。

在超时之前的调试日志中,它看起来像GORM获得了mongo会话,然后尝试回滚事务。

DatastoreTransactionManager:128 - 发现线程绑定的Session [[email protected]对于数据存储事务

DatastoreTransactionManager:128 - 名称为[空]建立新的交易: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,只读

DatastoreTransactionManager:128 - 启动事务回滚

DatastoreTransactionManager:128 - 会话[org.grails.datastore.mapping.mongo.Mong回滚资料储存库交易oSession @ e47ee6]

DatastoreTransactionManager:128 - 内部事务

任何了解将是有益的完成之后恢复暂停交易。谢谢

编辑:mongo数据源非常简单。我使用的是正确的端口。

从蒙戈日志:

014-11-18T13:10:13.388-0900 [initandlisten] MongoDB的起点:PID = 17275端口= 27017 DBPATH =的/ var/lib中/ mongodb的32位主机=企业

从DataSource.groovy中

的grails {蒙戈{主机= '本地主机' 端口= 27017的databaseName = 'MYDB'}}

+0

您正在使用哪种操作系统? – 2014-11-20 20:30:03

+0

Linux enterprise 3.13.0-29-generic#53 -Ubuntu i686 – gJohn 2014-11-20 20:41:30

+0

查看mongod日志文件并查看是否可以看到您的连接进入。我还将通过mongo shell验证您的mongodb状态 - 然后转到您的应用程序。 – alernerdev 2014-11-21 12:13:06

回答

0

我很确定这个问题是在Mongo端。我停止了mongo守护进程,将其置于高度详细的调试模式(使用mongod -vvvv命令),并且当我在观看控制台输出时试图复制问题时,问题没有发生。我不完全确定超时的确切原因是什么,但现在不再发生。感谢您的回应。