Expand my Community achievements bar.

Adobe AEM Integrated with Oracle DB as Node and Document Storage

Avatar

Level 2

Hi

I am trying to use Oracle DB as my Node and Document storage for AEM instead of the JCR.

I understand there is no full support for this implementation from Adobe.

I am referring the below Adobe Doc : RDBMS Support in AEM 6.3

I have done the below steps :

  1. Downloaded Oracle JDBC Jar "ojdbc8.jar" and converted this jar into an OSGi bundle named "com.oracle.jdbc_1.0.1.jar". I had resolved all dependencies and the bundle installs in Active State
  2. I created two config files under "crx-quickstart\install".
    • org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
      • documentStoreType="rdb"

      • dataSource="oak"

      • persistentCache="-"

      • journalCache="-"

    • org.apache.sling.datasource.DataSourceFactory-oak.config
      • datasource.name="oak"

      • url="jdbc:oracle:thin:@//localhost:1521/ORCLCDB"

      • driverClassName="oracle.jdbc.OracleDriver"

      • username="sys"

      • password="WelcomeAEM!"

      • testOnConnect="false"

      • testWhileIdle="false"

      • dataSourceJNDI="jdbc/OAK"

  3. I placed the JDBC OSGi bundle "com.oracle.jdbc_1.0.1.jar" under "crx-quickstart\install\9".
  4. I started the AEM Server with "java -jar cq-author-p4502.jar -r crx3,crx3rdb"

I am getting "Oracle Driver not found error" as below.

Appreciate your help. I think I am missing something fundamental.

ERROR* [FelixStartLevel] org.apache.tomcat.jdbc.pool.ConnectionPool Unable to create initial connections of pool.

java.sql.SQLException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [55]

at org.apache.sling.datasource.internal.DriverDataSource.loadDriverClass(DriverDataSource.java:192)

at org.apache.sling.datasource.internal.DriverDataSource.getDriver(DriverDataSource.java:164)

at org.apache.sling.datasource.internal.DriverDataSource.getConnection(DriverDataSource.java:85)

at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDataSource(PooledConnection.java:224)

at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:180)

at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:713)

at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:647)

at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:468)

at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:145)

at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)

at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)

at org.apache.sling.datasource.internal.DataSourceFactory$LazyJmxRegisteringDataSource.createPool(DataSourceFactory.java:364)

at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBConnectionHandler.getConnection(RDBConnectionHandler.java:147)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBConnectionHandler.getRWConnection(RDBConnectionHandler.java:70)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.initialize(RDBDocumentStore.java:789)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.<init>(RDBDocumentStore.java:209)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.<init>(RDBDocumentStore.java:221)

at org.apache.jackrabbit.oak.plugins.document.DocumentMK$Builder.setRDBConnection(DocumentMK.java:740)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.registerNodeStore(DocumentNodeStoreService.java:493)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.registerNodeStoreIfPossible(DocumentNodeStoreService.java:416)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.activate(DocumentNodeStoreService.java:400)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224)

at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39)

at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617)

at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501)

at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:302)

at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:294)

at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:298)

at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109)

at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906)

at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879)

at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:749)

at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:675)

at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:430)

at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:657)

at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:341)

at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:390)

at org.apache.felix.scr.impl.Activator.access$200(Activator.java:54)

at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:265)

at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259)

at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232)

at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482)

at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415)

at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)

at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444)

at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:916)

at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:835)

at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:517)

at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4542)

at org.apache.felix.framework.Felix.startBundle(Felix.java:2173)

at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1372)

at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [55]

at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)

at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)

at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1926)

at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)

at org.apache.sling.datasource.internal.DriverDataSource.loadDriverClass(DriverDataSource.java:188)

... 57 common frames omitted

28.02.2018 16:53:34.192 *ERROR* [FelixStartLevel] org.apache.jackrabbit.oak-core [org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService(183)] The activate method has thrown an exception (org.apache.jackrabbit.oak.plugins.document.DocumentStoreException: initializing RDB document store)

org.apache.jackrabbit.oak.plugins.document.DocumentStoreException: initializing RDB document store

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.<init>(RDBDocumentStore.java:211)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.<init>(RDBDocumentStore.java:221)

at org.apache.jackrabbit.oak.plugins.document.DocumentMK$Builder.setRDBConnection(DocumentMK.java:740)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.registerNodeStore(DocumentNodeStoreService.java:493)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.registerNodeStoreIfPossible(DocumentNodeStoreService.java:416)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.activate(DocumentNodeStoreService.java:400)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224)

at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39)

at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617)

at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501)

at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:302)

at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:294)

at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:298)

at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109)

at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906)

at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879)

at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:749)

at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:675)

at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:430)

at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:657)

at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:341)

at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:390)

at org.apache.felix.scr.impl.Activator.access$200(Activator.java:54)

at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:265)

at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259)

at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232)

at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482)

at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415)

at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)

