Hi all:

I'm working on the Oracle 11g to OAE 1.2 integration documentation and I've run 
into a stumper.

Depending on which driver I download from 
http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html, I 
get a different set of unresolved dependencies on start up. The mvn build works 
just fine, both on the sparse side and on the nakamura side. When I call 
run_production though I get the following failures:

Oracle 11.2.0.2.0, ojdbc6.jar -- can't find xdb.jar
Oracle 11.2.0.2.0, xdb6.jar -- can't find oracle.aurora.jar

As always, any pointers would be greatly appreciated. I'm handing all the text 
off to my editor tonight, and we're going to press next Tuesday, so this is a 
bit of a last ditch effort on Oracle 11. In good news, Oracle 10 integration 
looks pretty straightforward. In bad news, I think I'd still like to see more 
people on 11g.

Thank you,
-- Max

Steps as I have them now:

===
Build the sparsemap bundle with the ojdbc6.jar for Oracle 11
===
Grab the sparse code from 
https://github.com/sakaiproject/sparsemapcontent/tree/org.sakaiproject.nakamura.core-1.3.4.
 Click the ZIP button to download a zipball of sparsemapcontent.

Unzip the sparsemapcontent source code into your source directory, at a level 
parallel to where you've been working with nakamura. Move it to a human 
readable name, like sparsemap. Copy the ojdbc6.jar driver to the sparsemap 
directory, and install it into your maven repository. The version parameter is 
the actual version of the Oracle 11 database, e.g. 11.2.0.2.0.

mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle 
-DartifactId=ojdbc6 -Dversion=<oracle11version>

This maven command installs a new artifact in the repository with an associated 
pom showing the artifact name and version number, for example 
ojdbc6/11.2.0.2.0/ojdbc-11.2.0.2.0.pom. This gets picked up in the bundle 
build. 

Modify the pom.xml in the sparsemap directory. Uncomment the entry for the 
ojdbc artifact, and modify it to match the artifact and version number just 
installed in maven. The entry for oracle11version is the actual version number, 
e.g. 11.2.0.2.0:

<dependency>
   <groupId>com.oracle</groupId>
   <artifactId>ojdbc6</artifactId>
   <version>oracle11version</version>
</dependency>

Now make a clean install in the sparsemap directory.

cd sparsemap
mvn clean install

This will build in about 2 minutes, and stow the artifact in your maven 
repository. Once your ojdbc6 jar for sparsemapcontent is built, the next step 
is to build it into nakamura. 

===
Build nakamura with ojdbc6.jar and the new sparsemap bundle for Oracle 11
===
Now that the sparsemap bundle is built with Oracle, rebuild Nakamura both to 
rely on the Oracle driver and to include the new sparsemap driver. First, build 
the nakamura version of the ojdbc6 bundle. Like the sparsemap bundle, this gets 
built in a specific directory, configured by a small pom dedicated to bundling 
just this driver. The location is the contrib/oracle-jdbc-6 directory within 
nakamura. 

Copy the same ojdbc6.jar into the nakamura/contrib/oracle-jdbc-6 directory that 
you downloaded and put in the sparsemap directory. 

Change to the oracle-jdbc-6 directory and modify the pom.xml file there. In 
this pom, unlike the Oracle 10 pom, the ojdbc6 dependency is active and need 
not be uncommented. The version just needs to be set to match the numeric 
version number of the Oracle 11 instance, precisely the same as the com.oracle 
dependency in the sparsemap pom.xml. 

Once the version number is set there, build the bundle:

cd nakamura/contrib/oracle-jdbc-6
mvn clean install

In order to include this new jdbc jar, edit the list.xml file to indicate the 
ojdbc6 driver instead of the postgres wrapper. The list.xml file is in nakamura 
in the app/src/main/bundles directory. Edit the list.xml file to replace the 
postgreswrapper with the correct ojdbc. In the section

<bundle>
   <groupId>org.sakaiproject.nakamura</groupId>
   <artifactId>org.sakaiproject.nakamura.postgresqlwrapper</artifactId> 
   <version>1.2.0</version>
</bundle>

replace the artifactId with ojdbc6. for Oracle 11. Notice that in this instance 
the version number is 1.2.0, which corresponds to the nakamura versioning, not 
the Oracle 11 version number.

   <artifactId>org.sakaiproject.nakamura.ojdbc</artifactId>
   <version>1.2.0</version>

Now that the correct jdbc is indicated, rebundle nakamura:

cd nakamura
mvn -Pbundle clean install

It should clock in at about four minutes.

===
Configure the Oracle connection
===
The connection configuration is that same for both Oracle 10 and 11. Create a 
directory in the nakamura directory where OAE will find the Oracle 
configuration parameters.

In this instance the name matches the JDBC connector, but the directory 
structure reflects the full classpath:

cd nakamura/
mkdir -p sling/config/org/sakaiproject/nakamura/lite/storage/jdbc
vi 
sling/config/org/sakaiproject/nakamura/lite/storage/jdbc/JDBCStorageClientPool.config

In this file put the contents for your database connection. The values for 
jdbc-driver and service.pid should be exactly as shown. The jdbc-url, username 
and password will be specific to your Oracle installation.

jdbc-driver="oracle.jdbc.driver.OracleDriver"
service.pid="org.sakaiproject.nakamura.lite.storage.jdbc.JDBCStorageClientPool"
jdbc-url="jdbc:oracle:thin:@machine.example.edu:1521:SID"
password="pass"
username="user"

Save this file, and the system it ready to start up and populate the Oracle 
schema.
_______________________________________________
oae-dev mailing list
[email protected]
http://collab.sakaiproject.org/mailman/listinfo/oae-dev

Reply via email to