CPU high utilization on OAS Server, how to find the cause of problem ?

Hi all,
We are running ADFBC application on OAS 10.1.3.3 on RH Linux ES 4. The database is Oracle 10g on RH Linux also.
here is the setting in opmn.xml :
<data id="java-bin" value="/opt/oracle/OraHome_oc4j/jdk64/jdk1.5.0_17/bin/java"/>
<data id="java-options" value="-server -XX:CompileCommand=exclude,oracle/sql/NUMBER,toBytes
-ms3072M -mx3072M -XX:+AggressiveHeap -XX:MaxPermSize=1024M -XX:AppendRatio=3 -Djava.security.policy=$ORACLE_HOME/j2ee/ittas/config/java2.policy
-Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
Most of time I see (with linux "top" command) that CPU utilizationis 99.9 %
And sometimes at that time user gets very slow that we have to restart the OC4J to the it normal again.
How do I know what is the cause of that problem ?
Thank you very much,
xtanto

Maybe this could help.
Regars
From note 467624.1
Applies to:
Oracle Containers for J2EE - Version: 10.1.2.0.0 to 11.0.0.0
Linux x86
Purpose
To find out the java thread that is taking high CPU usage in OC4J
This article is specific to Linux due to its threading model and makes specific use of parameters for the ps command that only exist in Linux but not in other operating systems. The general idea from this note might, however, be used on other platforms also, but then requires deeper knowledge of that operating system.
Scope and Application
If you are using the JDK 1.4 then you need to set the LD_ASSUME_KERNEL value to 2.4.1 to get the unique nid value.
In JDK 1.5 setting the LD_ASSUME_KERNEL to 2.4.1 is not required.
Add this variable to ORACLE_HOME\opmn\conf\opmn.xml file as follows:
<ias-instance id="j2ee3.host.domain">
<environment>
<variable id="TMP" value="/tmp"/>
<variable id="LD_ASSUME_KERNEL" value="2.4.1"/>
</environment>
Find Out The Thread That Is Taking High CPU Usage In OC4J
Step 1: Find out the Process ID of the OC4J container
You can find out the pid from the output of the following command:
ORACLE_HOME\opmn\bin> opmnctl status
For example
O_H\opmn\bin> opmnctl status
Processes in Instance: j2ee3.host.domain
------------------------------------------------+---------
ias-component | process-type | pid | status
------------------------------------------------+---------
DSA | DSA | N/A | Down
LogLoader | logloaderd | N/A | Down
dcm-daemon | dcm-daemon | N/A | Down
OC4J | home | 28370 | Alive
WebCache | WebCache | 28380 | Alive
WebCache | WebCacheAdmin | 28371 | Alive
HTTP_Server | HTTP_Server | 28373 | Alive
In this note, we will try to trace the java thread that is using high CPU in OC4J 'home'. The pid of 'home' container is 28370 according to the example.
Step 2: Find the actual process ID
Use the following command to find out the actual process ID:
ps -ef | grep 28370
rac 28370 28354 0 11:23 ? 00:00:01 /home/rac/j2ee2/jdk/bin/java
rac 28377 28370 0 11:23 ? 00:00:00 /home/rac/j2ee2/jdk/bin/java
In this case the actual java process is 28377.
Step 3: Find out the thread which takes lot of CPU time
Run the command
watch "ps -eLo pid,ppid,tid,pcpu,comm | grep 28377"
The thread ID of the thread that consumes high CPU time will be shown in the first column of the output
Step 4: Take thread dump to trace the java thread with the thread ID.
Take the thread dump using the following command:
kill -3 28370 (process-id-from-opmn-status-output)
The thread dump will be written to the log file at ORACLE_HOME\opmn\logs\OC4J~<OC4J_Container_Name>~default_island~1.
Step 5: Trace the java thread.
Convert the Thread ID you got from the command,
ps -eLo pid,ppid,tid,pcpu,comm | grep 28377
to hexadecimal and then search for this value in the thread dump.
For example, if you get the thread id '5828' in the first column of this command, convert '5828' to hexadecimal:
5828 (dec) corresponds to 0x16c4 (hex)
Now search for nid=0x16c4 in the thread dump, and you may find something like:
"RMIServer [0.0.0.0:12401] count:1" prio=1 tid=0xa7c1ee80 nid=0x16c4 runnable [a777e000..a777e22c]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0xac0d5b50> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.evermind.server.rmi.RMIServer.run(RMIServer.java:464)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)

