Hi Mohammad, On Fri, 2018-11-09 at 14:02 -0500, Mohammad wrote: > Hi, > > (Sorry I originally sent this on the d...@sling.apache.org list by > accident.) > > The documentation for RDBDocumentStore (here: > https://jackrabbit.apache.org/oak/docs/apidocs/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.html) > > mentions Oracle as a supported database so I've been trying to > figure > out how to configure Sling to use it. > > The first question I have is, what versions of Oracle DB are > supported/tested against?
That question is more for the Jackrabbit/Oak team. We do not have any specific tests for the RDB part. Actually, it's not even included in the Slingstart. > > The second question is, how do I configure a modified sling webapp > war > file to use Jackrabbit Oak with an Oracle DB backend? I would start by modifying the current Sling starter, seems easier :-) First of all, check out the code from https://github.com/apache/sling-org-apache-sling-starter Then need to add another run mode which configures the Oracle DB for persistence. I have not tried this at all, so it might simply blow up, but I hope it's at least a step in the right direction diff --git a/src/main/provisioning/boot.txt b/src/main/provisioning/boot.txt index fc31337..1253c17 100644 --- a/src/main/provisioning/boot.txt +++ b/src/main/provisioning/boot.txt @@ -25,7 +25,7 @@ # oak_tar and oak_mongo run modes are mutually exclusive, # and cannot be changed after the first startup [settings] - sling.run.mode.install.options=oak_tar,oak_mongo + sling.run.mode.install.options=oak_tar,oak_mongo,oak_rdb_oracle repository.home=${sling.home}/repository localIndexDir=${sling.home}/repository/index diff --git a/src/main/provisioning/oak.txt b/src/main/provisioning/oak.txt index 4621efc..a2f7a7d 100644 --- a/src/main/provisioning/oak.txt +++ b/src/main/provisioning/oak.txt @@ -50,6 +50,11 @@ org.mongodb/mongo-java-driver/3.6.4 com.h2database/h2-mvstore/1.4.194 +[artifacts startLevel=15 runModes=oak_rdb_oracle] + # Note - add oracle JDBC driver here + org.apache.sling/org.apache.sling.datasource/1.0.2 + + # start the Oak server instance after all components have been configured # and started to avoid restarting that component ( see SLING-4556 ) [artifacts startLevel=16] @@ -99,3 +104,14 @@ org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService mongouri="mongodb://localhost:27017" db="sling" + +[configurations runModes=oak_rdb_oracle] + org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService + documentStoreType="RDB" + + # Note - adjust connection data in url, username, password + org.apache.sling.datasource.DataSourceFactory-oak.config + url="jdbc:oracle:thin:localhost:port:SID" + driverClassName="oracle.jdbc.OracleDriver" + username="test" + password="test" After that you can rebuild sling $ mvn clean package And run with $ java -jar ... -Dsling.run.modes=oak_rdb_oracle Let me know how that works, would be good to know :-) Thanks, Robert