Более старые релизы — здесь
Содержание - Требования - Загрузка и распаковка дистрибутива бинарного пакета - Инициализация базы данных - 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.
Нет необходимости инициализировать базу данных перед запуском Wildfly. Но создайте таблицы и индексы с использованием H2 Console перед развёртыванием архива.
Создайте пользователя с правом создания баз данных:
> sudo -u postgres createuser -U postgres -P -d <user-name>
Enter password for new role: <user-password>
Enter it again: <user-password>
Создайте базу данных:
> createdb -h localhost -U <user-name> <database-name>
Создайте таблицы и индексы:
> 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> CREATE USER 'USERNAME'@localhost IDENTIFIED BY 'PASSWORD';
Создайте базу данных и предоставьте доступ пользователю::
> 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
Создайте таблицы и индексы::
> mysql -u <user-name> -p<user-password> <database-name> < $DCM4CHEE_ARC/sql/mysql/create-mysql.sql
Создайте пользователя
> gsec -user sysdba -password <sysdba-password>
GSEC> add <user-name> -pw <user-password>
GSEC> quit
Определите имя базы данных в конфигурационном файле aliases.conf:
<database-name> = <database-file-path>
Создайте базу данных, таблицы и индексы
> 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;
Создайте базу данных и предоставьте пользователю права на создание таблиц (должно совпадать с существующим пользователем ОС)
> 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
Создайте таблицы и индексы
> 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 и создайте новое табличное пространство (tablespace)
$ sqlplus / as sysdba
SQL> create bigfile tablespace <tablespace-name> datafile '<data-file-location>' size <size>;
Tablespace created.
Создайте нового пользователя с привилегиями для нового табличного пространства
$ 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
Создайте таблицы и индексы
$ 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
Ещё не тестировалось
Бинарные дистрибутивы OpenLDAP доступны для большинства дистрибутивов Linux, а также для Windows.
Альтернативно, настройте OpenLDAP через
См. также Converting old style slapd.conf file to cn=config format
Импортируйте файлы схемы 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
Базовый 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
Скопируйте файлы схемы LDAP для OpenLDAP из дистрибутива DCM4CHEE Archive в конфигурационный каталог схемы OpenLDAP:
> cp $DCM4CHEE_ARC/ldap/schema/* /etc/openldap/schema/ [UNIX]
> copy %DCM4CHEE_ARC%\ldap\schema\* \Program Files\OpenLDAP\schema\ [Windows]
Добавьте ссылки на файлы схемы в 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
Базовый 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
Скопируйте файлы схемы 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]
Запустите GUI-утилиту настройки OpenDJ
> $OPENDJ_HOME/setup
Запишите значения, выбранные для - Порт прослушивателя LDAP (1389) - DN корневого пользователя (cn=Directory Manager) - Пароль корневого пользователя (secret) - Базовый DN каталога (dc=dcm4che,dc=org)
необходимые для конфигурации LDAP-соединения DCM4CHEE Archive.
После начальной настройки можно запускать и останавливать OpenDJ через
> $OPENDJ_HOME/bin/start-ds
> $OPENDJ_HOME/bin/stopt-ds
Установите Apache DS 2.0.0-M20 в системе и запустите Apache DS.
Установите 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
Импортируйте файлы схемы 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.
Можно изменить Базовый 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
Если это ещё не сделано, установите 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
Если настроенный Базовый 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
Если в базе данных каталога нет базовой записи, импортируйте $DCM4CHEE_ARC/ldap/init-baseDN.ldif с использованием
функции импорта LDIF Apache Directory Studio LDAP Browser.
Если корневые записи конфигурации DICOM отсутствуют в базе данных каталога, импортируйте
$DCM4CHEE_ARC/ldap/init-config.ldif с использованием функции импорта LDIF Apache Directory Studio LDAP Browser.
Импортируйте
$DCM4CHEE_ARC/ldap/default-config.ldif$DCM4CHEE_ARC/ldap/default-ui-config.ldifс использованием функции импорта LDIF Apache Directory Studio LDAP Browser.
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 ````
В соответствии с потребностями настройки вашего приложения, измените Конфигурации, если требуется. Обычно может потребоваться изменить / добавить следующее - AE Title(ы) Архива и соответствующие Веб-приложения - Каталог хранения - AE Title(ы) внешних DICOM-приложений, к которым Архив будет подключаться для DICOM-транзакций - Внешний HL7-приёмник
Скопируйте конфигурационные файлы в установку 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.
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
Установите JBoss-модули, содержащие библиотеки DCM4CHE, Keycloak admin client и Apache commons.
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-modules/dcm4che-jboss-modules-5.x.x.zip
Установите библиотеки 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
Установите библиотеки jclouds 2.2.1 как JBoss-модули:
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-modules/jclouds-jboss-modules-2.2.1-noguava.zip
Установите библиотеки ecs-object-client 3.0.0 как JBoss-модули:
> cd $WILDFLY_HOME
> unzip $DCM4CHEE_ARC/jboss-modules/ecs-object-client-jboss-modules-3.0.0.zip
Загрузите Client Adapter for Wildfly from Keycloak
и распакуйте его внутри WILDFLY_HOME.
> cd $WILDFLY_HOME
> unzip $Downloads/keycloak-wildfly-adapter-dist-15.0.0.zip
Кроме 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-модуля или загрузить его из:
Запустите 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-режиме должен работать, но не тестировался.
При установке 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)
Создайте и включите новый 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
Для H2 в качестве базы данных создайте таблицы и индексы с использованием H2 Console:
[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'
Включите замену свойств в дескрипторах развёртывания, установив атрибут 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
По умолчанию DCM4CHEE Archive 5.x предполагает dcm4chee-arc в качестве имени устройства, используемого для поиска его
конфигурации в LDAP-сервере. Укажите другое имя устройства через системное свойство
dcm4chee-arc.DeviceName (при необходимости) с помощью JBoss CLI:
[standalone@localhost:9990 /] /system-property=dcm4chee-arc.DeviceName:add(value=<device-name>)
По умолчанию 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
Разверните 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")
Лог сервера архива может содержать несколько вхождений 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. - использования защищённой версии архива.