Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Mongo客户端{Mongo Java驱动程序}创建挂起持续时间。没有引发异常_Java_Mongodb_Mongo Java Driver - Fatal编程技术网

Mongo客户端{Mongo Java驱动程序}创建挂起持续时间。没有引发异常

Mongo客户端{Mongo Java驱动程序}创建挂起持续时间。没有引发异常,java,mongodb,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,

我有一个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;
    }
}
private MongoClient createConnection(int重试,列出主机){
试试{
System.out.println(“重试------------”+重试);
MongoClient=新的MongoClient(主机,MongoClient.builder())
.connectionsPerHost(10)
.用于连接倍增管(5)的螺纹锁片
.connectTimeout(5000).writeConcern(writeConcern.NORMAL.build());
client.getDB(“admin”).command(“ping”).throwOnError();
重试=0;
返回客户;
}捕获(例外e){
重试++;
如果(重试
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();
        }
    }
};
public static List HOST\u SCRIPT=new ArrayList(){
私有静态最终长serialVersionUID=1L;
{
试一试{
添加(新服务器地址(“PrimaryHost23”,27017));
}捕获(未知后异常e){
e、 printStackTrace();
}
}
};
创建iMongoClient时代码被卡住。这种情况并不总是发生。当我在本地机器上运行时,代码运行良好,从不挂起。没有引发异常。
我最近升级了Linux机器操作系统(从CentOS 5升级到CentOS 6)。这可能是因为这个脚本之前工作正常。 请帮忙

问候,,
Vibhav

你能做的就是抛出mongo异常,试试mongo客户端的问题,你会知道的,试试这个

当然,实际上,我是在用java创建爬虫程序,它获取任何特定网站的所有链接,并使用Jsoup和JCABIAPI验证css和html结构,但当我用来存储到数据库的链接时,它没有抛出任何异常,甚至也没有存储数据。所以我做了这个

 catch (MongoException e){
        System.err.print(e.getClass().getName()+": "+e.getMessage());
    }

您是否检查过为您的项目上传的jar的兼容性,比如之前的Mongo Mongo=new Mongo(主机、端口);但这是不赞成的。试着检查一下,甚至检查一下你的MongoDb jar。

你能再解释一下吗。如何在创建mongoClient时知道它是否被卡住?正如您所看到的,我的代码已经在try-catch块中。如果抛出MongoException,则相邻的catch块将捕获该异常。我的代码在准备MongoClient的线路上卡住了。