如何连接到SQL Azure的使用JDBC [英] How to connect to Azure SQL with JDBC

查看:1208
本文介绍了如何连接到SQL Azure的使用JDBC的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用MS JDBC驱动程序连接到SQL Azure的:

 进口java.sql中*。公共类ExampleSQLJDBC {    公共静态无效的主要(字串[] args){        // 设置。
        字符串的ConnectionURL = \"jdbc:sqlserver://SERVER.database.windows.net:1433;database=DATABASE;encrypt=true;trustServerCertificate=true;\";
        字符串用户=用户@服务器;
        字符串传递=密码;        //声明的JDBC对象。
        康涅狄格州的连接= NULL;        尝试{
            //建立连接。
            的Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);
            康恩=的DriverManager.getConnection(的ConnectionURL,用户通过);
        }
        赶上(例外五){
            e.printStackTrace();
        }
    }
}

但我得到:

  com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法建立通过使用安全套接字层(SSL)加密到SQL Server的安全连接。错误:破管ClientConnectionId:742ba7b5-43bb-441B-8e8d-bbb9dc5fa8ce。
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2226)
    在com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1756)
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1803)
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1454)
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1285)
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
    在com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1131)
    在java.sql.DriverManager.getConnection(DriverManager.java:664)
    在java.sql.DriverManager.getConnection(DriverManager.java:247)
    在run.ExampleSQLJDBC.main(ExampleSQLJDBC.java:21)
    在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
    在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    在java.lang.reflect.Method.invoke(Method.java:498)
    在com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

有趣的是,我可以由相同的计算机用的Navicat连接到数据库。因此,这个问题不应该在防火墙的设置。

元数据:


  • 服务器:天蓝色的V12

  • 驱动程序:6.0(sqljdbc42.jar)

  • JRE:1.8.0_72-B15(甲骨文)

  • _JAVA_OPTIONS:-Djsse.enableCBCProtection = FALSE

  • security.provider.1:sun.security.provider.Sun

  • 操作系统:OS X 10.11.5

我怎样才能连接到SQL Azure的从Java?

编辑:

如果我编译从彼得·潘的code。与的javac 1.8.0_92在OS X和执行字节code java的 1.8.0_92在OS X中,错误没有消失。

编辑2:
当我debuged SSL连接的细节与 -Djavax.net.debug = SSL:握手:详细

  SecureRandom的触发播种
