Skip to content
This repository was archived by the owner on Apr 20, 2019. It is now read-only.

Commit dc8e024

Browse files
author
MightyPen
committed
Full implementation of the new includes\paragraph-content\ .md file, in a total of 5 regular .md files.
1 parent 3e93aa9 commit dc8e024

5 files changed

Lines changed: 31 additions & 103 deletions

docs/connect/jdbc/jdbc-driver-support-for-high-availability-disaster-recovery.md

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "JDBC Driver Support for High Availability, Disaster Recovery | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "01/19/2017"
4+
ms.date: "04/04/2018"
55
ms.prod: "sql-non-specified"
66
ms.prod_service: "drivers"
77
ms.service: ""
@@ -89,29 +89,11 @@ If you are using Microsoft JDBC Driver 4.2 (or lower) for SQL Server and if **mu
8989
If you upgrade a [!INCLUDE[jdbcNoVersion](../../includes/jdbcnoversion_md.md)] application that currently uses database mirroring to a multi-subnet scenario, you should remove the **failoverPartner** connection property and replace it with **multiSubnetFailover** set to **true** and replace the server name in the connection string with a availability group listener. If a connection string uses **failoverPartner** and **multiSubnetFailover=true**, the driver will generate an error. However, if a connection string uses **failoverPartner** and **multiSubnetFailover=false** (or **ApplicationIntent=ReadWrite**), the application will use database mirroring.
9090

9191
The driver will return an error if database mirroring is used on the primary database in the AG, and if **multiSubnetFailover=true** is used in the connection string that connects to a primary database instead of to an availability group listener.
92-
93-
## Specifying Application Intent
94-
When **applicationIntent=ReadOnly**, the client requests a read-only workload when connecting to an AlwaysOn enabled database. The server will enforce the intent at connection time and during a USE database statement but only to an AlwaysOn enabled database.
95-
96-
The **applicationIntent** keyword does not work with legacy, read-only databases.
97-
98-
A database can allow or disallow read workloads on the targeted AlwaysOn database. (This is done with the **ALLOW_CONNECTIONS** clause of the **PRIMARY_ROLE** and **SECONDARY_ROLE**[!INCLUDE[tsql](../../includes/tsql_md.md)] statements.)
99-
100-
The **applicationIntent** keyword is used to enable read-only routing.
101-
102-
## Read-Only Routing
103-
Read-only routing is a feature that can ensure the availability of a read-only replica of a database. To enable read-only routing:
104-
105-
1. You must connect to an AlwaysOn Availability Group availability group listener.
106-
107-
2. The **applicationIntent** connection string keyword must be set to **ReadOnly**.
108-
109-
3. The Availability Group must be configured by the database administrator to enable read-only routing.
110-
111-
It is possible that multiple connections using read-only routing will not all connect to the same read-only replica. Changes in database synchronization or changes in the server's routing configuration can result in client connections to different read-only replicas. To ensure that all read-only requests connect to the same read-only replica, do not pass an availability group listener or virtual IP address to the **serverName** connection string keyword. Instead, specify the name of the read-only instance.
112-
113-
Read-only routing may take longer than connecting to the primary because read-only routing first connects to the primary and then looks for the best available readable secondary. Because of this, you should increase your login timeout.
114-
92+
93+
94+
[!INCLUDE[specify-application-intent_read-only-routing](~/includes/paragraph-content/specify-application-intent-read-only-routing.md)]
95+
96+
11597
## New Methods Supporting multiSubnetFailover and applicationIntent
11698
The following methods give you programmatic access to the **multiSubnetFailover**, **applicationIntent** and **transparentNetworkIPResolution** connection string keywords:
11799

docs/connect/odbc/linux-mac/odbc-driver-on-linux-support-for-high-availability-disaster-recovery.md

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "ODBC Driver on Linux and macOS - High Availability and Disaster Recovery | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "01/19/2017"
4+
ms.date: "04/04/2018"
55
ms.prod: "sql-non-specified"
66
ms.prod_service: "drivers"
77
ms.service: ""
@@ -70,29 +70,11 @@ If read-only routing is not in effect, connecting to a secondary replica locatio
7070
2. If an application uses **ApplicationIntent=ReadWrite** and the secondary replica location is configured for read-only access.
7171

7272
A connection fails if a primary replica is configured to reject read-only workloads and the connection string contains **ApplicationIntent=ReadOnly**.
73-
74-
## Specifying Application Intent
75-
When **ApplicationIntent=ReadOnly**, the client requests a read workload when connecting to an AlwaysOn enabled database. The server enforces the intent at connection time and during a USE database statement but only to an AlwaysOn enabled database.
7673

77-
The **ApplicationIntent** keyword does not work with legacy, read-only databases.
7874

79-
A database can allow or disallow read workloads on the targeted AlwaysOn database. (Use the **ALLOW_CONNECTIONS** clause of the **PRIMARY_ROLE** and **SECONDARY_ROLE**[!INCLUDE[tsql](../../../includes/tsql_md.md)] statements.)
80-
81-
The **ApplicationIntent** keyword is used to enable read-only routing.
82-
83-
## Read-Only Routing
84-
Read-only routing is a feature that can ensure the availability of a read-only replica of a database. To enable read-only routing:
85-
86-
1. Connect to an Always On Availability Group availability group listener.
87-
88-
2. The **ApplicationIntent** connection string keyword must be set to **ReadOnly**.
89-
90-
3. The database administrator must configure the Availability Group to enable read-only routing.
91-
92-
It is possible for multiple connections that use read-only routing to connect to different read-only replicas. Changes in database synchronization or changes in the server's routing configuration can result in client connections to different read-only replicas. To ensure that all read-only requests connect to the same read-only replica, do not pass an availability group listener to the **Server** connection keyword. Instead, specify the name of the read-only instance.
93-
94-
Expect longer connection times with read-only routing than connecting to the primary. Therefore, increase your login timeout. Read-only routing first connects to the primary and then looks for the best available readable secondary.
95-
75+
[!INCLUDE[specify-application-intent_read-only-routing](~/includes/paragraph-content/specify-application-intent-read-only-routing.md)]
76+
77+
9678
## ODBC Syntax
9779

9880
Two ODBC connection string keywords support [!INCLUDE[ssHADR](../../../includes/sshadr_md.md)]:

docs/connect/oledb/features/oledb-driver-for-sql-server-support-for-high-availability-disaster-recovery.md

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "OLE DB Driver for SQL Server Support for High Availability, Disaster Recovery | Microsoft Docs"
33
description: "OLE DB Driver for SQL Server support for high availability, disaster recovery"
44
ms.custom: ""
5-
ms.date: "03/26/2018"
5+
ms.date: "04/04/2018"
66
ms.prod: "sql-non-specified"
77
ms.prod_service: "database-engine, sql-database, sql-data-warehouse, pdw"
88
ms.service: ""
@@ -67,29 +67,11 @@ A connection error will occur if the **MultiSubnetFailover** and **Failover_Part
6767
If you upgrade an OLE DB Driver for SQL Server application that currently uses database mirroring to a multi-subnet scenario, you should remove the **Failover_Partner** connection property and replace it with **MultiSubnetFailover** set to **Yes** and replace the server name in the connection string with an availability group listener. If a connection string uses **Failover_Partner** and **MultiSubnetFailover=Yes**, the driver will generate an error. However, if a connection string uses **Failover_Partner** and **MultiSubnetFailover=No** (or **ApplicationIntent=ReadWrite**), the application will use database mirroring.
6868

