Mittwoch, 9. Februar 2011

Oracle Enterprise Repository "User is locked out"

Es kann passieren, dass der User im OER gelockt wird. Beim Login bekommt er dann nur die Meldung "User is locked out" und kommt nicht über das Anmeldefenster hinaus. Wenn man noch andere User im System hat, kann man sich mit diesen einloggen und den Benutzer wieder freigeben. Hat man aber nur den Admin-User, z.B. nach einer frischen Installation, kommt man hier nicht weiter.
In diesem Fall kann man sich als Repository-Benutzer auf der Datenbank anmelden und den Benutzer mit dem folgenen Script entsperren:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
set serveroutput on
DECLARE
oeruserid integer;
BEGIN
select id into oeruserid from DEV_OER.ENTSECUSERS where username='&1';
update DEV_OER.ENTSECUSERS set ACTIVESTATUS=0 where USERNAME='&1';
dbms_output.put_line( CHR(13)||CHR(10)|| 'The ID of user ' || '&1' || ' is >>>' || oeruserid || '<<<' );
update DEV_OER.CMEEUSERS set ACTIVESTATUS=0 where ENTSECUSERID=oeruserid;
commit;
END;
/
exit

Zur Wiederverwendung kann der Aufruf in ein Shellscript, z.B. oerunlock.sh verpackt werden:

sqlplus / as sysdba @oerunlock.sql $1

Der Aufruf wäre dann mit mit zu entsperrenden User als Parameter, z.B.


./oerunlock.sh admin

Es kann sein, dass die Daten noch gecached sind. In dem Fall hilft es, den WLS durchzustarten. Danach sollte das Login wieder funktionieren.

--- UPDATE 16.6.2015 -----------------------------------------------

Mit Oracle Enterprise Repository 12c funktioniert dies nicht mehr, hier sind zusätzliche Schritte notwendig.

Zunächst müssen die Diag Pages freigeschaltet werden wie in der Dokumentation beschrieben.  In der setStartupEnv.sh muss hierzu der Parameter -DdiagPagesEnabled auf true gesetzt und der OER werden. Danach muss der Managed Server, auf dem das OER läuft, neu gestartet werden.
Danach lassen sich die beiden folgenden URL's aufrufen:

http://<hostname>:<port>/oer/cachediag/CacheClear?cacheName=com.flashline.enterprise.secureuser.SecUserFactory.secUsers


Die Zeile cache com.flashline.enterprise.secureuser.SecUserFactory.secUsers cleared zeigt an, dass der entsprechende Teil des Caches gelöscht wurde.

http://<hostname>:<port>/oer/cachediag/CacheDetail?cacheName=com.flashline.cmee.secureuser.CMEESecUserFactory.secUsers


Wenn hier noch der Eintrag für die id des betreffenden Accounts angezeigt wird, kann hier per Klick auf den clear Link der Cache-Eintrag gelöscht werden.

Danach sollte das Lock für den User aufgehoben und ein Login wieder möglich sein.

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.