Hi all, I have a strange issue where saving a page process in APEX Page Designer does not take effect
the old code keeps running.
Copying the page always fixes it. I have exhausted all cache-clearing options I can think of.
Environment:
- Oracle APEX 24.2.0 (Patch Set 15 available but not yet applied)
- ORDS 25.4.0 (container: container-registry.oracle.com/database/ords:latest)
- Oracle Database 23ai Free 23.5.0 (container: container-registry.oracle.com/database/free:23.5.0.0)
- Both running as Podman containers on Oracle Cloud (OCI) VM.Standard.A1.Flex
- Oracle Linux 8, FREEPDB1
Problem i facing:
After saving a page process in Page Designer, the old code continues to execute instead of the updated code. This applies to Before Header processes, After Header, and On Submit processes.
What I have tried:
FLUSH SHARED_POOL
FLUSH BUFFER_CACHE
Killing all ORDS_PUBLIC_USER sessions (ALTER SYSTEM KILL SESSION)
Restarting ORDS container (podman restart ords)
Setting jdbc.MaxConnectionLifetime=60 in pool.xml
Setting jdbc.StatementCache.Max=0 in pool.xml
Setting jdbc.MaxConnectionReuseCount=1 in pool.xml
DBMS_UTILITY.COMPILE_SCHEMA(schema=>'APEX_240200', compile_all=>TRUE)
Recompiling individual packages (WWV_FLOW_CODE_EXEC_PLSQL, WWV_DBMS_SQL_APEX_240200)
Verified directly in DB: wwv_flow_step_processing shows the NEW code is saved correctly
Verified activity log: process IS executing (wwv_flow_activity_log shows entries)
Key observations:
1. The new code IS saved correctly in wwv_flow_step_processing
2. The process IS executing (confirmed via wwv_flow_activity_log)
3. But the OLD compiled code runs, not the new saved code
4. Copy Page always works - a copied page with a new component ID always executes the correct code immediately
5. Direct DB UPDATE to process_sql_clob also does not take effect
6. DBMS_UTILITY.COMPILE_SCHEMA fixed it temporarily for one request, then reverted to old code
7. Problem occurs with valid APEX session (not session=0)
Question:
It appears there is a compiled code cache keyed by component ID somewhere in the APEX engine that is not being invalidated when process source code is updated via Page Designer. What is the correct way to flush this cache? Is this a known issue with APEX 24.2.0 running on Oracle 23ai Free with ORDS in container mode?
Thank you