簡體   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