我正在尝试使用连接字符串中的“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();
最佳答案
您应该连接到可用性组监听器 (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
关于java - SQL Server "Application=Intent"不工作 JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38356460/