JVM

Upgrading a PDB with JVM may result in ORA-7445 joevm_invokevirtual

As you know, this blog is also my brain dump about Oracle topics. Since this one happened yesterday, mostly at night with the help of my team mates and the Java team, I’d like to write it down into this blog post: Upgrading a PDB with Java may result in ORA-7445 joevm_invokevirtual() as it is still fresh and may affect you as well. If you don’t have PDBs, if you don’t have Java (or JVM) in it or if you upgraded already to Oracle Database 19c, you can stop reading now.

What

Continue reading...

Do you need the Mitigation Patch in CDB$ROOT and all PDBS?

Thanks to Axel Delin for asking this very reasonable question on the blog. Do you need the Mitigation Patch in CDB$ROOT and all PDBS? Background for this question is that Axel can’t remove JVM but doesn’t use it. A typical case we cover in our slides and presentations as well. And in this case, the Mitigation Patch will become your friend. Please note: If you DON’T have JAVAVM in your database, you won’t need to pay attention and instead could stop reading now.

Do you need the Mitigation Patch in CDB$ROOT and all PDBS?

Photo by Mick Truyts on Unsplash

Mitigation Patch

You can read more about the Mitigation Patch, and …

Continue reading...

Patching all my environments with the January 2021 OJVM Bundles

You may have read my blog post from the other day about patching my environments with the January 2021 Release Updates. But as I installed now Java in all my databases for testing purposes, I will quickly demonstrate how Patching all my environments with the January 2021 OJVM Bundles works.

Security Alert January 2021

Let me start with the Security Alert for January 2021. And don’t forget to take a look at the Oracle Database Server Risk Matrix for January 2021. This time, the is a 4.8 risk score issue with …

Continue reading...

OJVM datapatch fails with ORA-29532 – but the root cause is noncdb_to_pdb.sql

Kudos to Robert Ortel who brought this nice misbehavior to my attention. And even though it looks like this would be an OJVM issue, it is caused by noncdb_to_pdb,sql, the script which is used to convert a non-CDB to a PDB. When you apply an OJVM patch, OJVM datapatch fails with ORA-29532 – but the root cause is noncdb_to_pdb.sql.

OJVM datapatch fails with ORA-29532 - but the root cause is noncdb_to_pdb.sql

Photo by Alexandra Gorn on Unsplash

It’s a bit tricky

First things first. This is not a blog post to blame OJVM. The problem just happens because datapatch for an OJVM patch touches data in the dictionary which hasn’t …

Continue reading...

OJVM and the Mitigation Patch – Things to know in 2020

Today my headline sounds a bit like “Little Red Riding Hood and the Big Bad Wolf” – but there is a reason why I’d like to write about about OJVM and the Mitigation Patch – Things to know in 2020. We are working with a customer right now where preupgrade.jar gave a warning about the existence of the Mitigation patch in an 11.2.0.4 home – despite the fact that JAVAVM is not configured in this database. And this looked strange to us.

OJVM and the Mitigation Patch - Things to know

Photo by Šárka Jonášová on Unsplash

Mitigation Patch?

A quick search on my blog shows me that …

Continue reading...

Issues with seed databases, patch bundles and OJVM in 19c

I really rely on people telling me about issues they saw. And in this case, it happened twice within a few days. At OOW London, a customer came after my talk and told me about invalid objects and an incredible long recompilation time. In fact, he had to apply an OJVM patch in order to solve this. When I returned home, Jure commented on the blog about a very similar issue. I spent some time on the weekend to check it out. And I realized: There are issues with prebuilt seed databases and OJVM in 19c.

Issues with seed databases, patch bundles and OJVM in 19c

Photo by Max

Continue reading...

Do you need STARTUP UPGRADE for OJVM?

Actually I carry around this topic with me since the October 2019 workshop in Dubai. We’ve had one of these OJVM Patching discussions I’d like to escape usually. Anyhow, during this session, it dawned me that the STARTUP UPGRADE requirement in the OJVM readme may be not correct anymore. So the question will be: Do you need STARTUP UPGRADE for OJVM?

Do you need STARTUP UPGRADE for OJVM?

Photo by Nik Shuliahin on Unsplash

A little bit of history

You will find a good amount of blog posts about OJVM here. OJVM stands for Oracle Java Virtual Machine. It is a very powerful thing and allows you …

Continue reading...

Does OJVM patching require a specific Database Release Update?

This question came up several times in the past days: Does OJVM patching require a specific Database Release Update? People mentioned that there’s a significant difference between the OJVM Patch Readme between Oracle 12.2.01 and Oracle 18.4.0.

Photo by Jimmy Ofisia on Unsplash

What’s the point?

In the OJVM (Oracle Java Virtual Machine) Patch Readme for Oracle Database 12.2.0.1 a sentence clarified that you can combine different states of OJVM and Database patch bundle with each other. Your database home could have been patched with the April 2018 Update, whereas you decided to apply the October 2018 OJVM patch.