完成播种的SecureRandom
不可忽略密码套件:TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
不可忽略密码套件:TLS_RSA_WITH_AES_256_CBC_SHA
不可忽略密码套件:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
不可忽略密码套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
不可忽略密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
不可忽略密码套件:TLS_RSA_WITH_AES_256_CBC_SHA256
不可忽略密码套件:TLS_DHE_DSS_WITH_AES_256_CBC_SHA
不可忽略密码套件:TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
不可忽略密码套件:TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
不可忽略密码套件:TLS_RSA_WITH_AES_256_GCM_SHA384
不可忽略密码套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
不可忽略密码套件:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
不可忽略密码套件:TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
不可忽略密码套件:TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
不可忽略密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
不可忽略密码套件:TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
不可忽略密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
不可忽略密码套件:TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
不可忽略密码套件:TLS_DHE_RSA_WITH_AES_256_CBC_SHA
不可忽略密码套件:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
不可忽略密码套件:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
允许不安全的重新谈判:假的
允许旧Hello报文:真
在初始握手:真
是安全的重新谈判:假的
忽略不支持的加密算法套件:为TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256的TLSv1
忽略不支持的加密算法套件:为TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256的TLSv1
忽略不支持的加密算法套件:为TLS_RSA_WITH_AES_128_CBC_SHA256的TLSv1
忽略不支持的加密算法套件:为TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256的TLSv1
忽略不支持的加密算法套件:为TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256的TLSv1
忽略不支持的加密算法套件:为TLS_DHE_RSA_WITH_AES_128_CBC_SHA256的TLSv1
忽略不支持的加密算法套件:为TLS_DHE_DSS_WITH_AES_128_CBC_SHA256的TLSv1
忽略不支持的加密算法套件:为TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLSv1.1
忽略不支持的加密算法套件:为TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLSv1.1
忽略不支持的加密算法套件:为TLS_RSA_WITH_AES_128_CBC_SHA256 TLSv1.1
忽略不支持的加密算法套件:为TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 TLSv1.1
忽略不支持的加密算法套件:为TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 TLSv1.1
忽略不支持的加密算法套件:为TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 TLSv1.1
忽略不支持的加密算法套件:为TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 TLSv1.1
%%无缓存的客户端会话
***的ClientHello,TLSv1.2工作
RandomCookie:格林尼治标准​​时间:1466081162字节= {238,135,254,162,132,164,75,240,96,107,17,103,60,109,229,149,31,110,218,87,49, 29,121,114,115,6,44,32}
会话ID:{}
密码套件:[TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
COM pression方法:{0}
扩展elliptic_curves,曲线名称:{secp256r1,sect163k1,sect163r2,secp192r1,secp224r1,sect233k1,sect233r1,sect283k1,sect283r1,secp384r1,sect409k1,sect409r1,secp521r1,sect571k1,sect571r1,secp160k1,secp160r1,secp160r2,sect163r1,secp192k1,sect193r1,sect193r2 ,secp224k1,sect239k1,secp256k1}
扩展ec_point_formats,格式:[uncom pressed]
扩展signature_algorithms,signature_algorithms:SHA512withECDSA,SHA512withRSA,SHA384withECDSA,SHA384withRSA,SHA256withECDSA,SHA256withRSA,SHA224withECDSA,SHA224withRSA,SHA1withECDSA,SHA1withRSA,带DSA的SHA1
扩展服务器名,服务器名:[类型= HOST_NAME(0),值= hlt3qa7607.database.windows.net]
***
主要写:TLSv1.2工作握手,长度= 233
主,被叫的close()
主,被叫closeInternal(真)
主,SEND TLSv1.2工作ALERT:警告,说明= close_notify消息
主要写:TLSv1.2工作警报,长度= 2
主,被叫则closesocket(真)
主,等待close_notify消息或警报:状态5
主,收到EOFException类:忽略
主,被叫closeInternal(假)
主,接近再次被调用;状态= 5
主,处理异常:java.io.IOException异常:SQL服务器没有返回响应。该连接已关闭。 ClientConnectionId:1eb03958-1566-4844-b842-e020f0c36121
主,被叫则closesocket()
com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法建立通过使用安全套接字层(SSL)加密到SQL Server的安全连接。错误:SQL服务器没有返回响应的连接已关闭ClientConnectionId:。1eb03958-1566-4844-b842-e020f0c36121......

修改3:
设置驱动器来记录所有经过:

  2016年6月17日上午九时26分37秒com.microsoft.sqlserver.jdbc.SQLServerDriver:1连接
FINER:ENTRY参数不跟踪。
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.Util的parseURL
FINE:属性:服务器值:hlt3qa7607.database.windows.net
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.Util的parseURL
FINE:属性:端口号值:1433
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.Util的parseURL
FINE:属性:值的databaseName:数据库
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.Util的parseURL
FINE:属性:加密值:true
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.Util的parseURL
FINE:属性:trustServerCertificate值:true
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection<&初始化GT;
精细:的ConnectionId:1通过创建(SQLServerDriver:1)
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection登录
FINER:的ConnectionId:1开始时间:1466148398058超时时间:1466148413058超时单位间隔:1200
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection登录
精细:的ConnectionId:1这一尝试服务器名称:hlt3qa7607.database.windows.net端口:1433实例名称:空useParallel:假的
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection登录
精细:的ConnectionId:1这一尝试结束时间:1466148399258
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection登录
精细:的ConnectionId:1这一尝试否:0
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection connectHelper
精细:的ConnectionId:1与服务器进行连接:hlt3qa7607.database.windows.net端口:1433超时片:1194超时全:15
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.TDSChannel开放
FINER:TDSChannel(的ConnectionId:1):打开TCP套接字...
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection prelogin
FINER:的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c请求加密级别:ON
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection prelogin
FINER:的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c ActivityId 866c0053-25be-4eb2-90c7-a40b5b0535a4-1
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.TDSChannel logPacket
FINEST:/192.168.1.186:63328 SPID:0的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c prelogin的请求......
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.TDSChannel logPacket
FINEST:/192.168.1.186:63328 SPID:0的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c prelogin响应
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection prelogin
精细:的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c服务器返回的主要版本:12
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection prelogin
FINER:的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c协商的加密级别:ON
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.SQLServerConnection prelogin
FINER:的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c忽略prelogin响应选项:5
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER:TDSChannel(的ConnectionId:1)启用SSL ...
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER:TDSChannel(的ConnectionId:1)SSL握手会信任任何证书
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINEST:TDSChannel(的ConnectionId:1)获取TLS或更好的SSL上下文
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINEST:TDSChannel(的ConnectionId:1)初始化SSL上下文
2016年6月17日上午09时26分38秒com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINEST:TDSChannel(的ConnectionId:1)创建SSL套接字
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxySocket的getInputStream
FINEST:TDSChannel(的ConnectionId:1)(ProxySocket):获得输入流
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxySocket的getOutputStream
FINEST:TDSChannel(的ConnectionId:1)(ProxySocket):获取输出流
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER:TDSChannel(的ConnectionId:1)启动SSL握手
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyOutputStream writeInternal
FINEST:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream@13c78c0b写作238个字节
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeOutputStream writeInternal
FINEST:TDSChannel(的ConnectionId:1)(SSLHandshakeOutputStream):启动新的TDS数据包...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSWriter writeBytes
FINEST:TDSWriter @ 41629346(的ConnectionId:1)写8个字节
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeOutputStream writeInternal
FINEST:TDSChannel(的ConnectionId:1)(SSLHandshakeOutputStream):写入238个字节...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSWriter writeBytes
FINEST:TDSWriter @ 41629346(的ConnectionId:1)写作238个字节
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyOutputStream平齐
FINEST:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream@13c78c0b法拉盛
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeOutputStream平齐
FINEST:TDSChannel(的ConnectionId:1)(SSLHandshakeOutputStream):忽略刷新流的请求
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream readInternal
FINEST:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce阅读5个字节
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream readInternal
FINEST:TDSChannel(的ConnectionId:1)(SSLHandshakeInputStream):阅读5个字节...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream ensureSSLPayload
FINEST:TDSChannel(的ConnectionId:1)(SSLHandshakeInputStream):无握手回应字节。法拉盛SSL握手输出流。
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeOutputStream endMessage
FINEST:TDSChannel(的ConnectionId:1)(SSLHandshakeOutputStream):整理TDS消息
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSWriter endMessage
FINEST:TDSWriter @ 41629346(的ConnectionId:1)整理TDS消息
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel logPacket
FINEST:/ 0:0:0:0:0:0:c0a8:1BA:63328 SPID:0 TDSWriter @ 41629346(的ConnectionId:1)发送分组(246字节)
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel写
FINER:TDSChannel(的ConnectionId:1)写失败:断的管
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerException logException
精细:***的SQLException:的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c com.microsoft.sqlserver.jdbc.SQLServerException:断管ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c管道中断ClientConnectionId:1a3032c8- 493d-4f99-8641-d0f02211d82c
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerException logException
精细: com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2226)com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2210)com.microsoft.sqlserver.jdbc.TDSChannel.write(IOBuffer.java:1894)com.microsoft.sqlserver.jdbc.TDSWriter.flush(IOBuffer.java:4285)com.microsoft.sqlserver.jdbc.TDSWriter.writePacket(IOBuffer.java:4186)com.microsoft.sqlserver.jdbc.TDSWriter.endMessage(IOBuffer.java:3192)com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeOutputStream.endMessage(IOBuffer.java:824)com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:687)com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:762)com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:754)com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:949)com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:937)sun.security.ssl.InputRecord.readFully(InputRecord.java:465)sun.security.ssl.InputRecord.read(InputRecord.java:503)sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1682)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1803)com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1454)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1285)com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1131)java.sql.DriverManager.getConnection(DriverManager.java:664)java.sql.DriverManager.getConnection(DriverManager.java:247)ExampleSQLJDBC.main(ExampleSQLJDBC.java:44)
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerConnection:1关闭
FINER:ENTRY
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel disableSSL
FINER:TDSChannel(的ConnectionId:1)禁用SSL ...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel disableSSL
FINEST:TDSChannel(的ConnectionId:1)重新接线代理为SSL套接字关闭流
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel disableSSL
FINER:TDSChannel(的ConnectionId:1)关闭SSL套接字
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyOutputStream writeInternal
FINEST:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream@13c78c0b写7个字节
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyOutputStream平齐
FINEST:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream@13c78c0b法拉盛
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream readInternal
FINEST:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce阅读5个字节
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream readInternal
FINEST:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce读-1个字节
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel disableSSL
FINER:TDSChannel(的ConnectionId:1)SSL禁用
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINEST:TDSChannel(的ConnectionId:1):关闭InputStream中...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINEST:TDSChannel(的ConnectionId:1):关闭的OutputStream ...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINER:TDSChannel(的ConnectionId:1):关闭TCP套接字...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerConnection:1关闭
FINER:RETURN
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream ensureSSLPayload
FINER:TDSChannel(的ConnectionId:1)(SSLHandshakeInputStream):结束TDS消息抛出异常:残破的管道ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream readInternal
FINER:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce管道中断ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream readInternal
FINER:com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce读取字节抛出异常:残破的管道ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel $ ProxySocket关闭
FINER:TDSChannel(的ConnectionId:1)(ProxySocket):忽略接近
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER:中断的管道ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
java.io.IOException异常:残破的管道ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
    在com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:692)
    在com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.readInternal(IOBuffer.java:762)
    在com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.read(IOBuffer.java:754)
    在com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream.readInternal(IOBuffer.java:949)
    在com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream.read(IOBuffer.java:937)
    在sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
    在sun.security.ssl.InputRecord.read(InputRecord.java:503)
    在sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
    在sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
    在sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
    在sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
    在com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1682)
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1803)
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1454)
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1285)
    在com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
    在com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1131)
    在java.sql.DriverManager.getConnection(DriverManager.java:664)
    在java.sql.DriverManager.getConnection(DriverManager.java:247)
    在ExampleSQLJDBC.main(ExampleSQLJDBC.java:44)2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER:java.security路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/security
