Sunday, August 21, 2011

oracle.apps.fnd.framework.OAException: Illegal method call because there is no database connection.


Problem Description:

Users intermittently facing issue logging into application. Getting error

Exception Details:

oracle.apps.fnd.framework.OAException: Illegal method call because there is no database connection.

Instance : 12.1.3 with 11.1.0.7.0 DB

More Details :

1) Already connected users will be able to use the application and new users trying to connnect are facing this issue.
2) Once we bounce the apache they are able to connect. But this happening bit frequently , every time bounce is not feasable.

Cause :

The root cause of the issue is that there was no database connection available to service your request. The most likely cause of that issue is that we are leaking JDBC connections.
However it can also occurr when the database is overloaded and unable to process our request quickly enough.

Provide the below info to Support:

1:- Please run the "AOL/J Database Connection Pool Status" page (under the System Administration responsibility)
a:- Upload a screenshot of the page
b:- Click the LEAKED CONNECTIONS link.
c:- Upload a screenshot (if there is a lot of text then upload the output in a text file)
d:- Click the back button
e:- Click the LOCKED CONNECTIONS link.
f:- Upload a screenshot (if there is a lot of text then upload the output in a text file)


Sol :

In our case

Server is running out of memory which is never good and is the first thing we need to correct.
Also there are large number of database cursor leaks, may be this happening because the server is running out of memory.

Possible Fixes :

1)  Since server is running out of memory - Add more RAM and re-test the issue

If still issue exists

1) gather CBO statistics for the SYS and SYSTEM schemas
2) run the "Gather Schema Statistics" concurrent program for ALL schema


UR's Key Run ;-) 

Wednesday, August 17, 2011

APJ - JMS - RMI services


RMS - Java Remote Method Invocation
JMS - Java Messaging Service
AJP - Apache Jserv Protocol

RMS :
Java specific API that expects the caller and receiver to be available at the time of communication.

JMS :

JMS is a reliable messaging subsystem. Messages can be passed even if one of the parties is not available.

AJP :

The http protocol is quite expensive in terms of band width - it's an ascii text protocl with words like "POST" and phrases like "Content-type:" taking up more bandwidth than is really needed, and having to be interpreted at destination too.
So the ajp protocol (Apache Java Protocol) was established to allow for much less expensive exchanges between upstream and downstream servers that are to be closely linked.


UR's Key Run ;-) 

Y fly JSP compilation doesn't happen in R12 ?

In R12

JSP compilation is set to "justrun" which disables fly compilation of jsp's in R12 unlike 11i.
One of the reasons being, to have better performance. Also we don't move _pages in R12 as in 11i for the same reason.

If you want to have fly compilation in R12 as well

- Change s_jsp_main_mode in $CONTEXT_FILE from "justrun" to "recompile"
- Run Autoconfig

-- U can verify the changes after autoconfig  in


$INST_TOP/ora/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml

<init-param>
<param-name>main_mode</param-name>
<param-value>recompile</param-value>
</init-param>

Note : For compiling JSP's manually in Linux


. ./oracle/apps/apps_st/appl/APPS<SID>_<host>.env




cd $FND_TOP/patch/115/bin
perl ojspCompile.pl --compile --flush -p 2


UR's Key Run ;-) 

Tuesday, August 16, 2011

Performance Tuning Advisors


Performance Tuning Advisors

Automatic Database Diagnostic Monitor (ADDM)

Using the AWR infrastructure, ADDM is able to holistically analyze the system, identify the major problem in the system (not the symptoms),  and recommend corrective action (which some times may require use of a separate Oracle10g advisor). To focus the attention on the actual problems, ADDM also shows the areas of the system that have no problems.

ADDM is invoked automatically every time that a new AWR snapshot is generated (by default every 60 minutes) and the results of the analysis are stored in the advisory framework tagged with the snapshot id.

Manually - $ORACLE_HOME/rdbms/admin/addmrpt.sql


SQL Tuning Advisor :

For the SQL's in issue from ADDM report, we can run SQL Advisor

SQL Access Advisor : We have this advisor as well.

Note: AWR report is more informative than Statspack

Adv of AWR over STATSPACK :

The repository is created and maintained automatically
The report can be generated in text or html mode
The report displays additional information regarding wait classes, metrics, OS stats, etc.

To generate an AWR Report :

$ORACLE_HOME/rdbms/admin/awrrpt.sql

or

EXECUTE dbms_workload_repository.create_snapshot();

Note :

Pre req for all the above

STATISTICS_LEVEL is set to TYPICAL (recommended) or ALL ( Consumes lot of CPU ).

Ref : ID 276103.1

UR's Key Run ;-) 

Guidelines for Application & DB Tuning


Guidelines for Application & DB Tuning

1.Ensure  the initialization parameters for eBusiness suite are set correctly.
2.Make sure Gather Shema Stats is running on periodical basis

- Preferred method is GATHER_AUTO
The option 'GATHER_AUTO' can be used, to gather statistics only on objects that have changes above the specified 'Modification Threshold' (percentage of DML compared to the number of rows of the table).

SQL> exec fnd_stats.gather_schema_statistics('BEN'); -> Paritcular schema
SQL> exec fnd_stats.gather_schema_statistics('ALL'); -> For All schemas
SQL> exec fnd_stats.gather_table_stats('MRP','MRP_FORECAST_DATES'); -> Paritcular schema's table

3. Enable ASMM(Automatic shared memory management)

SGA_TARGET to value other than 0 ( Oracle controls the memory pools and para's can be altered to max size of SGA_MAX_SIZE )

If SGA_TARGET not set. Then pools are set by para's

DB_CACHE_SIZE
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE

- If still U r facing issue then AWR/ STATSPACK report may help U

In AWR report look for TOP 5 Timed Events

Event                              Waits Time(s)     Avg Wait(ms) % Total Call Time  Wait Class
db file sequential read          
db file scattered read          
enq: TX - row lock contention    
CPU time                            

db file sequential read -  possible cause of db file sequential read is poorly tuned SQL

> Need to investigate SQL ordered by Reads
> Check is tht SQL belong to Standard or Custom Modules. Based on tht need to check with Oracle / Clients Development teams.

-- Its a Good Approach to have Statspack report when performance is good such that..it forms a benchmark to compare things

CPU time

> Check for SQL ordered by CPU Time

Commonly Observed Wait Events

- db file sequential read ( I/O SQL tuning - Review AWR/Statspack Top SQL ordered by reads )

> The session has issued an I/O request to read one block from a data
file into buffer cache and is waiting for the operation to complete.
This typically happens during an index lookup or fetch from a table by ROWID when
the required data block is not already in memory.

- db file scattered read ( I/O SQL tuning - Review AWR/Statspack Top SQL ordered by gets and by reads.Segments by Physical Reads.)

> The session has issued an I/O request to read a series of contiguous blocks from a data file Into the  buffer cache and is waiting for the operation to complete. This typically happens during full table scan or fast full index scan.

- Buffer busy waits ( Buffer cache/DBWR - Review segment statistics by buffer busy waits )
- Library cache ( shared pool/latches - Review AWR/Statspack SQL ordered by Parse Calls )
- Enque waits (enq:) ( Locks - Review the following sections: enqueue,  row lock & ITL waits )

Best practices for tuning performance

DB :

- Apply all the recommended perf patches ( note  244040.1  )
- Convert to OATM

Application :

- Deploy with socket mode for internal users ( For R12 ref Note 384241.1.)
- Set FORMS_TIMEOUT=10 and Dont set FORMS_CATCHTERM
- Use one JVM per 2 CPUs
• No more than one JVM/CPU
• No more than 100 concurrent users per JVM


Ref  : Tuning performance on eBusiness suite [ID 744143.1]

UR's Key Run ;-) 

mod_plsql in 11i


mod_plsql also called Oracle PLSQL Catraridge is an extension for Web Server helps in executing PLSQL code though a web request there by facilitates in generating dynamic web pages.

It connects to database with the help of DAD info in wdbsvr.app file.

UR's Key Run ;-) 

Imp Profiles

Some Imp Profiles :


User Profile Name Internal Name
1. Applications Web Agent                APPS_WEB_AGENT
2. Applications Servlet Agent                 APPS_SERVLET_AGENT
3. Applications JSP Agent                        APPS_JSP_AGENT
4. Applications Framework Agent        APPS_FRAMEWORK_AGENT
5. ICX:Forms Launcher                        ICX_FORMS_LAUNCHER
6. Applications Help Web Agent        HELP_WEB_AGENT
7. Applications Portal                        APPS_PORTAL
8. TCF:HOST                                        TCF:HOST


UR's Key Run ;-) 

Upgrade Patch Driver from $AU_TOP/patch/115/driver

Significance of  running Upgrade Patch driver using adpatch with options nocopyportion, nogenerateportion ???

Upgrade patch driver will be located under $AU_TOP/patch/115/driver
After installing base software code tree ( eg 11.5.10.2 / 12.0.4/ 12.1.1 ) in upgrade mode, we need to run upgrade driver with adpatch options=nocopyportion, nogenerateportion so that it bring your database code and objects from base previous level to current MP level.

UR's Key Run ;-) 

Monday, August 15, 2011

OC4J Tuning

Sizing of the Java memory regions :


Heap Sizing :

The maximum heap size of a Java application is limited by three factors:

1) Process data model (32-bit or 64-bit) and the associated operating system limitations
2) Amount of virtual memory available on the system and
3) Amount of physical memory available on the system.

