java - Mongo 客户端 {Mongo-Java-driver} 创建挂起持续时间。没有抛出异常

标签 java mongodb mongo-java-driver

我有一个 cron 作业在 Linux 机器上运行,每 5 分钟运行一次。该作业执行 Java 类。

    private MongoClient createConnection(int retry,List<ServerAddress> host){  
    try {  
        System.out.println("Retrying----------"+retry);  

        MongoClient client = new MongoClient(host, MongoClientOptions.builder()
                .connectionsPerHost(10)
                .threadsAllowedToBlockForConnectionMultiplier(5)
                .connectTimeout(5000).writeConcern(WriteConcern.NORMAL).build());
        client.getDB("admin").command("ping").throwOnError();  
        retry = 0;  
        return client;  
    }  catch (Exception e) {  
        retry++;  
        if (retry < retryLimit) {  
            createConnection(retry,host);  
        } else {  
            System.out.println("Connection could not be established to host-"+host);  
        }  
        return null;
    }
}

retry 是一个整数值,表示在主机无法访问的情况下可以尝试创建客户端的次数。

我传递的主机列表是 -

        public static List<ServerAddress> HOST_SCRIPT = new ArrayList<ServerAddress>() {
    private static final long serialVersionUID = 1L;
    {
        try {
            add(new ServerAddress("PrimaryHost23", 27017));
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
};

创建 MongoClient 时代码被卡住。这种情况并不总是发生。当我在本地计算机上运行时,代码工作正常并且永远不会挂起。没有抛出异常。
我最近升级了 Linux 机器操作系统(从 CentOS 5 到 CentOS 6)。这是因为这个脚本之前运行良好吗? 请帮忙。

问候, 维巴夫

最佳答案

你能做的就是抛出 mongo 异常,尝试一下 mongo 客户端卡住了,你会知道尝试这个 https://api.mongodb.org/java/2.6/com/mongodb/MongoException.html

关于java - Mongo 客户端 {Mongo-Java-driver} 创建挂起持续时间。没有抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34869081/

相关文章:

java - 部署到 Tomcat 服务器时包含 spring-boot-starter-tomcat 会出现什么问题?

java - 只有一个 Android Service 实例

java - 检查字符串数组中的字符不重复

javascript - 未捕获错误 : When the modifier option is true, 验证对象必须至少有一个运算符

java - Mongo Java 驱动程序通过文本索引搜索

java - 自动将长行的 Java 代码重新格式化为 80 列并仍然可以编译?

node.js - 使用 Express.js 显示来自 MongoDB 的日期

mongodb - 在 mongodb 中更新子文档?

java - 如何使用Mongo Java驱动@BsonCreator注解?

java - Mongo Java 驱动程序 - 如何将子文档更新为数组元素