安全提供商:【孙版本1.8,SunRsaSign版本1.8,SunEC版本1.8,SunJSSE版本1.8,版本了SunJCE 1.8,SunJGSS版本1.8,SunSASL版本1.8,版本的XMLDSig 1.8,SunPCSC 1.8版本,苹果版本1.8]
的SSLContext提供信息:太阳JSSE提供商(PKCS12,SunX509 / PKIX键/信任工厂,在SSLv3 /使用TLSv1 / TLSv1.1 / TLSv1.2工作)
的SSLContext提供的服务:
[SunJSSE:KeyFactory.RSA - > sun.security.rsa.RSAKeyFactory
  别名:[1.2.840.113549.1.1,OID.1.2.840.113549.1.1]
,SunJSSE:KeyPairGenerator.RSA - > sun.security.rsa.RSAKeyPairGenerator
  别名:[1.2.840.113549.1.1,OID.1.2.840.113549.1.1]
,SunJSSE:Signature.MD2withRSA - > sun.security.rsa.RSASignature $ MD2withRSA
  别名:[1.2.840.113549.1.1.2,OID.1.2.840.113549.1.1.2]
,SunJSSE:Signature.MD5withRSA - > sun.security.rsa.RSASignature $ MD5withRSA
  别名:[1.2.840.113549.1.1.4,OID.1.2.840.113549.1.1.4]
,SunJSSE:Signature.SHA1withRSA - > sun.security.rsa.RSASignature $ SHA1withRSA
  别名:[1.2.840.113549.1.1.5,OID.1.2.840.113549.1.1.5,1.3.14.3.2.29,OID.1.3.14.3.2.29]
,SunJSSE:Signature.MD5andSHA1withRSA - > sun.security.ssl.RSASignature
,SunJSSE:KeyManagerFactory.SunX509 - > sun.security.ssl.KeyManagerFactoryImpl $ SunX509
,SunJSSE:KeyManagerFactory.NewSunX509 - > sun.security.ssl.KeyManagerFactoryImpl $ X509
  别名:PKIX]
