mongodb grails简单的应用程序超时

时间:2014-11-20 19:29:16

标签: mongodb grails

我遇到mongodb 2.6.5和grails 2.4.4的问题我无法解决。为了隔离问题,我创建了一个简单的2.4.4 grails应用程序,安装了grails mongodb插件(编译":mongodb:3.0.2"),注释掉了hibernate依赖项,添加了我的mongodb数据源,并设置一个简单的域类(com.nerds.Nerd)。当我生成所有然后启动应用程序并导航到NerdController CRUD页面时,我每次都会收到以下错误:

  

处理请求时发生MongoTimeoutException:[GET] / MONGO / nerd / index   10000 ms后等待连接时超时。 Stacktrace如下:   com.mongodb.MongoTimeoutException:等待10000毫秒后连接时超时

我可以使用http://localhost:28017/

通过http访问mongo

我还测试过手动添加数据和从mongo查询。一切正常。

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

  

DatastoreTransactionManager:128 - 为数据存储区事务找到线程绑定的Session [org.grails.datastore.mapping.mongo.MongoSession@e47ee6]

     

DatastoreTransactionManager:128 - 创建名为[null]的新事务:PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly

     

DatastoreTransactionManager:128 - 启动事务回滚

     

DatastoreTransactionManager:128 - 在Session [org.grails.datastore.mapping.mongo.MongoSession@e47ee6]上回滚数据存储区事务

     

DatastoreTransactionManager:128 - 完成内部交易后恢复暂停的交易

任何见解都会有所帮助。感谢

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

来自mongo日志:

  

014-11-18T13:10:13.388-0900 [initandlisten] MongoDB启动:pid = 17275 port = 27017 dbpath = / var / lib / mongodb 32位host = enterprise

来自DataSource.groovy

  

grails {mongo {host =' localhost' port = 27017 databaseName =' mydb' }}

1 个答案:

答案 0 :(得分:0)

我相当肯定这个问题是在mongod方面。我停止了mongo守护程序,将其置于高详细调试模式(使用mongod -vvvv命令),当我在观察控制台输出时尝试复制问题时,问题没有发生。我不完全确定超时的确切原因是什么,但现在还没有发生。感谢您的回复。