Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:shibidp3troubleshoot [2015/09/03 09:34] Steffen Hofmannde:shibidp3troubleshoot [2016/07/04 14:59] Petra Berg
Zeile 11: Zeile 11:
 </file> </file>
  
-Test+===== 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.