The size of the Java heap for a particular application can never exceed or even reach the maximum virtual address space of the process data model.
In most cases, using heap sizes greater than 2gig is not recommended for web based applications unless you use a lot of large objects. Using a larger heap size will affect performance due to the garbage collection process taking too long for larger heap sizes. It is very important to test your application if you choose to use a heap size over 2gig when it is available. The test should include a large load so that full garbage collection is performed and data can be collected for the affect this will have on the performance.

Garbage Collection Policies:

The -XX:+UseParallelGC parallel (throughput) garbage collector, or
The -XX:+UseConcMarkSweepGC concurrent (low pause time) garbage collector (also known as CMS)
The -XX:+UseSerialGC serial garbage collector (for smaller applications and systems)


UR's Key Run ;-) 

Sunday, August 14, 2011

Load Balancing


Load Balancing : Basic ideology implementing a Load Balancer is to balance the load on the servers by routing the incoming requests accordingly.

1) Hard Ware Load balancing
2) DNS Load Balancing ( round robin fashion )

U can confirm by doing

dig publicname.domainname.com

or

nslookup publicname.domainname.com

Also to confirm tht DNS is routing requests properly

do

telnet publicname.domainname.com

- It will show hostname1

again if u do

telnet publicname.domainname.com

- It should show hostname2


- XML variables involved

s_webentryurlprotocol
s_webentryhost
s_webentrydomain
s_active_webport
s_login_page
s_external_url


UR's Key Run ;-) 

Adding a Node to an Existing Shared Application Tier File System


Adding a Node to a Shared Application Tier File System

1) Prepare existing node by running adpreclone.pl

$ cd <INST_TOP>/admin/scripts/
$ perl adpreclone.pl appsTier

2) Make sure Applications files are accessible to the New Application node to be added

You should be able c the below dir's from new node

APPL_TOP
COMMON_TOP
10.1.2 & 10.1.3 ORACLE_HOME's

3) Configure the node to be added

As applmgr user from new node run

$cd $COMMON_TOP/clone/bin
$ perl adclonectx.pl addnode contextfile=< absolute primary node contextfile path>/Primary_Contextfile.xml

- This steps create the xml for the new node
- Now run autoconfig with current new node xml

perl $AD_TOP/bin/adconfig.pl contextfile=<current node xml path including file name>

- Now run the autoconfig on the remaining all nodes so that the req files get updated with the new node info.


UR's Key Run ;-) 

JVM Taking High CPU / toooooooo many JDBC connections ( 11i )


JVM Taking High CPU / toooooooo many JDBC connections ( 11i )

- Don't change the JDBC default para's unless specified:

FND_MAX_JDBC_CONNECTIONS
FND_JDBC_BUFFER_MIN
FND_JDBC_BUFFER_MAX
FND_JDBC_BUFFER_DECAY_INTERVAL
FND_JDBC_BUFFER_DECAY_SIZE
FND_JDBC_USABLE_CHECK
FND_JDBC_CONTEXT_CHECK
FND_JDBC_PLSQL_RESET

FND_MAX_JDBC_CONNECTIONS - The maximum pool size. This is the sum of the number of available connections and the number of locked connections.

This needs to be changed only after monitoring locked connections in the "AOL/J Database Connection Pool Status"

Leaked connections ( Stack in Red ) : Threads that died without releasing the connection. ( If this is few in number then not a concern )
Stack in black : Connections that were checked out of the pool and are not available to be used by new JVM sessions

- Check JDBC Connections from the DB

select count(*), module from v$session
where program like '%JDBC%' group by module order by 1 asc;

or

From OAM

Set FND: Diagnostics should be to "Yes".
Site Map > Select the Monitoring tab > Jserv usage

or

From the Application: Click on the Diagnostics link > Select Show Pool Monitor

- Have the latest JDBC drivers installed

- Check JVM is sized properly ( Heap Size nd GC - Garbage Collection )

Ref ID : 370583.1


UR's Key Run ;-) 

Garbage Collection What ? Y ? How ?



When a Java object becomes unreachable to the program, then it is subjected to garbage collection. The main use of garbage collection is to identify and discard objects that are no longer needed by a program so that their resources can be reclaimed and reused.



Montior GC in OACoreGroup.X.stdout log files to tune the JVM heaps (-Xmx and –Xms) accordingly.

Log entries when running with –XX:+PrintGCTimeStamps option are:

52.250: [Full GC 100053K->34603K(519488K), 2.9323533 secs]
380.674: [GC 188843K->39516K(519488K), 0.4440873 secs]
615.363: [Full GC 37508K->37422K(519488K), 1.7572831 secs]
701.094: [GC 191662K->40146K(519488K), 0.1742931 secs]

T1 : [ Full GC A->B(C), T2 secs ]
T3 : [ GC P->Q(R), T4 secs ]

T1 - Timestamp in seconds, since the JVM started
T3-T1 - Gives number of seconds between garbage collections
A  - Heap size before the GC
B  - Size after the GC was executed
(C) - Current heap size

How to Analyse :

Minor GCs should be spread out far enough so most objects have died and can be collected.
Frequent GCs indicate that you may need to increase your heap size.


UR's Key Run ;-) 

How to have Good Application Performance ???


- Always b @ latest ATG Level
- Have the suggested Performance patches applied.


Note 244040.1  - Oracle E-Business Suite Recommended Performance Patches






UR's Key Run ;-) 

Saturday, August 13, 2011

How to re-send any failed notifications ?

How to re-send any failed notifications ?


- Run "Resend Failed Notifications"  request


UR's Key Run ;-) 

Steps to perform the telnet SMTP test


Steps to perform the telnet SMTP test

1) Identify mailer running node ( which CM node its running )

select target_node
from fnd_concurrent_queues where concurrent_queue_name like 'WFMLRSVC%';

SELECT b.component_name,
       c.parameter_name,
       a.parameter_value
FROM fnd_svc_comp_param_vals a,
     fnd_svc_components b,
     fnd_svc_comp_params_b c
WHERE b.component_id = a.component_id
     AND b.component_type = c.component_type
     AND c.parameter_id = a.parameter_id
     AND c.encrypted_flag = 'N'
     AND b.component_name like '%Mailer%'
     AND c.parameter_name in ('OUTBOUND_SERVER', 'REPLYTO')
ORDER BY c.parameter_name;

2) From mailer node

telnet [outbound_server_name] 25

Clear steps

Ref ID : ID 753845.1


UR's Key Run ;-) 

Is Service Manager up & running ???


Is Service Manager up & running ???

select CONCURRENT_QUEUE_NAME, ENABLED_FLAG,
MAX_PROCESSES, RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME like 'FNDSM%';

- ps -ef | grep FNDSM
- U'll get PPID of FNDSM
- ps -ef | grep PPID

The FNDSM PPID will be the parent process of the other concurrent manager services in the environment


UR's Key Run ;-) 

Check WF Status :


Check WF Status :

$FND_TOP/sql/wfver.sql

- Gives the status of below

Workflow Agent Listener
Workflow Mailer
Workflow Document Web Services

Also,

select fcq.USER_CONCURRENT_QUEUE_NAME Container_Name, DECODE(fcp.OS_PROCESS_ID,NULL,'Not
Running',fcp.OS_PROCESS_ID) PROCID,
fcq.MAX_PROCESSES TARGET,
fcq.RUNNING_PROCESSES ACTUAL,
fcq.ENABLED_FLAG ENABLED,
fsc.COMPONENT_NAME,
fsc.STARTUP_MODE,
fsc.COMPONENT_STATUS
from APPS.FND_CONCURRENT_QUEUES_VL fcq, APPS.FND_CP_SERVICES fcs, APPS.FND_CONCURRENT_PROCESSES
fcp, fnd_svc_components fsc
where fcq.MANAGER_TYPE = fcs.SERVICE_ID
and fcs.SERVICE_HANDLE = 'FNDCPGSC'
and fsc.concurrent_queue_id = fcq.concurrent_queue_id(+)
and fcq.concurrent_queue_id = fcp.concurrent_queue_id(+)
and fcq.application_id = fcp.queue_application_id(+)
and fcp.process_status_code(+) = 'A'
order by fcp.OS_PROCESS_ID, fsc.STARTUP_MODE

UR's Key Run ;-) 

How to Check CM Tier able to reach IMAP Server ???


How to Check CM Tier able to reach IMAP Server ???

telnet <imap_server_name> 143

Ref : ID 741352.1


UR's Key Run ;-) 

How to get confirmed is there any conflicts in Workflow Mailer accounts of TEST/DEV/PROD


Query to get confirmed is there any conflicts in Workflow Mailer accounts of TEST/DEV/PROD

set pagesize 100
set linesize 132
set feedback off
set verify off

col value format a35
col component_name format a30

select c.component_id, c.component_name, p.parameter_id, p.parameter_name, v.parameter_value value
from fnd_svc_comp_param_vals_v v, fnd_svc_comp_params_b p, fnd_svc_components c
where c.component_type = 'WF_MAILER'
and v.component_id = c.component_id
and v.parameter_id = p.parameter_id
and p.parameter_name in ( 'INBOUND_SERVER','ACCOUNT', 'REPLYTO')
order by c.component_id, c.component_name,p.parameter_name;


UR's Key Run ;-) 

Inbound Flow

Troubleshooting Inbound Email Notifications [ID 1184846.1]


Beautiful note with below info :

- Inbound Flow
- External Setup and Influences on the IMAP account
- Mailer configuration
- How to clean out the IMAP account
- Cloning Activities


UR's Key Run ;-) 

How to clean out the IMAP account ???


How to clean out the IMAP account ???

1. Shut down the Mailer.
2. Using any desktop IMAP client such as Outlook, logon to the imap account and review the contents of the inbox. Remove any spam messages from the inbox.
3. Use the IMAP client tools to delete and purge excess messages from Process and Discard Folders.
4. When the account is cleaned up, log off of the account

Note : Remove the account from your desktop mail client so that you don’t accidentally automatically log in while the mailer is ever running.

Ref : 1184846.1


UR's Key Run ;-) 

How to check/debug status of a Notification Mssg

How to check/debug status of a Notification Mssg

Run  $FND_TOP/sql/wfmlrdbg.sql for Notification id in issue.


How to get the Notification ID ????????

a) from the body of the message
or
b) from the status monitor / activity history
(drill down to see the notification id at the bottom along with Workflow Type and internal name)


UR's Key Run ;-) 

How to stops the mailer from sending mail to the smtp server.


Set the Outbound Threads to 0.  This stops the mailer from sending mail to the smtp server.

Edit Notification Mailer ->  Advanced

Set "Outbound Threads" to 0
then
Finish.

For alternate ways ref  Note ID : 828812.1


UR's Key Run ;-) 

How to Setup an override Address for WF


U can setup an override Address for WF notifications, so that it will automatically route all outbound email to one address.

How ???

OAM -> Workflow Manager -> Notification Mailer / Select  Mailer / View Details.

