Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[BUG] Getting attachment on Docker

オープン
#415 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
32/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
docker, java, mariadb

調査の方向性

The failure is AttachmentUtil.getMessageAttachment returning null for an HL7 OBX attachment id under concurrent channels on Docker+MariaDB, while Windows/SQL Server and Linux/MariaDB without Docker do not. Start from how message attachments are stored and retrieved in the engine (the AttachmentUtil path and the 10-attempt retry shown in the screenshot), then compare timing/locking against the provided compose stack. Done when getContentString no longer returns null under parallel reprocessing without a sleep.

索引モデルが issue の本文から書いたものです。

説明

bug

Hi,

We have a problem when getting the contentString of attachments when using OIE on Docker.
More errors occurs when 2 or more channels do the same things.

we use this code :
var attachmentIdRegex = /${ATTACH:([0-9a-fA-F-]{36})}/;
var attachmentId = segment['OBX.5']['OBX.5.5'].toString();

attachmentId = attachmentId.match(attachmentIdRegex)[1];

var attachmentContent = AttachmentUtil.getMessageAttachment(connectorMessage, attachmentId).getContentString();

And the error :
TypeError: Cannot call method "getContentString" of null

But just, reprocess the message and it's sometimes ok, and if we have a lot of messages when the error occurs all the files after have the same issues.

We tried this on other mirth :
On windows with sqlserver => never happened
On linux with mariaDb => never happened

It's seems that the problem comes with Docker.

We also tried to solve this problem using a sleep before the getContentString and we have fewer errors

Source config of the channel:
Image

The attachment is not found after 10 attemps:
Image

Notes : We reproduce the same errors with Mirth 4.5.2 in the same configuration.

The config :

services:

mariadb_oie:
image: mariadb:10.11
container_name: mariadb_oie
restart: always

command:
  [
    '--server-id=1',
    '--max_connections=300',
    '--character-set-server=latin1',
    '--collation-server=latin1_swedish_ci',
    '--default-authentication-plugin=mysql_native_password',
    '--sql-mode=NO_ENGINE_SUBSTITUTION'
  ]

ports:
  - "3308:3306"

environment:
  MARIADB_ROOT_PASSWORD: root123
  MARIADB_DATABASE: oiedb
  MARIADB_USER: oie
  MARIADB_PASSWORD: oie123

volumes:
  - /data/oie/mysql:/var/lib/mysql

networks:
  - oie_net

oie:
image: openintegrationengine/engine:latest
container_name: oie

restart: always

depends_on:
  - mariadb_oie

ports:
  - "9444:8443"
  - "9081:8080"

environment:
  DATABASE: mysql
  DATABASE_URL: jdbc:mysql://mariadb_oie:3306/oiedb?useUnicode=false&characterEncoding=latin1&useSSL=false&allowPublicKeyRetrieval=true
  DATABASE_USERNAME: oie
  DATABASE_PASSWORD: oie123

  MIRTH_ADMIN_USERNAME: toto
  MIRTH_ADMIN_PASSWORD: toto

volumes:
  - /data/oie/appdata:/opt/connect/appdata

networks:
  - oie_net

networks:
oie_net:
driver: bridge

主要言語
Java
スター
227
フォーク
81
平均マージ
3日 6時間
マージ済み PR(30日)
15

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

OpenIntegrationEngine/engine のほかの issue

OpenIntegrationEngine/engine の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。