Mongodb read timee out异常解决办法
完整异常信息:
org.springframework.dao.DataAccessResourceFailureException: can't call something : /172.16.9.54:27017/mo; nested exception is com.mongodb.MongoException$Network: can't call something : /172.16.9.54:27017/mo at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:56) at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:1546) at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1450) at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1248) at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1234) at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:471) at com.sitech.persistent.PhoneBillManagerImpl.queryMoSmsObjList(PhoneBillManagerImpl.java:144) at com.sitech.mas.periodTask.impl.SmsMoPhoneBillTask.processTask(SmsMoPhoneBillTask.java:29) at com.sitech.mas.periodTask.PeriodTaskHandler.doTask(PeriodTaskHandler.java:20) at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: com.mongodb.MongoException$Network: can't call something : /172.16.9.54:27017/mo at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:292) at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:256) at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:289) at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:274) at com.mongodb.DBCursor._check(DBCursor.java:368) at com.mongodb.DBCursor._hasNext(DBCursor.java:459) at com.mongodb.DBCursor.hasNext(DBCursor.java:484) at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1444) ... 20 more Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) at org.bson.io.Bits.readFully(Bits.java:46) at org.bson.io.Bits.readFully(Bits.java:33) at org.bson.io.Bits.readFully(Bits.java:28) at com.mongodb.Response.<init>(Response.java:40) at com.mongodb.DBPort.go(DBPort.java:124) at com.mongodb.DBPort.call(DBPort.java:74) at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:283) ... 27 more
最后的read timed out是关键
异常原因是在进行数据操作时过长时间没有返回结果。
解决办法:设置SocketTimeout
spring配置如下:
<mongo:options connections-per-host="500" socket-timeout="5000" max-wait-time="5000" threads-allowed-to-block-for-connection-multiplier="1000" connect-timeout="30000"/>
Spring整合MongoDB配置信息参考:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<!-- Connection to MongoDB server -->
<mongo:mongo id="replicaSetMongo" replica-set="192.168.1.190:27017">
<mongo:options connections-per-host="100"
threads-allowed-to-block-for-connection-multiplier="10"
connect-timeout="30000"
max-wait-time="5000"
auto-connect-retry="true"
socket-keep-alive="true"
socket-timeout="5000"
slave-ok="true"
write-number="1"
write-timeout="0"
write-fsync="true"/>
</mongo:mongo>
<mongo:db-factory
id="mongoDbFactory"
host="192.168.1.190"
port="27017"
dbname="BD_BRANDSOURCE"
username=""
password=""/>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
<constructor-arg name="mongoConverter" ref="mappingConverter"/>
</bean>
<mongo:mapping-converter id="mappingConverter"/>
<!-- Package w/ automagic repositories -->
<mongo:repositories base-package="com.guangjieba.whale.repository.**"/>
</beans>
相关推荐
MongoDB query timeout(解决方案).md
MongoDB connection timeout(解决方案).md
"MongoDB的强事务解决方案" MongoDB是一个流行的NoSQL数据库管理系统,它提供了强的事务解决方案,以满足现代化应用程序的需求。本文档将详细介绍MongoDB的强事务解决方案,包括ACID事务、事务补偿设计模式、...
"MongoDB 安装出错解决方法" MongoDB 是一款非常流行的 NoSQL 数据库管理系统,但是在安装过程中经常会遇到各种错误,特别是在自定义安装路径时。下面我们将详细介绍 MongoDB 安装出错解决方法。 安装路径问题 在...
MongoDB Enterprise Kubernetes Operator是 MongoDB的Operator实现,它可以将创建MongoDB实例的一系列人工操作转化为可扩展、可重复和标准化的方法。同时,它还可以实现MongoDB全生命周期的管理,管理MongoDB集群...
### MongoDB 1067 错误解决方法详解 #### 错误概述 在尝试启动MongoDB服务时,用户可能会遇到“Windows无法启动MongoDB服务 错误1067:进程意外终止”的问题。这一错误提示通常意味着MongoDB服务在启动过程中遇到...
SpringBoot MongoDB 索引冲突分析及解决方法 SpringBoot MongoDB 索引冲突分析及解决方法是 SpringBoot 应用程序中 MongoDB 索引冲突的解决方法。该方法主要通过spring-data-mongo 实现基于 MongoDB 的 ORM-...
MongoDB集群技术详解 MongoDB集群是一个分布式数据库系统...MongoDB集群之异常规范是 MongoDB集群中的一个重要机制,它可以帮助我们记录和追踪 MongoDB集群中的异常和错误,异常规范可以帮助我们快速定位和解决问题。
在这个文件中,有一个方法是parseThinkWhere,这个方法负责解析查询条件并生成MongoDB能够理解的查询语句。根据上述内容,parseThinkWhere方法的switch语句中缺少了对_complex的处理,因此它不支持复合查询。 在...
在数据存储领域,特别是对于JavaScript开发,MongoDB提供了一种高效且易于集成的解决方案。本文将深入探讨如何利用MongoDB进行数据分析和报告,并结合Databazel项目(尽管压缩包中的具体文件未给出详细信息,但我们...
在本压缩包“mongodb_READ-AND-WRITE.rar”中,我们关注的是如何读取文件内容并将其存储到MongoDB数据库中。在这个过程中,首先需要确保MongoDB服务端已经启动。 1. MongoDB基础概念: - 文档型数据库:MongoDB以...
MongoDB server not available(解决方案).md
/usr/local/mongodb/mongodb-linux-2.0.7/bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/mongodb-linux-2.0.7/logs/mongodb.log --logappend --port=27017 --fork 知识点 6:配置...
MongoDB是一种流行的开源NoSQL数据库系统,它以其高性能、高可用性和易扩展性而受到开发者的青睐。MongoDB使用了一种叫做BSON(类似于JSON)的格式来存储数据,它的数据模型与传统的关系型数据库有所不同,更贴近于...
4. 使用 throws 关键字:如果无法在当前方法内处理异常,可以声明方法抛出异常,由调用者处理。 5. 创建自定义异常:当需要特殊处理的异常时,可以创建新的异常类继承自已有的异常类。 这个资料包提供的Java代码...
MongoDB 性能优化方法包括优化 MongoDB 集群、解决 MongoDB 集群抖动问题、内部分享性能优化方法、给重点业务分享 MongoDB 原理等。 知识点4: MongoDB 用户群的重要性 MongoDB 用户群是提高 MongoDB 使用率的关键...
MongoDB 的出现是为了解决大规模数据集合、多种数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。 MongoDB 的特点: 1. NoSQL 型數據庫: MongoDB 属于 NoSQL 型數據庫,泛指非关系型的...
MongoDB 提供了多种高级查询方法,包括: * 条件查询:使用 `$gt`、`$lt`、`$gte`、`$lte` 等操作符。 * 高级查询条件操作符:<, , >, >= 等。 * `$all` 匹配所有。 * `$exists` 判断字段是否存在。 * `$mod` 取模...