在一段时间的不活动之后,我在一个find
调用(默认Java驱动程序)中遇到了这个错误。我试图添加一个手动心跳(写入一个封顶的集合),但没有帮助。我只在连接到compose上的实例时才遇到问题(即,不在本地上下文中)。
MongoDB版本是3.2.8,最新的驱动程序(3.3),使用Java8。
知道吗?
编辑应用程序。像这样的属性:
spring.data.mongodb.uri = mongodb+srv://username:password@solarsystem-1tpu0.mongodb.net/dbname
对于常规mongo实例(非集群),请使用以下方法:
spring.data.mongodb.uri = mongodb://username:password@solarsystem-shard-00-00-1tpu0.mongodb.net:27017,hostname2:27017/dbname?ssl=true
我通过将sslEnabled设置为true来解决这个问题,代码示例:
@Bean
public MongoClient mongoClient() {
List<ServerAddress> saList = new ArrayList<>();
saList.add(new ServerAddress("cluster0-shard-00-00-75shm.gcp.mongodb.net", 27017));
saList.add(new ServerAddress("cluster0-shard-00-01-75shm.gcp.mongodb.net", 27017));
saList.add(new ServerAddress("cluster0-shard-00-02-75shm.gcp.mongodb.net", 27017));
char[] pwd = "password".toCharArray();
MongoCredential credential = MongoCredential.createCredential("username", "admin", pwd);
//set sslEnabled to true here
MongoClientOptions options = MongoClientOptions.builder()
.readPreference(ReadPreference.primaryPreferred())
.retryWrites(true)
.requiredReplicaSetName("Cluster0-shard-0")
.maxConnectionIdleTime(6000)
.sslEnabled(true)
.build();
MongoClient mongoClient = new MongoClient(saList, credential, options);
return mongoClient;
}
添加:我的客户端jar是org.mongodb.mongodb驱动程序3.6.4,服务器是GCP上的mongodb图集M0 3.6.6
我在一些文档中找到了它:
对于长时间运行的应用程序,通常谨慎的做法是启用毫秒数的“保持存活”。没有它,一段时间后,你可能会开始看到“连接关闭”错误,这似乎是没有原因的。
检查这是否有帮助。当你连接到mongoDB你可以传递套接字选项给它。我来自节点背景,我们使用以下选项来保持它的活力。
server: {
socketOptions: {
keepAlive: 100,
connectTimeoutMS: 30000
}
}
希望这有帮助!!
问题内容: 一段时间不活动后,在调用(默认Java驱动程序)时收到此错误。我尝试添加手动心跳(写到有上限的收藏集),但没有帮助。我只有在撰写时连接到实例时才收到问题(即不在本地上下文中)。 MongoDB版本为3.2.8,最新驱动程序(3.3),使用Java 8。 任何想法 ? 问题答案: 我同意Rhangaun的回答,这是我在JAVA代码中的解决方案: 这是我的研究链接:http: //3t.i
在我的应用程序中,我使用MongoDB,它在本地与Wildfly 11.0.0一起工作得很好。Alpha1-部署在本地应用程序服务器和本地MongoDB数据库后,应用程序可以在上下文路径和端口上访问-一切都很好。 我的下一步是将这个应用程序部署到服务器maschine上的JBoss服务器上。我将MongoDB URI更改为MongoDB服务器: 如果我部署这个应用程序,我会在底部得到以下日志条目。
我不知道确切的原因,但是我的tableview的滚动条永远不会结束。 这是桌面视图的中间,一切看起来都很好 但当我走到尽头 滚动条没有到达终点... 我想我的约束是可以的(我使用的是autolayout),因为除了滚动条,tableview显示得很好。 我的视图控制器是一个,只包含一个。下面是一个屏幕截图,总结如下: 代码未添加任何约束。你知道我怎么调试这个吗? 提前谢谢 编辑:我试图删除和重新创
当我试图连接到MongoDB Atlas免费层时,我得到了一个过早到达流结束的错误。使用Java1.8和Mongo驱动程序3.8.0。这和Atlas中的集群设置有什么关系吗?我在MongoDB本地主机上使用了相同的程序。 错误:
我在listview上体验过平滑滚动的奇怪行为。我的清单上有30个项目。当我平滑滚动通过 在屏幕的末尾会有一些额外的空间。实际上listview上移了一点。图片附后。但是如果我手动滚动,就没有空间了。如何解决这种行为? 这是我的布局:
我有一个简单的数据结构(下面引用的)要插入到MongoDB中: 我得到以下错误堆栈: 我的mongodb版本是。 更新2 该系统可用于其他写入(即使是大得多的记录)