← Навигация по документации

Более старые релизы — здесь

Установка DCM4CHEE Archive 5.34.3

Содержание - Требования - Загрузка и распаковка дистрибутива бинарного пакета - Инициализация базы данных - H2 - PostgreSQL - MySQL и MariaDB - Firebird - DB2 - Oracle - MS SQL Server - Настройка LDAP-сервера - OpenLDAP - OpenLDAP с конфигурационным файлом slapd.conf - OpenLDAP с динамической конфигурацией времени выполнения - OpenDJ - Apache DS 2.0.0 - Импорт конфигурации по умолчанию в LDAP-сервер - Настройка WildFly

Требования

Загрузка и распаковка дистрибутива бинарного пакета

Бинарные дистрибутивы DCM4CHEE Archive 5.x для различных баз данных можно получить на Sourceforge. Распакуйте (unzip) пакет релиза нужной версии.

Защищённые версии предоставляются для PostgreSQL, MySQL, SQLServer и Oracle.

Инициализация базы данных

Примечание: DCM4CHEE Archive 5.x не предоставляет SQL-скриптов и утилит для миграции схемы базы данных с DCM4CHEE Archive 2.x на DCM4CHEE Archive 5.x.

H2

Нет необходимости инициализировать базу данных перед запуском Wildfly. Но создайте таблицы и индексы с использованием H2 Console перед развёртыванием архива.

PostgreSQL

  1. Создайте пользователя с правом создания баз данных:

    > sudo -u postgres createuser -U postgres -P -d <user-name>
    Enter password for new role: <user-password>
    Enter it again: <user-password>
    
  2. Создайте базу данных:

    > createdb -h localhost -U <user-name> <database-name>
    
  3. Создайте таблицы и индексы:

    > psql -h localhost <database-name> <user-name> < $DCM4CHEE_ARC/sql/psql/create-psql.sql
    > psql -h localhost <database-name> <user-name> < $DCM4CHEE_ARC/sql/psql/create-fk-index.sql
    > psql -h localhost <database-name> <user-name> < $DCM4CHEE_ARC/sql/psql/create-case-insensitive-index.sql
    

MySQL и MariaDB

  1. Создайте пользователя базы данных

    mysql> CREATE USER 'USERNAME'@localhost IDENTIFIED BY 'PASSWORD';
    
  2. Создайте базу данных и предоставьте доступ пользователю::

    > mysql -u root -p<root-password>
    mysql> create database <database-name>;
    mysql> grant all on <database-name>.* to '<user-name>' identified by '<user-password>';
    mysql> quit
    
  3. Создайте таблицы и индексы::

    > mysql -u <user-name> -p<user-password> <database-name> < $DCM4CHEE_ARC/sql/mysql/create-mysql.sql
    

Firebird

  1. Создайте пользователя

    > gsec -user sysdba -password <sysdba-password>
    GSEC> add <user-name> -pw <user-password>
    GSEC> quit
    
  2. Определите имя базы данных в конфигурационном файле aliases.conf:

    <database-name> = <database-file-path>
    
  3. Создайте базу данных, таблицы и индексы

    > isql-fb 
    Use CONNECT or CREATE DATABASE to specify a database
    SQL> create database 'localhost:<database-name>' pagesize 16384
    CON> user '<user-name>' password '<user-password>';
    SQL> in DCM4CHEE_ARC/sql/firebird/create-firebird.sql;
    SQL> exit;
    

DB2

  1. Создайте базу данных и предоставьте пользователю права на создание таблиц (должно совпадать с существующим пользователем ОС)

    > sudo su db2inst1
    > db2
    db2 => create database <database-name> pagesize 16 K
    db2 => connect to <database-name>
    db2 => grant createtab on database to user <user-name>
    db2 => terminate
    
  2. Создайте таблицы и индексы

    > su <user-name>
    Password: <user-password>
    > db2 connect to <database-name>
    > db2 -t < $DCM4CHEE_ARC/sql/db2/create-db2.sql
    > db2 -t < $DCM4CHEE_ARC/sql/db2/create-fk-index.sql
    > db2 terminate
    

Oracle

  1. Подключитесь к Oracle и создайте новое табличное пространство (tablespace)

    $ sqlplus / as sysdba
    SQL> create bigfile tablespace <tablespace-name> datafile '<data-file-location>' size <size>;
    
    Tablespace created.
    
  2. Создайте нового пользователя с привилегиями для нового табличного пространства

    $ sqlplus / as sysdba
    SQL> create user <user-name>
    2  identified by <user-password>
    3  default tabelspace <tablespace-name>
    4  quota unlimited on <tablespace-name>
    5  quota 50M on system;
    
    User created.
    
    SQL> grant create session to <user-name>;
    SQL> grant create table to <user-name>;
    SQL> grant create any index to <user-name>;
    SQL> grant create sequence to <user-name>;
    SQL> exit
    
  3. Создайте таблицы и индексы

    $ sqlplus <user-name>/<user-password>
    SQL> @$DCM4CHEE_ARC/sql/oracle/create-oracle.sql
    SQL> @$DCM4CHEE_ARC/sql/oracle/create-fk-index.sql
    SQL> @$DCM4CHEE_ARC/sql/oracle/create-case-insensitive-index.sql
    

