尝试使用 Java 连接到 Microsoft SQL 服务器时出现断言错误

时间:2021-05-30 18:04:50

标签: azure azure-sql-database

我正在尝试将 Android 应用程序连接到托管在 azure 上的数据库,但每次运行我的代码时都会收到以下错误:

    Process: com.traders.scanner, PID: 27389
    java.lang.AssertionError: numMsgsRcvd:1 should be less than numMsgsSent:1
        at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:4830)
        at com.microsoft.sqlserver.jdbc.TDSReader.nextPacket(IOBuffer.java:4791)
        at com.microsoft.sqlserver.jdbc.TDSReader.ensurePayload(IOBuffer.java:4767)
        at com.microsoft.sqlserver.jdbc.TDSReader.readBytes(IOBuffer.java:5060)
        at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:712)
        at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:700)
        at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:895)
        at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:883)
        at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:936)
        at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:900)
        at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:722)
        at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:238)
        at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:217)
        at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1618)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1323)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
        at java.sql.DriverManager.getConnection(DriverManager.java:580)
        at java.sql.DriverManager.getConnection(DriverManager.java:236)
        at com.traders.scanner.model.Singleton.lambda$openConnection$0(Singleton.java:63)
        at com.traders.scanner.model.-$$Lambda$Singleton$T1DpXa4dlvxveN6-oATiN8Z-WrI.run(Unknown Source:2)
        at java.lang.Thread.run(Thread.java:923)

这是我用来连接的代码

        StrictMode.setThreadPolicy(policy);
        try {
            DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
        } catch (SQLException e) {
            System.out.println("*** Unable to register driver");
        }
        try (Connection connection = DriverManager.getConnection(connectionUrl);) {
            System.out.println("Connection successful");
        }
        catch (SQLException e) {
            System.out.println("*** SQL exception " + e.getMessage());
        }```

1 个答案:

答案 0 :(得分:0)

这似乎有一个未解决的问题/错误:#964

看起来你不是唯一遇到这种情况的人。我建议您跟进与 PG 相同的问题。

如果这个答案有帮助,请告诉我。