SQLite: не удается запустить кэшированный оператор

Я использую Orthanc внутри тома Docker.

      volumes: 
  - /mnt/win_share/test:/var/lib/orthanc/db/

Orthanc.jsпуть к файлу для sqlite

        "StorageDirectory": "/var/lib/orthanc/db",

я пытаюсь скопировать путь Orthanc, инициализированный в Docker, на диск, установленный в моей системе Ubuntu, и всякий раз, когда я пытаюсь запустить команды, я получаю следующие ошибки

Ошибки:

  1. Код ошибки SQLite 5
  2. Не удается сериализовать механизм заданий: SQLite: невозможно запустить кэшированный оператор
  3. StatelessDatabaseOperations:3260] ИСКЛЮЧЕНИЕ [SQLite: невозможно запустить кэшированный оператор —]

1 ответ

У меня была аналогичная проблема при попытке запустить два экземпляра Orthanc, указывающих на одну и ту же базу данных SQLite.

По сути, этот код ошибки SQLite 5 означает, что SQLite занят. Единственное решение, которое я смог найти, заключалось в использовании другой базы данных (например, PostgreSQL).

Конфигурационный файл Ортханка:

        "Name": "Orthanc inside Docker",
  "PostgreSQL" : {
    "EnableIndex" : true,
    "EnableStorage" : true,
    "Lock" : false,
    "ConnectionUri" : "postgresql://username:password@host:port/database"
  },  
  "Plugins": [
    "/home/user/orthancdatabases/BuildPostgreSQL/libOrthancPostgreSQLIndex.so",
    "/home/user/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLStorage.so"
  ],

Это происходит потому, что существует база данных, в которой хранятся файлы DICOM и JSON, и другая база данных, в которой хранится иерархия и теги DICOM. Ко второму синхронно обращается Orthanc.

Однако в подключаемом модуле PostgreSQL база данных для иерархии и тегов изолирована должным образом, что позволяет вам обращаться к одной и той же базе данных сколько угодно раз.

Надеюсь это поможет!

Другие вопросы по тегам