Aktualisiere UPD

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 2
Dabei seit: 08 / 2018
Betreff:

Aktualisiere UPD

 · 
Gepostet: 22.08.2018 - 11:45 Uhr  ·  #1
Hallo Forum,

seid dem letzten Update auf die Hibiscus Version 2.8.3, dauert z.B eine Kontostand Abfrage im Vergleich zu vorher, lange.
Ich sehe im Logfile immer diese Meldungen, welches den Prozess verlangsamt. Je nach Konto, sind das entsprechen viele Datensätze die verarbeitet werden. Jedes Mal!
Code

[22.08.2018 11:36:30] installed new UPD [old version: 546, new version: 547]
[22.08.2018 11:36:30] Aktualisiere UPD
[22.08.2018 11:36:31]   20 Datensätze
[22.08.2018 11:36:32]   40 Datensätze
[22.08.2018 11:36:34]   60 Datensätze
[22.08.2018 11:36:35]   80 Datensätze
[22.08.2018 11:36:36]   100 Datensätze
[22.08.2018 11:36:37]   120 Datensätze
[22.08.2018 11:36:38]   140 Datensätze
[22.08.2018 11:36:40]   160 Datensätze
[22.08.2018 11:36:41]   180 Datensätze
[22.08.2018 11:36:41]   180 Datensätze
[22.08.2018 11:36:42]   200 Datensätze
[22.08.2018 11:36:43]   220 Datensätze
[22.08.2018 11:36:44] Verarbeite Aufträge



Dies wird bei jeder Bankaktivität gemacht, also auch bei Überweisungen usw.
Ich arbeite mit der MySQL Konfiguration.
Kann ich hier irgendetwas ändern?

Danke.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 6312
Dabei seit: 03 / 2005
Betreff:

Re: Aktualisiere UPD

 · 
Gepostet: 22.08.2018 - 14:05 Uhr  ·  #2
Daran kannst du nichts aendern. Bei jeder Kommunikation sendet HBCI4Java die Versionsnummer der BPD/UPD mit (in deinem Fall die UPD mit vorher Versionsnummer 546, dann 547). Wenn die Bank hier eine neuere Versionsnummer uebermittelt, dann MUSS Hibiscus die aktualisierten BPD/UPD übernehmen. Denn dort könnten sich ja Daten geändert haben.

Wenn das jedesmal passiert, dann liegt das einfach daran, dass deine Bank scheinbar generell die BPD/UPD in einer neuen Version mitsendet - auch dann, wenn sich vielleicht gar nichts geaendert hat. Ob sich tatsaechlich was geaendert hat, kann Hibiscus aber nicht beurteilen. Daher muss es die empfangenen BPD/UPD mit den lokal vorhandenen abgleichen. Und das passiert genau da.

Hierbei kommt es in der Tat zu vielen SQL-Abfragen, die bei einer externen MySQL-Datenbank laenger dauern als bei der embedded H2-Datenbank. Hibiscus benoetigt in den neuen 2.8er Versionen allerdings diese Daten, um herauszufinden, ob und in welcher Form bestimmte Features (wie etwa der elektronische Kontoauszug) von der Bank unterstuetzt werden.

Aber wie gesagt: Normalerweise fallen diese Daten nur an, wenn die Bank mitteilt, dass sie neue BPD/UPD hat. Meine Bank macht das hoechstens einmal pro Woche.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 6312
Dabei seit: 03 / 2005
Betreff:

Re: Aktualisiere UPD

 · 
Gepostet: 22.08.2018 - 14:06 Uhr  ·  #3
PS:

@Admin: Kann jemand den Thread bitte in das hbci4java/Hibiscus-Forum verschieben? In "Über das Homebanking-Forum" ist das etwas off-topic.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 2
Dabei seit: 08 / 2018
Betreff:

Re: Aktualisiere UPD

 · 
