Do you need to apply OJVM patches to Grid Infrastructure?

From time to time, when I discuss OJVM patching with customers, I hear the following question: Do you need to apply OJVM patches to Grid Infrastructure? I’m carrying around this topic since months actually.

Do you need to apply OJVM patches to Grid Infrastructure?

Photo by Jakub Kriz on Unsplash

A quick MOS check

Well, you’d assume this is something MOS does give you an answer within fractions of a second. But nope. I found a lot but unfortunately not what I was looking for. What I found instead where community discussions where applying OJVM patches to a 12.1.0.2 GI installation corrupted the inventory. Hence, there seems to be some evidence that people apply OJVM patches to GI homes.

Of course, I did check the README for the current OJVM January 2020 patch (30484981) – but it doesn’t answer my question.

So I’m in doubt now.

Good, when you have friends πŸ™‚

It happened that at OOW2019 my friend Roland from the RAC Performance Team attended as well. And in a quiet minute, we sat down at the Groundbreakers Hub in Moscone South’s basement and started evaluating the situation. Roland did a lot of OJVM patching in RAC environments. He knows all the gory details about it.

Why would you need to patch GI with OJVM??

We both were quickly in agreement that there may be two crucial points: The famous Grid Infrastructure Management Repository database (GIMR DB) which by the way is now optional in Oracle 19c – but only in a fresh GI install, not when you upgrade GI. And the ASM database. No other things could have any exposure to OJVM in a Grid Infrastructure home.

Check no.1: ASM database.

There is no JAVAVM component in an ASM database. We checked CDB_REGISTRY – and if there is no JAVAVM, there is no java subsystem from the database side.

Check no.2: GIMR database.

Same thing, there is no JAVAVM component in an GIMR DB. We checked CDB_REGISTRY, and JAVAVM is not present.

Check no.3: Is Java linked in?

The final check was necessary to make sure, JOX (the Just-in-Time Compiler) for the Java Virtual Machine is not linked in. It is present in standard environments by default. But JOX is not present in the executables in a Grid Infrastructure home. They get linked with jox_off.

And look how much fun we’ve had digging into this topic πŸ™‚
Thanks Roland!!

Summary

You may not need to apply OJVM patch bundles to a Grid Infrastructure home. There is no software component active allowing the use of OJVM functionality as far as I can see.

BUT: I’ve had a conversation with Anil Nair, the RAC PM. And Anil mentioned to me that there are components in the GI Home such as classes.bin, jox.o andΒ  jdk files that need to be updated.Β 

Now my question would be: Do I need to patch files which are in the home but won’t be actively used by the software stack?

And thank you to John Wang who pointed me to the MOS note I was searching for more than 1 hour:

In case you have a different opinion, please let me know. I’ll happily update this blog post with further insights.

One final question needs to remain unanswered: Why do we deliver COMBO patches with GI and OJVM? I have seriously no idea. And the README doesn’t shed some light here either.

Actually (thanks for adding this to Sven!), the reason is that the COMBO patch delivers everything despite that fact that it’s called GI+OJVM – it has the database patch bundle included, too.

Do you need to apply OJVM patches to Grid Infrastructure?

Further Information and Links

–Mike

Share this: