我正在使用mirth connect 3.0.3,我有一个.xml文件,大小约为85mb,包含一些设备信息。我需要读取此.xml文件并将该数据插入数据库(sql server)。
我面临的问题是,当我尝试读取数据时,它显示的是java堆大小错误: 我将服务器内存增加到1024mb,客户端内存增加到1024mb。 但它显示相同的错误。如果我将内存增加到更多,我就无法开始欢乐连接。
任何建议表示赞赏。 感谢。
答案 0 :(得分:1)
XML文件是否包含多个单独的部分/数据片段,这些部分/数据片段可以分成多个通道消息?如果是这样,请考虑使用批处理适配器。 XML数据类型具有基于元素/标记名称,节点深度/级别或XPath查询进行拆分的选项。所有这些选项目前仍然需要将消息完整地读入内存,但它仍然比以单个消息读取整个XML文档更具内存效率。
您还可以使用JavaScript批处理脚本,在这种情况下,您将获得Java BufferedReader,并且可以使用该脚本来读取文件并一次返回一条消息。在这种情况下,您将不必须将整个文件读入内存。
消息中是否有大量数据不需要在变压器中操作?喜欢,嵌入式图像等?如果是这样,请考虑使用附件处理程序。这样,您可以提取该数据并将其存储一次,而不是在整个消息生命周期中对其进行多次复制和存储(对于Raw / Transformed / Encoded / etc.)。