at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444)

at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:916)

at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:835)

at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:517)

at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4542)

at org.apache.felix.framework.Felix.startBundle(Felix.java:2173)

at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1372)

at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.sql.SQLException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [55]

at org.apache.sling.datasource.internal.DriverDataSource.loadDriverClass(DriverDataSource.java:192)

at org.apache.sling.datasource.internal.DriverDataSource.getDriver(DriverDataSource.java:164)

at org.apache.sling.datasource.internal.DriverDataSource.getConnection(DriverDataSource.java:85)

at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDataSource(PooledConnection.java:224)

at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:180)

at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:713)

at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:647)

at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:468)

at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:145)

at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)

at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)

at org.apache.sling.datasource.internal.DataSourceFactory$LazyJmxRegisteringDataSource.createPool(DataSourceFactory.java:364)

at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBConnectionHandler.getConnection(RDBConnectionHandler.java:147)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBConnectionHandler.getRWConnection(RDBConnectionHandler.java:70)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.initialize(RDBDocumentStore.java:789)

at org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.<init>(RDBDocumentStore.java:209)

... 41 common frames omitted

Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [55]

at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)

at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)

at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1926)

at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)

at org.apache.sling.datasource.internal.DriverDataSource.loadDriverClass(DriverDataSource.java:188)

... 57 common frames omitted

15 Replies

Avatar

Level 4

Check if you have added right dependency for Oracle/RDBMS Drivers  and its running the bundle?

Avatar

Level 2

Hi Navin, Yes, the dependencies are right and the bundle is running.

Avatar

Community Advisor

Hi,

Make sure your bundle that you created for oracle declares that it exports oracle.jdbc.OracleDriver in it's OSGi export declaration.

E.g. it tells everyone that they may use code from oracle.jdbc.

Regards,

Peter

Avatar

Level 10

Talk to Adobe Support whom replied:

There is RDBMK that support Oracle DB, but this is for Forms only.

For AEM with no Forms it’s not supported

Avatar

Employee Advisor

According to [1] the support level is "restricted". Which means you should get in contact with Adobe Support first. The only limiation to "Forms only" applies to Microsoft SQL Server, but not to DB2.

Jörg

[1] Technical Requirements

Avatar

Level 10

Do you mean you want to replace all of the JCR with a relational database? In our relational database articles - we stored app data there (ie - customer records) - not replace the JCR.

Avatar

Level 2

Did you ever get this resolved?  We're in the same boat.

Avatar

Level 10

WHat are you trying to do - switch the JCR with Oracle? Are you using Forms?

Avatar

Level 2

We are using AEM 6.3 Forms and are trying to setup a server cluster with RDBMK (Oracle 12c) as the repository type.  For testing purposes, we attempted a single standalone install with a rdb as the repository type first. After saving changes to the Apache Sling Connection Pooled Datasource configuration, we get the exception "Unable to create initial connections of pool".  Please see below.

29.06.2018 14:05:01.589 *INFO* [OsgiInstallerImpl] oracle.jdbc.OracleDriver BundleEvent INSTALLED

29.06.2018 14:05:01.589 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Installed bundle oracle.jdbc.OracleDriver [525] from resource TaskResource(url=fileinstallcc50676c73c9c293d6a4b2ca72558dc5:C:\Adobe\Adobe_Experience_Manager_Forms\crx-repository\install\9\ojdbc-bundle.jar, entity=bundle:oracle.jdbc.OracleDriver, state=INSTALL, attributes=[org.apache.sling.installer.api.tasks.ResourceTransformer=:27:24:, Bundle-SymbolicName=oracle.jdbc.OracleDriver, Bundle-Version=12.1.0.2], digest=1530295129741)

29.06.2018 14:05:01.590 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Set start level for bundle oracle.jdbc.OracleDriver [525] to 9

29.06.2018 14:05:01.597 *INFO* [OsgiInstallerImpl] oracle.jdbc.OracleDriver BundleEvent RESOLVED

29.06.2018 14:05:01.598 *INFO* [OsgiInstallerImpl] oracle.jdbc.OracleDriver BundleEvent STARTING

29.06.2018 14:05:01.598 *INFO* [OsgiInstallerImpl] oracle.jdbc.OracleDriver BundleEvent STARTED

29.06.2018 14:05:01.598 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Started bundle oracle.jdbc.OracleDriver [525]

29.06.2018 14:06:23.727 *ERROR* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.datasource.DataSourceFactory.e7bec255-dbfc-410c-8a82-4e504f1ef2a8)] org.apache.tomcat.jdbc.pool.ConnectionPool Unable to create initial connections of pool.

