繁体   English   中英

Mirth文件阅读器-Java堆空间错误

[英]Mirth file reader - Java Heap space error

我正在使用Mirth Connect v3.5.2.b204读取大逗号分隔值(147mb)文件,以将行转换为HL7 v2.4消息。

来源:我已经配置了文件读取器连接器类型,该类型从包含.csv文件的目录中提取记录。 处理后,文件应移至处理后的文件目录。

目标:连接器类型指向TCP发送器,将转换后的.csv记录转换为HL7消息。

问题:即使文件处理完最后一条记录(编号700k),Mirth仍会继续读取文件。 因此,接收到的记录数保持递增,并重新发送已处理的消息。 请注意,较小的文件(例如40MB)没有发生此频道问题

解决方法:我停止了欢乐服务,从源文件夹中删除了.csv并重新启动了欢乐服务。 由于文件读取器没有文件可读取,因此计数增加了,转换处理继续进行。

查询:1.此错误是什么意思? 2.转换后的消息是否仍然可行? 查看样本,将.csv行转换为HL7正在执行正确的格式设置。

来自Mirth日志的错误消息:

ERROR 2018-04-30 16:32:07,581 [File Reader Polling Thread on data import (342c3cbc-433b-4965-8323-c2aebff38765) < 342c3cbc-433b-4965-8323-c2aebff38765_Worker-1] com.mirth.connect.connectors.file.FileReceiver: Error reading file D:\Mirth_source\Full Data 2 2018_04_27.txt
Java heap space
ERROR 2018-04-30 16:32:07,604 [File Reader Polling Thread on Patient import (342c3cbc-433b-4965-8323-c2aebff38765) < 342c3cbc-433b-4965-8323-c2aebff38765_Worker-1] com.mirth.connect.connectors.file.FileReceiver: Error processing file in channel: 342c3cbc-433b-4965-8323-c2aebff38765
com.mirth.connect.connectors.file.FileConnectorException: Error reading file D:\Mirth_source\Full Data 2 2018_04_27.txt
Java heap space
    at com.mirth.connect.connectors.file.FileReceiver.processFile(FileReceiver.java:371)
    at com.mirth.connect.connectors.file.FileReceiver.processFiles(FileReceiver.java:247)
    at com.mirth.connect.connectors.file.FileReceiver.poll(FileReceiver.java:203)
    at com.mirth.connect.donkey.server.channel.PollConnectorJob.execute(PollConnectorJob.java:49)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Unknown Source)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
    at java.lang.AbstractStringBuilder.append(Unknown Source)
    at java.lang.StringBuilder.append(Unknown Source)
    at com.mirth.connect.plugins.datatypes.delimited.DelimitedReader.getChar(DelimitedReader.java:551)
    at com.mirth.connect.plugins.datatypes.delimited.DelimitedReader.getColumnValue(DelimitedReader.java:438)
    at com.mirth.connect.plugins.datatypes.delimited.DelimitedReader.getRecord(DelimitedReader.java:232)
    at com.mirth.connect.plugins.datatypes.delimited.DelimitedBatchAdaptor.getMessage(DelimitedBatchAdaptor.java:152)
    at com.mirth.connect.plugins.datatypes.delimited.DelimitedBatchAdaptor.getMessageFromReader(DelimitedBatchAdaptor.java:105)
    at com.mirth.connect.plugins.datatypes.delimited.DelimitedBatchAdaptor.getNextMessage(DelimitedBatchAdaptor.java:96)
    at com.mirth.connect.donkey.server.message.batch.BatchAdaptor.getMessage(BatchAdaptor.java:44)
    at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchBatchMessage(SourceConnector.java:231)
    at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchBatchMessage(SourceConnector.java:196)
    at com.mirth.connect.connectors.file.FileReceiver.processFile(FileReceiver.java:331)

您可能要考虑使用批处理。 您可以通过在源设置中将“ 处理批次 ”设置为“是”来启用它。

这将导致该通道以单独的消息的形式从CSV中读取每条记录,一次一次。 当使用文件阅读器时,这还意味着整个文件不会一次全部读入内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM