今天将消费者线程数提高测试了一下,发现一个奇怪的错误。
--------------------------------------------------------------
ProductDetailDataHandler, [queueSize=1000] exit, current working consumer thread count is: 15Exception in thread "Handler_12" java.lang.NoClassDefFoundError: com/alibaba/intl/app/datamigration/productdetail/util/ProductDetailSerializeObjectConverter
at com.alibaba.intl.app.datamigration.productdetail.ProductDetailDataHandler.insertRecordToDestDB(ProductDetailDataHandler.java:106)
at com.alibaba.intl.app.datamigration.productdetail.ProductDetailDataHandler.handleData(ProductDetailDataHandler.java:79)
at com.alibaba.intl.app.datamigration.productdetail.ProductDetailDataHandler.handleData(ProductDetailDataHandler.java:63)
at com.alibaba.intl.app.datamigration.DataHandler.run(DataHandler.java:77)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: com.alibaba.intl.app.datamigration.productdetail.util.ProductDetailSerializeObjectConverter
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 5 more
Caused by: java.io.FileNotFoundException: /home/forrest/work/data-migration/target/classes/com/alibaba/intl/app/datamigration/productdetail/util/ProductDetailSerializeObjectConverter.class (Too many open files)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at sun.misc.URLClassPath$FileLoader$1.getInputStream(URLClassPath.java:1001)
at sun.misc.Resource.cachedInputStream(Resource.java:59)
at sun.misc.Resource.getByteBuffer(Resource.java:154)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:249)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
... 11 more
报Too many open files,这是因为每个连接其实就是一个文件描述符,所以连接数太多会导致无法打开新文件。默认是1024个openfile。我启动了8个线程。每个线程有128个连接,所有线程共享一个打开文件描述符数组。所以就爆满了。
分享到:
相关推荐
ClassLoader类加载机制和原理详解
ClassLoader类加载器讲解,理解JAVA类加载机制
Java 虚拟机中ClassLoader 相关简介 双亲委托机制 Android 中ClassLoader 简介
自定义classloader的使用
【图解版】深入分析ClassLoader类加载工作机制,从原理到JVM的装载过程,详情分析了ClassLoader加载类以及自定义类加载器的过程,不可用于商业用途,如有版权问题,请联系删除!
ClassLoader的API使用和自定义
ClassLoader原理,ClassLoader原理 ClassLoader原理
ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的
Java ClassLoader定制实例
java自定义类加载classloader文档,包括代码,以及详细的原理及过程
自定义ClassLoader,控制台输入调试。 运行期间 重新载入指定目录的class文件。可实现对于类的功能函数更新。 用到java 反射,@interface 等技术
Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Java 应用的开发人员不需要直接同类加载器进行交互。Java 虚拟机默认的行为就已经足够...
Classloader
类装载器ClassLoader1
用于验证理解Android中Classloader加载类机制的程序demo,从中可以对比DexClassLoader和PathClassLoader的区别联系。
重温java之classloader体系结构(含hotswap) 启动类加载器 扩展类加载器 系统类加载器
一个开源的Cplusplus类加载器,基于它实现了一个简单的例子,见我写的classloader的文章。
JVM内存模型,类加载模式工作机制详细,内存屏障,类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中,验证、准备和解析这三...
java classloader classpath 张孝祥