JVM

问题描述

在db2中读取blob数据(60M),然后报出这个异常AttempttofullymaterializelobdatathatistoolargefortheJVM请问怎么解决啊?

解决方案

解决方案二:
内存溢出或不够,还有看看端口是否被占用
解决方案三:
这个很难讲。可能是db2的设置问题。
解决方案四:
为什么要一次性读入呢。做个缓存,读一个部分处理一部分。
解决方案五:
引用3楼hub_hebin的回复:

为什么要一次性读入呢。做个缓存,读一个部分处理一部分。

赞同
解决方案六:
读取数据的问题
解决方案七:
异常AttempttofullymaterializelobdatathatistoolargefortheJVMjvm的空间溢出可能是DB2的设计的数据类型太长了吧
解决方案八:
怎么做缓存啊?能不能详细一点谢谢
解决方案九:
引用3楼hub_hebin的回复:

为什么要一次性读入呢。做个缓存,读一个部分处理一部分。

引用7楼boboo211的回复:

怎么做缓存啊?能不能详细一点 谢谢

那个叫缓冲(Buffer)不是缓存(Cache)
解决方案十:
不是很清楚LZ问题的具体原因。关于Buffer,主要意思是,你的jvm只是一个中间人,没有必要保留着60M的内容,顶多就是客户端有请求,要求下载者60M的东西,那你就分段,每次读1部分到内存,然后写入response的输出流,反之,用户上传也类似。
解决方案十一:
这个只能调整JVM的内存分配了,加大一点....你最好一次读取一行,两行就是120M,肯定要崩溃.String最大可以为4G
解决方案十二:
不清楚~~

时间: 2024-08-07 16:09:53

JVM的相关文章

jvm执行流程(static代码块和初始化快和父类子类执行过程)

大家猜想一下,结果会是什么? 为什么会是这样呢? 1.jvm加载StaticBlock的main方法前,要看SubClass中是否有静态的变量和语句,如果有,先给这些静态的变量分配存储空间和执行静态语句(不是静态方法),且由于SubClass的父类中也有静态的变量,根据继承的特性,则先执行父类Parent的静态数据的初始化,然会执行子类的静态数据的初始化. 2.执行main方法中的new StaticBlock(); 语句,进行Parent的类的实例化因为Parent的静态数据已经实例化,并且在

JVM调优总结(十)-调优方法

JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 JProfiler:商业软件,需要付费.功能强大.详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似.推荐. 如何调优 观察内存释放情况.集合类检查.对象树 上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能 堆信息查看 可查看堆空间大小分配(年轻代

从JVM并发看CPU内存指令重排序(Memory Reordering)

这两天,我拜读了 Dennis Byrne 写的一片博文Memory Barriers and JVM Concurrency (中译文内存屏障与JVM并发). 文中提到: 对主存的一次访问一般花费硬件的数百次时钟周期.处理器通过缓存(caching)能够从数量级上降低内存延迟的成本这些缓存为了性能重新排列待定内存操作的顺序.也就是说,程序的读写操作不一定会按照它要求处理器的顺序执行. 这段话是作者对内存屏障重要性的定义.通过cache降低内存延迟,这句话很好理解.但后面那句"为了性能重排序内存

JVM的重排序

感谢同事[沐剑]的投稿 重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段.重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境. 在并发程序中,程序员会特别关注不同进程或线程之间的数据同步,特别是多个线程同时修改同一变量时,必须采取可靠的同步或其它措施保障数据被正确地修改,这里的一条重要原则是:不要假设指令执行的顺序,你无法预知不同线程之间的指令会以何种顺序执行. 但是在单线程程序中,通常我们容易假设指令是顺序执行的,否则可以想象程序会发生

Java VisualVM远程监控JVM

   VisualVM是一个以监控.显示本地或者远程服务器JVM工作情况,进行性能调优的工具.借助VisualVM,我们可以实现对JVM内存各个子池.CPU.垃圾收集器等方面进行监控,从而发现程序代码中潜在的泄露点和配置问题. 远程监控Linux JVM有两种连接方式: CentOS6.5安装:yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel Ubuntu12.04安装:sudo apt-get install java-7-open

JVM垃圾回收描述

垃圾回收分多级,0级为全部(Full)的垃圾回收,会回收OLD段中的垃圾:1级或以上为部分垃圾回收,只会回收Young中的垃圾,内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况. 当一个URL被访问时,内存申请过程如下: JVM会试图为相关Java对象在Eden中初始化一块内存区域 当Eden空间足够时,内存申请结束.否则到下一步 JVM试图释放在Eden中所有不活跃的对象(这属于1或更高级的垃圾回收):释放后若Eden空间仍然不足以放入新对象,则试图将

使用XMLBean时JVM异常问题的解决

xml|解决|问题 在程序中有需要操作XML的地方,我个人比较喜欢使用XMLBean .为此,我的Eclipse项目列表里面长期都有一个XMLBean工程,用来随时生成Schema.jar(XMLBean).不过今天我把我的经过本地测试的XMLBean部署到一个Server上的Weblogic后,当调用该XMLBean时,居然把jvm搞挂了...Log: An unexpected exception has been detected in native code outside the VM

phpStorm打开提示 failed to create JVM 的解决办法

phpStorm 软件打开运行提示 failed to create JVM的解决办法. 修改文件 D:\Program Files (x86)\JetBrains\PhpStorm 7.1.3\bin\PhpStorm.exe.vmoptions 把内存值改成标准值,文件全部内容如下: -server -Xms128m -Xmx512m -XX:MaxPermSize=250m -XX:ReservedCodeCacheSize=64m -ea -Dsun.io.useCanonCaches=

在Unix/Linux上令(java)JVM支持中文输出

unix|中文 原文: 在Unix/Linux上令(java)JVM支持中文输出 一.在Unix/Linux上令JVM支持中文输出 如果用户使用的是UNIX的远程服务器,就会遇到中文字体在图像中输出的问题,特别是由于许多管理员并不喜欢把主机的locale定为zh(因为意味着可能出乱码或必须装微形图形终端象zhcon,但很多情况下这样的条件并不具备).大部分程序员的JAVA经验苟限于JSP脚本程序,部分熟练的程序员大概开发过中间件.servlet.applet或在WINDOWS上运行的GUI程序.

如何设置Tomcat的JVM虚拟机内存大小

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机.您可以选择自己的需要选择不同的操作系统和对应的JDK的版本(只要是符合Sun发布的Java规范的),但我们推荐您使用Sun公司发布的JDK.确保您所使用的版本是最新的,因为Sun公司和其它一些公司一直在为提高性能而对java虚拟机做一些升级改进.一些报告显示JDK1.4在性能上比JDK1.3提高了将近10%到20%. 可以给Java虚拟机设置使用的内存,但是如果你的选择不对的话,虚拟机不会补偿.可通过命