使用Morphia和mongo java驱动程序,我正在连接mongo服务器:
MongoClientOptions.Builder builder = MongoClientOptions.builder();
builder.sslEnabled(true);
builder.sslInvalidHostNameAllowed(true);
builder.maxConnectionIdleTime(0);
MongoClientOptions sslOptions = builder.build();
MongoClient mongoClient = new MongoClient(serverAddressList, Arrays.asList(mongoCredential), sslOptions);
其中serverAddressList是主机:端口列表和使用kerberos身份验证的mongoCredential创建为:
MongoCredential mongoCredential = MongoCredential.createGSSAPICredential("user@REALM.COM");
我想使用以下参数设置自定义连接池参数:
为了实现这一点,我找到了ConnectionPoolSettings。建设者和com.mongodb.联系ConnectionPoolSettings类。
我在这里搜索了一个示例代码:
ConnectionPoolSettings connectionPoolSettings = ConnectionPoolSettings
.builder()
.minSize(MIN_MONGO_POOL_SIZE)
.maxSize(MONGO_POOL_SIZE)
.build();
MongoClientSettings settings = MongoClientSettings
.builder()
.readPreference(MONGO_READ_PREFERENCE)
.credentialList(credentialsList).clusterSettings(clusterSettings)
.connectionPoolSettings(connectionPoolSettings).build();
有人能推荐一种应用这些设置的方法来获取MongoClient的实例吗?
正在使用的库:
dependencies {
compile 'org.mongodb:mongodb-driver-sync:3.4.3'
}
终于找到了设置连接池参数的正确方法,所以在这里回答了我自己的问题。
我在这里浏览了MongoClientations的源代码,其中connectionPool参数的设置如下:
connectionPoolSettings = ConnectionPoolSettings
.builder()
.minSize(getMinConnectionsPerHost())
.maxSize(getConnectionsPerHost())
.maxWaitQueueSize(getThreadsAllowedToBlockForConnectionMultiplier()
* getConnectionsPerHost())
.maxWaitTime(getMaxWaitTime(), MILLISECONDS)
.maxConnectionIdleTime(getMaxConnectionIdleTime(), MILLISECONDS)
.maxConnectionLifeTime(getMaxConnectionLifeTime(), MILLISECONDS)
.build();
我们可以看到minSize和maxSize值是从getMinConnectionsPerHost()获取的
和
getConnectionsPerHost()
方法。因此,要在客户端代码中更改和自定义连接池参数,我们只需将maxConnectionIdleTime和minConnectionsPerHost值添加到生成器中,如下所示:
MongoClientOptions.Builder builder = MongoClientOptions.builder();
builder.maxConnectionIdleTime(0);
builder.minConnectionsPerHost(50);
builder.connectionsPerHost(200);
MongoClientOptions sslOptions = builder.build();
此代码成功地打开了到mongodb服务器主机的最小指定连接。
LOG : 00:20:00,714 INFO [org.mongodb.driver.connection] (pool-1-thread-1) Opened connection [connectionId{localValue:50}] to server.com:27180
我目前正在尝试使用C3P0作为我的JDBC连接池来设置Apache Ignite,但是我注意到由于Ignite驱动程序不支持事务,C3P0是不可用的。 有没有人幸运地用Ignite驱动程序获得了JDBC连接池?建议? 因此,如果我想建立一个JDBC连接池,我需要一个C3P0的替代方案;有什么建议吗?
我们有一个复制设置,其中主节点,辅助节点和仲裁节点运行mongodb社区服务器v3.4.16。 我们正在使用jasperserver从mongoDB数据库生成100个报告。 最近,我们在连接到mongodb服务器时开始面临连接重置问题,因为报告会随机失败。 应用程序(jasperserver)和mongodb在同一个网络中,它们之间没有防火墙。 有人能提供任何指导来进一步调查根本原因,以便解决问题
我试图理解Datastax Cassandra驱动程序中的连池,因此我可以更好地在我的Web服务中使用它。 我有留档的1.0版。它说: Java驱动程序异步使用连接,因此可以在同一个连接上同时提交多个请求。 他们通过连接理解什么?当连接到集群时,我们有:一个生成器、一个集群和一个会话。他们中的哪一个是连接? 例如,有一个参数: MaxSimultaneousRecestsPerConnection
我们正在尝试使用nodejs/mongo原生驱动程序实现下面演示(幻灯片13-18)中概述的策略。 https://www.slideshare.net/mongodb/securing-mongodb-to-serve-an-awsbased-multitenant-securityfanatic-saas-application 总结: 从node.js.创建到mongoDB的连接池 对于租户
我正在尝试使用本教程连接Oracle数据库。当我使用命令行:java-cp c:\jdbc-test\ojdbc6.jar;c:\jdbc-test OracleJDBC我已经将ojdbc6.jar与OracleJDBC.java放在同一个文件夹中。现在我需要在Eclipse上运行它,但它给我一个错误: 是因为OJDBC6.jar位置吗?
任何人都可以帮助我将MongoDB驱动程序配置为JBoss中连接池的核心模块。请参阅我在阅读几篇文章后尝试的以下步骤。 EAP_HOME/modules/com/mongodb/main/ 创建了一个目录,并复制了 mongodb-driver-3.4.0-rc1.jar(rc1 版本,因为稳定版 3.3.0 不包含 MongoClientFactory.class)并创建了模块.xml文件,如下