MS SQL Server

Ещё не тестировалось

Настройка LDAP-сервера

OpenLDAP

Бинарные дистрибутивы OpenLDAP доступны для большинства дистрибутивов Linux, а также для Windows.

Альтернативно, настройте OpenLDAP через

См. также Converting old style slapd.conf file to cn=config format

OpenLDAP с динамической конфигурацией времени выполнения

  1. Импортируйте файлы схемы LDAP для конфигурации времени выполнения OpenLDAP, используя утилиту OpenLDAP CLI ldapadd, напр.:

    > sudo ldapadd -Y EXTERNAL -H ldapi:/// -f $DCM4CHEE_ARC/ldap/slapd/dicom.ldif
    > sudo ldapadd -Y EXTERNAL -H ldapi:/// -f $DCM4CHEE_ARC/ldap/slapd/dcm4che.ldif
    > tr -d \\r < $DCM4CHEE_ARC/ldap/slapd/dcm4chee-archive.ldif | sudo ldapadd -Y EXTERNAL -H ldapi:///
    > sudo ldapadd -Y EXTERNAL -H ldapi:/// -f $DCM4CHEE_ARC/ldap/slapd/dcm4chee-archive-ui.ldif
    

    Преобразование разделителей строк из \r\n в \n при импорте $DCM4CHEE/ldap/slapd/dcm4chee-archive.ldif позволяет обойти дефект в ldapadd, распространяемом Ubuntu, касающийся записей с большим объёмом содержимого.

    Для использования против docker-образов примените базовую аутентификацию и пароль (по умолчанию secret), напр.:

     > ldapadd -xw secret -H ldap://localhost -D "cn=admin,dc=dcm4che,dc=org" -f $DCM4CHEE_ARC/ldap/slapd/dicom.ldif
    
  2. Базовый DN каталога (Directory Base DN) и DN корневого пользователя (Root User DN) можно изменить, изменив значения атрибутов

    olcSuffix: dc=nodomain
    olcRootDN: cn=admin,dc=nodomain
    olcRootPW
    

    объекта olcDatabase={1}mdb,cn=config, задав новые значения в LDIF-файле (напр. modify-baseDN.ldif)

    dn: olcDatabase={1}mdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=dcm4che,dc=org
    -
    replace: olcRootDN
    olcRootDN: cn=admin,dc=dcm4che,dc=org
    -
    replace: olcRootPW
    olcRootPW: <{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
    -
    

    Примечание: Для выполнения команд на CentOS7 используйте dn: olcDatabase={2}mdb,cn=config вместо dn: olcDatabase={1}mdb,cn=config.

    Примечание: Замените <{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> на хеш, сгенерированный командой :

    > sudo slappasswd
    

    и примените его с помощью утилиты OpenLDAP CLI ldapmodify, напр.:

    > sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f modify-baseDN.ldif
    

    После этого необходимо создать верхний элемент дерева каталога (dc=dcm4che,dc=org) и объект для учётной записи администратора LDAP (cn=admin,dc=dcm4che,dc=org).

    LDIF-файл slapd_setup_basic.ldif:

    dn: dc=dcm4che,dc=org
    changetype: add
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: Example Organisation name
    dc: dcm4che
    
    dn: cn=admin,dc=dcm4che,dc=org
    changetype: add
    objectClass: simpleSecurityObject
    objectClass: organizationalRole
    cn: admin
    description: LDAP administrator
    userPassword: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

    Для создания этих объектов необходимо использовать root-аккаунт базы данных и ввести пароль администратора LDAP, заданный во время установки

    > ldapmodify -x -W -D cn=admin,dc=dcm4che,dc=org -H ldapi:/// -f slapd_setup_basic.ldif
    

OpenLDAP с конфигурационным файлом slapd.conf

  1. Скопируйте файлы схемы LDAP для OpenLDAP из дистрибутива DCM4CHEE Archive в конфигурационный каталог схемы OpenLDAP:

    > cp $DCM4CHEE_ARC/ldap/schema/* /etc/openldap/schema/ [UNIX]
    > copy %DCM4CHEE_ARC%\ldap\schema\* \Program Files\OpenLDAP\schema\ [Windows]
    
  2. Добавьте ссылки на файлы схемы в slapd.conf, напр.:

    include         /etc/openldap/schema/core.schema
    include         /etc/openldap/schema/dicom.schema
    include         /etc/openldap/schema/dcm4che.schema
    include         /etc/openldap/schema/dcm4chee-archive.schema
    include         /etc/openldap/schema/dcm4chee-archive-ui.schema
    
  3. Базовый DN каталога и DN корневого пользователя задаются в slapd.conf как

    suffix          "dc=nodomain"
    rootdn          "cn=admin,dc=nodomain"
    rootpw          secret
    

    и могут быть изменены на

    suffix          "dc=dcm4che,dc=org"
    rootdn          "cn=admin,dc=dcm4che,dc=org"
    rootpw          secret
    

OpenDJ

  1. Скопируйте файлы схемы LDAP для OpenDJ из дистрибутива DCM4CHEE Archive в конфигурационный каталог схемы OpenDJ:

    > cp $DCM4CHEE_ARC/ldap/opendj/* $OPENDJ_HOME/config/schema/ [UNIX]
    > copy %DCM4CHEE_ARC%\ldap\opendj\* %OPENDJ_HOME%\config\schema\ [Windows]
    
  2. Запустите GUI-утилиту настройки OpenDJ

    > $OPENDJ_HOME/setup
    

    Запишите значения, выбранные для - Порт прослушивателя LDAP (1389) - DN корневого пользователя (cn=Directory Manager) - Пароль корневого пользователя (secret) - Базовый DN каталога (dc=dcm4che,dc=org)

    необходимые для конфигурации LDAP-соединения DCM4CHEE Archive.

  3. После начальной настройки можно запускать и останавливать OpenDJ через

    > $OPENDJ_HOME/bin/start-ds
    > $OPENDJ_HOME/bin/stopt-ds
    

Apache DS 2.0.0

  1. Установите Apache DS 2.0.0-M20 в системе и запустите Apache DS.

  2. Установите Apache Directory Studio 2.0.0-M9 и создайте новое LDAP-соединение с:

    Network Parameter:
        Hostname: localhost
        Port:     10389
    Authentication Parameter:
        Bind DN or user: uid=admin,ou=system
        Bind password:   secret
    
  3. Импортируйте файлы схемы LDAP для Apache DS:

    $DCM4CHEE_ARC/ldap/apacheds/dicom.ldif
    $DCM4CHEE_ARC/ldap/apacheds/dcm4che.ldif
    $DCM4CHEE_ARC/ldap/apacheds/dcm4chee-archive.ldif
    $DCM4CHEE_ARC/ldap/apacheds/dcm4chee-archive-ui.ldif
    

    используя функцию импорта LDIF Apache Directory Studio LDAP Browser.

  4. Можно изменить Базовый DN каталога по умолчанию dc=example,dc=com, изменив значение атрибута

    ads-partitionsuffix: dc=dcm4che,dc=org`
    

    объекта

    ou=config
    + ads-directoryServiceId=default
      + ou=partitions
          ads-partitionId=example
    
    to ads-partitionId=dcm4che
    

    с использованием Apache Directory Studio LDAP Browser.

Примечание : Перезапустите сервис Apache DS, чтобы применить вышеуказанные изменения.

Альтернативно, запустите ApacheDS с использованием docker

Импорт конфигурации по умолчанию в LDAP-сервер

  1. Если это ещё не сделано, установите Apache Directory Studio 2.0.0-M9 и создайте новое LDAP-соединение, соответствующее конфигурации вашего LDAP-сервера, напр.:

    Network Parameter:
        Hostname: localhost
        Port:     389
    Authentication Parameter:
        Bind DN or user: cn=admin,dc=dcm4che,dc=org
        Bind password:   secret
    Browser Options:
        Base DN: dc=dcm4che,dc=org
    
  2. Если настроенный Базовый DN каталога отличается от dc=dcm4che,dc=org, замените все вхождения dc=dcm4che,dc=org в LDIF-файлах

    $DCM4CHEE_ARC/ldap/init-baseDN.ldif
    $DCM4CHEE_ARC/ldap/init-config.ldif
    $DCM4CHEE_ARC/ldap/default-config.ldif
    $DCM4CHEE_ARC/ldap/default-ui-config.ldif
    $DCM4CHEE_ARC/ldap/add-vendor-data.ldif
    

    на ваш Базовый DN каталога, напр.:

    > cd $DCM4CHEE_ARC/ldap
    > sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ init-baseDN.ldif
    > sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ init-config.ldif
    > sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ default-config.ldif
    > sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ default-ui-config.ldif
    > sed -i s/dc=dcm4che,dc=org/dc=my-domain,dc=com/ add-vendor-data.ldif
    
  3. Если в базе данных каталога нет базовой записи, импортируйте $DCM4CHEE_ARC/ldap/init-baseDN.ldif с использованием функции импорта LDIF Apache Directory Studio LDAP Browser.

  4. Если корневые записи конфигурации DICOM отсутствуют в базе данных каталога, импортируйте $DCM4CHEE_ARC/ldap/init-config.ldif с использованием функции импорта LDIF Apache Directory Studio LDAP Browser.

  5. Импортируйте

    с использованием функции импорта LDIF Apache Directory Studio LDAP Browser.

  6. a. Используя Apache Directory Studio : На уровне устройства dcm4chee-arc добавьте новый атрибут dicomVendorData с помощью функции New Attribute (или Ctrl+Shift++) и в его значение загрузите данные, выбрав файл $DCM4CHEE_ARC/ldap/vendor-data.zip. Этот zip-файл содержит XSLT-таблицы стилей, необходимые для
    принуждения (coercion) атрибутов входящих или исходящих DICOM-сообщений и преобразования полей HL7 во входящих / исходящих HL7-сообщениях.

    b. Используя командную строку : Импортируйте данные вендора напрямую, используя скрипт $DCM4CHEE_ARC/ldap/add-vendor-data.ldif. ````

    cd $DCM4CHEE_ARC/ldap ldapadd -xwsecret -Dcn=admin,dc=dcm4che,dc=org -f add-vendor-data.ldif modifying entry "dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org" Проверьте, что данные вендора импортированы в ваш LDAP, используя ldapsearch -LLLsbase -xwsecret -Dcn=admin,dc=dcm4che,dc=org -b "dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org" dicomVendorData | head dn: dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che, dc=org dicomVendorData:: UEsDBAoAAAgAAFRIslIAAAAAAAAAAAAAAAALAAAAdGh1bWJuYWlscy9QSwME FAAACAgANWxIUhgB/i3nDgAADGQAAAwAAABkc3IyaHRtbC54c2ztHWlv28j1e4H+hykjhFZXNiUf8 SWpVS1510Blu7Y2u8AiG1DkyGJLkQw58tGi/70zPIdzkEPJ8aZFgyS2Rc6bd19zuP8cuWcRenFhtI QQgUcYRo7vDbTeXlcDzyvXi87wKwNtiVBwZhhPT097Twd7fvhg9E5PT42f7/9qzELTixZ+uNKGv/8 dAH0C0l+jYI3ACqKlb5PRK1cD0LN82/EeBtqPs8vdEw0YxYDADM0V8MwVHGhPpu3vrkNXG6azur5l uks/Qmcn3ZOuYVurQwuju2uGlmFCFBnji+nhxQ+TiUGG9o0cYAH/0Qwdc+7CdIrID+7gItJABF1oo YFmXJvIeYRjx/JXU9+GrhF/O0IodOZrBH/5MzIfBnq3e9gdHRwf6cAPAf3RyZH+ybhCcEVm5P7IgH VPer1eNrLqpdPT9CWN8CynyvEsd21DsAzhYqBZa8feJ/Tt4WcJd/M38dDANREEKxNZSwG9ifDw20R ````

  7. В соответствии с потребностями настройки вашего приложения, измените Конфигурации, если требуется. Обычно может потребоваться изменить / добавить следующее - AE Title(ы) Архива и соответствующие Веб-приложения - Каталог хранения - AE Title(ы) внешних DICOM-приложений, к которым Архив будет подключаться для DICOM-транзакций - Внешний HL7-приёмник

Настройка WildFly

  1. Скопируйте конфигурационные файлы в установку WildFly:

    > cp -r $DCM4CHEE_ARC/configuration $WILDFLY_HOME/standalone [UNIX]
    > xcopy %DCM4CHEE_ARC%\configuration %WILDFLY_HOME%\standalone\configuration [Windows]
      (Select D = directory)
    

    Примечание: Помимо конфигурации LDAP-соединения dcm4chee-arc/ldap.properties, приватный ключ keystores/key.p12 и доверенный сертификат CA keystores/cacerts.p12, используемые в TLS-соединениях, не хранятся в LDAP.

    Убедитесь, что специфичные для вашего LDAP значения присутствуют в файле dcm4chee-arc/ldap.properties.

  2. a. Вплоть до версии архива 5.23.3 сертифицированная конфигурация Jakarta Full Platform Profile может использоваться как базовая конфигурация. Чтобы сохранить оригинальную конфигурацию WildFly, можно скопировать оригинальный конфигурационный файл для Jakarta Full Platform Profile:

    > cd $WILDFLY_HOME/standalone/configuration/
    > cp standalone-full.xml dcm4chee-arc.xml
    

    b. Начиная с версии Архива 5.24.0, сертифицированная конфигурация Jakarta EE Web Profile может использоваться как базовая конфигурация. Чтобы сохранить оригинальную конфигурацию WildFly, можно скопировать оригинальный конфигурационный файл для Jakarta EE Web Profile:

    > cd $WILDFLY_HOME/standalone/configuration/
    > cp standalone.xml dcm4chee-arc.xml
    
  3. Установите JBoss-модули, содержащие библиотеки DCM4CHE, Keycloak admin client и Apache commons.

    > cd  $WILDFLY_HOME
    > unzip $DCM4CHEE_ARC/jboss-modules/dcm4che-jboss-modules-5.x.x.zip
    
  4. Установите библиотеки JAI Image IO 1.2 как JBoss-модуль (необходимы для сжатия/распаковки, не работает на 64-битных Windows и Mac OS X из-за отсутствия нативных компонентов для этих платформ):

    > cd  $WILDFLY_HOME
    > unzip $DCM4CHEE_ARC/jboss-modules/jai_imageio-jboss-modules-1.2-pre-dr-b04.zip
    
  5. Установите библиотеки jclouds 2.2.1 как JBoss-модули:

    > cd  $WILDFLY_HOME
    > unzip $DCM4CHEE_ARC/jboss-modules/jclouds-jboss-modules-2.2.1-noguava.zip
    
  6. Установите библиотеки ecs-object-client 3.0.0 как JBoss-модули:

    > cd  $WILDFLY_HOME
    > unzip $DCM4CHEE_ARC/jboss-modules/ecs-object-client-jboss-modules-3.0.0.zip
    
  7. Загрузите Client Adapter for Wildfly from Keycloak и распакуйте его внутри WILDFLY_HOME.

    > cd  $WILDFLY_HOME
    > unzip $Downloads/keycloak-wildfly-adapter-dist-15.0.0.zip
    
  8. Кроме H2, необходимо установить JDBC-драйвер для базы данных.

    JDBC-драйвер может быть установлен либо как развёртывание (deployment), либо как core module.

    Для установки в качестве core module распакуйте соответствующий ZIP-файл в $WILDFLY_HOME, напр.:

    > cd $WILDFLY_HOME
    > unzip $DCM4CHEE_ARC/jboss-modules/jdbc-jboss-modules-mysql-8.0.20.zip
    

    Установка как развёртывания ограничена JDBC 4-совместимым драйвером, состоящим из одного JAR. Вы можете взять JAR JDBC-драйвера из включённого ZIP core-модуля или загрузить его из:

  9. Запустите WildFly в standalone-режиме с корректным конфигурационным файлом:

    > $WILDFLY_HOME/bin/standalone.sh -c dcm4chee-arc.xml [UNIX]
    > %WILDFLY_HOME%\bin\standalone.bat -c dcm4chee-arc.xml [Windows]
    

    Убедитесь, что JBoss запустился успешно, напр.:

    ````

    JBoss Bootstrap Environment

    JBOSS_HOME: /home/vrinda/work/archive/wildfly-39.0.0.Final

    JAVA: java

    JAVA_OPTS: -Djdk.serialFilter="maxbytes=10485760;maxdepth=128;maxarray=100000;maxrefs=300000" -Xms64m -Xmx512m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED --add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED

    ========================================================================= Listening for transport dt_socket at address: 8787 13:48:57,697 INFO [org.jboss.modules] (main) JBoss Modules version 2.1.6.Final 13:48:58,941 INFO [org.jboss.msc] (main) JBoss MSC version 1.5.6.Final 13:48:59,158 INFO [org.jboss.as] (MSC service thread 1-2) WFLYSRV0049: WildFly 39.0.0.Final (WildFly Core 31.0.1.Final) starting 13:49:00,811 INFO [org.wildfly.security] (Controller Boot Thread) ELY00001: WildFly Elytron version 2.7.1.Final ......... ......... .........
    13:49:24,433 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 93) WFLYUT0021: Registered web context: '/dcm4chee-arc/xsl' for server 'default-server' 13:49:24,467 INFO [io.undertow.websockets.jsr] (ServerService Thread Pool -- 110) UT026003: Adding annotated server endpoint class org.dcm4chee.arc.ups.rs.EventReportSender for path /aets/{AETitle}/ws/subscribers/{SubscriberAET} 13:49:24,467 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 118) WFLYUT0021: Registered web context: '/dcm4chee-arc/xdsi' for server 'default-server' 13:49:24,467 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 117) WFLYUT0021: Registered web context: '/dcm4chee-proxy' for server 'default-server' 13:49:24,498 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 110) WFLYUT0021: Registered web context: '/dcm4chee-arc' for server 'default-server' 13:49:25,913 WARN [org.dcm4chee.arc.impl.ArchiveDeviceProducer] (ServerService Thread Pool -- 108) UnzipVendorDataToURI=${jboss.server.temp.url}/dcm4chee-arc, but no Vendor Data 13:49:26,392 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Start TCP Listener on /0.0.0.0:11112 13:49:26,985 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-2) Start TCP Listener on /0.0.0.0:2762 13:49:26,986 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-3) Start TCP Listener on /0.0.0.0:2575 13:49:26,987 INFO [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-4) Start TCP Listener on /0.0.0.0:12575 13:49:27,610 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0010: Deployed "dcm4chee-arc-ui2-5.34.3.war" (runtime-name : "dcm4chee-arc-ui2-5.34.3.war") 13:49:27,611 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0010: Deployed "dcm4chee-arc-ear-5.34.3-psql.ear" (runtime-name : "dcm4chee-arc-ear-5.34.3-psql.ear") 13:49:27,686 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server 13:49:27,702 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management 13:49:27,702 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990 13:49:27,711 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly 39.0.0.Final (WildFly Core 31.0.1.Final) started in 31002ms - Started 3580 of 3770 services (447 services are lazy, passive or on-demand) - Server configuration file in use: dcm4chee-arc.xml - Minimum feature stability level: community ````

    Запуск JBoss в domain-режиме должен работать, но не тестировался.

  10. При установке JDBC-драйвера как core-модуля в шаге 8, добавьте его в конфигурацию сервера с помощью JBoss CLI в новом окне консоли:

    > $WILDFLY_HOME/bin/jboss-cli.sh -c [UNIX]
    > %WILDFLY_HOME%\bin\jboss-cli.bat -c [Windows]
    [standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=<driver-name>:add(driver-name=<driver-name>,driver-module-name=<module-name>)
    

    Любое значение <driver-name> для JDBC-драйвера может быть выбрано, однако <module-name> должен совпадать с именем, определённым в файле определения модуля JDBC-драйвера module.xml, напр.:

    [standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql)
    
  11. Создайте и включите новый Data Source, привязанный к JNDI-имени java:/PacsDS, с помощью JBoss CLI:

    [standalone@localhost:9990 /] data-source add --name=PacsDS \
    >     --driver-name=<driver-name> \
    >     --connection-url=<jdbc-url> \
    >     --jndi-name=java:/PacsDS \
    >     --user-name=<user-name> \
    >     --password=<user-password>
    

    Формат <jdbc-url> специфичен для JDBC-драйвера, напр.: - H2: jdbc:h2:<directory-path>/<database-name> - MySQL: jdbc:mysql://<host>:3306/<database-name>?serverTimezone=<timezone> - PostgreSQL: jdbc:postgresql://<host>:5432/<database-name> - Firebird: jdbc:firebirdsql:<host>/3050:<database-name> - DB2: jdbc:db2://<host>:50000/<database-name> - Oracle: jdbc:oracle:thin:@<host>:1521:<database-name> - Microsoft SQL Server: jdbc:sqlserver://<host>:1433;databaseName=<database-name>

    Также предоставляется CLI-скрипт $DCM4CHEE_ARC/cli/add-data-source-<db>.cli, который просто применяет команду добавления JDBC-драйвера и создаёт Data Source. Замените <host>, <database-name>, <timezone> (это значение можно получить из файла часового пояса системы), <user-name> и <user-password> на их фактические значения перед выполнением:

    > $WILDFLY_HOME/bin/jboss-cli.sh -c --file=$DCM4CHEE_ARC/cli/add-data-source-<db>.cli
    
  12. Для H2 в качестве базы данных создайте таблицы и индексы с использованием H2 Console:

    1. Загрузите WAR-файл H2 Console с https://github.com/jboss-developer/jboss-eap-quickstarts/tree/7.1.0.GA/h2-console
    2. Разверните его с помощью JBoss CLI, напр.:
      [standalone@localhost:9990 /] deploy ~/Downloads/h2-console.war
      3. Откройте консоль по адресу [http://localhost:8080/h2console](http://localhost:8080/h2console) и войдите с
         `JDBC URL`, `User name` и `Password`, соответствующими значениям, переданным выше в `data-source add --name=PacsDS`.
      4. Создайте таблицы и индексы:
      
      RUNSCRIPT  FROM '$DCM4CHEE_ARC/sql/h2/create-h2.sql'
      
  13. Включите замену свойств в дескрипторах развёртывания, установив атрибут spec-descriptor-property-replacement подсистемы ee в true, и скорректируйте конфигурацию managed-executor-services и managed-scheduled-executor-service подсистемы ee, чтобы избежать проблем, связанных с пулом потоков при длительных задачах или высокой нагрузке, используя JBoss CLI — вы можете настроить большее максимальное число потоков, чем 100, в соответствии с вашими потребностями:

    [standalone@localhost:9990 /] /subsystem=ee:write-attribute(name=spec-descriptor-property-replacement,value=true)
    [standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:undefine-attribute(name=hung-task-threshold)
    [standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=long-running-tasks,value=true)
    [standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=core-threads,value=2)
    [standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=max-threads,value=100)
    [standalone@localhost:9990 /] /subsystem=ee/managed-executor-service=default:write-attribute(name=queue-length,value=0)
    [standalone@localhost:9990 /] /subsystem=ee/managed-scheduled-executor-service=default:undefine-attribute(name=hung-task-threshold)
    [standalone@localhost:9990 /] /subsystem=ee/managed-scheduled-executor-service=default:write-attribute(name=long-running-tasks,value=true)
    

    Альтернативно, выполните те же команды с использованием предоставленного CLI-скрипта $DCM4CHEE_ARC/cli/adjust-managed-executor.cli

    > $WILDFLY_HOME/bin/jboss-cli.sh -c --file=$DCM4CHEE_ARC/cli/adjust-managed-executor.cli
    

    Перезагрузите конфигурацию или перезапустите Wildfly, чтобы применить изменения

    [standalone@localhost:9990 /] :reload
    
  14. По умолчанию DCM4CHEE Archive 5.x предполагает dcm4chee-arc в качестве имени устройства, используемого для поиска его конфигурации в LDAP-сервере. Укажите другое имя устройства через системное свойство dcm4chee-arc.DeviceName (при необходимости) с помощью JBoss CLI:

    [standalone@localhost:9990 /] /system-property=dcm4chee-arc.DeviceName:add(value=<device-name>)
    
  15. По умолчанию Wildfly поддерживает только 10 МБ как максимальный размер HTTP POST-запросов. Измените это на большее значение, как показано ниже

    [standalone@localhost:9990 /] /subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-post-size,value=10000000000) 
    [standalone@localhost:9990 /] /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=max-post-size,value=10000000000)
    

    Перезагрузите конфигурацию или перезапустите Wildfly, чтобы применить изменения

    [standalone@localhost:9990 /] :reload
    
  16. Разверните DCM4CHEE Archive Backend 5.x и DCM4CHEE Archive UI 5.x с помощью JBoss CLI, напр.:

    [standalone@localhost:9990 /] deploy $DCM4CHEE_ARC/deploy/dcm4chee-arc-ear-5.34.3-psql.ear
    [standalone@localhost:9990 /] deploy $DCM4CHEE_ARC/deploy/dcm4chee-arc-ui2-5.34.3.war
    

    Убедитесь, что DCM4CHEE Archive Backend и UI развёрнуты и успешно запущены, напр.:

    11:20:20,280 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0027: Starting deployment of "dcm4chee-arc-ear-5.34.3-psql.ear" (runtime-name: "dcm4chee-arc-ear-5.34.3-psql.ear")
    :
    11:20:34,202 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Start TCP Listener on /0.0.0.0:2575
    11:20:34,202 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-2) Start TCP Listener on /0.0.0.0:11112
    11:20:34,757 INFO  [org.dcm4che3.net.Connection] (ServerService Thread Pool -- 25) No TCP Protocol Handler for protocol HTTP
    11:20:34,757 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-3) Start TCP Listener on /0.0.0.0:12575
    11:20:34,758 INFO  [org.dcm4che3.net.Connection] (ServerService Thread Pool -- 25) No TCP Protocol Handler for protocol HTTP
    11:20:34,758 INFO  [org.dcm4che3.net.Connection] (ServerService Thread Pool -- 25) No TCP Protocol Handler for protocol HTTP
    11:20:34,758 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-4) Start TCP Listener on /0.0.0.0:2762
    11:20:35,040 INFO  [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0010: Deployed "dcm4chee-arc-ear-5.34.3-psql.ear" (runtime-name : "dcm4chee-arc-ear-5.34.3-psql.ear")
    .........
    .........
    .........
    11:22:38,156 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0027: Starting deployment of "dcm4chee-arc-ui2-5.34.3.war" (runtime-name: "dcm4chee-arc-ui2-5.34.3.war")
    11:22:38,757 INFO  [org.jboss.weld.deployer] (MSC service thread 1-6) WFLYWELD0003: Processing weld deployment dcm4chee-arc-ui2-5.34.3.war
    11:22:38,961 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 89) WFLYUT0021: Registered web context: '/dcm4chee-arc/ui2' for server 'default-server'
    11:22:38,976 INFO  [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0010: Deployed "dcm4chee-arc-ui2-5.34.3.war" (runtime-name: "dcm4chee-arc-ui2-5.34.3.war")
    

    Убедитесь, что веб-UI архива доступен по адресу http://localhost:8080/dcm4chee-arc/ui2.

    Снимите с развёртывания DCM4CHEE Archive Backend и UI в любое время с помощью JBoss CLI, напр.:

    [standalone@localhost:9990 /] undeploy dcm4chee-arc-ear-5.34.3-psql.ear
    [standalone@localhost:9990 /] undeploy dcm4chee-arc-ui2-5.34.3.war
    
    11:23:32,395 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 91) WFLYUT0022: Unregistered web context: '/dcm4chee-arc/xsl' from server 'default-server'
    11:23:32,396 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-2) Stop TCP Listener on /0.0.0.0:11112
    11:23:32,396 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-1) Stop TCP Listener on /0.0.0.0:2575
    11:23:32,396 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-3) Stop TCP Listener on /0.0.0.0:12575
    11:23:32,397 INFO  [org.dcm4che3.net.Connection] (EE-ManagedExecutorService-default-Thread-4) Stop TCP Listener on /0.0.0.0:2762
    11:23:32,397 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 102) WFLYUT0022: Unregistered web context: '/dcm4chee-arc' from server 'default-server'
    11:23:32,398 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 96) WFLYUT0022: Unregistered web context: '/dcm4chee-proxy' from server 'default-server'
    11:23:32,398 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 97) WFLYUT0022: Unregistered web context: '/dcm4chee-arc/xdsi' from server 'default-server'
    11:23:32,401 INFO  [org.jboss.as.webservices] (MSC service thread 1-4) WFLYWS0004: Stopping service jboss.ws.endpoint."dcm4chee-arc-ear-5.34.3-psql.ear"."dcm4chee-arc-retrieve-xdsi-5.34.3.war"."org.dcm4chee.arc.retrieve.xdsi.ImageDocumentSource"
    11:23:32,405 INFO  [org.dcm4chee.arc.ups.impl.UPSServiceImpl] (ServerService Thread Pool -- 92) Failed to send StatusChange Event Reports - WFLYEJB0421: Invocation cannot proceed as component is shutting down
    11:23:32,447 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 92) WFLYJPA0011: Stopping Persistence Unit (phase 2 of 2) Service 'dcm4chee-arc-ear-5.34.3-psql.ear#dcm4chee-arc'
    11:23:32,468 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 92) WFLYJPA0011: Stopping Persistence Unit (phase 1 of 2) Service 'dcm4chee-arc-ear-5.34.3-psql.ear#dcm4chee-arc'
    11:23:32,496 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 92) Stopped hibernate cache container
    11:23:32,499 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) WFLYSRV0208: Stopped subdeployment (runtime-name: dcm4chee-arc-code-5.34.3.jar) in 124ms
    11:23:32,499 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0208: Stopped subdeployment (runtime-name: dcm4chee-arc-xsl-cda-5.34.3.war) in 125ms
    .........
    .........
    .........
    11:23:32,504 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0208: Stopped subdeployment (runtime-name: dcm4chee-arc-proxy-5.34.3.war) in 130ms
    11:23:32,505 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0208: Stopped subdeployment (runtime-name: dcm4chee-arc-war-5.34.3.war) in 131ms
    11:23:32,517 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) WFLYSRV0028: Stopped deployment dcm4chee-arc-ear-5.34.3-psql.ear (runtime-name: dcm4chee-arc-ear-5.34.3-psql.ear) in 144ms
    11:23:32,537 INFO  [org.jboss.as.repository] (management-handler-thread - 1) WFLYDR0002: Content removed from location /home/vrinda/work/archive/wildfly-39.0.0.Final/standalone/data/content/e4/9c5e7f11acd08346760ef7c8d6d2d2c1728959/content
    11:23:32,537 INFO  [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0009: Undeployed "dcm4chee-arc-ear-5.34.3-psql.ear" (runtime-name: "dcm4chee-arc-ear-5.34.3-psql.ear")
    .........
    .........
    .........
    11:25:32,901 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 92) WFLYUT0022: Unregistered web context: '/dcm4chee-arc/ui2' from server 'default-server'
    11:25:32,982 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0028: Stopped deployment dcm4chee-arc-ui2-5.34.3.war (runtime-name: "dcm4chee-arc-ui2-5.34.3.war") in 81ms
    11:25:32,996 INFO  [org.jboss.as.repository] (management-handler-thread - 1) WFLYDR0002: Content removed from location /home/vrinda/work/archive/wildfly-39.0.0.Final/standalone/data/content/f0/468ac8b183a242d2b14b79ad4d6eccf2ca1c96/content
    11:25:32,997 INFO  [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0009: Undeployed "dcm4chee-arc-ui2-5.34.3.war" (runtime-name: "dcm4chee-arc-ui2-5.34.3.war")
    
  17. Лог сервера архива может содержать несколько вхождений INFO-сообщений от нижележащего Wildfly cached connection manager 14:09:59,341 INFO [org.jboss.jca.core.connectionmanager.listener.TxConnectionListener] (default task-4) IJ000311: Throwable from unregister connection: java.lang.IllegalStateException: IJ000152: Trying to return an unknown connection: org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8@617cc86c at org.jboss.ironjacamar.impl@3.0.3.Final//org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl.unregisterConnection(CachedConnectionManagerImpl.java:408) at org.jboss.ironjacamar.impl@3.0.3.Final//org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.connectionClosed(TxConnectionListener.java:645) ......... По желанию отключите их с помощью

    [standalone@localhost:9990 /] /subsystem=datasources/data-source=pacsds:write-attribute(name=use-ccm,value=false)
    

См. Установка защищённого архива, для : - использования / тестирования защищённых сервисов DICOM Upper Layer, опционально с использованием инструментов dcm4che. - использования защищённой версии архива.