,SunJSSE:TrustManagerFactory.SunX509 - > sun.security.ssl.TrustManagerFactoryImpl $ SimpleFactory
,SunJSSE:TrustManagerFactory.PKIX - > sun.security.ssl.TrustManagerFactoryImpl $ PKIXFactory
  别名:[SunPKIX,X509,X.509]
,SunJSSE:SSLContext.TLSv1 - > sun.security.ssl.SSLContextImpl $ TLS10Context
  别名:在SSLv3]
,SunJSSE:SSLContext.TLSv1.1 - > sun.security.ssl.SSLContextImpl $ TLS11Context
,SunJSSE:SSLContext.TLSv1.2 - > sun.security.ssl.SSLContextImpl $ TLS12Context
,SunJSSE:SSLContext.TLS - > sun.security.ssl.SSLContextImpl $ TLSContext
  别名:[SSL]
,SunJSSE:SSLContext.Default - > sun.security.ssl.SSLContextImpl $ DefaultSSLContext
,SunJSSE:KeyStore.PKCS12 - > sun.security.pkcs12.PKCS12KeyStore
]
java.ext.dirs: /Users/jan/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerException logException
精细:***的SQLException:的ConnectionId:1 ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序不能建立使用安全套接字层到SQL Server的安全连接(SSL)加密。错误:破管ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c。驱动程序无法建立一个由使用安全套接字层(SSL)加密到SQL Server的安全连接。错误:破管ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c。
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerException logException
精细: com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2226)com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1756)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1803)com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1454)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1285)com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1131)java.sql.DriverManager.getConnection(DriverManager.java:664)java.sql.DriverManager.getConnection(DriverManager.java:247)ExampleSQLJDBC.main(ExampleSQLJDBC.java:44)
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerConnection:1关闭
FINER:ENTRY
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINEST:TDSChannel(的ConnectionId:1):关闭InputStream中...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINEST:TDSChannel(的ConnectionId:1):关闭的OutputStream ...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINER:TDSChannel(的ConnectionId:1):关闭TCP套接字...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerConnection:1关闭
FINER:RETURN
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerConnection:1关闭
FINER:ENTRY
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINEST:TDSChannel(的ConnectionId:1):关闭InputStream中...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINEST:TDSChannel(的ConnectionId:1):关闭的OutputStream ...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.TDSChannel接近
FINER:TDSChannel(的ConnectionId:1):关闭TCP套接字...
2016年6月17日上午09时26分43秒com.microsoft.sqlserver.jdbc.SQLServerConnection:1关闭
FINER:RETURN


