Page tree
Skip to end of metadata
Go to start of metadata


Inhalt


Übersicht

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


ItemBeschreibungBeispielBemerkungen
1Datenbank ICA 1.7.x anlegencreate database ica_wf18_XXX_202001 CHARACTER SET utf8 COLLATE utf8_bin;wf18 => Wildfly 18
2Zugriff erlaubengrant all on ica_wf18_XXX_202001.* to YOUR_USER_NAME ;

3Zugriff 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: 

<servlet-container name="default" allow-non-standard-wrappers="true">
                <jsp-config/>
                <websockets/>
            </servlet-container>

Die Korrektur ist durchzuführen, wenn nach dem Login folgendes Verhalten angezeigt wird: 

image2020-7-8_17-42-9.png

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


StepDump des Live-System


1mysqldump -u ica_user -p -h YOUR_HOST_OR_IP xxx_202001 > xxx_202001_wf8_20200708.sql
xxx_202001 = Name der Datenbank (live-System, alt) 

2cat 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 statementDatensätze 
Bsp 1: Fehlender Report, Report-Parameter aber vorhanden
FehlerCaused 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 findenselect * 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: 
Fehleralter 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
  • delete from SammelUeberweisungIca where id = xxx; 
  • ggf. noch die Überweisung löschen:
    • delete from UeberweisungIca where sammelUeberweisung_id = xxx;


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;  



Fehleralter 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: 

  • create temporary table OTDEL select ot.id from OneTimeNotification ot left join HistoryEntry ht on (ht.id = ot.notification_id);
  • delete from OneTimeNotification where id in (select id from OTDEL);



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

Standard Ablauf für das Upgrade einer ICA-1.5.x Installation ohne Integritätsfehler

Ablauf:

  • ICA-1.5.x System stoppen (den Wildfly 8.x)
  • einen vollständigen Dump erstellen
  • den Dump auf einer NEUEN Datenbank einspielen (e.g. ica_17x_db)
  • alle Fremdschlüssel droppen
  • den Wildfly für die Version 1.7.x starten (Wildfly-18.0.x)
  • per command line tool die Version 1.7.x deployen, NICHT starten
  • per Web Interface die Version 1.7.x starten und dann
    • das server.log prüfen
    •  mysql prozessliste prüfen

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:

  • den Wildfly zu stoppen (bei laufendem ICA-1.7.x)
  • den Wildfly neu zu starten

Danach steht das ICA-1.7.x wie gewohnt zur Verfügung



  • No labels