Gepostet: 22.08.2018 - 21:23 Uhr  ·  #4
Danke für die Info und Sorry für das ursprünglich falsche Forum.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 7
Dabei seit: 07 / 2014
Betreff:

Re: Aktualisiere UPD

 · 
Gepostet: 04.01.2019 - 22:20 Uhr  ·  #5
Ich habe dasselbe Problem bei der Volksbank Muldental (nutzen Fiducia), und auch ich nutze einen MySQL-Server im Netzwerk. Pro Überweisung muss ich erstmal 1m30s warten, bis ~700 UPD-Daten aktualisiert wurden - auch wenn ich 10 Minuten zuvor eine andere Überweisung durchgeführt habe.
Benutzer
Avatar
Geschlecht:
Herkunft: Korschenbroich
Alter: 47
Beiträge: 5478
Dabei seit: 02 / 2003
Betreff:

Re: Aktualisiere UPD

 · 
Gepostet: 05.01.2019 - 08:53 Uhr  ·  #6
Zitat geschrieben von cweiske

Ich habe dasselbe Problem bei der Volksbank Muldental (nutzen Fiducia)

Volksbanken/Raiffeisenbanken und auch Sparkassen aktualisieren immer die UPD. Das liegt daran, dass diese eine UPD Erweiterung Version 0 unterstützen. Bei der Erweiterung wird an das Ende der UPD (bei jedem Konto) ein Zeitstempel von der letzten Kontobewegung gehangen. Hat die Software den Zeitstempel vorher gespeichert, weiß sie ob neue Umsätze vorliegen und abgerufen werden können, oder ob man den Abruf an dieser Stelle direkt beenden kann.
Damit das funktioniert müssen die UPD regelmäßig aktualisiert werden (mindestens nach jeder ein oder ausgehenden Buchung).
Aufwendig in der Verarbeitung wird es, da diese Information am Ende der UPD steht und dadurch sehr viele Leeinfos vorher kommen, die man erstmal als solche analysieren muss. Wenn eine UPD vorher 10 gefüllte Felder hatte und danach nichts mehr, werden jetzt die 90 Felder zwischen den 10 gefüllten und dem Zeitstempel auch mit einer Leerinfo geliefert.

Hier kann nur Olaf was ggf an der Verarbeitung dieser UPDs optimieren.

Macht man das und nutzt den Zeitstempel, kann man besonders bei vielen Konten den Dialog deutlich beschleunigen.

Viele Grüße
Holger
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 6312
Dabei seit: 03 / 2005
Betreff:

Re: Aktualisiere UPD

 · 
Gepostet: 07.01.2019 - 16:02 Uhr  ·  #7
Was bei der Verwendung einer MySQL-Datenbank den eigentlichen Zeitaufwand verursachte, war das Übernehmen der aktualisierten BPD/UPD in die Datenbank. Das reine Parsen aus der HBCI-Nachricht geht schnell.

Aus Gründen der Einfachheit hat Hibiscus den BPD-/UPD-Cache in der Datenbank bisher komplett gelöscht und gegen die neu übertragenen Daten ersetzt. Bei der embedded H2-Datenbank geht das ziemlich schnell, weil die IO-Operationen von Datenbank und Filesystem gecached und dann gebündelt geschrieben werden. Bei Verwendung einer externen MySQL-Datenbank ging das nicht. Das erzeugte viele INSERT-Statements.

Ich habe das UPD-/BPD-Update daher jetzt so umgebaut, dass es inkrementiell stattfindet. Es werden nur noch die Datensätze hinzugefügt, die tatsächlich neu sind, nur noch jene aktualisiert, deren Wert sich geändert hat und nur die gelöscht, die von der Bank nicht mehr übertragen wurden. Da sich in der Regel pro UPD-/BPD-Update nur wenig ändert, sollte die Anzahl der nötigen SQL-Statements damit drastisch sinken.

Verfügbar im Nightly-Build ab morgen.
Gewählte Zitate für Mehrfachzitierung:   0