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