- Select 'Set Override Address' button

- Provide the email ID here

UR's Key Run ;-) 

Approval Links In Wf Notification Emails Are Pointing To Wrong Server


Approval Links In Wf Notification Emails Are Pointing To Wrong Server

Error :
Page cannot be displayed

When attempting to view a notification via email by clicking on the link

Fix : Check  "HTML Agent" is pointing to MT

System Adminstrator >Workflow Manager >Notification Mailer > Edit > Advance

Set HTML Agent to http://hostname.domainname:8088/pls/sid

if works change the things accordingly in xml/context file


UR's Key Run ;-) 

Inbound Processing failing While Approving/Rejecting From Emails


Inbound Processing failing While Approving/Rejecting From Emails

Error : INBOUND SERVER unable to make a network connection

Effect: Response email lies in the INBOX folder of mailer and does not move further.

Cause : This happens mostly after a Clone/ Refresh, when all DEV/TEST/PROD sharing the same IMAP account and also have the same mailer node name.
        As a result the mail will be down with error.

Fix   :

It is recommended that each workflow mailer have its own dedicated IMAP account to prevent any locking issues.
In a scenario where multiple instances are sharing the same IMAP account, Its always recommended to have diff mailer node names for all the mailers.

- Run this in all the instances to make sure whether all instances sharing same mailer node names or diff

select SC.COMPONENT_NAME, v.PARAMETER_DISPLAY_NAME, v.parameter_name,
v.PARAMETER_VALUE
from FND_SVC_COMP_PARAM_VALS_V v, FND_SVC_COMPONENTS SC
where v.COMPONENT_ID=sc.COMPONENT_ID
and v.parameter_name in ('NODENAME','ACCOUNT')
order by sc.COMPONENT_ID, v.parameter_name;

- In case they are sharing the same...then need to edit the mailer configuration parameters.
OAM-> Workflow manager ->  Notification Mailers -> Edit
- Change the mailer Node name in either of the instance TEST/PROD
- Bring up mailer once changed
- Check the inbound processing works fine
- In Case..still issue exists then go for a dedicated IMAP account to each mailer.

Ref : ID 418931.1


UR's Key Run ;-) 

Get Notification Emails in a diff Languages other than English


Get Notification Emails in a diff Languages other than English

Steps :
1) Set "default application language" to desired lang

Login -> Preferences -> Default Application Language to Desired Lang

Apply

This should make the same to reflect in "ICX: Language" personal profile option and also in wf_local_roles table

select language
from wf_local_roles
where name = 'User_Name';

2) System Administrator -> Workflow ->  Service Components -> Workflow Notification Mailer + Edit
-> Advanced configuration and press next till you get Reset NLS parameter
-> Check Reset NLS check box
 Apply changes

- Restart Mailer


UR's Key Run ;-) 

PROCESSED or DISCARD folder



Once the mailer has finished with the processing of the inbound email responses to notifications, it will move those items to the PROCESSED or DISCARD folder of the IMAP account, to make way for more inbound items.
The mails in these folders need to be deleted manually or you can set a rule to delete the old ones automatically based on the rule defined.


UR's Key Run ;-) 

Workflow Mailer Failing to Send Notifications Emails for Some Employees


Workflow Mailer Failing to Send Notifications Emails for Some Employees :

Findings : WF_NOTIFICATIONS.status is "FAILED" for some notifications.
Cause    :

Since workflow was not able to parse the file names with special characters, the notifications with attachments were not emailed.
However, the same notification using file names without special characters works fine.

Sol :

Upgrade Application to recent levels

or

Workaround : don't use special characters in the file names

Refer :  [ID 1305894.1]


UR's Key Run ;-) 

Workflow Notifications not cmg - Troubleshooting flow

Troubleshooting WF Notification Email In/Outbound :

- 1st need to check is that notification itself is created / Not ?
- Check status & mail_status in wf_notifications for that particular recipient ( where recipient_role like '&user_name'; )
- Check for valid email addr of recipient in wf_roles

SELECT email_address,
nvl(WF_PREF.get_pref(name, 'MAILTYPE'), notification_preference)
FROM wf_roles
WHERE name = '&recipient_role';

