Sunday, 11 November 2012

After Changing LDAP Providers, Users Are Not Picking Up Correct Rights or Permissions When Logging In


After Changing LDAP Providers, Users Are Not Picking Up Correct Rights or Permissions When Logging In

Cause Justification:

This issue is caused because the user logging in does not have administrative rights, or Imaging is not picking up the correct administrative rights for the user, so the user is being presented with basic options without any of the configuration menus.
If using a new or changed LDAP provider, the latter can happen because the user's or group's GUIDs from the LDAP provider are cached from the initial startup of Imaging, and so may not match the new GUIDs. This means that the users are not receiving the proper rights, and so are being logged in as normal users with basic rights.


To resolve this issue, you must ensure that the user logging in is an administrator within WebLogic Server. If the issue occurred after adding or changing LDAP providers, you can refresh/reset the cached GUID values in the Imaging security tables, by performing one of the following solutions:

Method 1, via the WLST tool:

Step#1: Connect to WLST tool using following steps:
. ${HOME}/db_wls_env.sh
cd ${MW_HOME}/Oracle_ECM1/common/bin
./wlst.sh
wls:/offline> connect()
Supply username, password, server URL

wls:/offline> connect()
Please enter your username :weblogic
Please enter your password :
Please enter your server URL [t3://localhost:7001] :
Connecting to t3://localhost:7001 with userid weblogic ...
Successfully connected to Admin Server 'AdminServer' that belongs to domain 'mkkbase_domain'.

Step#2: Execute the following command to refresh the GUIDs:
wls:/mkkbase_domain/serverConfig> refreshIPMSecurity()
wls:/mkkbase_domain/serverConfig> exit()

Step#3: Login to IPM Database using PL/SQL Developer and Check the following three tables, to ensure that their GUID columns are refreshed:
SYSTEM_SECURITY
DEFINITION_SECURITY
DOCUMENT_SECURITY

Method 2, via the Enterprise Manager front end:

1. Login into the EM Console(http://mkkaixserver1:7001/em
2. Navigate down to the Imaging server under the Weblogic Domain Folder.
3. Once the right hand pane refreshes, click on the 'WebLogic Server' drop down menu and select 'System MBean Browser'.
4. On the MBean Browser tree go to Application Defined MBeans --> oracle.imaging --> Server: IPM_server1 --> cmd --> cmd
5. Click on the 'refreshIPMSecurity' link on the right hand pane.
6. Press Invoke button.

Step#3: Login to IPM Database using PL/SQL Developer and Check the following three tables, to ensure that their GUID columns are refreshed:
SYSTEM_SECURITY
DEFINITION_SECURITY
DOCUMENT_SECURITY

If the above step fails then manually truncate the IPM Security tables and changing the admin user would be next solution:

1. Clear the Imaging System_Security table with either a truncate table or delete * from System_Security command
create table DEV1_IPM.SYSTEM_SECURITY_20120207 as select * from DEV1_IPM.SYSTEM_SECURITY;
create table DEV1_IPM.DEFINITION_SECURITY_20120207 as select * from DEV1_IPM.DEFINITION_SECURITY;
create table DEV1_IPM.DOCUMENT_SECURITY_20120207 as select * from DEV1_IPM.DOCUMENT_SECURITY;
truncate table DEV1_IPM.SYSTEM_SECURITY;
truncate table DEV1_IPM.DEFINITION_SECURITY
truncate table DEV1_IPM.DOCUMENT_SECURITY

2. Restart the IPM Server Only

3. Login as MKKIPMADMIN as the first user to IPM. Now, MKKIPMADMIN will be the new administrator for IPM.

How to do the FINEST Logging for IPM?


1. Login to WebLogic EM Console: http://mkkaixserver1.mkkdomain.intranet:7001/EM
2. Expand the WebLogic Domain.
3. Expand the Domain Name.
4. Click on IPM_SERVER (default install name = IPM_server1).
5. Click on the WebLogic Server control Fly out menu and select Logs -> Log Configuration.
6. Select the Log levels tab.
7. Set the View section to Runtime Loggers.
8. Expand the Root Logger. (if there is no expansion available, see below for steps on adding it)
9. Expand oracle.
10. Expand oracle.imaging.
11. Expand oracle.imaging.service.
12. At this point, you should see the oracle.imaging.service.exceptions.
13. Set this to FINEST.

If you do not see oracle.imaging.service.exceptions, this can be manually added by following these steps:
1. Collapse root loggers completely (else you will receive the error "javax.faces.model.NoRowAvailableException")
2. On the Log Configuration screen, set the View section to "Loggers With Persistent Log Level State".
3. On the bottom of the screen, expand Specify Loggers.
4. In the Name section, type "oracle.imaging.service.exceptions".
5. Set the Oracle Diagnostic Logging level to "FINEST".

IPM Diagnostic Logfile Location would be:
${MW_HOME}/user_projects/domains/mkkbase_domain/servers/IPM_server1/logs/IPM_server1-diagnostic.log

Various Start/Stop Options for WebCentre Content Management


To stop/start Oracle Content Server with the Oracle WebLogic Server Administration Console:

1. On the Administration Console Domain Structure navigation bar, select Environment, then Servers.
2. On the Conversion tab for the Summary of Servers section, select the name of the Oracle UCM server for the Oracle Content Server instance.
3. In the Settings for server_name section, click the Control tab.
4. In the Server Status area, click Shutdown.

To stop Oracle Content Server with Fusion Middleware Control:

1. In the Fusion Middleware Control navigation tree, expand the appropriate domain name (for example, UCM_ucm_domain).
2. Expand Content Management, then Universal Content Management, then Content Server.
3. Select the Oracle Content Server instance name (for example, Oracle Content Server (UCM_server1)). The home page for your Oracle Content Server instance displays.
4. From the UCM menu on the Oracle Content Server page, select Control, then Shut Down.... The Oracle Content Server instance is shut down.

To stop Oracle Content Server Using Script:

/d12/oraecm/Oracle/Middleware/user_projects/domains/mkkbase_domain/bin/stopManagedWebLogic.sh UCM_server1
/d12/oraecm/Oracle/Middleware/user_projects/domains/mkkbase_domain/stopWebLogic.sh
/d12/oraecm/Oracle/Middleware/user_projects/domains/mkkbase_domain/bin/stopManagedWebLogic.sh IPM_server1 http://mkkaixserver1.mkkdomain.intranet:7001

To start Oracle Content Server Using Script:

Start WebLogic Admin Services:
${MW_HOME}/user_projects/domains/mkkbase_domain/startWebLogic.sh

Start UCM Managed Services:
${MW_HOME}/user_projects/domains/mkkbase_domain/bin/startManagedWebLogic.sh UCM_server1

Start IPM Managed Services:
${MW_HOME}/user_projects/domains/mkkbase_domain/bin/startManagedWebLogic.sh IPM_server1 http://mkkaixserver1.mkkdomain.intranet:7001

Starting Weblogic Administration Server without Giving Password:

$ cat start_weblogic.sh
/d12/oraecm/Oracle/Middleware/user_projects/domains/mkkbase_domain/startWebLogic.sh \
-Dweblogic.management.username=weblogic \
-Dweblogic.management.password=***********

Enabling WebLogic/Managed Servers to Start Without Supplying Credentials


You can enable the Administration Server and Managed Servers to start without prompting you for the administrator username and password.

1. For the Administration Server, create a boot.properties file:

Create the following directory:
${MW_HOME}/user_projects/domains/mkkbase_domain/servers/AdminServer/security
mkkbase_domain >>> is the domain name

Use a text editor to create a file called boot.properties in the security directory created in the previous step, and enter the following lines in the file:
username=weblogic
password=*********

For each Managed Server:

Create the following directory:
${MW_HOME}/user_projects/domains/mkkbase_domain/servers/UCM_server1/security
${MW_HOME}/user_projects/domains/mkkbase_domain/servers/IPM_server1/security

Copy the boot.properties file you created for the Administration Server to the security directory of Managed Server you created in the previous step.

Restart the Administration Server and Managed Servers, now it shouldnot ask for the weblogic username and password.

Friday, 9 November 2012

Modifying the VIP or VIP Hostname for 11gR2


Verification of Existing Configuration:

$ srvctl config nodeapps -a >>> Use this command to find the existing info
crsctl stat res -t >>> It should show VIPs are ONLINE
$ ifconfig -a



Stop all the relevant resources:

$ srvctl stop instance -d <db_name> -n <node_name>
$ srvctl stop vip -n <node_name> -f

To prevent the automatic startup of ASM or database instances until the change has been verified, one might want to disable the corresponding resources:
$ srvctl disable nodeapps
crsctl stat res -t >>> It should show VIPs are OFFLINE
ifconfig -a



Modifying VIP and Its Associated Attributes


As root user:
# srvctl modify nodeapps -n <node> -A <new_vip_address or new_vip_hostname>/<netmask>/<[if1[if2...]]>

From 11.2.0.2 onwards, network resource can be modified directly via srvctl modify network command.
as root user:
# srvctl modify network -k <network_number>] [-S <subnet>/<netmask>[/if1[|if2...]]



Start the nodeapps and the other resources

If resources are disabled before, they can be enabled now with
$ srvctl enable nodeapps
$ srvctl enable asm -n <node_name>
$ srvctl enable database -d <db_name>

$ srvctl start nodeapps -n <node_name>
$ srvctl start instance -d <dbanme> -i <inst>
$ srvctl start asm -n <node_name>



Verification After Completion:

$ srvctl config nodeapps -a
crsctl stat res -t
ifconfig -a

Repeat the same steps for the rest nodes in the cluster only if the similar change is required.

Wednesday, 7 November 2012

ADR IPS Package


ADR Create IPS Package:

$ adrci
adrci> SHOW INCIDENT

adrci> IPS CREATE PACKAGE INCIDENT 192398
DIA-48448: This command does not support multiple ADR homes

$ adrci

adrci> SHOW HOMEPATH
ADR Homes:
diag/rdbms/mkkprj1/MKKPRJ1
diag/tnslsnr/mkkerpdr/mkkprj1
adrci> SET HOMEPATH diag/rdbms/mkkprj1/MKKPRJ1

adrci> IPS CREATE PACKAGE INCIDENT 192398
Created package 1 based on incident id 192398, correlation level typical
adrci> EXIT

cd /u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/diag/rdbms/mkkprj1/MKKPRJ1/incpkg

[oraprj1@mkkerpdr incpkg]$ ls
pkg_1

$ adrci
adrci> SHOW INCIDENT
adrci> IPS CREATE PACKAGE TIME '2011-08-13 16:46:21.537000' to '2011-08-14 09:51:12.443000'
Created package 2 based on time range 2011-08-13 16:46:21.537000 +04:00 to 2011-08-14 09:51:12.443000 +04:00, correlation level typical

adrci> IPS ADD INCIDENT 192414 PACKAGE 2;
Added incident 192414 to package 2
adrci> IPS ADD FILE ora7445 PACKAGE 2;

SQL> select * from v$diag_info;

   INST_ID NAME
---------- ----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
         1 Diag Enabled
TRUE

         1 ADR Base
/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr

         1 ADR Home
/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/diag/rdbms/dwtcp
rj1/MKKPRJ1

   INST_ID NAME
---------- ----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------

         1 Diag Trace
/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/diag/rdbms/dwtcp
rj1/MKKPRJ1/trace

         1 Diag Alert
/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/diag/rdbms/dwtcp
rj1/MKKPRJ1/alert


   INST_ID NAME
---------- ----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
         1 Diag Incident
/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/diag/rdbms/dwtcp
rj1/MKKPRJ1/incident

         1 Diag Cdump
/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/diag/rdbms/dwtcp
rj1/MKKPRJ1/cdump

         1 Health Monitor

   INST_ID NAME
---------- ----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/diag/rdbms/dwtcp
rj1/MKKPRJ1/hm

         1 Default Trace File
/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/diag/rdbms/dwtcp
rj1/MKKPRJ1/trace/MKKPRJ1_ora_16512.trc

         1 Active Problem Count
4

   INST_ID NAME
---------- ----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------

         1 Active Incident Count
138


11 rows selected.

adrci>  IPS ADD INCIDENT 192414 PACKAGE 2;
Added incident 192414 to package 2

adrci> IPS ADD FILE '/u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/ora7445.txt' PACKAGE 2;
Added file /u03/MKKPRJ1/ORACLE/db/tech_st/11.2.0/admin/MKKPRJ1_mkkerpdr/ora7445.txt to package 2





ADR Different Methods to Create IPS Package

Creating package based on incident:

adrci> SHOW INCIDENT 
adrci> IPS CREATE PACKAGE INCIDENT incident_number

Creating Empty package:

adrci> IPS CREATE PACKAGE
This creates an empty package. You must use the IPS ADD INCIDENT or IPS ADD FILE commands to add diagnostic data to the package before generating it. 

Creating package based on problem ID:

adrci> SHOW INCIDENT -MODE BRIEF
adrci> IPS CREATE PACKAGE PROBLEM <<<problem_ID>>>

This creates a package and includes diagnostic information for incidents that reference the specified problem ID. (Problem IDs are integers.) You can obtain the problem ID for an incident from the report displayed by the SHOW INCIDENT -MODE BRIEF command. Because there can be many incidents with the same problem ID, ADRCI adds to the package the diagnostic information for the first three incidents ("early incidents") that occurred and last three incidents ("late incidents") that occurred with this problem ID, excluding any incidents that are older than 90 days.

Creating package based on problem key:

adrci> IPS CREATE PACKAGE PROBLEMKEY "<<<problem_key>>>"
The problem key must be enclosed in single quotes (') or double quotes (") if it contains spaces or quotes. 

Creating package based on time interval

This creates a package and includes diagnostic information for all incidents that occurred from sec seconds ago until now. sec must be an integer. 

adrci> IPS CREATE PACKAGE SECONDS sec
adrci> IPS CREATE PACKAGE TIME 'start_time' TO 'end_time' 

This creates a package and includes diagnostic information for all incidents that occurred within the specified time range. start_time and end_time must be in the format 'YYYY-MM-DD HH24:MI:SS.FF TZR'. This is a valid string for the NLS_TIMESTAMP_TZ_FORMAT initialization parameter. The fraction (FF) portion of the time is optional, and the HH24:MI:SS delimiters can be colons or periods.

Adding Incidents and files to the logical package:

adrci> IPS ADD INCIDENT incident_number PACKAGE package_number
adrci> IPS ADD FILE filespec PACKAGE package_number/package_id

Generate a physical incident package:

Once you have created a logical package using one of the above methods, next step is to generate a physical package. 
adrci> IPS GENERATE PACKAGE package_number IN path

This generates a complete physical package (zip file) in the designated path. For example, the following command creates a complete physical package in the directory /home/mkkdbora/diagnostics from logical package number 2: 
adrci>IPS GENERATE PACKAGE 2 IN /home/mkkdbora/diagnostics

You can also create and generate package with one command : IPS Pack
adrci> IPS PACK INCIDENT incident_id IN path
All the methods discussed above apply to 'IPS pack' as well.


Try these packages 

Options with adcfgclone.pl


Application Node: appsTier | appltop  | atTechStack

Database Node: dbTier   | database | dbconfig | dbTechStack | addracnode

Context File: Target Context File
If no context is specified, adcfgclone.pl will prompt for the cloned system target values to create the new context file. This script also prompts for the APPS password. Additionally, if the target Application context file is not specified the APPS password will be prompted for a second time in order to create the new context file.

For more information: perl adcfgclone.pl help

for usage examples: perl adcfgclone.pl examples

ORA-01166 in adcfgclone.pl dbTier | Issues with adcfgclone dbTier


ORA-01503: CREATE CONTROLFILE failed
ORA-01166: file number 601 is larger than MAXDATAFILES (600)
ORA-01110: data file 601: '/d10/oracle/mkkdbdata/hrx35.dbf'

Solution:

1. Correct s_dbfiles in source context file with your maximum number of database files. 
In order to find the maximum file id use:
select max(FILE_ID) from DBA_DATA_FILES;

2. Run autoconfig on DB tier on source in order to propagate the changes.

3. Redo all cloning steps.

Issue with ADCFGCLONE | BEGIN failed--compilation aborted at adcfgclone.pl | Issue with vars.pm


$ perl adcfgclone.pl appsTier
Invalid range "a-Z" in transliteration operator at /u01/oracle/mkkappsora/iAS/Apache/perl/lib/5.00503/vars.pm line 17.
Compilation failed in require at /u01/oracle/mkkappsora/iAS/Apache/perl/lib/5.00503/File/Basename.pm line 132.
BEGIN failed--compilation aborted at /u01/oracle/mkkappsora/iAS/Apache/perl/lib/5.00503/File/Basename.pm line 132.
Compilation failed in require at /u01/oracle/mkkappsora/iAS/Apache/perl/lib/5.00503/File/Path.pm line 100.
BEGIN failed--compilation aborted at /u01/oracle/mkkappsora/iAS/Apache/perl/lib/5.00503/File/Path.pm line 100.
Compilation failed in require at adcfgclone.pl line 89.
BEGIN failed--compilation aborted at adcfgclone.pl line 89.

Solution:

Open the file /u01/oracle/mkkappsora/iAS/Apache/perl/lib/5.00503/vars.pm and modify as follows:
Wrong Entry:   if ($sym =~ tr/A-Za-Z_0-9//c) {
Correct Entry:  if ($sym =~ tr/A-Za-z_0-9//c) {

Cheers!!!!
Malay

Meaning of Services | Services Needs to be enabled while running adcfgclone.pl


Root Services [Enabled]
Oracle Process Manager for $CONTEXT_NAME - [adopmnctl.sh]


Web Entry Point Services [Enabled]
Oracle HTTP Server and Oracle TNS Listener [adapcctl.sh, adalnctl.sh]


Web Application Services [Enabled]
OACORE OC4J Instance[adoacorectl.sh], FORMS OC4J Instance[adformsctl.sh], OAFM OC4J Instance[adoafmctl.sh]


Batch Processing Services [Enabled]
Oracle Concurrent Managers[adcmctl.sh], Oracle Fulfillment Server[jtffmctl.sh]


Other Services [Disabled]
OracleFormsServer-Forms[adformsrvctl.sh] Oracle Metrics Client[adfmcctl.sh] Oracle Metrics Server[adfmsctl.sh] Oracle MWA Service[mwactlwrpr.sh]

Cheers!!!!
Malay

Ports Used in Oracle Apps EBS, portpool details


When you select a PortPool, what are the Ports Taken in Case of an EBS R12 Instance:

Location of portpool.lst file: ${INST_TOP}/admin/out/portpool.lst

Contents of PORTPOOL, when given 7 as Port Pool in ADCFGCLONE:

*****  List of ports allocated based on port pool 7  *****
Database Port  :  1528  (EXT_PORT)
RPC Port  :  1633
Web SSL Port  :  4450
ONS Local Port  :  6107
ONS Remote Port  :  6207
ONS Request Port  :  6507
Web Listener Port  :  8007
Active Web Port  :  8007  (DUP_PORT)
Forms Port  :  9007
Metrics Server Data Port  :  9107
Metrics Server Request Port  :  9207
JTF Fulfillment Server Port  :  9307
MSCA Server Port  :  10242-10247
MCSA Telnet Server Port  :  10242,10244,10246  (DUP_PORT)
MSCA Dispatcher Port  :  10821
Java Object Cache Port  :  12352
OC4J JMS Port Range for Oacore  :  23035-23039
OC4J JMS Port Range for Forms  :  23535-23539
OC4J JMS Port Range for Home  :  24035-24039
OC4J JMS Port Range for Oafm  :  24535-24539
OC4J JMS Port Range for Forms-c4ws  :  26535-26539
OC4J AJP Port Range for Oacore  :  21535-21539
OC4J AJP Port Range for Forms  :  22035-22039
OC4J AJP Port Range for Home  :  22535-22539
OC4J AJP Port Range for Oafm  :  25035-25039
OC4J AJP Port Range for Forms-c4ws  :  26035-26039
OC4J RMI Port Range for Oacore  :  20035-20039
OC4J RMI Port Range for Forms  :  20535-20539
OC4J RMI Port Range for Home  :  21035-21039
OC4J RMI Port Range for Oafm  :  25535-25539
OC4J RMI Port Range for Forms-c4ws  :  27535-27539


How to Execute adcfgclone.pl

If you want to generate the XML:
$ cd $COMMON_TOP/clone/bin
$ perl adcfgclone.pl appsTier
This will generate the XML after getting all the required inputs.

If you already have the exixting XML then Use following:
$ perl adcfgclone.pl appsTier <XML_FULL_PATH>


ADCFGCLONE Log

$APPL_TOP/admin/$CONTEXT_NAME/log/ApplyAppsTier_******.log

Sunday, 4 November 2012

Effect of GLOBAL_NAME and GLOBAL_NAMES on Database Links


GLOBAL_NAME

●● GLOBAL_NAME is a VARCHAR2(2000) datatype and is the name of the database.
●● It defaults to db_name.db_domain
●● This value is marked at database creation time
●● Changing db_name and/or db_domain will not change Global_name

You can change global_name by issuing the following sql command:
ALTER DATABASE RENAME GLOBAL_NAME TO <<<NEW_GLOBAL_NAME>>>;

GLOBAL_NAMES

GLOBAL_NAMES is a boolean variable and it is either set to TRUE or FALSE.

It can be changed dynamically by issuing the following sql command:
ALTER SYSTEM SET GLOBAL_NAMES=TRUE;

●● The name of the database link should match the global name of the target database if GLOBAL_NAMES=TRUE.
●● This may seem restricting because there can only be one database link per schema to a given database, if global_names is set to true.

Issue with Concurrent Program "Workshop Details ERP To FTS"

Cause: FDPSTP failed due to ORA-02069: global_names parameter must be set to TRUE for this operation
ORA-06512: at "XXCTO.XXCTO_FTS_PKG", line 61
ORA-06512: at line 1

When I set GLOBAL_NAMES=TRUE, I am getting ORA-02085
ALTER SYSTEM SET GLOBAL_NAMES=TRUE SCOPE=BOTH;

Solution:

Changed the Global Name of the MKKTGTDB Database:
alter database rename global_name to ERP_TO_FTS.VM.DOMAINMKK.IN;
>>>>> Same as the Global Name

Create public database link ERP_TO_FTS.VM.DOMAINMKK.IN CONNECT TO ERPINTUSER IDENTIFIED BY oracle123 using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.123.1.246)(PORT = 1527))) (CONNECT_DATA = (SERVICE_NAME = MKKTGTDB)))';

Requested the Developer to Put the following line in the package:
alter session set global_names=TRUE;

select count(*) from erpintuser.temp_fts_veh_mnt_tab@ERP_TO_FTS.VM.DOMAINMKK.IN;

Database Link Creation from Frontend for FSG Report Transfer


General Ledger Super User GUI >>> Setup >>> System >>> Database Links >>> Click on the [New Database Link] button and provide relevant information.
Program Name = RGXGDDBL (Define Database Links)

Purpose: Use the General Ledger Financial Statement Generator (FSG) Transfer Program to transfer FSG data from an application instance database instance(CRP1) to another database instance(UAT).

Make sure the followings are present before creating the Database Links:
GRANT CREATE DATABASE LINK TO APPS;
Global Name Related Settings......

For step-by-step instructions on creating a database link, refer to Oracle General Ledger Release 10SC, User's Guide, part number A21643-7, pages 4-81 through 4-82.

Cheers !!!!

Checking Alert Log from ADR Client Interface


Source the Environment File
adrci
ADRCI> show alert
show alert -tail 50

Apache and OACORE Related Debug Info


Enable the iAS to debug, reproduce the TCF error and collect the iAS logs as noted below. 

cd $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/config
1. vi oc4j.properties
2. Add: values
a. AFLOG_ENABLED=true
b. AFLOG_LEVEL=statement
c. AFLOG_MODULE=%
d. AFLOG_FILENAME=/tmp/1.log

Copy the $INST_TOP/ora/10.1.3/Apache/Apache/conf/httpd.conf to a backup file.
Edit the $INST_TOP/ora/10.1.3/Apache/Apache/conf/httpd.conf and change Apache to run in debug. 

Example:
=======
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel debug
=======

Restart the Apache and OACore service ($ADMIN_SCRIPTS_HOME/adoacorectl.sh). 

Reproduce the Issue and review the following log:
->$LOG_HOME/ora/10.1.3/j2ee/oacore/oacore_default_group_1/application.log
->$APPLRGF/javacache.log
->$LOG_HOME/ora/10.1.3/Apache/access_log
->$LOG_HOME/ora/10.1.3/Apache/error_log
->$LOG_HOME/ora/10.1.3/opmn/oacore_default_group_1/oacorestd.err
->$LOG_HOME/ora/10.1.3/opmn/oacore_default_group_1/oacorestd.out
->/tmp/1.log

In addition, actively watch the following logs and provide the exact output given when the TCF error is shown. This trapping is required to narrow the failure.
tail -f $LOG_HOME/ora/10.1.3/j2ee/oacore/oacore_default_group_1/application.log
tail -f $APPLRGF/javacache.log
tail -f $LOG_HOME/ora/10.1.3/Apache/access_log
tail -f $LOG_HOME/ora/10.1.3/Apache/error_log
tail -f $LOG_HOME/ora/10.1.3/opmn/oacore_default_group_1/oacorestd.err
tail -f $LOG_HOME/ora/10.1.3/opmn/oacore_default_group_1/oacorestd.out

Components Versions(Forms, Http Server, JDK, Framework, Database etc)


Run this inventory script to get the Versions of components(Forms, Http Server, JDK, Framework, Database, etc)
$ADPERLPRG $FND_TOP/patch/115/bin/TXKScript.pl -script=$FND_TOP/patch/115/bin/txkInventory.pl -txktop=$APPLTMP -outfile=$APPLTMP/Report_Inventory.html

For Application Tier:
$ADPERLPRG $FND_TOP/patch/115/bin/TXKScript.pl -script=$FND_TOP/patch/115/bin/txkInventory.pl -txktop=$APPLTMP \
-contextfile=$CONTEXT_FILE -appspass=${xx_appspassword} -outfile=$APPLTMP/Report_App_Inventory.html

For Database Tier:
$ADPERLPRG $ORACLE_HOME/appsutil/bin/TXKScript.pl -script=$ORACLE_HOME/appsutil/bin/txkInventory.pl -txktop=$ORACLE_HOME/appsutil/temp \
-contextfile=$CONTEXT_FILE -appspass=apps -outfile=$ORACLE_HOME/appsutil/temp/Report_DB_Inventory.html

Various URLs to Test for Oracle EBS


http://<server>.<domain>:<PORT>/OA_HTML/ServletPing
http://<server>.<domain>:<PORT>/OA_HTML/OA.jsp?OAFunc=OAHOMEPAGE
http://<server>.<domain>:<PORT>
http://<server>.<domain>:<PORT>/OA_HTML/jsp/fnd/aoljtest.jsp
http://<server>.<domain>:<PORT>/OA_MEDIA/FNDLOGOL.gif
http://<server>.<domain>:<PORT>/forms/frmservlet
http://<hostname.domainname>:<port>/OA_HTML/fndvald.jsp?username=sysadmin&password=<sysadmin_password>

Make sure you get success for all the above URLs....

Cheers !!!!!!

Wednesday, 31 October 2012

Notification Mailer Health Check


SQL> select decode(state, 0, '0 = Ready', 1, '1 = Delayed', 2, '2 = Retained', 3, '3 = Exception', to_char(state)) State, count(*) COUNT from wf_notification_out group by state;
SQL> select msg_state, count(*) from applsys.aq$wf_notification_out where msg_state in ('WAITING','READY', 'PROCESSED') group by msg_state; 

As long as "Retained" and "PROCESSED" are increasing, the mailer is functioning.

SQL> select NVL(substr(wfe.corrid,1,50),'NULL - No Value') corrid, decode(wfe.state,0,'0 = Ready',1,'1 = Delayed',2,'2 = Retained', 3,'3 = Exception',to_char(substr(wfe.state,1,12))) State,count(*) COUNT from applsys.wf_deferred wfe group by wfe.corrid, wfe.state;

SQL> select NVL(substr(wfe.corrid,1,50),'NULL - No Value') corrid, decode(wfe.state,0,'0 = Ready',1,'1 = Delayed',2,'2 = Retained',3,'3 = Exception',to_char(substr(wfe.state,1,12))) State,count(*) COUNT from applsys.wf_notification_out wfe group by wfe.corrid, wfe.state;

SQL> select status,mail_status,MESSAGE_type ,to_char(begin_date,'DD-MON-YY HH24:MI:SS'),due_date,END_DATE from apps.wf_notifications where trunc(begin_date) like '%19-AUG-08%'  and status='OPEN' and mail_status='SENT' order by begin_date;


Notification Mailer - Test Mail Verification

To Retrieve the Notification ID:
SQL> select max(notification_id) from wf_notifications where status='OPEN' and mail_status in ('MAIL', 'ERROR');

To Retrieve the Notification Mail Status:
SQL> select status,mail_status,begin_date from wf_notifications where notification_id='<Above_Query_Output>';

Notification Mailer User Preference


Change the notification preference for One User:

exec FND_PREFERENCE.put('&User', 'WF', 'MAILTYPE', 'QUERY');
COMMIT;

How to update User's Email Preference to MAILHTML for all or bulk?

Unfortunately, currently there is no seeded way to do this. An enhancement request has been logged for this under Bug 5748131 (NEED PLEASANT WAY TO BULK RESET NOTIFICATION PREFERENCE FROM DISABLED). It is under Oracle Development's review

Currently, the only workaround to change the Email Style of all users is to update the tables. Note that there are 2 tables to update : FND_USER_PREFERENCES and WF_LOCAL_ROLES.

NB:You should backup those tables before performing the updates.

Updates for All Users would look like :

update wf_local_roles set notification_preference='<wished_preference>'  where orig_system in ('FND_USR','PER');

update fnd_user_preferences set preference_value='<wished_preference>' 
where preference_name='MAILTYPE' and module_name='WF' and user_name <> '-WF_DEFAULT-'; 

Updates for Users having the preference set to "Disabled" would look like :

update wf_local_roles set notification_preference='<wished_preference>' where orig_system in ('FND_USR','PER')
and name in
(select user_name from fnd_user_preferences where preference_name='MAILTYPE' and module_name='WF' and  preference_value='DISABLED');

update fnd_user_preferences set preference_value='<wished_preference>' where preference_name='MAILTYPE' and module_name='WF' and preference_value='DISABLED';

Possible values for <wished_preference> are :

QUERY (corresponds to preference value "Do not send me mail") 
MAILTEXT (corresponds to preference value "Plain text mail") 
MAILATTH (corresponds to preference value "Plain text mail with HTML attachments") 
MAILHTML (corresponds to preference value "HTML mail with attachments") 
MAILHTM2 (corresponds to preference value "HTML mail") 
SUMMARY (corresponds to preference value "Plain text summary mail") 
SUMHTL (corresponds to preference value "HTML summary mail") 
DISABLED (corresponds to preference value "Disabled")

Notification Mailer Override Address and Status


Set Override Address

Override address is set in test instance using "Workflow Administrator Web Application" responsibility in test instance so that all notification mails goes to a single mail ID.

How to Update Override Address from Backend?

select fscpv.parameter_value, fscpt.parameter_id from fnd_svc_comp_params_tl fscpt,fnd_svc_comp_param_vals fscpv
WHERE FSCPT.DISPLAY_NAME = 'Test Address' and fscpt.parameter_id = fscpv.parameter_id
    
UPDATE FND_SVC_COMP_PARAM_VALS SET PARAMETER_VALUE='mkhawas@nomail.com'
WHERE parameter_id=(select fscpv.parameter_id from fnd_svc_comp_params_tl fscpt, fnd_svc_comp_param_vals fscpv
WHERE FSCPT.DISPLAY_NAME = 'Test Address' AND FSCPT.PARAMETER_ID = FSCPV.PARAMETER_ID)

exec FND_SVC_COMP_PARAM_VALS_PKG.LOAD_ROW ( x_component_name => 'Workflow Notification Mailer', x_parameter_name => 'TEST_ADDRESS', x_parameter_value => 'mkhawas@nomail.com', x_customization_level => 'L', x_object_version_number => -1, x_owner => 'ORACLE' );
commit;


Update SMTP Server from Backend:

UPDATE FND_SVC_COMP_PARAM_VALS SET PARAMETER_VALUE='<<<<<SMTP Server IP or Host>>>>>>'
WHERE parameter_id IN (select fscpv.parameter_id from fnd_svc_comp_params_tl fscpt, fnd_svc_comp_param_vals fscpv
WHERE FSCPT.DISPLAY_NAME = 'Outbound Server Name' AND FSCPT.PARAMETER_ID = FSCPV.PARAMETER_ID);


How to check Notification Mailer is Up/Down from Backend:

select SC.COMPONENT_TYPE, SC.COMPONENT_NAME,
FND_SVC_COMPONENT.Get_Component_Status(SC.COMPONENT_NAME) COMPONENT_STATUS
from FND_SVC_COMPONENTS SC
order by 1, 2;

Cheers !!!!!