Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
de:shibidp3troubleshoot [2015/09/03 09:34]
Steffen Hofmann
de:shibidp3troubleshoot [2016/07/04 14:59]
Petra Berg
Zeile 10: Zeile 10:
 # ... # ...
 </​file>​ </​file>​
 +
 +===== JPAStorage mit PostgreSQL =====
 +Ohne zusätzliche Konfiguration (ORM Workaround),​ wie beschrieben von den Schweizer Kollegen [[https://​www.switch.ch/​aai/​guides/​idp/​installation/#​ormxmlworkaround]] speichert PostgeSQL die Werte als 'large Objects'​ in der Systemtabelle und schreibt in die Spalte '​value'​ nur die Link ID.
 +
 +
 +Um die korrekte Funktion sicher zu stellen, **muss obiger Workaround dringend angewendet werden**. ​
 +
 +
 +Leider sind hinterher die Daten der Datenbank nicht mehr kompatibel. D.h. vor dem Neustart des IdP müssen die Werte der Spalte ''​value''​ in der Tabelle ''​storagerecords''​ konvertiert werden.
 +
 +Eine Möglichkeit geht wie folgt direkt auf der schon vorhandenen Datenbank:
 +
 +DB als postgres Nutzer öffnen, da die Daten in der Systemtabelle ''​pg_largeobject''​ liegen:
 +  psql -Upostgres shibboleth
 +  ​
 +Temporär werden die Werte decodiert mit den ID's in eine neue Tabelle geschrieben. Diese neue Tabelle gehört postgres, daher evtl. danach den Owner aktualisieren:​
 +  shibboleth=>​ create table new_table as (select context, id, value, encode(data,​ '​escape'​) as new_value from storagerecords left join pg_largeobject on oid(value) = loid);
 +  shibboleth=>​ alter table new_table owner to shibboleth;
 +  ​
 +Jetzt anhand der values die ID's durch deren Inhalte aus der neuen Tabelle ersetzen:
 +  shibboleth=>​ update storagerecords set value = new_table.new_value from new_table where storagerecords.value = new_table.value;​
 +  ​
 +Die Temporäre Tabelle wieder löschen:  ​
 +  shibboleth=>​ drop table new_table;
 +  ​
 +
 +Danach den IdP (tomcat) neu starten. Die Session und Attribute-Constent Daten sind weiterhin (wieder) verfügbar.
 +
  • Zuletzt geändert: vor 3 Wochen