The JDBC driver for an external database needs to be added to Rhino’s runtime environment before Rhino can connect to it. You’ll need the JDBC 2.0 driver from the database vendor. (You’ll only need to do this once per Rhino installation and database vendor.)
To install the driver, you need to add it to Rhino’s runtime environment and grant permissions to the classes in the JDBC driver. Rhino needs to be restarted after making these changes for them to take effect.
Add the library
To add the library to Rhino’s runtime environment, copy the JDBC driver jar file to $RHINO_BASE/lib
, then add the jar to Rhino’s classpath.
The method for adding classpath entries differs between the Rhino SDK and Rhino production versions.
Rhino SDK
For the Rhino SDK, add an entry for the JDBC driver jar file into the rhino.runtime.classpath
system property in $RHINO_HOME/config/jvm_args
.
Below is an example that includes the PostgreSQL and Oracle JDBC drivers.
# Required classpath -Drhino.runtime.classpath=${RHINO_BASE}/lib/postgresql.jar;${RHINO_BASE}/lib/derby.jar;${RHINO_BASE}/lib/ojdbc6.jar
Rhino Production
For the production version of Rhino, add an entry for the JDBC driver jar file into the RUNTIME_CLASSPATH
environment variable in $RHINO_BASE/defaults/read-config-variables
,
and the $RHINO_HOME/read-config-variables
file in any node directory that has already been created.
Below is an example for adding the Oracle JDBC driver:
# Set classpath LIB=$RHINO_BASE/lib CLASSPATH="${CLASSPATH:+${CLASSPATH}:}$LIB/RhinoBoot.jar" RUNTIME_CLASSPATH="$LIB/postgresql.jar" # Add Oracle JDBC driver to classpath RUNTIME_CLASSPATH="$RUNTIME_CLASSPATH:$LIB/ojdbc6.jar"
Grant permissions to the JDBC driver
To grant permissions to the classes in the JDBC driver, edit the Rhino security policy file, adding an entry for the JDBC driver jar file.
In the Rhino SDK, the policy file is $RHINO_HOME/config/rhino.policy
.
In the production version, the policy files are $RHINO_BASE/defaults/config/rhino.policy
, and $RHINO_HOME/config/rhino.policy
in any node directory that has already been created.
Below is an example for the Oracle JDBC driver:
// Add permissions to Oracle JDBC driver grant codeBase "file:$${rhino.dir.base}/lib/ojdbc6.jar" { permission java.net.SocketPermission "*", "connect,resolve"; permission java.lang.RuntimePermission "getClassLoader"; permission java.util.PropertyPermission "oracle.*", "read"; permission java.util.PropertyPermission "javax.net.ssl.*", "read"; permission java.util.PropertyPermission "user.name", "read"; permission javax.management.MBeanPermission "oracle.jdbc.driver.OracleDiagnosabilityMBean", "registerMBean"; };