解决方案

按我的经验,我认为这个问题是由这是可变的连接字符串引起的ConnectionURL 的您code。

请参阅下面的完成连接字符串。

<$c$c>jdbc:sqlserver://<hostname>.database.windows.net:1433;database=<database-name>;user=<username>@<hostname>;password={your_password_here};encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;

您可以在链接显示选项卡的右侧栏的连接字符串找到控制台在Azure上老门户网站(见图1),或看到它的链接显示数据库连接字符串在Azure上新门户(见图2)。

在Azure门户老的图1显示的连接字符串

在这里输入的形象描述

在Azure上新门户图2显示的数据库连接字符串

在这里输入的形象描述

希望它帮助。任何关注,请随时告诉我。


更新

下面是我的code连接SQL Azure的。

 公共静态无效的主要(字串[] args)抛出ClassNotFoundException异常,{的SQLException
    的Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);
    字符串主机=XXXXX;
    字符串DBNAME =petersqldb;
    字符串用户=@彼得XXXX;
    字符串密码=XXXXXXXX;
    字符串URL = String.format(\"jdbc:sqlserver://%s.database.windows.net:1433;database=%s;user=%s;password=%s;encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;\",主机名,数据库名,用户名,密码);
    康涅狄格州的连接=的DriverManager.getConnection(URL,用户,密码);
    声明STAT = conn.createStatement();
    结果集RS = stat.executeQuery(选择1 + 1的总和);
    而(rs.next()){
        的System.out.println(rs.getInt(总和));
    }
    rs.close();
    stat.close();
    conn.close();
}

I try to connect to Azure SQL with MS JDBC driver:

import java.sql.*;

public class ExampleSQLJDBC {

    public static void main(String[] args) {

        // Setting.
        String connectionUrl = "jdbc:sqlserver://SERVER.database.windows.net:1433;database=DATABASE;encrypt=true;trustServerCertificate=true;";
        String user = "USER@SERVER";
        String pass = "PASSWORD";

        // Declare the JDBC object.
        Connection conn = null;

        try {
            // Establish the connection.
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(connectionUrl, user, pass);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

But I am getting:

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Broken pipe ClientConnectionId:742ba7b5-43bb-441b-8e8d-bbb9dc5fa8ce".
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2226)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1756)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1803)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1454)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1285)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1131)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at run.ExampleSQLJDBC.main(ExampleSQLJDBC.java:21)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

Interestingly, I can connect to the database from the same computer with Navicat. Hence, the problem should not be in the setting of firewalls.

Metadata:

  • Server: Azure V12
  • Driver: 6.0 (sqljdbc42.jar)
  • JRE: 1.8.0_72-b15 (from Oracle)
  • _JAVA_OPTIONS: -Djsse.enableCBCProtection=false
  • security.provider.1: sun.security.provider.Sun
  • OS: OS X 10.11.5

How can I connect to Azure SQL from Java?

Edit:

If I compile the code from Peter Pan with javac 1.8.0_92 on OS X and execute the bytecode with java 1.8.0_92 on OS X, the error does not disappear.

Edit 2: When I debuged the SSL connection details with -Djavax.net.debug=ssl:handshake:verbose:

trigger seeding of SecureRandom
done seeding SecureRandom
Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256
Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Allow unsafe renegotiation: false
Allow legacy hello messages: true
Is initial handshake: true
Is secure renegotiation: false
Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1
Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1
Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 for TLSv1
Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1
Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 for TLSv1
Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1
Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 for TLSv1
Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1.1
Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 for TLSv1.1
%% No cached client session
*** ClientHello, TLSv1.2
RandomCookie:  GMT: 1466081162 bytes = { 238, 135, 254, 162, 132, 164, 75, 240, 96, 107, 17, 103, 60, 109, 229, 149, 31, 110, 218, 87, 49, 29, 121, 114, 115, 6, 44, 32 }
Session ID:  {}
Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
Compression Methods:  { 0 }
Extension elliptic_curves, curve names: {secp256r1, sect163k1, sect163r2, secp192r1, secp224r1, sect233k1, sect233r1, sect283k1, sect283r1, secp384r1, sect409k1, sect409r1, secp521r1, sect571k1, sect571r1, secp160k1, secp160r1, secp160r2, sect163r1, secp192k1, sect193r1, sect193r2, secp224k1, sect239k1, secp256k1}
Extension ec_point_formats, formats: [uncompressed]
Extension signature_algorithms, signature_algorithms: SHA512withECDSA, SHA512withRSA, SHA384withECDSA, SHA384withRSA, SHA256withECDSA, SHA256withRSA, SHA224withECDSA, SHA224withRSA, SHA1withECDSA, SHA1withRSA, SHA1withDSA
Extension server_name, server_name: [type=host_name (0), value=hlt3qa7607.database.windows.net]
***
main, WRITE: TLSv1.2 Handshake, length = 233
main, called close()
main, called closeInternal(true)
main, SEND TLSv1.2 ALERT:  warning, description = close_notify
main, WRITE: TLSv1.2 Alert, length = 2
main, called closeSocket(true)
main, waiting for close_notify or alert: state 5
main, received EOFException: ignored
main, called closeInternal(false)
main, close invoked again; state = 5
main, handling exception: java.io.IOException: SQL Server did not return a response. The connection has been closed. ClientConnectionId:1eb03958-1566-4844-b842-e020f0c36121
main, called closeSocket()
com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:1eb03958-1566-4844-b842-e020f0c36121".... 

Edit 3: After setting the driver to log all:

