1) To install the basic JServer in the Oracle database.. i.e. Complete
Java Runtime, you must run $ORACLE_HOME/javavm/install/initjvm.sql as
SYS. This will give you base JServer which is required to install any
additional Java related add-ons. After the installation, if you run
this query as SYS will give you > 8500 object count.
SQL> select count(*) from user_objects where object_type like 'JAVA%'.
This first step must be done before proceeding with installation of any
other Java related add-ons. You can also run the above query before
running initjvm.sql to see if the JServer is already installed.
By including $ORACLE_HOME/jdbc/lib/classes12.zip in the classpath will
expose all client side XA classes.
2) $ORACLE_HOME/javavm/install/initxa.sql creates the server side
wrapper package called JAVA_XA. This package requires server side XA
classes to be installed in the database i.e. "oracle.jdbc.xa.server.*".
I looked thru some posts in Metalink which only says to run initjvm.sql
followed by initxa.sql. This looks wrong to me since initxa.sql ONLY
creates a plsql wrapper package for server side XA classes. It does not
actually install the server side XA classes which reside in
$ORACLE_HOME/javavm/lib/aurora.zip file. By just running the initxa.sql
and calling one of the package functions will most likely error out
since no underlying class exists. Oracle does not do a check to see if
the java class exists when deploying the wrapper package.
I have not tested this but I am pretty sure that installing
$ORACLE_HOME/javavm/lib/aurora.zip via loadjava tool must be done
before running initxa.sql.. else there is no point just running
initxa.sql without the underlying classes.