Recipient can receive email notification only if
-- notification preference is not set 'QUERY' / 'DISABLED' / 'SUMMARY' / 'SUMHTML'      &
-- recipient has valid email address

- Check Workflow Service Components are up and running.

Workflow Deferred Agent Listener
Workflow Deferred Notification Agent Listener
Notification Mailer

Flow :

Send Event Raised -> Enqueued to WF_DEFERRED Queue --> Processed by Deferred Agent Listener -->
Enqueued to WF_NOTIFICATION_OUT Queue --> Processed by Notification Mailer and sent as e-mail

Any error occurs during dispatch of oracle.apps.wf.notification.send, the message is enqueued to WF_ERROR queue

-  @$FND_TOP/sql/wfmlrdbg.sql for notification id and check the status of the message in WF_DEFERRED and WF_NOTIFICATION_OUT queue.

PROCESSED in WF_DEFERRED - The message is enqueued to WF_NOTIFICATION_OUT
PROCESSED in WF_NOTIFICATION_OUT - The message is sent as e-mail
READY in WF_DEFERRED - Check if Deferred Agent Listener is running
READY in WF_NOTIFICATION_OUT - Check if Notification Mailer is running

Ref : 831982.1

UR's Key Run ;-) 

Thursday, August 11, 2011

Best Notes

File System :

Sharing The Application Tier File System in Oracle E-Business Suite Release 12 [ID 384248.1]

Load Balancing


Using Load-Balancers with Oracle E-Business Suite Release 12 [ID 380489.1]


DB Upgrade:

How to Download and Run Oracle's Database Pre-Upgrade Utility [ID 884522.1]

OC4J:

Starting up AS10g services in an EBusiness Suite Release 12 environment [ID 743518.1]
Unable to start OC4J services on E-Business Suite R12 [ID 813813.1]
Oafm,Forms and Oacore Not Starting Up After IP Adress Change [ID 412980.1]

Clone Issues Related :

How To Stop Old Outbound Workflow Notification Email Messages During Clone Activity [ID 828812.1]

WF :

Inbound Info & Troubleshooting :

Troubleshooting Inbound Email Notifications [ID 1184846.1]
Workflow Java Notification Mailer Technical Reference [ID 1191125.1]


Setting Up Notification Mailers
http://www.stanford.edu/dept/itss/docs/oracle/10g/workflow.101/b10283/instal24.htm

Outbound Notification Mailer Processing
http://www.stanford.edu/dept/itss/docs/oracle/10g/workflow.101/b10283/instal25.htm#mlroutbnd

Inbound Notification Mailer Processing
http://www.stanford.edu/dept/itss/docs/oracle/10g/workflow.101/b10283/instal26.htm#mlrinbnd


JDBC :


monitor_jdbc_conn.sql - Script to monitor JDBC connections in Apps eBusiness Suite [ID 557194.1]



UR's Key Run ;-) 

Wednesday, August 10, 2011

Privilleges


To check privileges users have on an object ( Table / Pkg / Procedure ) :-

select a.OBJECT_NAME,a.OBJECT_TYPE,
a.OWNER,b.GRANTEE,
b.GRANTOR,b.PRIVILEGE,
b.GRANTABLE from dba_objects a,dba_tab_privs b
where a.OWNER=b.OWNER
and a.OBJECT_NAME='&OBJ_NAME';

To check the privileges ( select /execute /debug /read etc ) a user had on an object ( Table / Package / Procedure ) :-

select distinct a.OBJECT_NAME,a.OBJECT_TYPE,
a.OWNER,b.GRANTEE,b.GRANTOR,b.PRIVILEGE,
b.GRANTABLE from dba_objects a,dba_tab_privs b
where a.OWNER=b.OWNER
and a.OBJECT_NAME='&OBJ_NAME'
and b.GRANTEE='&USER';


UR's Key Run ;-) 

Pt's that can add Good Weightage ( >10 Kg ) to Ur Resume


Pt's that can add Good Weightage ( >10 Kg  ) to Ur Resume:

- Custom Top Creation
- PCP  setup
- SSO , OID
- Configuring Printers
- DMZ configuration
- Applied ATG & CPU Patches

