The OJVM Patching Saga – and how to solve it – Part I

Related Posts on
The OJVM Patching Saga – and how to solve it“:

Who’s the Product Manager for Patching?

First of all, I’m neither a patching expert nor am I the Product Manager for Patching. There’s no such role as far as I know but there are people inside Oracle who have way more clue about this topic. There’s a group inside Oracle’s development owning this topic but I’m not working in this team.

Still I’m interested in patching.
Why? Simply because patching goes usually in conjunction with an upgrade or a migration first. Our recommendation for years is this straight forward approach:

  1. Download and install the most recent release (in most cases the newest patch set which is a full release since Oracle 11.2.0.2)
  2. Then apply the most recent Bundle Patch (or Patch Set Update) on top
  3. Then apply the important one-off (single) patches on top (see our slide deck for a guided how-to)
  4. Then upgrade or migrate

This way you’ll make sure to avoid the most terrible issues known to Oracle already. Of course there’s no guarantee that this will avoid all potential issues and pitfalls. But when dealing with Oracle Support later on (or myself in case we work together on a reference project) it’s much easier for you and us as we won’t waste time to diagnose issues which are already fixed.

Ah, and there’s my background of 6 years of RDMBS mission critical support when I started at Oracle almost 20 years ago.

The OJVM Drama or Saga

Well … procrastination is a terrible but very human habit. The OVJM topic is on my radar for 6 months now. Actually even longer but more and more people approached me in the past months asking so many questions about OJVM patching. And I realized that I don’t have an answer in all cases. As I said above, I’m not a patching expert.

What is this thing I’m calling the OJVM drama or saga? And what the heck is OJVM?

Very important:
If you don’t have a RAC (Real Application Clusters) system or intend to do Standby-First Patching (see MOS Note: 1265700.1 – Data Guard Standby-First Patch
Apply
) you can stop reading here. This “drama” won’t affect you at all.

OJVM is the Oracle Java Virtual Machine which gives you the ability to execute JAVA code directly in the database. The glossary says: “A standard, Java-compatible environment that runs any pure Java application“. If you intend to search for it please use “Oracle JVM” or “JVM” but not “OJVM” as it is not known in the documentation as OJVM.

The saga started actually with the October 2014 PSU (Patch Set Update). It included a patch for the Oracle JVM which required the database to be restarted. And this meant that the patch is not RAC rolling installable anymore.

Older Blog Posts about OJVM?

Yes of course, I did blog about this already:

But my focus in these posts is to show you potential solutions and share my experience with workarounds.

So please stay tuned 😉

–Mike

10 thoughts on “The OJVM Patching Saga – and how to solve it – Part I

  1. Hi ,
    above you seem to say that if one does not have a RAC system , so only single instance database , then we don’t need to apply the OJVM? Is this correct and can you point me to a doc in MOS where this is stated?

    Thanks
    Anthony

  2. Anthony,

    no – this is not what I’m saying. I’m saying that if you don’t have a RAC or a Standby where you do Standby-First Patching you don’t have to take care on the inconveniences of OJVM patching restrictions as you can’t do a rolling PSU or BP upgrade anyways in a single instance environment.

    Therefore you won’t see any difference regarding the patching process on single instance, no matter if you have OJVM or not.

    And no, if you have OJVM you MUST apply the patches as otherwise you’ll miss the security fixes. Or you’ll use the mitigation patch to disable the java subsystem. Or you don’t install OJVM to bypass those things.

    Cheers
    Mike

  3. Pingback: The OJVM Patching Saga – and how to solve it – Part II | Upgrade your Database - NOW!

  4. Pingback: The OJVM Patching Saga – and how to solve it – Part III | Upgrade your Database - NOW!

  5. Pingback: The OJVM Patching Saga – and how to solve it – Part IV | Upgrade your Database - NOW!

  6. Pingback: The OJVM Patching Saga – and how to solve it – Part V | Upgrade your Database - NOW!

  7. Pingback: JAVAVM and XML Clean Up in Oracle Database 11.2-12.2

  8. Hi Mike,
    currently I’m patching our 12.2 and 12.1 GI/RDBMS env. with RU Jan 2018 and OJVM under OL 7.4. No problems (opatchauto made a good job).
    But I noticed some interessting difference in OJVM Readmes.
    In the 12.1 you can potentially patching a cluster OJVM in rolling manner in 12.2 there is no way to do that (regarding Readme). Do you know the reason?
    Cheers Peter
    *********
    Readme 12.1
    Patch 27001733 – Oracle JavaVM Component 12.1.0.2.180116 Database PSU
    This document describes how you can install Patch 26635845 – Oracle JavaVM Component 12.1.0.2.180116 Database PSU on your Oracle Database 12c Release 1 (12.1.0.2.0).

    This patch is not Oracle RAC Rolling installable. However, starting with the Jan2017 OJVM PSU patchset for 12.1.0.2, the OJVM PSU may be installed in a “Conditional Rolling Install” fashion for the following use cases:
    No OJVM usage
    OJVM used by non-critical jobs and programs
    OJVM used by critical functions isolated as services
    OJVM used extensively, not isolated, and downtime is tolerated
    OJVM used by critical functions and minimal downtime is required
    See My Oracle Support Document 2217053.1 for more details.

    This patch is Database Vault installable. Review My Oracle Support Document 1195205.1 for details on how to apply this patch to a Database Vault environment.
    **************
    Readm 12.2
    Patch 27001739 – Oracle JavaVM Component Release Update 12.2.0.1.180116

    This document describes how you can install Patch 27001739 – Oracle JavaVM Component Release Update (OJVM RU) 12.2.0.1.180116 on your Oracle Database 12c Release 2 (12.2.0.1.0).
    This patch is not Oracle RAC Rolling installable.
    This patch is Database Vault installable. Review My Oracle Support Document 1195205.1 for details on how to apply this patch to a Database Vault environment.
    This patch is not Data Guard Standby First Installable.

      • Peter,

        the readme of 12.2 is faulty. No idea why copy/paste is so complicated and the same error happens over and over again.
        I have double-checked and sent an email to somebody who hopefully may trigger the correction. But no guarantee that it appears again … 🙁

        Cheers,
        Mike

Leave a Reply

Your email address will not be published. Required fields are marked *