Monday, May 25, 2009

Migrate Users From E-business Suite R12 to Oracle Internet Directory

Migrate Users From E-business Suite R12 to Oracle Internet Directory

Tags: AppsUserExport, bulk user export apps, bulk user import, bulkload, disable provisioning profile, Implement SSO in R12, ldapadd, ldifimport, ldifmigrate, ldifmigrator, migrate users from e-business suite 11i R12 to OID, oidctl, oidprovtool, SSO AND OID, sso and r12 user synchronization, user propogation bidirectional OID SSO R12 R11i

Hi All,
After Integrating the Existing E-business suite R12 Instance with Single Sign On(OID)
we will find that the existing users are NOT automatically migrated to the Oracle Internet Directory.

So I will explain Here How to Migrate the existing Users from E-Business Suite to Oracle Internet Directory.
Later on depending upon the provisioning profile It will synchronize accordingly.(default setting is bi-directional).

step I.Use AppsUserExport to export apps user information from R12 E-Business Suite…

$java oracle.apps.fnd.oid.AppsUserExport -v -dbc $INST_TOP/appl/fnd/12.0.0/secure/VIS.dbc -o usersr12.txt -pwd apps -g -l usersr12.log

Step II.Convert Intermediate LDIF file to Final LDIF File from OID Server…

Transfer the file usersr12.txt which we got from AppsUserExport to OID Server and
Execute the following command

$ldifmigrator “input_file=usersr12.txt” “output_file=usersr12.ldif”
“s_UserContainerDN=cn=users,dc=vectorconsulting,dc=co.uk”
“s_UserNicknameAttribute=uid”

Output

Migration of LDIF data completed.All entries are successfully migrated…

Step III.Loading Final LDIF File into Oracle Internet Directory..

a. disable the provisioning profile with oidprovtool..

$oidprovtool operation=disable ldap_host=sso.vectorconsulting.co.uk ldap_port=369
ldap_user_dn=cn=orcladmin ldap_user_password=welcome123 application_dn=”orclApplicationCommonName=VIS,
cn=EBusiness,cn=Products,cn=OracleContext,dc=vectorconsulting,dc=co.uk” profile_mode=BOTH

b. Stop OID Server using $ORACLE_HOME/opmn/bin/opmnctl stopall

c. Incase you used oidmon or oidctl then check using ldapcheck whether they are stopped..

d. Shutdown any other running OID processes manually by
oidctl connect=VIS server= instance=3 stop

and now grep the procesess and ensure that no OID processes are running..

e. Finally coming to the actual loading part.

we use bulkload for loading but before loading we should use the -check and -generate option
as follows to check duplicates and if duplicates are found in the logfile ,manually edit the LDIF file
and remove those user entries like follows

$bulkload connect=”IASDB” check=true generate=true file=”usersr12.ldif”

Enter OID password(orcladmin password)
the resultant logfile will be bulkload.log in $ORACLE_HOME/ldap/log directory.
After ensuring that you encounter no errors in the bulkload.log file proceed to the next step..

f.bulkload connect=’IASDB’ load=true file=”usersr12.ldif”

Now You can Start the OID Server then enable the provisiong profile using the following
$oidprovtool operation=enable ldap_host=sso.vectorconsulting.co.uk ldap_port=369
ldap_user_dn=cn=orcladmin ldap_user_password=welcome123 application_dn=”orclApplicationCommonName=VIS,
cn=EBusiness,cn=Products,cn=OracleContext,dc=vectorconsulting,dc=co.uk” profile_mode=BOTH

and check whether populated users are successfully able
to login to E-business Suite R12 Via Single-Sign On….

Tuesday, May 12, 2009

Application tier processes are broadly classified in to five type of Services

Type of Application Services
Application tier processes are broadly classified in to five type of Services

i) Root Service - Oracle Process Manager and Notification (OPMN) is part of Oracle Application Server 10G R2/R3. OPMN is used for inter process communication (between OC4J, HTTP Server), death detection and start/stop of Services for 10g R3.

ii) Web Entry Point Services - HTTP Server is part of Oracle Application Server 10G R3 and built on Apache (aka Oracle Apache. All web request to R12 first hit HTTP Server.

iii) Web Application Services - OACORE OC4J, Forms OC4J, OAFM OC4J - These are set of 3 OC4J (Oracle Container for J2EE) to run application.

iv) Batch Processing Services - This set of service consist of Apps Listener (FNDFS & FNDSM), Concurrent Manager, Fulfillment Server and Interaction Server

v) Other Services - Oracle Forms Service, Forms Metric Client/Server and Mobile Web Application (MWA) Service

.

Process —> Services –> Startup Script –> Context parameter

