Introduction
In Oracle EBS 12.1 and 12.2 cache is cleared according to the following document:
How To Clear The Cache Using Functional Administrator? (Doc ID 759038.1)
Functional Administrator>Home>Core Services>Caching Framework>Global Configuration>Clear All Cache
But sometimes you may need to automate this process. There is not much information on this topic. I present the procedure that I was able to find below.
1 Clearing the Cache from the Backend
After a lot of research I found the following Oracle Doc:
12.2 E-Business Suite Applications Framework Commands To Use The CacheWatchUtil With The Java Object Cache Monitor Tool For Diagnostics And Debug Log Creation (Doc ID 2329601.1)
It contained a command that drew my attention:
java oracle.ias.cache.CacheWatchUtil watch -address=host:port |
Where host is the EBS apps server hostname or IP address. And port is the value of ‘s_java_object_cache_port’ context variable.
Here is the example of this command usage after the EBS run environment application:
[applmgr@demo ~]$ source EBSapps.env run java oracle.ias.cache.CacheWatchUtil watch -address=demo.localdomain:12345 Jun 10, 2025 7:45:16 PM oracle.ias.cache.CacheInternal logLifecycleEvent INFO: JOC is initialized from oracle.ias.cache.CacheWatchUtil.main, ver=11.1.1.2.0, distribute=true, vid=30, coordinator=0, discover list=[[5.9.251.109:23456] segID=1, original] cache> |
For EBS 12.1 the commands differs a bit:
java oracle.ias.cache.CacheWatchUtil watch -config=$ORA_CONFIG_HOME/10.1.3/javacache/admin/javacache.xml |
Typing help in the prompt shows a list of the available commands:
cache> help Usage: list caches : print reachable Cache(s) info including CacheId(s) lc : shortcut for "list caches" list objects [CacheId] [region=] [sort=<0..7>]: print objects list lo [CacheId] [region=] [sort=<0..7>]: shortcut for "list objects" 0: By region name 1: By object name 2: By group name 3: By object type 4: By valid status 5: By reference count 6: By access count 7: By expiration set level=s [CacheId] : set logger level to n set timeout=n : set Group Communication timeout value to n get config [CacheId] : get configuration info dump [CacheId] : cause Cache(s) dump its contents to the logger invalidate: cause Cache to invalidate all objects in the cache destroy: cause Cache to destroy all objects in the cache iostat: distribute cache I/O statistics for this JVM help or ? : Display this help quit or exit: quit |
If you try the ‘list caches’ command it will return some information about the processes using the cache:
cache> list caches
View Id: 32
My ProcessId: 47339_demo.localdomain
Distributor Table:
ip/port position processId
============================================================
#1. 5.9.251.109:12345 0 32506_demo.localdomain Coordinator
Member Table:
ip/port position processId
============================================================
#1. 5.9.251.109:18479 6 34194_demo.localdomain
#2. 5.9.251.109:17815 1 32506_demo.localdomain
#3. 5.9.251.109:17818 3 32518_demo.localdomain
#4. 5.9.251.109:17827 4 32493_demo.localdomain
#5. 5.9.251.109:14369 7 47339_demo.localdomain
#6. 5.9.251.109:36591 5 12784_demo.localdomain
#7. 5.9.251.109:17816 2 32544_demo.localdomain
#8. 5.9.251.109:17813 0 32532_demo.localdomain |
The ‘list objects’ command displays objects in each of the caches. The list is quite large, so I will give only an extract.
cache> list objects
[FND/PROFILE_OPTION_CACHE] [UMX_REGISTER_HERE_REG_SRV] [FND/PROFILE_OPTION_CACHE] Memory 0 7741 14373 Seconds true null
[FND/USER_ID_CACHE] [FND/USER_ID_CACHE] [FND] Region 0 20 None true null
[FND/PROFILE_OPTION_VALUE_CACHE] [[oracle.apps.fnd.profiles.ProfileOptionValue@f9a2d81e $Revision: 120.3 $ extends [oracle.apps.fnd.cache.KeyConverterHelper@f9a2d81e $Revision: 120.4 $ extends [oracle.apps.fnd.cache.GenericCacheLoader@f9a2d81e $Revision: 120.6.12020000.2 $ extends oracle.apps.fnd.profiles.ProfileOptionValue@f9a2d81e]] {FND_LOGIN_ABOUT,null,10005,-1,0,null}]] [FND/PROFILE_OPTION_VALUE_CACHE] Memory 0 7733 14373 Seconds true null
[FND/FUNCTION_ANCESTOR_CACHE] [FND/FUNCTION_ANCESTOR_CACHE] [FND] Region 0 2740 None true null
[JTF/JTF_PROPERTYMANAGER_CACHE] [JTF/JTF_PROPERTYMANAGER_CACHE] [JTF] Region 0 14 None true null
Cache 7 at [:0] segID=1, ID:J14369:5.9.251.109:[email protected], position:7
REGION OBJNAME GROUP TYPE REFCNT ACCCNT EXPIRE VALID LOCK
-------- --------- ------- ------ -------- -------- -------- ------- ------
[oracle_java_cache_service] [oracle_java_cache_service] [null] Region 1 2 None true null |
The invalidate command causes the cache to invalidate all objects in the cache
cache> invalidate invalidate finished. |
I do NOT recommend running the destroy command as it causes the issues in the EBS application front end. The applications restart is required after this command.
2 Conclusion
There is no official Oracle documentation confirming this it is the correct procedure of clearing the cache from the back end.
But I did not face issues related to the cache after I added the above command to a script.
Please test and let me know if it works for you or do you have any suggestions?