Jun 17, 2016 9:26:37 AM com.microsoft.sqlserver.jdbc.SQLServerDriver:1 connect
FINER: ENTRY Arguments not traced.
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.Util parseUrl
FINE: Property:serverName Value:hlt3qa7607.database.windows.net
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.Util parseUrl
FINE: Property:portNumber Value:1433
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.Util parseUrl
FINE: Property:databaseName Value:DATABASE
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.Util parseUrl
FINE: Property:encrypt Value:true
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.Util parseUrl
FINE: Property:trustServerCertificate Value:true
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection <init>
FINE: ConnectionID:1 created by (SQLServerDriver:1)
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection login
FINER: ConnectionID:1 Start time: 1466148398058 Time out time: 1466148413058 Timeout Unit Interval: 1200
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection login
FINE: ConnectionID:1 This attempt server name: hlt3qa7607.database.windows.net port: 1433 InstanceName: null useParallel: false
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection login
FINE: ConnectionID:1 This attempt endtime: 1466148399258
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection login
FINE: ConnectionID:1 This attempt No: 0
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection connectHelper
FINE: ConnectionID:1 Connecting with server: hlt3qa7607.database.windows.net port: 1433 Timeout slice: 1194 Timeout Full: 15
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.TDSChannel open
FINER: TDSChannel (ConnectionID:1): Opening TCP socket...
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
FINER: ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c Requesting encryption level:ON
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
FINER: ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c ActivityId 866c0053-25be-4eb2-90c7-a40b5b0535a4-1
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.TDSChannel logPacket
FINEST: /192.168.1.186:63328 SPID:0 ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c Prelogin request                                         ...
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.TDSChannel logPacket
FINEST: /192.168.1.186:63328 SPID:0 ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c Prelogin response
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
FINE: ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c Server returned major version:12
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
FINER: ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c Negotiated encryption level:ON
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
FINER: ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c Ignoring prelogin response option:5
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER: TDSChannel (ConnectionID:1) Enabling SSL...
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER: TDSChannel (ConnectionID:1) SSL handshake will trust any certificate
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINEST: TDSChannel (ConnectionID:1) Getting TLS or better SSL context
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINEST: TDSChannel (ConnectionID:1) Initializing SSL context
Jun 17, 2016 9:26:38 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINEST: TDSChannel (ConnectionID:1) Creating SSL socket
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket getInputStream
FINEST: TDSChannel (ConnectionID:1) (ProxySocket): Getting input stream
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket getOutputStream
FINEST: TDSChannel (ConnectionID:1) (ProxySocket): Getting output stream
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER: TDSChannel (ConnectionID:1) Starting SSL handshake
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream writeInternal
FINEST: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream@13c78c0b Writing 238 bytes
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeOutputStream writeInternal
FINEST: TDSChannel (ConnectionID:1) (SSLHandshakeOutputStream): Starting new TDS packet...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSWriter writeBytes
FINEST: TDSWriter@41629346 (ConnectionID:1) Writing 8 bytes
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeOutputStream writeInternal
FINEST: TDSChannel (ConnectionID:1) (SSLHandshakeOutputStream): Writing 238 bytes...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSWriter writeBytes
FINEST: TDSWriter@41629346 (ConnectionID:1) Writing 238 bytes
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream flush
FINEST: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream@13c78c0b Flushing
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeOutputStream flush
FINEST: TDSChannel (ConnectionID:1) (SSLHandshakeOutputStream): Ignored a request to flush the stream
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream readInternal
FINEST: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce Reading 5 bytes
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream readInternal
FINEST: TDSChannel (ConnectionID:1) (SSLHandshakeInputStream): Reading 5 bytes...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream ensureSSLPayload
FINEST: TDSChannel (ConnectionID:1) (SSLHandshakeInputStream): No handshake response bytes available. Flushing SSL handshake output stream.
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeOutputStream endMessage
FINEST: TDSChannel (ConnectionID:1) (SSLHandshakeOutputStream): Finishing TDS message
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSWriter endMessage
FINEST: TDSWriter@41629346 (ConnectionID:1) Finishing TDS message
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel logPacket
FINEST: /0:0:0:0:0:0:c0a8:1ba:63328 SPID:0 TDSWriter@41629346 (ConnectionID:1) sending packet (246 bytes)
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel write
FINER: TDSChannel (ConnectionID:1) write failed:Broken pipe
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerException logException
FINE: *** SQLException:ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c com.microsoft.sqlserver.jdbc.SQLServerException: Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerException logException
FINE: com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2226)com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2210)com.microsoft.sqlserver.jdbc.TDSChannel.write(IOBuffer.java:1894)com.microsoft.sqlserver.jdbc.TDSWriter.flush(IOBuffer.java:4285)com.microsoft.sqlserver.jdbc.TDSWriter.writePacket(IOBuffer.java:4186)com.microsoft.sqlserver.jdbc.TDSWriter.endMessage(IOBuffer.java:3192)com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeOutputStream.endMessage(IOBuffer.java:824)com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:687)com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:762)com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:754)com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:949)com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:937)sun.security.ssl.InputRecord.readFully(InputRecord.java:465)sun.security.ssl.InputRecord.read(InputRecord.java:503)sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1682)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1803)com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1454)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1285)com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1131)java.sql.DriverManager.getConnection(DriverManager.java:664)java.sql.DriverManager.getConnection(DriverManager.java:247)ExampleSQLJDBC.main(ExampleSQLJDBC.java:44)
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerConnection:1 close
FINER: ENTRY
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel disableSSL
FINER: TDSChannel (ConnectionID:1) Disabling SSL...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel disableSSL
FINEST: TDSChannel (ConnectionID:1) Rewiring proxy streams for SSL socket close
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel disableSSL
FINER: TDSChannel (ConnectionID:1) Closing SSL socket
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream writeInternal
FINEST: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream@13c78c0b Writing 7 bytes
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream flush
FINEST: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream@13c78c0b Flushing
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream readInternal
FINEST: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce Reading 5 bytes
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream readInternal
FINEST: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce Read -1 bytes
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel disableSSL
FINER: TDSChannel (ConnectionID:1) SSL disabled
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINEST: TDSChannel (ConnectionID:1): Closing inputStream...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINEST: TDSChannel (ConnectionID:1): Closing outputStream...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINER: TDSChannel (ConnectionID:1): Closing TCP socket...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerConnection:1 close
FINER: RETURN
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream ensureSSLPayload
FINER: TDSChannel (ConnectionID:1) (SSLHandshakeInputStream): Ending TDS message threw exception:Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream readInternal
FINER: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream readInternal
FINER: com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream@12843fce Reading bytes threw exception:Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket close
FINER: TDSChannel (ConnectionID:1) (ProxySocket): Ignoring close
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER: Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
java.io.IOException: Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:692)
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:762)
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:754)
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:949)
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:937)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
    at sun.security.ssl.InputRecord.read(InputRecord.java:503)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1682)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1803)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1454)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1285)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1131)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at ExampleSQLJDBC.main(ExampleSQLJDBC.java:44)

Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
FINER: java.security path: /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/security
Security providers: [SUN version 1.8, SunRsaSign version 1.8, SunEC version 1.8, SunJSSE version 1.8, SunJCE version 1.8, SunJGSS version 1.8, SunSASL version 1.8, XMLDSig version 1.8, SunPCSC version 1.8, Apple version 1.8]
SSLContext provider info: Sun JSSE provider(PKCS12, SunX509/PKIX key/trust factories, SSLv3/TLSv1/TLSv1.1/TLSv1.2)
SSLContext provider services:
[SunJSSE: KeyFactory.RSA -> sun.security.rsa.RSAKeyFactory
  aliases: [1.2.840.113549.1.1, OID.1.2.840.113549.1.1]
, SunJSSE: KeyPairGenerator.RSA -> sun.security.rsa.RSAKeyPairGenerator
  aliases: [1.2.840.113549.1.1, OID.1.2.840.113549.1.1]
, SunJSSE: Signature.MD2withRSA -> sun.security.rsa.RSASignature$MD2withRSA
  aliases: [1.2.840.113549.1.1.2, OID.1.2.840.113549.1.1.2]
, SunJSSE: Signature.MD5withRSA -> sun.security.rsa.RSASignature$MD5withRSA
  aliases: [1.2.840.113549.1.1.4, OID.1.2.840.113549.1.1.4]
, SunJSSE: Signature.SHA1withRSA -> sun.security.rsa.RSASignature$SHA1withRSA
  aliases: [1.2.840.113549.1.1.5, OID.1.2.840.113549.1.1.5, 1.3.14.3.2.29, OID.1.3.14.3.2.29]
, SunJSSE: Signature.MD5andSHA1withRSA -> sun.security.ssl.RSASignature
, SunJSSE: KeyManagerFactory.SunX509 -> sun.security.ssl.KeyManagerFactoryImpl$SunX509
, SunJSSE: KeyManagerFactory.NewSunX509 -> sun.security.ssl.KeyManagerFactoryImpl$X509
  aliases: [PKIX]
, SunJSSE: TrustManagerFactory.SunX509 -> sun.security.ssl.TrustManagerFactoryImpl$SimpleFactory
, SunJSSE: TrustManagerFactory.PKIX -> sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory
  aliases: [SunPKIX, X509, X.509]
, SunJSSE: SSLContext.TLSv1 -> sun.security.ssl.SSLContextImpl$TLS10Context
  aliases: [SSLv3]
, SunJSSE: SSLContext.TLSv1.1 -> sun.security.ssl.SSLContextImpl$TLS11Context
, SunJSSE: SSLContext.TLSv1.2 -> sun.security.ssl.SSLContextImpl$TLS12Context
, SunJSSE: SSLContext.TLS -> sun.security.ssl.SSLContextImpl$TLSContext
  aliases: [SSL]
, SunJSSE: SSLContext.Default -> sun.security.ssl.SSLContextImpl$DefaultSSLContext
, SunJSSE: KeyStore.PKCS12 -> sun.security.pkcs12.PKCS12KeyStore
]
java.ext.dirs: /Users/jan/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerException logException
FINE: *** SQLException:ConnectionID:1 ClientConnectionId: 1a3032c8-493d-4f99-8641-d0f02211d82c com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c". The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Broken pipe ClientConnectionId:1a3032c8-493d-4f99-8641-d0f02211d82c".
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerException logException
FINE: com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2226)com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1756)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1803)com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1454)com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1285)com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1131)java.sql.DriverManager.getConnection(DriverManager.java:664)java.sql.DriverManager.getConnection(DriverManager.java:247)ExampleSQLJDBC.main(ExampleSQLJDBC.java:44)
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerConnection:1 close
FINER: ENTRY
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINEST: TDSChannel (ConnectionID:1): Closing inputStream...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINEST: TDSChannel (ConnectionID:1): Closing outputStream...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINER: TDSChannel (ConnectionID:1): Closing TCP socket...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerConnection:1 close
FINER: RETURN
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerConnection:1 close
FINER: ENTRY
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINEST: TDSChannel (ConnectionID:1): Closing inputStream...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINEST: TDSChannel (ConnectionID:1): Closing outputStream...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.TDSChannel close
FINER: TDSChannel (ConnectionID:1): Closing TCP socket...
Jun 17, 2016 9:26:43 AM com.microsoft.sqlserver.jdbc.SQLServerConnection:1 close
FINER: RETURN