The …

Continue reading...

Are OJVM patches included in the Oracle 12.2 RU / RUR?

Are OJVM patches included in the Oracle 12.2 RU / RUR?I have received this question multiple times in the past days, especially when I presented at the Slovenian Oracle User Group Conference about the new Release and Patching Mode but also via emaill: Are OJVM patches included in the Oracle 12.2 RU / RUR? Let me clarify this in the below blog post.

Are OJVM patches included in the Oracle 12.2 RU / RUR?

At first I did check MOS Note: 1929745.1 – Oracle Recommended Patches — “Oracle JavaVM Component Database PSU and RU” (OJVM PSU and OJVM RU) Patches.But besides having RU mentioned in the Note’s title and …

Continue reading...

JAVAVM and XML Clean Up in Oracle Database 11.2-19c

JAVAVM and XML Clean Up in Oracle Database 11.2-12.2JAVAVM and XML clean up in Oracle Database 11.2-19c is a tough topic. Many have suffered from the rolling patch upgrade issues with the OJVM (Oracle Java Virtual Machine) even though most of the issues have been cured with the recent patches.

Please see my previous blog posts starting here:

And please see also this very important MOS Note: 2217053.1 – RAC Rolling Install Process for the “Oracle JavaVM Component Database

Continue reading...

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

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

MOS Note released explaining patching without STARTUP UPGRADE mode

An important note regarding OJVM rolling patching has been published on MyOracle Support:

MOS Note: 2217053.1
RAC Rolling Install Process for the “Oracle JavaVM Component Database PSU” (OJVM PSU) Patches

“Beginning with the Jan2017 OJVM PSU patchset for 11.2.0.4 and

Continue reading...

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

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

What is missing with the “Mitigation Patch?

Michael, the team lead from a large Oracle customer mailed me the other day. He wanted to disable Java on all their +600 databases by using the Mitigation Patch for OJVM. But he received a strange error when trying to enable the …

Continue reading...

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

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

What is the “Mitigation Patch?

In MOS Note:1929745.1 – Oracle JavaVM Component Database Patches there’s a section called What is the Mitigation Patch. It says:
For situations where the latest OJVM PSU cannot be installed immediately there is a “Mitigation Patch” that can be used. The “Mitigation

Continue reading...

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

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

Important Notes

Continue reading...

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 …

Continue reading...

OJVM patch: Standby-First patching, yes or no?

I have blogged in the past more than once about the “wonderful” topic of OJVM patching.

Anyhow,  I’d like to summarize a few typical questions sent to me in the past months regarding OJVM patching.

Do I need to apply the OJVM patch every time I apply a PSU or BP?

Unfortunately this is not a one-time-and-then-you-are-set operation. You’ll have to do it every time.

How do I find out if OJVM is used in my database?

I tried to nail this down in this blog post here:

But …

Continue reading...

Oracle 12.2: OJVM will no longer support compilation of SQLJ source – and JPub does not get shipped anymore

In Oracle Database 12.2.0.1, OJVM will no longer support the compilation of SQLJ source or executing SQLJ classes.

SQLJ on the client side will continue to be developed, shipped and supported.  Only the part inside the DB is affected. Existing SQLJ code that runs inside the DB will need to be re-coded to use generic JDBC.

Furthermore JPubublisher (client-side and inside-DB) will not get shipped anymore with Oracle Database 12.2. It got removed from the RDBMS code. There is no replacement.

See here:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/upgrd/desupported-features-oracle-database-12c-r2.html#GUID-12BE00C5-D043-43DE-BCE0-2D3BD400AE29

–Mike…

Continue reading...

Java in the database – OJVM non-rolling patches – OJVM Removal

Question:

How can I find out if Oracle’s JVM is used in my database?

Answer:

This is unfortunately not as trivial as I thought initially …
Let’s start with:

Until Oracle version 11.2 or later, there was no way to confirm if Oracle JVM is not actively used in the database

However, what can be said is:
1) If there are non-Oracle schemas that contain java objects, then 3rd party products or user defined java programs could be actively using the Oracle JVM.
2) If there are Oracle schemas, other than SYS, that contain java objects, then 

Continue reading...

Oracle Database 12c pre-upgrade scripts and JAVAVM

This is a great example of why you should always review the README file when upgrading to a new release. Here is an issue that we found during customer beta testing, and that you will want to be aware of if you are upgrading to Oracle Database 12c and do not have the JAVAVM component in your database. The following text has been added to the 12.1 Readme under Section 1.1:

TITLE: Pre-Upgrade Tool Does Not Generate Output Logs 

The pre-upgrade tool, preupgrd.sql, is not able to create a directory to
store the output files if the JAVAVM component
Continue reading...