说明:
Documentum API (DFC) 提供了多种文件上传方法,如果需要上传的文件较大,则需要选择合适的方法。
其中,SetContent()及相关扩展方法需要使用 Byte 数组构造文件内容,因此会消耗较多内存,抛出 java.lang.OutOfMemoryError: Java heap space 异常。可以通过配置 JRE 的 Xms 参数(例:-vmargs -Xmx1024M 表示为 JVM 分配最少1024MB内存)增加内存分配以在一定程度上缓解该问题,但如果系统内存不足,将无法启动程序。
另一方面,SetFile()及相关扩展方法可以接收文件路径,无需将整个文件载入内存,但却需要耗费额外存储空间。应记得在完成处理后删除临时文件。
顺便一提,造成 heap space 不足通常可能有以下原因:线程过多、 java.io.File 类的 deleteOnExit() 方法维护的文件信息过多、大量 I/O 操作、java.util.zip 包的 Deflater 与 Inflater 类的构造函数在 end() 方法被调用前保存了大量信息、java.nio.ByteBuffer 类的 allocateDirect() 或 java.nio.channels.FileChannel类的 map() 方法生成了大量 Buffer 对象实例。