RE: removal of Java from existing databases

  • From: Laimutis Nedzinskas <laimutis.nedzinskas@xxxxxxxxxxxxxxxxxxxxx>
  • To: oracle-l <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 20 Oct 2015 15:11:45 +0000

Hi

Did that on 10.2.0.4 before migrating into 11g.
Used metalink notes to check for dependencies and removal instructions, just
like you do.
Keep in mind, that 11g has network ACL’s for utl_tcp/utl_http, etc. I haven’t
find a way around XML/Java packages for that functionality, meaning for one
database which used HTTP to send some data out of the database I had to leave
java/xml.

Brgds,
Laimis N




From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On
Behalf Of Adric Norris
Sent: Monday, October 19, 2015 8:07 PM
To: oracle-l
Subject: removal of Java from existing databases

We have a number of databases, primarily 11.2.0.4 64-bit on Linux and Solaris,
which unnecessarily have Java installed (among other components). Since the
quarterly Java PSU can't be applied in a rolling manner, and we aren't really
using Java anyway, we're strongly considering taking a one-time outage to
deinstall the JavaVM and CATJAVA components from all of our environments.
Ideally we want to eliminate all traces, so that the databases behave as if the
Java subsystem had never been installed in the first place.

The plan is to follow step 2 (Remove the JVM) from MOS document 1112983.1 (How
to Reload the JVM in 11.2.0.x). Basically, this comes down to the following:

-- Start of File full_rmjvm.sql
spool full_rmjvm.log
set echo on
connect / as sysdba
startup mount
alter system set "_system_trig_enabled" = false scope=memory;
alter system enable restricted session;
alter database open;
@?/rdbms/admin/catnoexf.sql
@?/rdbms/admin/catnojav.sql
@?/xdk/admin/rmxml.sql
@?/javavm/install/rmjvm.sql
truncate table java$jvm$status;
select * from obj$ where obj#=0 and type#=0;
delete from obj$ where obj#=0 and type#=0;
commit;
select owner, count(*) from all_objects
where object_type like '%JAVA%' group by owner;
select obj#, name from obj$
where type#=28 or type#=29 or type#=30 or namespace=32;
select o1.name<http://o1.name> from obj$ o1,obj$ o2
where o1.type#=5 and o1.owner#=1 and
o1.name<http://o1.name>=o2.name<http://o2.name> and o2.type#=29;
shutdown immediate
set echo off
spool off
exit
-- End of File full_rmjvm.sql

Once complete, we would then followup by removing of any of the following
components which are found to be present.

* Oracle Multimedia (ORDSYS, ORDIM)
* Oracle Ultra Search (WKSYS)
* Oracle Data Mining (DMSYS)
* Oracle Spatial (MDSYS)
* Oracle Rules Manager and Expression Filter (EXFSYS)
* Oracle Warehouse Builder (OWBSYS)
* OLAP
Has anyone gone through a similar exercise? And if so, did you encounter any
"gotchas" which I should be watching out for? Some of these environments are
using GoldenGate for Oracle-to-Oracle data replication... not sure if this
complicates matters or not.

Thanx!

--
"In the beginning the Universe was created. This has made a lot of people very
angry and been widely regarded as a bad move." -Douglas Adams

Other related posts: