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.
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 |
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.
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 | ||
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) | ||
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; | |||
Standard Ablauf für das Upgrade einer ICA-1.5.x Installation ohne Integritätsfehler
Ablauf:
In diesem Schritt werden alle Indexe neu erzeugt. Das kann je nach Größe der Datenbank mehrere Stunden dauern.
Im server.log werden alle Fremdschlüsselfehler angezeigt. Diese sollten alle beseitigt werden. Dazu kann die ica-1.7.x Anwendung mehrmals gestopped und gestartet werden
Nachdem alle Fremdschlüssel korrigiert sind, wird empfohlen:
Danach steht das ICA-1.7.x wie gewohnt zur Verfügung