解决方案

Per my experience, I think the issue was caused by the connection string which is the variable connectionUrl of your code.

Please see the completed connection string below.

jdbc:sqlserver://<hostname>.database.windows.net:1433;database=<database-name>;user=<username>@<hostname>;password={your_password_here};encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;

You can find it at the link Show connection strings of the right bar of the tab DASHBOARD on Azure old portal (see Fig 1), or see it at the link Show database connection strings on Azure new portal (see Fig 2).

Fig 1. Show connection string on Azure old portal

Fig 2. Show database connection strings on Azure new portal

Hope it helps. Any concern, please feel free to let me know.


Update

Here is my code for connecting SQL Azure.

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String hostName = "xxxxx";
    String dbName = "petersqldb";
    String user = "peter@xxxx";
    String password = "xxxxxxxx";
    String url = String.format("jdbc:sqlserver://%s.database.windows.net:1433;database=%s;user=%s;password=%s;encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;", hostName, dbName, user, password);
    Connection conn = DriverManager.getConnection(url, user, password);
    Statement stat = conn.createStatement();
    ResultSet rs = stat.executeQuery("select 1+1 as sum");
    while(rs.next()) {
        System.out.println(rs.getInt("sum"));
    }
    rs.close();
    stat.close();
    conn.close();
}

这篇关于如何连接到SQL Azure的使用JDBC的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