The closest internal documentation
I can find on the RM is from the PSS team here: How It Works: What are the RING_BUFFER_RESOURCE_MONITOR telling me?
Which specific to your question on which internal processes may contribute to changing the indicator
there is no specific documentation that answers this...that I can find. The article references actually shows that there is a startup trace flag 8020
that can be used (with extreme caution
) to narrow down what is triggering RM.
I think the main bit of text from the article above would be this:
There are memory broker decisions that come into play at this time. What the information is is saying is that a cache or the cache’s predicted usage will exceed internal targets and we need to start doing cache cleanup. By looking at the memory broker, ring buffer entries, you can see the behavior that broker it asking of RM. Using the clock hands you can see the internal and external hand movement. This will help you determine which caches are involved. The dbcc memorystatus() show good details and last notification states as well.
Not sure if that answers the question in full, but is about as close to what I can find online.
Actually, you're not required to have that deep knowledge for OCA exam, you just need to know which processes are required for database to function (PMON, SMON, DBWR, LGWR, CKPT, MMON, MMNL, RECO), some other processes that may be required when you configure other database options such as ARCHIVELOG database mode, what each of these processes does, and how they communicate with each other in rough outline.
As far as inter-process communication (IPC) is concerned, it is quite possible, for example, that on *nix, Oracle uses POSIX calls for communication, whereas on Windows it uses Windows API calls, in other words, the way Oracle implements inter-process communication differs between platforms because these platforms are implemented differently.
If you're preparing for OCA exam, you may already know (and you really should know) the memory architecture of Oracle, and that there's an area of memory called System Global Area (SGA). This memory area is used to keep the information used by many background and foreground processes including server processes and shared server processes (when Shared Server Architecture is used).
There's also the Fixed SGA area within the SGA which contains:
Information communicated between processes, such as information about
locks
You can also determine if Oracle allocates some IPC resources on *nix if you run ipcs
command before and after you start up the database. (I stumbled upon this in this AskTom article).
Therefore, you can see that Oracle uses both system calls, and shared memory to share information between Oracle processes.
Best Answer
Java inside the database is optional. If it is not installed, why waste memory on it?
Since 11.2.0.4, it is possible to "disable" it if patch 20681008 is installed, with the below parameter:
Starting with 12.2, the below can be used: