Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过JDBC连接到IBM IIB中的Microsoft SQL Server时出错_Java_Sql Server_Ssl_Jdbc_Ibm Integration Bus - Fatal编程技术网

Java 通过JDBC连接到IBM IIB中的Microsoft SQL Server时出错

Java 通过JDBC连接到IBM IIB中的Microsoft SQL Server时出错,java,sql-server,ssl,jdbc,ibm-integration-bus,Java,Sql Server,Ssl,Jdbc,Ibm Integration Bus,我无法连接到Microsoft SQL Server v。2008年,在WebSphereIIB(以前称为MessageBroker)中与JDBC提供商合作。 我已经根据IBM文档创建了提供者,并指定了一个有效的安全标识。 我还尝试使用微软最新版本的sqljdbc4.jar和sqljdbc41.jar 我正在尝试使用以下方式获取连接: Connection conn = getJDBCType4Connection(THE_NAME_OF_THE_PROVIDER,JDBC_Transactio

我无法连接到Microsoft SQL Server v。2008年,在WebSphereIIB(以前称为MessageBroker)中与JDBC提供商合作。 我已经根据IBM文档创建了提供者,并指定了一个有效的安全标识。 我还尝试使用微软最新版本的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)
异常详细信息:消息:java.lang.ExceptionInInitializeError堆栈跟踪:[java.lang.J9VMInternals.initialize(J9VMInternals.java:259)
javax.crypto.KeyAgreement.getInstance(未知源)
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)
jsse2.qc.(qc.java:632)
sslsocketfactorympl.createSocket(sslsocketfactorympl.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)
SQLServerPooledConnection.(SQLServerPooledConnection.java:42)
SQLServerXAConnection.(SQLServerXAConnection.java:30)
com.microsoft.sqlserver.jdbc.SQLServerXADataSource.getXAConnection(SQLServerXADataSource.java:51)
com.ibm.broker.jdbctype4.jdbcdassegr.JDBCType4Connection.createXAConnection(JDBCType4Connection.java:244)
com.ibm.broker.jdbctype4.jdbcdassegr.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(本机方法)
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)
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 server驱动程序试图使用SSL,这与IBM的Java产生了冲突。有没有办法阻止它使用SSL

当我用Oracle数据库做同样的事情时,一切都很好。
要求使用JDBC而不是IIB的本机ODBC驱动程序。

如果要禁用Microsoft JDBC驱动程序对SSL的使用,可以通过将“encrypt”数据源属性设置为false值来实现

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