6969
The driver will return an error if database mirroring is used on the primary database in the availability group, and if **MultiSubnetFailover=Yes** is used in the connection string that connects to a primary database instead of to an availability group listener.
70-
71-
## Specifying Application Intent
72-
When **ApplicationIntent=ReadOnly**, the client requests a read workload when connecting to an Always On enabled database. The server will enforce the intent at connection time and during a `USE` database statement but only to an Always On enabled database.
73-
74-
The **ApplicationIntent** keyword does not work with legacy, read-only databases.
75-
76-
A database can allow or disallow read workloads on the targeted Always On database. (This is done with the **ALLOW_CONNECTIONS** clause of the **PRIMARY_ROLE** and **SECONDARY_ROLE**[!INCLUDE[tsql](../../../includes/tsql-md.md)] statements.)
77-
78-
The **ApplicationIntent** keyword is used to enable read-only routing.
79-
80-
## Read-Only Routing
81-
Read-only routing is a feature that can ensure the availability of a read only replica of a database. To enable read-only routing:
82-
83-
1. You must connect to an Always On Availability Group availability group listener.
84-
85-
2. The **ApplicationIntent** connection string keyword must be set to **ReadOnly**.
86-
87-
3. The Always On Availability Group must be configured by the database administrator to enable read-only routing.
88-
89-
It is possible that multiple connections using read-only routing will not all connect to the same read-only replica. Changes in database synchronization or changes in the server's routing configuration can result in client connections to different read-only replicas. To ensure that all read-only requests connect to the same read-only replica, do not pass an Always On Availability Group listener to the **Server** connection string keyword. Instead, specify the name of the read-only instance.
90-
91-
Read-only routing may take longer than connecting to the primary because read only routing first connects to the primary and then looks for the best available readable secondary. Because of this, you should increase your login timeout.
92-
70+
71+
72+
[!INCLUDE[specify-application-intent_read-only-routing](~/includes/paragraph-content/specify-application-intent-read-only-routing.md)]
73+
74+
9375
## OLE DB
9476
The OLE DB Driver for SQL Server supports both the **ApplicationIntent** and the **MultiSubnetFailover** keywords.
9577

docs/connect/php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Support for High Availability, Disaster Recovery for the Microsoft Drivers for PHP for SQL Server | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "03/26/2018"
4+
ms.date: "04/04/2018"
55
ms.prod: "sql-non-specified"
66
ms.prod_service: "drivers"
77
ms.service: ""
@@ -68,29 +68,11 @@ A connection error will occur if the **MultiSubnetFailover** and **Failover_Part
6868
If you upgrade a [!INCLUDE[ssDriverPHP](../../includes/ssdriverphp_md.md)] application that currently uses database mirroring to a multi-subnet scenario, you should remove the **Failover_Partner** connection property and replace it with **MultiSubnetFailover** set to **Yes** and replace the server name in the connection string with an availability group listener. If a connection string uses **Failover_Partner** and **MultiSubnetFailover=true**, the driver will generate an error. However, if a connection string uses **Failover_Partner** and **MultiSubnetFailover=false** (or **ApplicationIntent=ReadWrite**), the application will use database mirroring.
6969