java.sql.SQLException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [53]

    at org.apache.sling.datasource.internal.DriverDataSource.loadDriverClass(DriverDataSource.java:192)

    at org.apache.sling.datasource.internal.DriverDataSource.getDriver(DriverDataSource.java:164)

    at org.apache.sling.datasource.internal.DriverDataSource.getConnection(DriverDataSource.java:85)

    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDataSource(PooledConnection.java:224)

    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:180)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:713)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:647)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:468)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:145)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)

    at org.apache.sling.datasource.internal.DataSourceFactory$LazyJmxRegisteringDataSource.createPool(DataSourceFactory.java:364)

    at org.apache.sling.datasource.internal.DataSourceFactory.modified(DataSourceFactory.java:228)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224)

    at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39)

    at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617)

    at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501)

    at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:302)

    at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:294)

    at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeModifiedMethod(SingleComponentManager.java:772)

    at org.apache.felix.scr.impl.manager.SingleComponentManager.modify(SingleComponentManager.java:727)

    at org.apache.felix.scr.impl.manager.SingleComponentManager.reconfigure(SingleComponentManager.java:645)

    at org.apache.felix.scr.impl.manager.SingleComponentManager.reconfigure(SingleComponentManager.java:609)

    at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.configurationUpdated(ConfigurableComponentHolder.java:426)

    at org.apache.felix.scr.impl.manager.RegionConfigurationSupport.configurationEvent(RegionConfigurationSupport.java:277)

    at org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.sendEvent(ConfigurationManager.java:1881)

    at org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.run(ConfigurationManager.java:1849)

    at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:138)

    at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:105)

    at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [53]

    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)

    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)

    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

    at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1926)

    at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)

    at org.apache.sling.datasource.internal.DriverDataSource.loadDriverClass(DriverDataSource.java:188)

    ... 33 common frames omitted

29.06.2018 14:06:23.733 *ERROR* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.sling.datasource.DataSourceFactory.e7bec255-dbfc-410c-8a82-4e504f1ef2a8)] org.apache.sling.datasource [org.apache.sling.datasource.DataSourceFactory(11)] The modified method has thrown an exception (java.sql.SQLException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [53])

java.sql.SQLException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [53]

    at org.apache.sling.datasource.internal.DriverDataSource.loadDriverClass(DriverDataSource.java:192)

    at org.apache.sling.datasource.internal.DriverDataSource.getDriver(DriverDataSource.java:164)

    at org.apache.sling.datasource.internal.DriverDataSource.getConnection(DriverDataSource.java:85)

    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDataSource(PooledConnection.java:224)

    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:180)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:713)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:647)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:468)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:145)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)

    at org.apache.sling.datasource.internal.DataSourceFactory$LazyJmxRegisteringDataSource.createPool(DataSourceFactory.java:364)

    at org.apache.sling.datasource.internal.DataSourceFactory.modified(DataSourceFactory.java:228)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224)

    at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39)

    at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617)

    at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501)

    at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:302)

    at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:294)

    at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeModifiedMethod(SingleComponentManager.java:772)

    at org.apache.felix.scr.impl.manager.SingleComponentManager.modify(SingleComponentManager.java:727)

    at org.apache.felix.scr.impl.manager.SingleComponentManager.reconfigure(SingleComponentManager.java:645)

    at org.apache.felix.scr.impl.manager.SingleComponentManager.reconfigure(SingleComponentManager.java:609)

    at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.configurationUpdated(ConfigurableComponentHolder.java:426)

    at org.apache.felix.scr.impl.manager.RegionConfigurationSupport.configurationEvent(RegionConfigurationSupport.java:277)

    at org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.sendEvent(ConfigurationManager.java:1881)

    at org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.run(ConfigurationManager.java:1849)

    at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:138)

    at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:105)

    at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver not found by org.apache.sling.datasource [53]

    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)

    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)

    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

    at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1926)

    at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)

    at org.apache.sling.datasource.internal.DriverDataSource.loadDriverClass(DriverDataSource.java:188)

    ... 33 common frames omitted

Avatar

Employee Advisor

Where did you get the Oracle Driver Bundle from? Looks like it did not export the OracleDriver class.

Jörg

Avatar

Employee Advisor

oracle.jdbc.OracleDriver is exported, but obviously the datasource implementation does not find it. Which version of the Oracle JDBC driver are you using? Does it contain the oracle.jdbc.OracleDriver.class file at all?

Avatar

Level 2

Driver for Oracle 12.1.0.2.0.  Yes, it contains the oracle.jdbc.OracleDriver class file.

1520207_pastedImage_1.png

1520107_pastedImage_0.png

Avatar

Employee Advisor

Maybe you want to check Apache Sling :: DataSource Provider  and the presence of the META-INF/services/java.sql.Driver file in the embedded file. but I would assume that it is there.

You might want to check with Adobe support if they can help you, I can't think of more possible problems. Although I know it works, because I worked on a project using Oracle as JCR repo. BUt I don't know how they wrapped the Oracle driver.

Avatar

Level 2

Yes, it's there.  Can you share a sample Apache Sling Connection Pooled DataSource configuration for comparison purposes?

Thanks for the feedback and suggestions.