...
Die ICA-Version 1.7.x unterstützen den Standard Java EE 8. Die Version 1.7.x wurden auf den Anwendungsservern Wildfly-14 und Wildfly-18 getested. Wir empfehlen die Verwendung des Wildfly-18 in der letzten verfügbaren Unterversion.
Voraussetzungen
Datenbank
Item | Beschreibung | Beispiel | Bemerkungen |
---|---|---|---|
1 | Datenbank ICA 1.7.x anlegen | create database ica_wf18_XXX_202001 CHARACTER SET utf8 COLLATE utf8_bin; | wf18 => Wildfly 18 |
2 | Zugriff erlauben | grant all on ica_wf18_XXX_202001.* to YOUR_USER_NAME ; | |
3 | Zugriff testen |
Application Server
Wildfly 14
Konfigurationsanpassungen. Siehe Anpassungen Wildfly 18.x
Die Verwendung auf einem WF-14 ist nicht empfohlen.
Aufgrund eines Fehlers im WF-14, der mit WF-15 behoben wurde, wird für ICA-1.9.x der WF-18 benötigt.
Wildfly 18
Sample Data Source | <xa-datasource jndi-name="java:/IcaDb" pool-name="IcaDb" enabled="true"> <xa-datasource-property name="DatabaseName"> ica_wf18_xxx202001 </xa-datasource-property> <xa-datasource-property name="URL"> jdbc:mysql://lp14:3306/ica_wf18_xxx202001 </xa-datasource-property> <xa-datasource-property name="serverName"> lp14 </xa-datasource-property> <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> <driver>mysql</driver> <security> <user-name>ica_user</user-name> <password>ica_user</password> </security> <validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> <background-validation>true</background-validation> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> </validation> </xa-datasource> | ||||||||
Required Servlet Container Configuration change | In the standalone/configuration/standalone.xml file change the servlet-container XML element so that it has the attribute allow-non-standard-wrappers="true". Korrekt wäre:
Die Korrektur ist durchzuführen, wenn nach dem Login folgendes Verhalten angezeigt wird: Im Log (server.log) steht folgende Meldung: Caused by: java.lang.IllegalArgumentException: UT010023: Request HttpServletRequestImpl [ POST /ica/rest/nami/auth/manual/sessionStartup ] was not original or a wrapper | ||||||||
Migration der Datenbank
Vorbereitung
Step | Dump des Live-System | |||
---|---|---|---|---|
1 | mysqldump -u ica_user -p -h YOUR_HOST_OR_IP xxx_202001 > xxx_202001_wf8_20200708.sql | xxx_202001 = Name der Datenbank (live-System, alt) | ||
2 | cat xxx_202001_wf8_20200708.sql | mysql -u ica_user -p -h YOUR_HOST_OR_IP ica_wf18_xxx_202001 | ica_wf18_xxx_202001= Name der Datenbank (live-System, neu) | ||
Leitfaden zur Migration
Datenbankintegrität korrigieren
Mit der Umstellung des Application-Server, bzw. der Umstellung des EJB-Layers ist es notwendig, dass die Fremdschlüssel der Datenbank neu aufgebaut werden. Aufgrund von Integritätsfehler kann das fehlschlagen. Betroffene Datensätze müssen dann manuell korrigiert werden.
Fehler (server.log) | Failed statement | Datensätze | |
---|---|---|---|
Bsp 1: Fehlender Report, Report-Parameter aber vorhanden | |||
Fehler | Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`ica_wf18_202001 `.`#sql-7f1_3c`, CONSTRAINT `FKkvcph7v0k0c4u891j0osaugcl` FOREIGN KEY (`gruppierung_id`) REFERENCES `Gruppierung` (`id`)) | Error executing DDL "alter table caea_report_caea_report_param add constraint FKgp48ex53qv04 a4y7gwbkexyww foreign key (Report_id) references caea_report (id)" via JDBC Statement | |
Error executing DDL "alter table caea_report_caea_report_param add constraint FKgp48ex53qv04 a4y7gwbkexyww foreign key (Report_id) references caea_report (id)" via JDBC Statement | |||
Datensätze finden | select * from caea_report_caea_report_param rp left join caea_report r on (r.id = rp.report_id) where r.id is null and rp.report_id is not nul l; | report_id s merken, die nicht existieren zur weiteren Verwendung unten. Ggf. in temporäre Tabelle speichern | |
delete from caea_report_caea_report_param where report_id in (0); | |||
Bsp 2: | |||
Fehler | alter table SammelUeberweisungIca add constraint FKkvcph7v0k0c4u891j0osaugcl foreign key (gruppierung_id) references Gruppierung (id) | ||
Datensatz finden: | select g.id, su.gruppierung_id from SammelUeberweisungIca su left join Gruppierung g on (g.id = su.gruppierung_id) where g.id is null and su.g ruppierung_id is not null; | ||
Löschen |
| ||
Bsp 3: OneTimeNotification | |||
Datensatz finden: | select g.id, su.gruppierung_id from SammelUeberweisungIca su left join Gruppierung g on (g.id = su.gruppierung_id) where g.id is null and su.g ruppierung_id is not null; | ||
Fehler | alter table OneTimeNotification add constraint FK4f6abh7ow957cltpbmgx3cbyi foreign key (notification_id) references HistoryEntry (id) | ||
DS finden | select ot.id from OneTimeNotification ot left join HistoryEntry ht on (ht.id = ot.notification_id); | ||
-- Temporäre tabelle und löschen: | |||
Bsp 4: Nicht assozierte dynamische Felder: | |||
select * from Identitaet_EorDynAbstractValue where Mitglied_id = 0 and Kontakt_id = 0; | |||
delete from Identitaet_EorDynAbstractValue where Mitglied_id = 0 and Kontakt_id = 0; | |||
Testlauf QA System
Live System Migrieren
...