How to access Oracle databases via JDBC in StreamBase 10.2

How to access Oracle databases via JDBC in StreamBase 10.2

book

Article ID: KB0073586

calendar_today

Updated On:

Products Versions
TIBCO Streaming 10.2

Description

Some additional configuration steps are required to connect to an Oracle database via JDBC in StreamBase 10.  These steps are currently not part of the official documentation, but are needed if you observe errors like the following:
 

error (fragment deploy): sample_jdbc_query_JDBCQuery.username - Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: oracle.security.pki.OraclePKIProvider
error (fragment deploy): sample_jdbc_query_JDBCQuery.username - at org.objectweb.asm.ClassWriter.getCommonSuperClass(Unknown Source)
error (fragment deploy): sample_jdbc_query_JDBCQuery.username - at com.kabira.platform.instrument.Transformer$LocalClassWriter.getCommonSuperClass(Transformer.java:2763)
error (fragment deploy): sample_jdbc_query_JDBCQuery.username - at org.objectweb.asm.ClassWriter.a(Unknown Source)
error (fragment deploy): sample_jdbc_query_JDBCQuery.username - at org.objectweb.asm.Frame.a(Unknown Source)
error (fragment deploy): sample_jdbc_query_JDBCQuery.username - at org.objectweb.asm.Frame.a(Unknown Source)
error (fragment deploy): sample_jdbc_query_JDBCQuery.username - at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source)

 

Resolution

This is related to a known issue with Oracle JDBC drivers.  Refer to the following links for details:

Issue/Introduction

Additional steps for configuring Oracle JDBC data sources in StreamBase 10.2

Additional Information

To resolve these errors, include the JDBC driver and pki in your build (pom.xml):
 
<dependencies>
        <dependency>
            <groupId>com.oracle.jdbc</groupId> 
            <artifactId>ojdbc8</artifactId> 
            <version>12.2.0.1</version> 
        </dependency>
        <dependency>
            <groupId>com.oracle.jdbc</groupId> 
            <artifactId>oraclepki</artifactId> 
            <version>12.2.0.1</version> 
        </dependency>
    </dependencies>

Use libraries from Oracle's Maven repository, as follows:
 
<!-- See https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides -->
    <repositories>
        <repository>
            <id>maven.oracle.com</id>
            <name>oracle-maven-repo</name>
            <url>https://maven.oracle.com</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>maven.oracle.com</id>
            <name>oracle-maven-repo</name> 
            <url>https://maven.oracle.com</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
        </pluginRepository>
    </pluginRepositories>