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.