Thursday 31 October 2013

Login Process of Data Mover

Login Process of Data Mover:
We have two modes of logins into DataMover.
1.      Bootstrap mode.
2.      Normal mode.
Bootstrap Mode: In bootstrap mode we login into DataMover using Access ID and Access password. It is nothing but a database connection with a valid Oracle user.
Then it checks the OWNERID with the DBNAME in PSDBOWNER table. It must return a row, otherwise it is error out.
So, bootstrap mode is nothing but a connection with an Oracle user which is registered in PSDBOWNER table for the given database with CREATE PRIVILEGE and SELECT grant onto the PeopleTools tables.
Note: We can login into to DataMover even though Connect ID and password fields are empty in Configuration Manager. It doesn’t check them in Bootstrap mode.
COM Stmt=SELECT OWNERID, TOOLSREL, TO_CHAR(LASTREFRESHDTTM,'YYYY-MM-DD HH24:MI:SS'), TO_CHAR(LASTCHANGEDTTM,'YYYY-MM-DD HH24:MI:SS') FROM SYSADM.PSSTATUS

COM Stmt=SELECT DBID FROM SYSADM.PSSTATUS

COM Stmt=SELECT VERSION, OPERPSWD, ENCRYPTED, SYMBOLICID, ACCTLOCK FROM SYSADM.PSOPRDEFN WHERE OPRID = :1

COM Stmt=SELECT OPRID, VERSION, OPERPSWD, ENCRYPTED, SYMBOLICID, ACCTLOCK FROM SYSADM.PSOPRDEFN WHERE USERIDALIAS = :1

Fetch
Disconnect
When we login using SYSADM, it checks in PSOPRDEFN whether it is application user or not. Then it disconnects and reconnects using SYSADM.

Normal Mode: In normal mode we login into DataMover using normal application user PS (HRMS). PS is a little special since it is also an Oracle user WITHOUT CREATE SESSION privilege.
The DBNAME in PSDBOWNER must be the same as the client TNS entry.

Case1: Delete ConnectID and Password in Configuration Manager:
It will try to connect DB with PS user. It doesn’t have CREATE SESSION privilege so throws an error.

Tuxedo session opened {oprid='PS', appname='TwoTier', addr='//TwoTier:7000', open at 03BC7E10, pid=2484}

Cur#0.2484.H91TMPLT RC=1045 Dur=0.245000 Connect=Primary/H91TMPLT/PS/

Tuxedo session opened { DisconnectAll at03BC7E10, pid=2484}

Case2: Enter ConnectId and Password from Configuration Manager.
1. It is connecting as connectid (people/peop1e given in Configuration Manager above).
2. Check if the given database in the login screen is registered in PSDBOWNER.
3. It takes the SYMBOLICID from PSOPRDEFN for the given user.
4. With the SYMBOLICID return in step 3, it takes the ACCESSID and password (ACCESSPSWD) - 5. Disconnect and reconnect as ACCESSID taken at step 4.

Tuxedo session opened {oprid='PS', appname='TwoTier', addr='//TwoTier:7000', open at 03B48030, pid=2324}

Connect=Primary/H91TMPLT/people/

COM Stmt=SELECT OWNERID FROM PS.PSDBOWNER WHERE DBNAME=:1

COM Stmt=SELECT OWNERID, TOOLSREL, TO_CHAR(LASTREFRESHDTTM,'YYYY-MM-DD HH24:MI:SS'), TO_CHAR(LASTCHANGEDTTM,'YYYY-MM-DD HH24:MI:SS') FROM SYSADM.PSSTATUS

COM Stmt=SELECT DBID FROM SYSADM.PSSTATUS

COM Stmt=SELECT VERSION, OPERPSWD, ENCRYPTED, SYMBOLICID, ACCTLOCK FROM SYSADM.PSOPRDEFN WHERE OPRID = :1

COM Stmt=SELECT ACCESSID, ACCESSPSWD, ENCRYPTED FROM SYSADM.PSACCESSPRFL WHERE SYMBOLICID = :1

Fetch

Disconnect

Conclusion:
1.       Checks PSDBOWNER whether DBNAME is registered or not. It is not registered, throws following error.

2.       Checks PSSTATUS table for versions of PT.
3.       Checks whether it is application user or not, in PSOPRDEFN table. If the user doesn’t exist in PSOPRDEFN, it tries to connect DB directly. If the user name exits in DB and has CREATE SESSION and SELECT privileges on PT tables, he can login. (SYSADM has them, PS doesn’t have them).
If the user doesn’t have CREATE SESSION privilege, it will throw following error:
                     
4.        If the user exists in PSOPRDEFN, It takes the SYMBOLICID from PSOPRDEFN for the given user.
5.       With the SYMBOLICID return in above step, it takes the ACCESSID and password (ACCESSPSWD)
6.       Disconnect and reconnect as ACCESSID taken at step 5.

Note: DataMover can be run in 2- tier mode.

No comments:

Post a Comment