Azure sql连接使用JTDS挂起

问题描述 投票:0回答:1

我正在尝试使用JTDS JDBC驱动程序连接到Azure SQL服务器。我之前已获得连接以进行工作,但现在它已经挂了一个晚上

DriverManager.getConnection(url);

它也不例外,并且继续运行超过连接字符串默认的30秒超时。完整代码如下

        try {
            StrictMode.ThreadPolicy pol = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(pol);

            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            String url = "jdbc:jtds:sqlserver://{server}.database.windows.net:1433;database=PROD;user={username}@{server};password={password};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
            Connection c = DriverManager.getConnection(url);

            c.close();
        }
        catch(Exception e)
        {
            new AlertDialog.Builder().setTitle("e").setMessage(e.getMessage()).setNegativeButton("e", null).show();
        }

我能够使用SSMS连接并查询数据库,据我所知数据库可以正常工作。尽管我是使用SQL服务器的初学者,所以我可能是错的。我发现SQL Server版本是12.0.2000.8。 JTDS文档建议在某些情况下更改TDS版本,但是根据我的尝试,并不能解决我的问题。我正在使用JTDS版本1.3.1。

再次,该方法昨天运行良好,现在出现问题。项目中的任何内容均未更改。昨天我没有在创建连接后关闭连接,因此我有一种直觉,认为SQL Server上存在一些问题。

现在,几个小时后,连接在几秒钟后建立了,当我尝试重新运行该应用程序时,它遇到了同样的问题。

找到我的解决方案:

似乎Android模拟器遇到了DNS问题。在Android Studio - Android Emulator Wifi Connected with No Internet之后,该线程使我能够手动将DNS设置为8.8.8.88.8.4.4,从而解决了该问题。

java jdbc azure-sql-database jtds
1个回答
0
投票

恭喜您找到了解决方法:

似乎Android模拟器遇到了DNS问题。在Android Studio - Android Emulator Wifi Connected with No Internet之后,该线程使我能够手动将DNS设置为8.8.8.88.8.4.4,从而解决了该问题。

我将其发布为答案,这可能对其他社区成员有益。

© www.soinside.com 2019 - 2024. All rights reserved.