Oracle APEX生产环境应用按钮失效求助:RAS is not supported on this system错误排查
Alright, let’s break down this issue and walk through actionable fixes— I’ve dealt with similar APEX-RAS mismatches on older Oracle versions before, so here’s what’s likely going on:
Key Context Recap
First, let’s ground ourselves:
- Your Oracle database is 11.2.0.4, which does NOT support Real Application Security (RAS) (RAS was introduced in Oracle 12c)
- The button works in dev but fails in prod, with the error
RAS is not supported on this system - Direct database execution of the button code works, so the issue is tied to the APEX/ORDS runtime context
Likely Causes & Fixes
1. ORDS Configuration Trying to Enable RAS
Your prod ORDS version is 19.2.0, which might have a default setting that attempts to use RAS— even though your 11g DB can’t support it.
Fix Steps:
- Locate your ORDS configuration file (typically
ords_params.propertiesin the ORDS installation directory) - Search for any line like
security.ras.enabled=true - If found, change it to
security.ras.enabled=false - Restart the ORDS service to apply the change
2. APEX Instance/Page Security Settings Misalignment
Prod APEX might have security features enabled that rely on RAS, while dev doesn’t.
Fix Steps:
- Instance-Level Check:
- Log into the APEX Administration Console
- Navigate to Instance Settings > Security
- Look for any options referencing "Real Application Security" or "RAS"— disable them (11g can’t use these)
- Page-Level Check:
- Open the problematic page in APEX Builder
- Go to Page Properties > Security
- Temporarily disable Session State Protection (set to "Unrestricted") and test the button
- If it works, re-enable Session State Protection but avoid any advanced options that mention RAS or 12c+ security features
3. Unintended RAS Permissions on APEX_PUBLIC_USER
Even if your DB has no RAS parameters, the APEX_PUBLIC_USER might have been granted RAS-related roles by mistake.
Fix Steps:
- Run this query in your prod database:
SELECT granted_role FROM dba_role_privs WHERE grantee='APEX_PUBLIC_USER'; - If you see roles like
RAS_ADMIN_ROLEorRAS_USER_ROLE, revoke them with:REVOKE RAS_ADMIN_ROLE FROM APEX_PUBLIC_USER;
4. APEX Component Compatibility with 11g
APEX 20.2 supports 11.2.0.4, but some newer components might implicitly trigger RAS checks.
Fix Steps:
- Review the button’s code and the processes it triggers
- Look for any APEX API calls that mention security, session validation, or user roles— replace any 12c+ specific APIs with 11g-compatible alternatives
- For example, if using
APEX_SECURITYfunctions that rely on RAS, switch to older, 11g-safe authentication/authorization methods
Final Notes
Since the button works in dev, compare the dev vs prod configurations side-by-side (ORDS settings, APEX security flags, user permissions) to spot the exact mismatch. Once you apply the above fixes, retest the button in prod with debugging enabled to confirm the error is resolved.
内容的提问来源于stack exchange,提问作者Mohamed Shaddad

