mongodb-MongoDB 3.0 Java Driver在Linux Server下多线程插入数据异常

问题描述

MongoDB 3.0 Java Driver在Linux Server下多线程插入数据异常

使用MongoDB 3.0版本,部署环境为vSphere构建虚拟机,使用Java driver(3.0.0rc1)多线程写入数据到MongoDB,异常信息如下所示:
Caused by: java.lang.NullPointerException
at com.mongodb.connection.ProtocolHelper.isCommandOk(ProtocolHelper.java:61)
at com.mongodb.connection.WriteCommandProtocol.receiveMessage(WriteCommandProtocol.java:189)
at com.mongodb.connection.WriteCommandProtocol.execute(.java:76)
at com.mongodb.connection.InsertCommandProtocol.execute(InsertCommandProtocol.java:66)
at com.mongodb.connection.InsertCommandProtocol.execute(InsertCommandProtocol.java:37)
at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:155)
at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:219)
at com.mongodb.connection.DefaultServerConnection.insertCommand(DefaultServerConnection.java:108)
at com.mongodb.operation.MixedBulkWriteOperation$Run$2.executeWriteCommandProtocol(MixedBulkWriteOperation.java:416)
at com.mongodb.operation.MixedBulkWriteOperation$Run$RunExecutor.execute(MixedBulkWriteOperation.java:604)
at com.mongodb.operation.MixedBulkWriteOperation$Run.execute(MixedBulkWriteOperation.java:363)
at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:148)
at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:141)
at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:186)
at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:177)
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:141)
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:72)
at com.mongodb.Mongo.execute(Mongo.java:745)
at com.mongodb.Mongo$2.execute(Mongo.java:728)
at com.mongodb.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:482)
at com.mongodb.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:277)

该异常为偶发性异常,在Windows上,Eclipse环境下,多线程测试,该异常完全不发生,当代码迁移到虚拟服务器上时,该异常偶尔发生;

有大牛遇到过类似情况吗?求教..

时间: 2024-12-22 03:00:31

mongodb-MongoDB 3.0 Java Driver在Linux Server下多线程插入数据异常的相关文章

java如何修改linux服务器下txt文件,

问题描述 java如何修改linux服务器下txt文件, 在linux服务器下面,有个txt文件,里面有三条数据,如何修改指定的那一条数据,那如何定位到指定的数据?比如我想修改2 55 66 77这条数据怎么定位到这条数据?txt文件内容格式如下:1 22 33 442 55 66 773 88 99 781 yy uu pp2 jj kk hh1 rr tt ww2 ww qq ee3 qq ff gg 解决方案 http://blog.csdn.net/jiangxinyu/article/

Linux系统下mysqlcheck修复数据库命令(详解)_Mysql

mysqlcheck客户端工具可以检查和修复MyISAM表,还可以优化和分析表. 实际上,它集成了mysql工具中check.repair.analyze.optimize的功能. 有3种方式来调用mysqlcheck: shell> mysqlcheck[options] db_name [tables] shell> mysqlcheck[options] ---database DB1 [DB2 DB3...] shell> mysqlcheck[options] --all--d

linux下多线程-linux下 多线程共享数据问题

问题描述 linux下 多线程共享数据问题 环境:linux64位服务器 现有海量文件(按秒级的时间顺序源源不断的来),我需要起多线程读取这些文件,并利用文件内容构建一个比较庞大的数据结构(各种map.list的组合),另外还有一批线程检测这个数据结构某些位置的值并触发具体的任务(当然也可以在构建数据结构的同时进行触发). 问题是: 1.多线程如何并发的构建这个数据结构(结构中的list是需要按照文件到来时间排序的),要对数据结构里面的所有数据都上锁么?上锁上在哪?能不上锁么? 2.如何并行的对

求java写的Linux平台下的文件加密解密程序

问题描述 麻烦哪位手头有这种代码的朋友能够不吝赐教,不胜感激!如果有现成代码,还麻烦您能发到liujuguangguang@126.com不胜感激! 解决方案 解决方案二:要沉了!解决方案三:你可以去看一下:javax.crypto.CipherOutputStreamjavax.crypto.CipherInputStream这两个类

linux系统下Rsync远程数据同步命令使用整理

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明. 如果系统没有安装rsync,可以yum或apt-get一下. 命令选项如下,其中我们常用的参数为rsync -avz以及rsync –delete,

rsync一个Linux平台下的远程数据同步工具

rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN快速同步多台主机之间的文件.也可以使用 rsync 同步本地硬盘中的不同目录.rsync 是用于替代 rcp 的一个工具,rsync 使用所谓的 rsync算法 进行数据同步,这种算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. 您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync 的运作机制.rsync 的初始作者是 And

Linux环境下通过rsync+inotify实现数据实时同步

本站一直缺少类似方面教程,今天就补充一下.其中rsync是一个远程数据同步工具,使用方法可以参考之前的文章<linux系统下Rsync远程数据同步命令介绍以及使用整理> ,但数据更新以后数据还需要手工同步,无法实现自动化.这里就借助资料配置一个rsync+innotify实现数据实时同步,解决手工处理烦恼. 环境准备:centos三台 源数据服务器:192.168.1.8 目标服务器:192.168.1.9    192.168.1.10 测试目的:将源服务器的/home/21yunwei 自

udp socket-winsocket recvfrom()在select(0,&amp;amp;amp;fdread,NULL,NULL,NULL)下无法接收数据,产生errors:10059

问题描述 winsocket recvfrom()在select(0,&fdread,NULL,NULL,NULL)下无法接收数据,产生errors:10059 winsocket recvfrom()在select(0,&fdread,NULL,NULL,NULL)下无法接收数据,产生errors:10059.但是在服务端,同样的操作确实可行的,求大牛赐教

MongoDB Plugin 1.0.7,支持主键操作和聚合运算

MongoDB Plugin 具有以下特性: 与 MongoDB 版本同步,完美支持最新的 3.2.6 版本. 使用方式更像是自然语言,用起来更舒适. 简化 mongodb java driver 的操作,降低学习成本. 支持 MongoDB 的授权机制(可以使用用户名和密码登录).支持连接 MongoDB 副本集.读写分离.安全写入.SSL 连接等特性. 内置 JFinal 和 Resty 插件.(基于最新版的 JFinal和 Resty) 本次发布主要改进: 增加索引相关支持 增加Exist