Similar Messages

  • ADF Apps, CPU high utilization on OAS, how to find the cause of problem ?

    Hi all,
    We are running ADFBC application on OAS 10.1.3.3 on RH Linux ES 4. The database is Oracle 10g on RH Linux also.
    Memory is 16 GB. 1 JVM.
    Most of time I see (with linux "top" command) that CPU utilization on OAS is 99.9 %
    And at the peak load (150 -200 users) user gets very slow that we have to restart the OC4J to the it normal again.
    here is the setting in opmn.xml :
    <data id="java-bin" value="/opt/oracle/OraHome_oc4j/jdk64/jdk1.5.0_17/bin/java"/>
    <data id="java-options" value="-server -XX:CompileCommand=exclude,oracle/sql/NUMBER,toBytes
    -ms3072M -mx3072M -XX:+AggressiveHeap -XX:MaxPermSize=1024M -XX:AppendRatio=3 -Djava.security.policy=$ORACLE_HOME/j2ee/ittas/config/java2.policy
    -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
    Heap Usage on EM, is between 2250 MB - 2850 MB.
    How do I know what is the cause of that problem ? How can AD4J help to find the source of the problem ?
    Thank you very much,
    xtanto

    xtanto,
    Hi again...
    Just a quick thought (I know it doesn't answer your question directly, but...) have you tried multiple JVM's? It's really quite easy to set up in OAS, and may possibly help you out. How many CPU's on the box?
    We have an app (it gets such high concurrent usage during one period of the year), and we're running it on 3 JVM's on a single Linux box with either 2 or 4 (cannot recall) CPU's
    John

  • Could you please tell me how to find the cause that made I/O high

    Could you please tell me how to find the cause that made I/O high
    please let me know

    hi ,
    Without any backgound inforamation it is very difficilate to help u out .
    Please Provide the statpack/Awr report durring that priode. oherwise top 5 wait event. so we can give some suggestion on this.

  • How to find the cause ofan error at runtime in forms (10g)

    hi
    can u please tell me how to find the cause ofan error at runtime.
    in forms 6i, the shortcut key is shift+f1
    i needthe shotcut key in 10g forms.
    thanx

    or just look in you menu help, -- last error or you can find the list of shortcut keys there ...
    \Erwin

  • How to find the cause for javaw.exe has encountered a problem and needs to close

    Hi,
    This error msg I get after running my application for a while. My application uses not only java classes but also dll's (JNI). there is no excpetion thrown and the only information I get is a txt file.
    This text file contains these informations:
    [code]
    <?xml version="1.0" encoding="UTF-16"?>
    <DATABASE>
    <EXE NAME="java.exe" FILTER="GRABMI_FILTER_PRIVACY">
        <MATCHING_FILE NAME="awt.dll" SIZE="1174952" CHECKSUM="0xB92DDD61" BIN_FILE_VERSION="7.0.400.43" BIN_PRODUCT_VERSION="7.0.400.43" PRODUCT_VERSION="7.0.400.43" FILE_DESCRIPTION="Java(TM) Platform SE binary" COMPANY_NAME="Oracle Corporation" PRODUCT_NAME="Java(TM) Platform SE 7 U40" FILE_VERSION="7.0.400.43" ORIGINAL_FILENAME="awt.dll" INTERNAL_NAME="awt" LEGAL_COPYRIGHT="Copyright © 2013" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x122FA8" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="7.0.400.43" UPTO_BIN_PRODUCT_VERSION="7.0.400.43" LINK_DATE="08/27/2013 06:26:04" UPTO_LINK_DATE="08/27/2013 06:26:04" VER_LANGUAGE="Englisch (USA) [0x409]" />
        <MATCHING_FILE NAME="axbridge.dll" SIZE="153000" CHECKSUM="0x1A5CD2E" BIN_FILE_VERSION="10.40.2.43" BIN_PRODUCT_VERSION="7.0.400.43" PRODUCT_VERSION="7.0.400.43" FILE_DESCRIPTION="ActiveX Bridge f’r JavaBeans(TM)" COMPANY_NAME="Oracle Corporation" PRODUCT_NAME="Java(TM) Platform SE 7 U40" FILE_VERSION="7.0.400.43" ORIGINAL_FILENAME="axbridge.dll" INTERNAL_NAME="ActiveX Bridge f’r JavaBeans(TM)" LEGAL_COPYRIGHT="Copyright © 2013" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x297DB" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="10.40.2.43" UPTO_BIN_PRODUCT_VERSION="7.0.400.43" LINK_DATE="08/27/2013 06:26:04" UPTO_LINK_DATE="08/27/2013 06:26:04" VER_LANGUAGE="Englisch (USA) [0x409]" />
    many more lines....
    [/code]
    Is there a way to read or analyze this text file? How ?
    Please advice
    Thanks

    Hi,
    This error msg I get after running my application for a while. My application uses not only java classes but also dll's (JNI). there is no excpetion thrown and the only information I get is a txt file.
    This text file contains these informations:
    [code]
    <?xml version="1.0" encoding="UTF-16"?>
    <DATABASE>
    <EXE NAME="java.exe" FILTER="GRABMI_FILTER_PRIVACY">
        <MATCHING_FILE NAME="awt.dll" SIZE="1174952" CHECKSUM="0xB92DDD61" BIN_FILE_VERSION="7.0.400.43" BIN_PRODUCT_VERSION="7.0.400.43" PRODUCT_VERSION="7.0.400.43" FILE_DESCRIPTION="Java(TM) Platform SE binary" COMPANY_NAME="Oracle Corporation" PRODUCT_NAME="Java(TM) Platform SE 7 U40" FILE_VERSION="7.0.400.43" ORIGINAL_FILENAME="awt.dll" INTERNAL_NAME="awt" LEGAL_COPYRIGHT="Copyright © 2013" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x122FA8" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="7.0.400.43" UPTO_BIN_PRODUCT_VERSION="7.0.400.43" LINK_DATE="08/27/2013 06:26:04" UPTO_LINK_DATE="08/27/2013 06:26:04" VER_LANGUAGE="Englisch (USA) [0x409]" />
        <MATCHING_FILE NAME="axbridge.dll" SIZE="153000" CHECKSUM="0x1A5CD2E" BIN_FILE_VERSION="10.40.2.43" BIN_PRODUCT_VERSION="7.0.400.43" PRODUCT_VERSION="7.0.400.43" FILE_DESCRIPTION="ActiveX Bridge f’r JavaBeans(TM)" COMPANY_NAME="Oracle Corporation" PRODUCT_NAME="Java(TM) Platform SE 7 U40" FILE_VERSION="7.0.400.43" ORIGINAL_FILENAME="axbridge.dll" INTERNAL_NAME="ActiveX Bridge f’r JavaBeans(TM)" LEGAL_COPYRIGHT="Copyright © 2013" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x297DB" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="10.40.2.43" UPTO_BIN_PRODUCT_VERSION="7.0.400.43" LINK_DATE="08/27/2013 06:26:04" UPTO_LINK_DATE="08/27/2013 06:26:04" VER_LANGUAGE="Englisch (USA) [0x409]" />
    many more lines....
    [/code]
    Is there a way to read or analyze this text file? How ?
    Please advice
    Thanks

  • Core duo mini crashing occasionally - how to find the cause?

    My core duo Mac mini crashes itself every now and then. The screen goes blank for a couple of seconds and the machine reboots with no explanation. This happens about three or four times a month. It has happened in the middle of the night with no active load in the machine, and also while me using it in the front of console. No warnings, no strange behaviour before the crash, just a sudden blank screen and reboot with no extra messages.
    I'm looking for the cause but I can't find any hardware related errors from system.log, dmesg or console.log. Is there some other log file that I should consult to see whether the crashes are hardware or software related?
    Any debug programs I should run to get more specific info to be collected just before the next crash? Crash dumps and a debugger?
    I ran Mac diagnostics and some 3rd party memory test programs with no errors.
    1.66GHz Intel Core Duo, 1GB RAM   Mac OS X (10.4.6)  

    It sounds like your power cord may not be firmly
    inserted. Check to make sure nothing is fraying or
    loose about it before starting up the machine.
    Checked. Also, the Mac Mini has been in two locations with the same symptoms; all the cords have been replugged and rechecked.
    In addition, since it has happened several times,
    have you checked to make sure the directory is fine
    with Disk Utility's Verify Disk?
    Yes, no problems there. Luckily the Disk Utility has not found any problems after the crashes.

  • How to find the number of users  connected to database from OS level(Linux)

    Hi All,
    Could anyone know , how to find the number of users connected to database without connecting with sql*plus
    is there any command to find it?
    example we have 10 databases in one server, how to find the number of users connected to particular database without connecting to database(v$session)?
    oracle version:- 10g,11g
    Operating System:- OEL4/OEL5/AIX/Solaris
    any help will be appreciated.
    Thanks in advance.
    Thank you.
    Regards,
    Rajesh.

    Excellent.
    Tested, works as long as you set the ORACLE_SID first ( to change databases )
    ps -ef | grep $ORACLE_SID | grep "LOCAL=NO" | awk '{print $2}' | wc -l
    Thanks!
    select OSUSER
        from V$SESSION
    where AUDSID = SYS_CONTEXT('userenv','sessionid')
        and rownum=1;Best Regards
    mseberg

  • How to find the Kernel panic's cause?

    I have a HP G7 server, OS is RHEL 6.0, and it often kernel panic.
    Who can tell me how to find the cause?
    I even try use kdump service to collect the cause, but you know, the kdump(kexec) have a bug, so collect fail.
    Last edited by sheng (2011-10-26 08:01:14)

    Maybe have a look at http://rhelforum.com/forum.php or http://www.fedoraforum.org/ ?

  • How to find the CPU utilization from the portal front end

    HI Guys,
      I want to find the CPU utilization from the portal front end browser screen.Can you please let me know how to find this and also the path to find it.
    And how to find the CPU utilization from the server.What is the command to find the CPU utilization at unix level.
    Regards,
    Krishnam.

    hi you can create transient field in view object indicate to visibility of row (boolean ) and create view criteria that show only rows that are able to be visible according to transient attribute and at the update process set the attribute to true inside entityImpl class

  • WLC 7.0.98.0 CPU high utilization

    I could not find anything wrong with the show tech on WLC. Client complaints CPU high utilization. Please help!

    Hi Andrew,
    There are a couple of interesting things in the debug output you included, firstly there are some unsupported rates by the clients, in other words do you have some 802.11b clients trying to connect? Because I think you may have unsupported the 'b' rates on the controller. So either - ensure you have no 'b' clients or start supporting 'b' rates again (1, 2, 5.5, 11)
    Secondly there some rogue AP containment going on, this can cause either your AP to have a high CPU, f there are multiple rogue APs being contained, or it may be that your own clients are being de-authenticated by another wireless network in the area - in other words, your network is under attack.
    HTH
    Best wishes
    Mike

  • How to Find the number of Databases in a server.

    HI,
    Please tell me how to find the number of Databases are in a server . when the DB is not up.
    ps -ef | grep ora_
    This i know whether our DB is up or not. But i want to know how many databases are in a server .If the database is down .
    Cheers,
    Gobi.

    Hi,
    [oracle@oralinux admin]$ lsnrctl status
    LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 01-DEC-2006 16:25:41
    Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    TNS-01169: The listener has not recognized the password
    [oracle@oralinux admin]$
    Plz give me the solution.
    Cheers ,
    Gobi.

  • How to find the webclient in SAP MDM server

    How to find the webclient in SAP MDM server
    Thanks In Advance
    GuruvaReddy

    Hi Guruva,
    If you are talking about MDM APIs, then you will get them from Service place when you download the complete MDM 5.5 Suite. You need to choose the API which is appropriate to you. MDM comes with 2 different APIs - Java API and COM API as of SP1(The news is.. ABAP API is under development).
    Pre-requisite for building applications using Java APIs is basic Java skills.
    Regards,
    Rajani Kumar K

  • How to find the Data source name on linux server

    Hello All,
    Good Morning...
    I created a rpd in my local machine and deployed on the server through Fusion middle ware.
    and copied the catalog file there in the server.
    While working on my local machine I have two odbc connections... one is for development and other is for production.
    at the time of deployment to the server I changed the development instance to production instance throught the connection pool.
    I am encountering the following error while working on the analyis....
    Odbc driver returned an error (SQLExecDirectW).
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 16001] ODBC error state: IM002 code: 0 message: [DataDirect][ODBC lib] Data source name not found and no default driver specified. (HY000)
    I think this is because of the mismatch of the datasource name in server and my local machine...could you please tell me how to find the datasource names on the server?
    Thanks!

    Hi Dpka-
    I created two ODBC connections in my system.
    one for development and another for Production.
    while deploying the rpd to the server I changed the development login credentials with production login.
    The problem here is I just want to know whether Iam giving the same datasource name which was presented on the server or not.
    I don't have access to the server now.
    Is there any way to find out the datasource names which were presented on the server with the help of admin console?
    Thanks!

  • How to find the xi server wheather it is present or not

    hi all,
    i have  one doubt regarding xi server,how to find out wheather the xi server is there or not in our sap server.
    thanks & regards,
    subba reddy

    Hi
    What u mean by SAP Server (Hope u r saying SAP ECC R/3)
    XI / PI is a Seperate Server installation which doesnot come with ecc
    ECC >=  6.2 only has Integration Serve inbuilt which allows it to communicate with XI in Proxy langauge.
    Still u want to check if u r x System is having XI r not then
    Transaction SXMB_IFR ---> IE opens --> Press IR Design , if it opens IR u r in XI
    Srini

  • How to find the SQL Server Instances running across the given activer directory domain?

    How to find the SQL Server Instances running across the given activer directory domain?
    I have though of OSQL -L , Microsoft Assessment and Planning ( MAP ) tool and SQLPing3 (SQLSecurity) might help me.
    I would appreciate if there any other way of finding the SQL Servers / Instances running across the given active directory domain.
    Sivaprasad S
    http://sivasql.blogspot.com
    Please click the Mark as Answer button if a post solves your problem!

    Dear ,
    Very simple u find all instances through the customized sp which is get all details about inventory. Like i put the sp bellow. This is without any tool. 
    USE [master]
    GO
    /****** Object:  StoredProcedure [dbo].[DBStatus]    Script Date: 08-01-2015 19:46:11 By Damodar Patle Sr. DBA Mumbai India ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[DBStatus] 
    AS
    SELECT 
    SERVERPROPERTY('servername') AS ServerName,
    ConnectionProperty('local_net_address') AS 'local_net_address',
    ConnectionProperty('local_tcp_port') AS 'local_tcp_port',
    CONVERT(VARCHAR(25), @@VERSION) as  VERSIONSQL,
    SERVERPROPERTY('ErrorLogFileName') AS ErrorLogFilePath,
    database_id,
    CONVERT(VARCHAR(25), DB.name) AS DBName,
    CONVERT(VARCHAR(10), DATABASEPROPERTYEX(name, 'status')) AS [Status],
    CONVERT(VARCHAR(10), DATABASEPROPERTYEX(name, 'Recovery')) AS [Recovery_Model],
    create_date as DBCreate_Date, --physical_device_name,
     (SELECT COUNT(1) FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'rows') AS DataFiles,
     (SELECT SUM((size*8)/1024) FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'rows') AS [Data MB],
     (SELECT COUNT(1) FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'log') AS LogFiles,
     (SELECT SUM((size*8)/1024) FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'log') AS [Log MB],
     (SELECT physical_name FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'rows') AS MDF_File_Location,
     (SELECT physical_name FROM sys.master_files WHERE DB_NAME(database_id) = DB.name AND type_desc = 'log') AS  LDF_File_Location,
       user_access_desc
       FROM sys.databases DB
       ORDER BY dbName, [Log MB] DESC, NAME

Maybe you are looking for

  • Oc4j server embeded in Jdeveloper 10g is not ruuning

    hi, 1. I am trying to run ocrj server embede in Jdeveloper from command promt for which as given step in Jdevelioper handbook , i proceeded as executing setvars -go from directory jdev\bin , but i am getting the following error D:\JDev\jdev\bin>setva

  • Purchase link Production order

    HI Guru's, I have requirement. The process like Buying material from Vendor and consuming for local production order and export production order. We are creating sales order--> Planorder ---> Production order after MRP run. The requirment is when iam

  • Adjust font size for notes?

    is it possible to adjust the font size for the .txt file to be read in the 'notes' folder in 'my computer'. i have synced it to my ipod but becuase of is size and the way the info is portrayed the width is too narrow on ipod thus getting a 'spill' on

  • How to prepare CI templates in SD

    Hi friends some one can send me samples, how to prepare CI  templates in SD module. Thanks Raj

  • SPSS on Virtual PC

    Hello, I'm interested in running SPSS (a statistical and data management program) on my Mac using Virtual PC. I'm in need of the PC version becuase I am going to tranfer information among my Mac and the PC's at school. I would be using SPSS version 1