Hi Charuka,

As discussed offline let's modify the current ICF provider tool and
produce a proper OSGified Oracle jar to isolate the fact that Linkage error
is not happening due to us loading classes. I highly doubt this will fix
the Link error but lets give it a try.
Also let's put the binary libraries in jre/bin directory. Stumbled upon few
SO answers where they were able to fix by adding libs to jre/bin. Did we
try setting lib location to $PATH as well?

Thanks,
Tishan


On Wed, Oct 30, 2019 at 5:34 PM Charuka Karunanayake <char...@wso2.com>
wrote:

> Hi all,
>
> We are currently in the process of adding listening mode CDC support for
> oracle in our siddhi-io-cdc extension using the debezium connector while
> writing the extension I ran into the following error
>
> [2019-10-30 11:49:14,019] ERROR
> {io.debezium.relational.RelationalSnapshotChangeEventSource} - Failed to
> initialize snapshot context. java.lang.RuntimeException:
> java.sql.SQLException: No suitable driver found for
> jdbc:oracle:oci:@10.100.5.219:1521/ORCLCDB
>
> This error occurs because of  the JDBC driver jar required for the
> Debezium Oracle connector is a non-OSGi bundle with SPI services when used
> jartobundle.sh tool to convert it to an OSGi bundle those SPI services
> won’t get copied. To solve this we tried a few quick solutions
>
>    1.
>
>    Creating the SPI related files inside the resources in META-INF folder
>    - didn’t work
>    2.
>
>    Unzipping the OSGi converted ojdbc jar and copying the SPI related
>    files to META-INF folder and compressing and creating the jar - didn’t work
>    3.
>
>    Create the ojdbc jar using icf-provider tool by registering the spi
>    class name - Worked with BundleActivator Exceptions when starting the pack
>    4.
>
>    Manually loaded the class inside the extension using the
>    Class.forname() method - worked without any OSGi errors at the start
>
>
> In above, option #4 worked in mac OS. Then, while testing on Ubuntu the
> following error appears
>
>
> [2019-10-30 07:47:21,408] ERROR {io.debezium.pipeline.ErrorHandler} -
> Producer failure java.lang.RuntimeException:
> java.lang.UnsatisfiedLinkError:
> oracle.streams.XStreamOut.XStreamOutAttachNative(JJLjava/lang/String;[BIII)V
>
> Tried the following to solve it without any success
>
>
>    1.
>
>    Check using the jar that is created using the icf-provider
>    2.
>
>    Thought it was a remote connectivity issue created the Oracle database
>    and ran the StreamingIntegrator in the same host
>    3.
>
>    Tried copying the OJDBC and Xstreams jars into JDK_HOME/jre/lib
>    4.
>
>    Tried setting the classpath to oracle lib folder by -Djava.library.path
>    5.
>
>    Tried the Debezium connector separately as a fat jar - works.
>
>
> All the steps that were followed are documented in the doc[1] provided
> below, Appreciate any help you can give on this.
>
> [1] -
> https://docs.google.com/document/d/1XbkFxFjmsmSQsXUb9smMusz-mwO6Ko_8QDd8L51cZOY/edit?usp=sharing
> Thanks and Regards,
> --
> *Charuka Karunanayake*
> Software Engineer | WSO2
>
> E-mail: char...@wso2.com
> Mobile: +94711611848
> Web: http://wso2.com
>
> <http://wso2.com/signature>
>
>
>

-- 
*Tishan Dahanayakage* | Technical Lead | WSO2 Inc.
(m) +94716481328 | (w) +94112145345 | (e) tis...@wso2.com
GET INTEGRATION AGILE
Integration Agility for Digitally Driven Business

Disclaimer: This communication may contain privileged or other confidential
information and is intended exclusively for the addressee/s. If you are not
the intended recipient/s, or believe that you may have received this
communication in error, please reply to the sender indicating that fact and
delete the copy you received and in addition, you should not print, copy,
re-transmit, disseminate, or otherwise use the information contained in
this communication. Internet communications cannot be guaranteed to be
timely, secure, error or virus-free. The sender does not accept liability
for any errors or omissions.
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to