maridob
maridob

Reputation: 661

How to integrate/call teradata db in Apache Camel?

I am fairly new to ApacheCamel and I am trying to integrate a TeraData DB call to our database and I cannot figure out the below error message. In addition, I am running this in fuse.

2016-01-22 16:17:36,725 [Blueprint Extender: 1] ERROR org.apache.aries.blueprint.container.BlueprintContainerImpl - Unable to start blueprint container for bundle fuse-maria-bundle org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to find property descriptor URL on class com.teradata.jdbc.TeraDriver

What I have done so far is added the below in my blueprint.xml

<bean id="teradata" class="com.teradata.jdbc.TeraDriver">
        <property name="URL" value="jdbc:teradata://[inser database connection]"  />
        <property name="user" value="myuser" />
        <property name="password" value="mypassword" />
    </bean>

I have this in my pom.xml

<dependency>
    <groupId>com.teradata.jdbc</groupId>
    <artifactId>terajdbc4</artifactId>
    <version>15.10.00.14</version>
</dependency>
<dependency>
    <groupId>com.teradata.jdbc</groupId>
    <artifactId>tdgssconfig</artifactId>
    <version>15.10.00.14</version>
</dependency>

...and followed the instruction from this link where I downloaded the driver from teradata.com.

In my route, I have the below code.

 @Override
    public void configure() throws Exception {
        from("timer://testtimer?period=1000000")
                .enrich("sql:select count(*) from  table1?dataSource=#teradata")
                .log("Processing ${body}");


    }

Any ideas would help. Thanks in advance!

Upvotes: 1

Views: 750

Answers (2)

Alexey Yakunin
Alexey Yakunin

Reputation: 1771

  • You have to download database drivers (terajdbc4.jar). I think, you already have it...
  • Now you have to install drivers to your container (Karaf, because you wrote "Fuse").

Installing from file, windows example (if drivers not OSGi ready), Karaf console:

install -s wrap:file:///c:/install/terajdbc4.jar

or installing from Maven repository:

install -s wrap:mvn:com.teradata.jdbc/terajdbc4/15.10.00.14

Mission complete.

About converting jars: https://access.redhat.com/documentation/en-US/Fuse_ESB_Enterprise/7.0/html/Deploying_into_the_Container/files/DeployJar-Wrap.html

UPDATED:

The problem is that class com.teradata.jdbc.TeraDriver has no properties url, URL, and so on...

I recomend you to try org.apache.commons.dbcp.BasicDataSource like this:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
    <property name="driverClassName" value="com.teradata.jdbc.TeraDriver" />
    <property name="url" value="jdbc:teradata://[inser database connection]" />
    <property name="username" value="myuser" />
    <property name="password" value="mypassword" />
</bean> 

Second option is org.springframework.jdbc.datasource.DriverManagerDataSource:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
    <property name="driverClassName" value="com.ncr.teradata.TeraDriver" />
    <property name="url" value="jdbc:teradata://[inser database connection]" />
    <property name="username" value="myuser" />
    <property name="password" value="mypassword" />
</bean> 

Upvotes: 1

Sundar
Sundar

Reputation: 574

The error is specific to the property URL you set on the TeraDriver bean , doesnt look like that property is avaialble on the class , can you try using "url" in small case

Upvotes: 0

Related Questions