Я использую Mirth Connect v3.5.2.b204 для чтения большого файла с разделенными запятыми значениями (147 МБ) для преобразования строк в сообщения HL7 v2.4.
Источник:
Я настроил тип коннектора для чтения файлов, который извлекает записи из каталога, содержащего файл .csv. После обработки файл должен быть перемещен в каталог обработанных файлов.
Пункт назначения:
Тип соединителя указывает на отправителя TCP, куда передаются преобразованные записи .csv в сообщения HL7.
Выпуск:
Кажется, что Mirth продолжает читать файл даже после того, как он завершил обработку последней записи (номер 700k). Следовательно, количество полученных записей продолжает увеличиваться и повторно отправлять уже обработанные сообщения. Обратите внимание, что эта проблема с каналом не возникла в небольших файлах, например 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)