Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Couldn't store job: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB

I'm getting this error:

org.quartz.JobPersistenceException: Couldn't store job: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB [See nested exception: java.sql.SQLException: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB]
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1103)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport$3.execute(JobStoreSupport.java:1042)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport$40.execute(JobStoreSupport.java:3670)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3742)
    at org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:90)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInLock(JobStoreSupport.java:3666)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1030)
    at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:743)
    at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:243)
    at com.akbank.bsa.core.ApplicationStartup.run(ApplicationStartup.java:66)
    at com.akbank.bsa.core.ApplicationStartup.initialize(ApplicationStartup.java:24)
    at com.akbank.bsa.listener.Startup.contextInitialized(Startup.java:17)
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850)
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB
    at org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.writeDataToBlob(OracleDelegate.java:646)
    at org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.insertJobDetail(OracleDelegate.java:207)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1097)
    ... 19 more

Using:

Jboss AS 7.1.1

Java 1.6

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

ojdbc6.jar Implementation-Version: 11.2.0.2.0

quartz-2.1.6

What could be the problem?

like image 297
Levent Tokmak Avatar asked Jan 25 '13 08:01

Levent Tokmak


3 Answers

Removing ojdbc6.jar from the classpath and adding JBoss module (ojdbc6 module) as dependency solved the issue.

like image 161
Levent Tokmak Avatar answered Nov 15 '22 16:11

Levent Tokmak


We found elegant solution to this problem. it worked. We need to add oracle module in global-modules as below.

    <subsystem xmlns="urn:jboss:domain:ee:1.1">
        <global-modules>
            <module name="com.oracle" slot="main"/>
        </global-modules>

        <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
        <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
    </subsystem>
like image 35
Nagesh Avatar answered Nov 15 '22 16:11

Nagesh


Successfully solved the same issue for JBoss EAP 6. The main idea is the same - remove jar from war (if it was there) and let the app server to provide it. The details are below.

1) Added WEB-INF/jboss-deployment-structure.xml:

<jboss-deployment-structure>
<deployment>
    <dependencies>
        <module name="com.oracle" />
    </dependencies>
</deployment>
</jboss-deployment-structure>

2) Defined jboss\eap640\modules\system\layers\base\com\oracle\main\module.xml

<module xmlns="urn:jboss:module:1.1" name="com.oracle">
  <resources>
    <resource-root path="ojdbc7.jar"/>
  </resources>
  <dependencies>
    ...
  </dependencies>
</module>

3) Put ojdbc7.jar into jboss\eap640\modules\system\layers\base\com\oracle\main.

like image 23
Pavel Vlasov Avatar answered Nov 15 '22 14:11

Pavel Vlasov