Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠错误的等待时间太长_Java_Mongodb_Hibernate Ogm - Fatal编程技术网

Java 休眠错误的等待时间太长

Java 休眠错误的等待时间太长,java,mongodb,hibernate-ogm,Java,Mongodb,Hibernate Ogm,为什么输出流会立即收到错误,而try-catch中的异常会在很长一段时间(甚至几分钟后)之后到达 我使用的是HibernateOGM,它与Mongo数据库接口。 谁能告诉我出了什么问题?如何修复它,或者我应该学习什么来理解它 特别是在登录时:当我试图使用错误的参数访问数据库时。在这里,流警告我发生了com.mongodb.MongoCommandException。而应用程序控件仅在com.mongodb.MongoTimeoutException之后返回给我 下面是系统输出: INFORMAZ

为什么输出流会立即收到错误,而try-catch中的异常会在很长一段时间(甚至几分钟后)之后到达

我使用的是HibernateOGM,它与Mongo数据库接口。 谁能告诉我出了什么问题?如何修复它,或者我应该学习什么来理解它

特别是在登录时:当我试图使用错误的参数访问数据库时。在这里,流警告我发生了
com.mongodb.MongoCommandException
。而应用程序控件仅在
com.mongodb.MongoTimeoutException
之后返回给我

下面是
系统输出

INFORMAZIONI: Exception in monitor thread while connecting to server <hidden>:27017
com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='daniele_cuomo', source='admin', password=<hidden>, mechanismProperties={}}
    at com.mongodb.connection.SaslAuthenticator.wrapInMongoSecurityException(SaslAuthenticator.java:157)
    at com.mongodb.connection.SaslAuthenticator.access$200(SaslAuthenticator.java:37)
    at com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:66)
    at com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:44)
    at com.mongodb.connection.SaslAuthenticator.doAsSubject(SaslAuthenticator.java:162)
    at com.mongodb.connection.SaslAuthenticator.authenticate(SaslAuthenticator.java:44)
    at com.mongodb.connection.DefaultAuthenticator.authenticate(DefaultAuthenticator.java:32)
    at com.mongodb.connection.InternalStreamConnectionInitializer.authenticateAll(InternalStreamConnectionInitializer.java:109)
    at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:46)
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:116)
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:113)
    at java.lang.Thread.run(Thread.java:745)
Caused by: com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server <hidden>:27017. The full response is { "ok" : 0.0, "code" : 18, "errmsg" : "Authentication failed." }
    at com.mongodb.connection.CommandHelper.createCommandFailureException(CommandHelper.java:170)
    at com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:123)
    at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32)
    at com.mongodb.connection.SaslAuthenticator.sendSaslContinue(SaslAuthenticator.java:121)
    at com.mongodb.connection.SaslAuthenticator.access$100(SaslAuthenticator.java:37)
    at com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:63)
INFORMAZIONI:连接到服务器时监视器线程中出现异常:27017
mongodb.MongoSecurityException:验证MongoCredential{mechanism=null,userName='daniele_cuomo',source='admin',password=,mechanismProperties={}的异常
位于com.mongodb.connection.SaslAuthenticator.wrapInMongoSecurityException(SaslAuthenticator.java:157)
访问com.mongodb.connection.SaslAuthenticator.access$200(SaslAuthenticator.java:37)
位于com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:66)
位于com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:44)
位于com.mongodb.connection.SaslAuthenticator.doAssObject(SaslAuthenticator.java:162)
位于com.mongodb.connection.SaslAuthenticator.authenticate(SaslAuthenticator.java:44)
在com.mongodb.connection.DefaultAuthenticator.authenticate上(DefaultAuthenticator.java:32)
位于com.mongodb.connection.InternalStreamConnectionInitializer.authenticateAll(InternalStreamConnectionInitializer.java:109)
在com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:46)上
位于com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:116)
位于com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunName.run(DefaultServerMonitor.java:113)
运行(Thread.java:745)
原因:com.mongodb.MongoCommandException:命令失败,在服务器27017上出现错误18:“身份验证失败”。完整响应为{“确定”:0.0,“代码”:18,“errmsg”:“身份验证失败”。}
位于com.mongodb.connection.CommandHelper.createCommandFailureException(CommandHelper.java:170)
位于com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:123)
位于com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32)
位于com.mongodb.connection.SaslAuthenticator.sendsalcontinue(SaslAuthenticator.java:121)
访问com.mongodb.connection.SaslAuthenticator.access$100(SaslAuthenticator.java:37)
位于com.mongodb.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:63)

com.mongodb.MongoTimeoutException转到此类,并更改超时时间(如果它作为开源库提供)。另请参见此处使用的java api。当然,这取决于此处使用的jdk api。

您可以使用以下属性设置mongodb客户端的属性:

hibernate.ogm.mongodb.driver.*
可以将*替换为中的任何属性,例如:

hibernate.ogm.mongodb.driver.connectTimeout

所有详细信息

您可以添加错误是什么吗?这不是一个有用的描述,您可以粘贴完整的错误,并且可以从mongo系统日志获取信息吗?此外,它看起来像一个超时错误,因此等待到超时时间。除非我们得到完整的描述,否则无法确定它为什么会超时。谢谢,我已经知道这个指南了。但是,我希望配置数据库,以便在发生错误时不必等待超时。我想知道这个错误,我不明白为什么会有超时,如果我已经知道密码是错误的(例如)。此外,在my dependencies.xml中添加以下行:应用程序仍然让我等待太久这似乎是客户端配置中的一个问题,而不是真正的Hibernate OGM。Hibernate OGM只是使用mongo java驱动程序库创建一个客户端。如果您可以告诉我您希望通过哪种配置,我可以检查所有配置是否都按预期工作。我希望处理MongoCommandException,而不是让它对系统执行,等待(过于通用的)MongoTimeoutException。