UR's Key Run ;-) 

Tuesday, August 9, 2011

Zombie process Vs Orphan process


Zombie process Vs Orphan process

Zombie Process - Is something already dead. It won't take any resource from your system but have an entry in the process table.
                 So its not harm to have Zombie proc as it consume no CPU. But its suggested to clear them as sometimes it may create an issue.

Cause : Mostly due to bad coding

Orphan Process - Orphan process is a process, whose parents are dead ( either terminated, killed or exited ) but the child process is still alive.
                 Unlike Zobie Process, Orphans do consume CPU and too many orphans means system is heavily loaded and lot of CPU getting wasted.

How to identify :

Orphan Process - use ptree
Zombie              - use top ( check for processes with STAT as z )


UR's Key Run ;-) 

ptree

ptree command to identify the process hierarchy of the application

ptree <pid>

Eg :

[oraplayers21:ORA_PLAYERS:applmgr]$ ptree 8140
8140  /apps/applmgr/iAS/Apache/Apache/bin/httpd -d /apps/applmgr
  8152  /apps/applmgr/iAS/Apache/Apache/bin/httpd -d /apps/applmgr
  8153  /apps/applmgr/iAS/Apache/Apache/bin/httpd -d /apps/applmgr
    8155  <defunct>
    8158  <defunct>
    8154  <defunct>
    8157  <defunct>
    8156  <defunct>
    8159  /apps/applcomn/util/java/1.5/jdk1.5.0_15/jre/bin/java -DCLIENT_PROCE
    8160  /apps/applcomn/util/java/1.5/jdk1.5.0_15/jre/bin/java -DCLIENT_PROCE
    8161  /apps/applcomn/util/java/1.5/jdk1.5.0_15/jre/bin/java -DCLIENT_PROCE
  8191  /apps/applmgr/iAS/Apache/Apache/bin/httpd -d /apps/applmgr
  8192  /apps/applmgr/iAS/Apache/Apache/b
  
- Helps identifying orphan processes

- Equivalent of ptree is pstree in Linux



UR's Key Run ;-) 

Saturday, August 6, 2011

What's My Database Size ????????

Wht's my DB Size ????

- Considering only datafiles count as DB size


select sum(bytes)/1024/1024/1024 "GIGA" from dba_data_files;

select sum(bytes)/1024/1024/1024/1024 "TERA" from dba_data_files;


UR's Key Run ;-) 

Total Concurrent Requests ran yesterday


Total Concurrent Requests ran yesterday :

SELECT sysdate -1, COUNT(*)
FROM apps.fnd_concurrent_requests
WHERE to_char(actual_completion_date,'YYYYMMDD') =
(SELECT to_char(sysdate -1,'YYYYMMDD') FROM dual);

SYSDATE-1                 COUNT(*)            
------------------------- ----------------------
04-AUG-11                 50305                

1 rows selected

UR's Key Run ;-) 

Solaris Cmnds


Solaris Cmds :

#Version              -          uname -a

if
SUN OS Version then Solaris Version
SunOS 5.4                  Solaris 2.4
SunOS 5.5                  Solaris 2.5
SunOS 5.5.1               Solaris 2.5.1
SunOS 5.6                  Solaris 2.6
SunOS 5.7                  Solaris 7
SunOS 5.8                  Solaris 8
SunOS 5.9                  Solaris 9
SunOS 5.10                Solaris 10

SunOS is Solaris core component of Solaris

# 32 or 64 bit                    -                   isalist
# Arch Info                        -                   isainfo
# Top consuming procs      -                   prstat
# Processor Info                   -                   psrinfo -v
# System Configuration      -                   sysdef   or  prtconf
# Compare Directories ( lists only files that are not common )  -  dircmp -s <dir1> <dir2>
# List top space consuming files in current directory -     ls -l | grep ^- | sort -nr -k 5 | more

#RAM :              
prtconf | grep -i mem
or
prtdiag | grep -i mem

Note : prtdiag will give System Configuration

#Installed Packages :
pkginfo
or
pkginfo –l file_name    - Gives the pkg version

#Users :

Who all logged in  - logins -x

UR's Key Run ;-)