【问题标题】:Error connecting to Microsoft SQL Server in IBM IIB via JDBC通过 JDBC 连接到 IBM IIB 中的 Microsoft SQL Server 时出错
【发布时间】:2016-02-24 14:54:56
【问题描述】:

我无法使用 JDBC 提供程序连接到 Websphere IIB(以前称为 Message Broker)中的 Microsoft SQL Server v. 2008。 我已经根据 IBM 文档 - Setting up a JDBC provider for type 4 connections 创建了提供程序,并指定了一个有效的安全身份。 我也尝试过使用微软最新版本的 sqljdbc4.jar 和 sqljdbc41.jar。

我正在尝试使用以下方式建立连接:

Connection conn = getJDBCType4Connection(THE_NAME_OF_THE_PROVIDER,JDBC_TransactionType.MB_TRANSACTION_AUTO)

我得到以下错误跟踪:

Exception details:  message: java.lang.ExceptionInInitializerError stack trace: [java.lang.J9VMInternals.initialize(J9VMInternals.java:259) 
javax.crypto.KeyAgreement.getInstance(Unknown Source) 
com.ibm.jsse2.lb.g(lb.java:44) 
com.ibm.jsse2.lb.a(lb.java:108) 
com.ibm.jsse2.l$c_.a(l$c_.java:6) 
com.ibm.jsse2.l.a(l.java:80) 
com.ibm.jsse2.m.a(m.java:15) 
com.ibm.jsse2.m.h(m.java:13) 
com.ibm.jsse2.qc.a(qc.java:38) 
com.ibm.jsse2.qc.<init>(qc.java:632) 
com.ibm.jsse2.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:16) 
com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1606) 
com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1324) 
com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:992) 
com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:828) 
com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:629) 
com.microsoft.sqlserver.jdbc.SQLServerPooledConnection.createNewConnection(SQLServerPooledConnection.java:60) 
com.microsoft.sqlserver.jdbc.SQLServerPooledConnection.<init>(SQLServerPooledConnection.java:42) 
com.microsoft.sqlserver.jdbc.SQLServerXAConnection.<init>(SQLServerXAConnection.java:30) 
com.microsoft.sqlserver.jdbc.SQLServerXADataSource.getXAConnection(SQLServerXADataSource.java:51) 
com.ibm.broker.jdbctype4.jdbcdbasemgr.JDBCType4Connection.createXAConnection(JDBCType4Connection.java:244) 
com.ibm.broker.jdbctype4.jdbcdbasemgr.JDBCType4DatabaseManager.getThreadOwnedConnections(JDBCType4DatabaseManager.java:308) 
com.ibm.broker.jdbctype4.localtrxn.JDBCType4SinglePhaseTrxnHandler.getConnection(JDBCType4SinglePhaseTrxnHandler.java:262) 
com.ibm.broker.jdbctype4.localtrxn.JDBCType4SinglePhaseTrxnHandler.getConnection(JDBCType4SinglePhaseTrxnHandler.java:154) 
com.ibm.broker.jdbctype4.connfact.JDBCType4ConnectionFactory.getConnection(JDBCType4ConnectionFactory.java:163) 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) 
java.lang.reflect.Method.invoke(Method.java:619) 
com.ibm.broker.plugin.MbNode.getJDBCType4Connection(MbNode.java:1575) 
ru.cinimex.fr2back.FR2BACK_DB_InsertMessage_JavaCompute.fillInCache(FR2BACK_DB_InsertMessage_JavaCompute.java:115) 
ru.cinimex.fr2back.FR2BACK_DB_InsertMessage_JavaCompute.createCache(FR2BACK_DB_InsertMessage_JavaCompute.java:102) 
ru.cinimex.fr2back.FR2BACK_DB_InsertMessage_JavaCompute.evaluate(FR2BACK_DB_InsertMessage_JavaCompute.java:38) 
com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbRuntimeJavaComputeNode.java:339) 
com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1491)

我认为 SQL 服务器驱动程序正在尝试使用与 IBM 的 Java 发生冲突的 SSL。有没有办法完全阻止它使用 SSL?

当我对 Oracle 数据库做同样的事情时,一切正常。 要求使用 JDBC 而不是 IIB 的原生 ODBC 驱动程序。

【问题讨论】:

    标签: java sql-server ssl jdbc ibm-integration-bus


    【解决方案1】:

    如果您想禁用 Microsoft JDBC 驱动程序对 SSL 的使用,应该可以通过将“加密”数据源属性设置为 false 来实现。

    https://msdn.microsoft.com/en-us/library/bb879920%28v=sql.110%29.aspx

    如果您以编程方式创建和配置数据源,上述内容将适用。在有中间代码处理的情况下,可能会在某个地方指定数据源属性的名称/值对,例如,在数据源配置中或您正在使用的 API 上。你有机会这样做吗?如果这是一个 WebSphere Application Server 数据源,它可能位于数据源自定义属性(传统)中,或者位于 server.xml (Liberty) 中的 dataSource 下嵌套的 properties.microsoft.sqlserver 元素中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 2020-12-24
      • 2016-09-13
      • 2016-07-18
      相关资源
      最近更新 更多