【问题标题】:SQL Server "Application Intent=readonly" not working JDBCSQL Server“Application Intent=readonly”不工作 JDBC
【发布时间】:2016-11-16 07:45:54
【问题描述】:

我正在尝试使用连接字符串中的"ApplicationIntent=readonly" 访问 sql server 2012 DB 上的辅助节点。

它仍然在攻击主节点,不知道为什么。

我正在使用sqljdbc4-4.0 jar

java JDBC 调用:

ResultSet results = null;
PreparedStatement preparedStatement = null;
Connection conn = null;

String SQL_SERVER_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(SQL_SERVER_DRIVER);

String dbString = "jdbc:sqlserver://*****;applicationIntent=ReadOnly;databaseName=****;user=*****;password=****;";
    
conn = DriverManager.getConnection(dbString);
preparedStatement = conn.prepareStatement("some_sql");

results = preparedStatement.executeQuery(); 

【问题讨论】:

  • 您对此有答案吗?我们也遇到了这个问题
  • 你有没有想过如何让它正常工作?

标签: java sql-server jdbc sql-server-2012


【解决方案1】:

您应该连接到可用性组侦听器 (AGL) 地址。您可以使用以下查询来查找可用性组侦听器地址:

select * from sys.availability_group_listener_ip_addresses 

找到 AGL 地址后,您的 jdbc 连接字符串应该是:

jdbc:sqlserver://[AGL-ADDRESS]:1433;databaseName=[DB_NAME];user=[username];password=[password];applicationIntent=ReadOnly

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多