Hello,
OS: Oracle Linux 8.9
FORMS: 12.2.1.19
JAVA: 8u391
- I'm starting to get high cpu usage after some time, there is chance that some form/user error happends and cpu core spikes up usually just 1 core (with 100% usage) but with time all cores spike prob more of it happends in meantime. Here is screenshot from htop after some time when more of them happend.
Starts like this:

then goes and uses all cores with more time

after killing it, usage becomes 20% average.
I tried looking for trace files at: $DOMAIN_HOME/system_components/FORMS/forms1/trace
none were generated for this, also checked logs from $DOMAIN_HOME/servers/WLS_FORMS1/logs
there was one not related to this because it had older date
Then went and run EM to check user-sessions none were showing any cpu usage like we can see on screenshot:

Here is also performance graph for WLS_FORMS
nothing wrong with it in my opinion

So is there some way to find it which form/action triggers this and track it?
Found support note saying that it might happened because of LOV (just to keep in mind these forms used to run fine ~15years but since upgrade on 12.2.1.19
kept noticing this for like month) and they suggested setting:
FORMS_RECORD_GROUP_MAX=10000
but not even 30mins after setting it people started reporting app doesn't work but it was just amount of results returned i guess the issue so it was removed.
Also read that FORMS_TIMEOUT
is supposed to kill those “rouge processes” I have it set at 60
(1 hour) for now because people were complaining if they go to toilet it kills their app. Is it bad practice to keep it at 60
(1 hour)? initially I set it higher to like 480
because they work 8 hours but dropped it to 60
later.
Basically in short wanna find way to track what is causing that cpu usage to spike.
2. Same version on different VM used as test, people were complaining about idle app stops working so tried increasing FORMS_TIMEOUT
to even 240
but after like ~20minutes if idle app only shows loading bar at bottom right and isn't responsive anymore like session is killed so can i do something with that? wanted to put it like hour or two before timeout.
Also tried messing with heartbeat which in production I didn't touch but still no results.
Also as u can see we got alot of RAM available is there way to make it usable for app to perform better/faster? I read increasing heap doesn't really benefit performance so I'm open for suggestions.