开发者社区> 问答> 正文

Java-SDK的常见问题(四)


内存泄露


调用OSS Java SDK的程序,运行一段时间(看业务量,几小时到几天不等)后内存爆掉。请使用内存分析工具,分析内存使用情况。推荐使用 Eclipse Memory Analyzer(MAT),使用方法见 使用 MAT进行堆转储文件分析。如果分析结果类似下图,PoolingHttpClientConnectionManager占96%的内存。

原因:程序中可能多次new OSSClient,但是没有调用OSSClient.shutdown,造成对象泄漏。提示new OSSClient一定要和OSSClient.shutdown成对使用。

调用OSSClient.shutdown抛异常InterruptedException


调用OSSClient.shutdown抛如下异常:

  1. java.lang.InterruptedException: sleep interrupted
  2.         at java.lang.Thread.sleep(Native Method)
  3.         at com.aliyun.oss.common.comm.IdleConnectionReaper.run(IdleConnectionReaper:76)

原因:OSSClient后台线程IdleConnectionReaper,定时关闭闲置连接。IdleConnectionReaper线程在sleep时,调用shutdown,就会抛出上面的异常。OSS Java SDK v2.3.0已经修复该问题。您可以使用如下代码,忽略该异常:
  1. try {
  2. serviceClient.shutdown();
  3. } catch(Exception e) {
  4. }


其它错误


其它OSS返回错误的排查,请参看 常见错误及排查

展开
收起
青衫无名 2017-10-18 11:23:39 2456 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
跨平台的云服务SDK需要什么 立即下载
如何通过 Serverless 提高 Java 微服务治理效 立即下载
一个跨平台的云服务SDK需要什么 立即下载