7070
The driver will return an error if database mirroring is used on the primary database in the AG, and if **MultiSubnetFailover=true** is used in the connection string that connects to a primary database instead of to an availability group listener.
71-
72-
## Specifying Application Intent
73-
When **ApplicationIntent=ReadOnly**, the client requests a read workload when connecting to an AlwaysOn enabled database. The server will enforce the intent at connection time and during a USE database statement but only to an Always On enabled database.
74-
75-
The **ApplicationIntent** keyword does not work with legacy, read-only databases.
76-
77-
A database can allow or disallow read workloads on the targeted AlwaysOn database. (This is done with the **ALLOW_CONNECTIONS** clause of the **PRIMARY_ROLE** and **SECONDARY_ROLE**[!INCLUDE[tsql](../../includes/tsql_md.md)] statements.)
78-
79-
The **ApplicationIntent** keyword is used to enable read-only routing.
80-
81-
## Read-Only Routing
82-
Read-only routing is a feature that can ensure the availability of a read-only replica of a database. To enable read-only routing:
83-
84-
1. You must connect to an Always On Availability Group availability group listener.
85-
86-
2. The **ApplicationIntent** connection string keyword must be set to **ReadOnly**.
87-
88-
3. The Availability Group must be configured by the database administrator to enable read-only routing.
89-
90-
It is possible that multiple connections using read-only routing will not all connect to the same read-only replica. Changes in database synchronization or changes in the server's routing configuration can result in client connections to different read-only replicas. To ensure that all read-only requests connect to the same read-only replica, do not pass an availability group listener to the **Server** connection string keyword. Instead, specify the name of the read-only instance.
91-
92-
Read-only routing may take longer than connecting to the primary because read-only routing first connects to the primary and then looks for the best available readable secondary. In this case, the login timeout should be increased.
93-
71+
72+
73+
[!INCLUDE[specify-application-intent_read-only-routing](~/includes/paragraph-content/specify-application-intent-read-only-routing.md)]
74+
75+
9476
## See Also
9577
[Connecting to the Server](../../connect/php/connecting-to-the-server.md)
9678

docs/includes/paragraph-content/specify-application-intent-read-only-routing.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The **ApplicationIntent** keyword does not work with legacy read-only databases.
1313
When a connection chooses **ReadOnly**, the connection is assigned to any of the following special configurations that might exist for the database:
1414

1515
- [Always On](~/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server.md)
16-
- A database can allow or disallow read workloads on the targeted Always On database. This is done with the **ALLOW_CONNECTIONS** clause of the **PRIMARY_ROLE** and **SECONDARY_ROLE** Transact-SQL statements.
16+
- A database can allow or disallow read workloads on the targeted Always On database. This choice is controlled by using the **ALLOW_CONNECTIONS** clause of the **PRIMARY_ROLE** and **SECONDARY_ROLE** Transact-SQL statements.
1717

1818
- [Geo-Replication](https://docs.microsoft.com/azure/sql-database/sql-database-geo-replication-overview)
1919

@@ -28,15 +28,15 @@ The **ApplicationIntent** keyword enables *read-only routing*.
2828

2929
## Read-Only Routing
3030

31-
Read-only routing is a feature that can ensure the availability of a read only replica of a database. To enable read-only routing:
32-
31+
Read-only routing is a feature that can ensure the availability of a read-only replica of a database. To enable read-only routing:
32+
3333
1. You must connect to an Always On Availability Group availability group listener.
34-
34+
3535
2. The **ApplicationIntent** connection string keyword must be set to **ReadOnly**.
36-
36+
3737
3. The Availability Group must be configured by the database administrator to enable read-only routing.
38-
39-
It is possible that multiple connections using read-only routing will not all connect to the same read-only replica. Changes in database synchronization or changes in the server's routing configuration can result in client connections to different read-only replicas. To ensure that all read-only requests connect to the same read-only replica, do not pass an availability group listener to the **Server** connection string keyword. Instead, specify the name of the read-only instance.
4038

41-
Read-only routing may take longer than connecting to the primary because read only routing first connects to the primary and then looks for the best available readable secondary. Because of this, you should increase your login timeout.
42-
39+
Multiple connections each using read-only routing might not all connect to the same read-only replica. Changes in database synchronization or changes in the server's routing configuration can result in client connections to different read-only replicas. You can ensure that all read-only requests connect to the same read-only replica. Ensure this sameness by *not* passing an availability group listener to the **Server** connection string keyword. Instead, specify the name of the read-only instance.
40+
41+
Read-only routing may take longer than connecting to the primary. The longer wait is because read-only routing first connects to the primary, and then looks for the best available readable secondary. Due to these multiple staps, you should increase your login timeout to to at least 30 seconds.
42+

0 commit comments

Comments
 (0)