Overview:
In Oracle EBS 12.2 environments, it’s not uncommon to face login failures or form loading issues. These are often caused by oacore server anomalies in WebLogic. This blog walks you through a structured diagnostic approach to isolate and understand these issues.

Problem Scenario

  • Users report:
    • Login failures
    • Inability to launch forms
  • Symptoms observed:
    • oacore server health status is blank/null in the EBS 12.2 WebLogic console.
    • No “OK” or “Unhealthy” status.
    • High CPU consumption from oacore process.
    • Server potentially hanging due to stuck threads.

Step 1: Locate and Review Logs

Navigate to the oacore log directory:

cd $EBS_DOMAIN_HOME/servers/oacore_server?/logs

Check the latest versions of:

  • oacore_server?.log
  • oacore_server?-diagnostic.log
  • oacore_server?.out
  • oacore_server?.out00001

Step 2: Identify Stuck Threads

Look for entries like this:

<BEA-000337> <[STUCK] ExecuteThread: ’16’ … has been busy for “701” seconds…

This usually includes an HTTP request and user session details. You’ll find a field named ECID-Context: which looks like:

ECID-Context: 1.006D^BaivSXFk3t6wfR_6G0000lO001CA3;kXjE

Step 3: Extract ECID and Query Active Sessions

Truncate the ECID to extract the root value:

  • Remove everything after the decimal point and last 5–6 characters
  • Example:
  • ECID: 1.006D^BaivSXFk3t6wfR_6G0000lO001CA3 → ‘BaivSXFk3t6wfR_6G0000lO001CA’

Run the following query to find session details:

SELECT *

FROM gv$active_session_history

WHERE ecid LIKE ‘%BaivSXFk3t6wfR_6G0000lO001CA%’;

 

Step 4: Find SQL Text and Bind Variables

Once you have the SQL_ID from the above session data, retrieve the actual SQL and bind values causing the issue:

SELECT b.name, b.value_string, sq.sql_text, b.LAST_CAPTURED, b.sql_id

FROM gv$sql_bind_capture b

JOIN gv$sql sq

ON sq.address = b.address

AND sq.child_address = b.child_address

WHERE sq.sql_id = ‘<<REPLACE_WITH_SQL_ID>>’

AND b.LAST_CAPTURED IS NOT NULL

ORDER BY b.LAST_CAPTURED DESC;

Final Recommendations

  • Use the above method to isolate stuck sessions before restarting oacore—this helps in RCA (Root Cause Analysis).
  • Consider setting appropriate thresholds for StuckThreadMaxTime in WebLogic.
  • For recurring issues, log an SR with Oracle and share session logs + ECID-based analysis.
Recent Posts

Start typing and press Enter to search