a) Oracle Process Manager - Root Service - adopmnctl.sh- s_root_status, s_opmnstatus
b) Oracle HTTP Server - Web Entry Point Service - adapcctl.sh- s_web_entry_status, s_oacorestatus
c) OACORE OC4J - Web Application Services - adoacorectl.sh- s_web_applications_status s_oacorectrl
d) FORMS OC4J - Web Application Services - adformsctl.sh- s_web_applications_status, s_formsstatus
e) OAFM OC4J - Web Application Services - adoafmctl.sh- s_web_applications_status, s_oafmstatus
f) Concurrent Manager - Batch Processing Service - adcmctl.sh- s_batch_status, s_concstatus
g) Apps Listener - Batch Processing Service - adalnctl.sh- s_batch_status, s_tnsstatus
h) Interaction Center (ICSM) - Batch Processing Service - ieoicsm.sh- s_batch_status, s_icsmctrl
i) Fulfillment Server - Batch Processing Service - jtffmctl.sh- s_batch_status, s_jtffsstatus
j) Forms Server - Other Service - adformsrvctl.sh- s_other_service_group_status , s_formsserver_status
k) Metric Client - Other Service - adfmcctl.sh- s_other_service_group_status , s_metcstatus
l) Metric Server - Other Service - adfmsctl.sh- s_other_service_group_status , s_metsstatus
m) Mobile Web Application (MWA) - Other Service - mwactlwrpr.sh- s_other_service_group_status , s_mwastatus

.

Key points to note

1) When you select Root services, Web Services are automatically selected i.e. First three Services Root, Web Entry Point and Web Application Services can only be enabled or disabled together.
If you want Web Entry Point Services, Web Application Services, and Root Services to be installed on different nodes then use autoconfig after installation.

2. In R12 with introduction of Services there is NO concept of Forms node or Web Node.

3. With default installation all services Root, Web Entry Point, Web Application Services, Batch Processing and Other services are enabled.

.

References

* 406558.1 Configuring Applications Node Services in Oracle Applications Release 12 (Metalink Note)
* Chapter 2, Page 59-61 of R12 Installation Guide

Script to find and kill runaway processes

Script to find and kill runaway processes (concurrent requests) after termination
April 9, 2009 at 1:09 pm | In Oracle Apps | No Comments
Tags: clear runaway processes, concurrent request status "terminating", kill processes conc requests, script to find runaway processes, sql to find pending and running concurrent requests

Hello Guys,

This script is useful for finding the SID and serial number for a specific 11i/R12 concurrent request that has been terminated in the applications, but has not been cleaned up by PMON.
Sometimes in 11i, when a long-running concurrent request is terminated, it will still be active in the database for long periods taking up resources. With this script, you can find the SID, serial number and server PID for a terminated concurrent request so that the process can be killed at the database and OS level. The input parameter for this script is the terminated concurrent request ID.

After running this script you can then do an “alter system kill session” and a “kill-9″ using the server pid to stop the processing faster.
This script has been tested on 8.1.7.4, and on 11.5.1 through 11.5.9.

rem fndreqidx.sql
rem
SET LINESIZE 132
rem
TTITLE ‘Deleted Concurrent Manager Requests’
rem
COL user_concurrent_queue_name FORMAT a15 HEADING ‘QUEUE NAME’ trunc
COL request_id FORMAT 9999999 HEADING ‘REQUEST|ID’
COL phase_code FORMAT a1 HEADING ‘P’
COL status_code FORMAT a1 HEADING ‘S’
COL actual_start_date FORMAT a11 HEADING ‘START DATE’
COL user_name FORMAT a15 HEADING ‘USER|NAME’
COL spid FORMAT a6 HEADING ‘SERVER|PID’ headsep ‘|’
COL program FORMAT a40 HEADING ‘PROGRAM’
COL duration FORMAT a10 HEADING ‘DURATION’
COL sidserial FORMAT a11 HEADING ‘SID,SERIAL#’

SELECT qt.user_concurrent_queue_name
, fcr.Request_Id Request_id
, fu.User_name
, p.spid
, s.sid ||’, ‘|| s.serial# SIDSERIAL
, substr( Fcpv.Concurrent_Program_Name ||’ – ‘|| Fcpv.User_Concurrent_Program_Name, 1,46) Program
, to_char( fcr.actual_start_date, ‘mm/dd hh24:mi’ ) actual_start_date
, phase_code, status_code
, to_char( trunc(sysdate) + ( sysdate – fcr.actual_start_date )
, ‘hh24:mi:ss’ ) duration
FROM apps.Fnd_Concurrent_Queues Fcq
, apps.fnd_concurrent_queues_tl qt
, apps.Fnd_Concurrent_Requests Fcr
, apps.Fnd_Concurrent_Programs Fcp
, apps.Fnd_User Fu
, apps.Fnd_Concurrent_Processes Fpro
, v$session s
, v$process p
, apps.Fnd_Concurrent_Programs_Vl Fcpv
WHERE phase_code = ‘C’
AND status_Code = ‘X’
AND s.paddr = p.addr
AND fcr.requested_by = user_id
AND fcq.application_id = qt.application_id
AND fcq.concurrent_queue_id = qt.concurrent_queue_id
AND userenv(’lang’) = qt.language
AND fcr.os_process_id = s.process
AND fcr.Controlling_Manager = Concurrent_Process_Id
AND (fcq.concurrent_queue_id = fpro.concurrent_queue_id
AND fcq.application_id = fpro.queue_application_id )
AND (fcr.concurrent_program_id = fcp.concurrent_program_id
AND fcr.program_application_id = fcp.application_id )
AND (fcr.concurrent_program_id = fcpv.concurrent_program_id
AND fcr.program_application_id = fcpv.application_id )
ORDER BY fcr.actual_start_date;