0
votes

I have created a JDBCProvider service in an IBM integration bus (IIB v10) in Windows called TESTDDBB, which is also the name of the database. I have a JavaCompute node where I'm trying to generate a connection to call an oracle function

        TESTDDBB
          connectionUrlFormat='jdbc:oracle:thin:@x.x.x.x:1521:TESTDDBB;'
          connectionUrlFormatAttr1=''
          connectionUrlFormatAttr2=''
          connectionUrlFormatAttr3=''
          connectionUrlFormatAttr4=''
          connectionUrlFormatAttr5=''
          databaseName='TESTDDBB'
          databaseSchemaNames='PROM'
          databaseType='Oracle'
          databaseVersion='11.2.0.4.0'
          description='default_Description'
          environmentParms='default_none'
          jarsURL='C:\jdbc\lib'
          jdbcProviderXASupport='true'
          maxConnectionPoolSize='200'
          portNumber='1521'
          securityIdentity='devCredentials'
          serverName='x.x.x.x'
          type4DatasourceClassName='oracle.jdbc.xa.client.OracleXADataSource'
          type4DriverClassName='oracle.jdbc.OracleDriver'
          useDeployedJars='true'


        public class GetUserData_JavaCompute extends MbJavaComputeNode {

            public void evaluate(MbMessageAssembly inAssembly) throws MbException {
                ...
                Connection conn = getJDBCType4Connection("TESTDDBB",JDBC_TransactionType.MB_TRANSACTION_AUTO);
                try(CallableStatement callableStmt = conn.prepareCall("{ ? = call PROM.pkg_prop_2.getUserData(?)}");) {
                ...
                }
                ...
            }
        }

The problem is that when IIB tried to get the conenction, it isn't finding the datasource java class

            ...
            com.ibm.broker.jdbctype4.jdbcdbasemgr.JDBCType4Connection@-53d4c850.createXAConnection 'java.lang.ClassNotFoundException: oracle.jdbc.xa.client.OracleXADataSource at java.net.URLClassLoader.findClass(URLClassLoader.java:609) at com.ibm.broker.classloading.JavaResourceClassLoader.findClass(JavaResourceClassLoader.java:181) at com.ibm.broker.classloading.SharedClassLoader.findClass(SharedClassLoader.java:215) at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:925)
            ...

I have the ojdbc6.jar driver in the folder C:\jdbc\lib and deployed in a shared library in the integration server, library that is referenced by the RESTAPI app that contains the JavaCompute node. What am I missing? I have tried using useDeployedJars true and false, and jarsURL also with 'C:\jdbc\lib\ojdbc6' without success. Where are the common libraries of the integration server in windows?

1
could you please provide the complete error that you see in the logRohan

1 Answers

0
votes

From one side you can place the jar to root of you java source folder and connect this jar to Integration Toolkit. This give you ability to use this jar. From other side you can configure JDBC provider for Integration node and use created alias in getJDBCType4Connection call. More information about working with databases from JavaCompute you can see here 1