Connectivity Cross Version Compatibility

 

This blog post explains the Merge Replication connectivity cross version compatibility scenarios for the SQL Server Compact 3.5 release. For more information about the connectivity cross version compatibility scenarios in SQL Server Compact 3.1, see SQL Server Compact 3.1 Connectivity Tools.

 

This post is not applicable/refer-to Sync Services for ADO.NET.  Please refer to this post by Mr. Steve Lasker to know the differences between Sync Services for ADO.NET and Merge Replication.

 

 

Product Version Information:

The following table demonstrates the product names and code names used throughout this blog post.

 

Version

Product Official Name(s)

Product Codename

Nickname

Client 2.0

SQL Server 2000 for Windows CE

SQL Server Compact 2.0

<None>

SQL CE 2.0

Client 3.0

SQL Server 2005 Mobile Edition

SQL Server Compact 3.0

<None>

SQL CE 3.0

Client 3.1

SQL Server 2005 Compact Edition

SQL Server Compact 3.1

<None>

SQL CE 3.1

Client 3.5

SQL Server Compact 3.5

<None>

SQL CE 3.5

Server 8.0

SQL Server 2000

Shiloh

SQL Server 8.0

Server 9.0

SQL Server 2005

Yukon

SQL Server 9.0

Server 10.0

SQL Server 2008

Katmai

SQL Server 10.0

 

Summary:

 

1)    SQL Server Compact 3.5 can synchronize with only SQL Server 2005 not with SQL Server 2000.

2)    SQL Server Compact 3.5 Server Tools package enables synchronization between SQL Server Compact client versions 3.0, 3.1, and 3.5 and SQL Server 2005 through SQL Server Compact3.5 IIS components.

3)    SQL Server Compact 3.5 SP1 can synchronize with both SQL Server 2005 and SQL Server 2008. 

4)    SQL Server Compact 3.5 SP1 Server Tools package enables synchronization between SQL Server Compact client versions 3.0, 3.1, 3.5 and SQL Server 2008 through SQL Server Compact 3.5 SP1 IIS components.

 

 

Server Tools Release Plan:

Our release plan for server tools package is as follows: In Phase1, we are releasing SQL Server Compact 3.5 Server Tools package for SQL Server 2005 (Yukon) and SQL Server Compact 3.5 SP1 Beta Server Tools package for SQL Server 2008 (Katmai). In Phase2, we will release the SQL Server Compact 3.5 SP1 Server Tools package for both SQL Server 2005 (Yukon) and SQL Server 2008 (Katmai). This new package will replace the Phase 1 packages.

 

Important:

This blog post does not describe the following deployment scenarios:

1)    Upgrading clients from SQL Server Compact version 2.0 to versions 3.0 and 3.1

2)    Upgrading from SQL Server 2000 to SQL Server 2005

3)    Mixed installations including SQL Server compact client versions 2.0, 3.0,  3.1  and SQL Server or publisher versions SQL Server 2000 (8.0), and SQL Server 2005 (9.0)

For more information about these deployment scenarios, please see SQL Server Compact 3.1 Connectivity Tools documentation.

 

 General Information for Deployment:

1)    You can always install SQL Server Compact client versions 3.0 and 3.5 side-by-side.

2)    The version of SQL Server IIS components must be equal to or lesser than the version of  SQL Server Publisher.

3)    You can install the SQL Server IIS components side-by-side . When installing side-by-side, the SQL Server IIS components should be in two different physical and virtual directories.

4)    SQL Server IIS components and SQL Server Compact IIS components reside in IIS server.

5)    You can install the SQL Server IIS components from the SQL Server Installation CD. In feature selection page, choose Shared Features, and then Client Tools to install the SQL Server IIS components.

 

The new rules that apply only to SQL Server Compact v3.x:

1)    The version of SQL Server Compact v3.x client components must be equal to or lesser than the version of SQL Server Compact v3.x IIS components. In other words, SQL Server Compact 3.0 client can connect to 3.0, 3.1, 3.5 IIS components. SQL Server Compact 3.1 client can connect to 3.1, 3.5 IIS components. SQL Server Compact 3.5 client can connect to 3.5 IIS components.

2)    SQL Server Compact 3.x IIS Components are not side-by-side installable.

1     Cross Version Compatibility

1.1       Cross Version Compatibility Support Matrix

 

The following table provides the cross version compatibility support for each different type of deployment scenario. The table includes:

·         “Dx”: An identifier for each different scenario.

·         “Existing Support”: A deployment that is already supported. For more information, see SQL Server Compact 3.1 Connectivity Tools.

·         “New Support”: A new supported deployment. This new deployment is explained in this blog post later.

·         “Pending Support”:  Specifies that SQL Server Compact 3.5 RTM does not support synchronization to SQL Server 2008 but this support will be enabled in SQL Server Compact 3.5 SP1.

 

Deployment Scenario No

SQL Server Compact

Client Version

SQL Server Publisher Version

Supported

(Yes/No)

Notes

D1

2.0

N/A

N/A

N/A

D2

3.0/3.1

SQL Server 2000 SP3a or later

Yes

Existing Support

D3

3.0/3.1

SQL Server 2005

Yes

Existing Support

D4

3.0/3.1

SQL Server 2008

Yes

New Support

D5

3.5 RTM or later

SQL Server 2000

No

Retired/Deprecated

D6

3.5 RTM or later

SQL Server 2005

Yes

New Support

D7

3.5 RTM

SQL Server 2008

No

Pending Support

D8

3.5 SP1 or later

SQL Server 2008

Yes

New Support

 

 

 

SQL Server  version--à

SQL Server 2000

SQL Server 2005

SQL Server 2008

SQL Server Compact Version

2.0

Old

Old

Not Supported

3.0/3.1

Old

Old

New

3.5 RTM

Not Supported

New

Not Supported

3.5 SP1 or later

Not Supported

New

New

 

1.2       Compatibility with SQL Server and IIS components

 

The following table summarizes the compatibility with SQL Server Compact, SQL Server and server IIS components. For more information, see Section 2 Deployment Scenarios.  This section requires thorough understanding of Merge Replication deployment.

 

SQL Server  Compact

Client Version

SQL Server Compact IIS Components Version

SQL Server

IIS Components Version

SQL Server

Publisher Version

2.0

N/A

N/A

N/A

3.0/3.1

3.1

8.0

8.0

3.0/3.1

3.1

9.0

9.0

3.0/3.1

3.5 SP1+

10.0

10.0

3.5 RTM+

N/A

N/A

8.0

3.5 RTM+

3.5 RTM+

9.0

9.0

3.5 RTM

N/A

N/A

10.0

3.5 SP1+

3.5 SP1+

10.0

10.0

 

 


 

2     Deployment Scenarios

This section describes how to upgrade the existing deployment and how to set up a new deployment. In addition, this section also describes how to setup a deployment of the mixed subscribers.

The mixed subscribers represent the SQL Server Compact clients that are of different versions. For example, a single deployment might have different versions of SQL Server Compact clients connecting to the same SQL Server Publisher through either same or different IIS servers. In this case, these SQL Server Compact clients are called as mixed subscribers. For more information on how to configure the IIS Server Environment, see http://msdn2.microsoft.com/en-us/library/ms172441(SQL.100).aspx.

 

Note: SQL Server Compact includes a connectivity wizard, "Configure Web Synchronization Wizard", which helps you configure a virtual directory in Internet Information Services (IIS).  Whenever a virtual directory URL is changed, you need to update the Virtual Directory Information to refer to a new URL. For more information about how to do this, see http://msdn2.microsoft.com/en-us/library/ms172450(SQL.100).aspx and http://msdn2.microsoft.com/en-us/library/ms171862(SQL.100).aspx. You also need to update the clients to point to this new URL. 

 

2.1       New Deployment

 

This section describes how to set up a new deployment for the new deployment scenarios introduced with SQL Server Compact 3.5 and/or SQL Server 2008. 

2.1.1  SQL Server Compact 3.5 RTM+ and SQL Server 2005 (D6)

 

1)    Install SQL Server 2005 on a Publisher computer

2)    Install SQL Server Compact  3.5 RTM+ on a client computer

3)    Install SQL Server 2005 IIS Components on IIS server

4)    Install SQL Server Compact 3.5 RTM+ Server Tools Package on IIS server

5)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.1.2  SQL Server Compact versions 3.0 or 3.1 and SQL Server 2008 (D4)

 

1)    Install SQL Server 2008 on a Publisher computer

2)    Install SQL Server Compact versions 3.0 and 3.1 on a client computer

3)    Install SQL Server 2008 IIS Components on IIS server

4)    Install SQL Server Compact  3.5 SP1+ Server Tools Package on IIS server

5)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.1.3  SQL Server Compact 3.5 SP1+ and SQL Server 2008 (D8)

 

1)    Install SQL Server 2008 on a Publisher computer

2)    Install SQL Server Compact 3.5 SP1+ on a client computer

3)    Install SQL Server 2008 IIS Components on IIS server

4)    Install SQL Server Compact 3.5 SP1+ Server Tools Package on IIS server

5)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.2       Upgrading an Existing Deployment (Full)

2.2.1  Server Upgrade Only:  from SQL Server 2000 or 2005 to SQL Server 2008

2.2.1.1   SQL Server Compact version 2.0 clients

 

This scenario is not supported.  In this case, clients must be upgraded along with the server.

2.2.1.2   SQL Server Compact versions 3.0 and 3.1 clients

 

1)    Upgrade SQL Server

2)    Retain SQL Server  versions 3.0 and 3.1 on a client computer

3)    Uninstall SQL Server Compact 3.1 Server Tools Package on IIS server

4)    Optionally uninstall SQL Server 2000/2005 IIS Components on IIS server

5)    Remove the SQL Server Compact 3.1 Server Agent ISAPI Virtual Directories

6)    Install SQL Server 2008 IIS Components on IIS server

7)    Install SQL Server Compact 3.5 SP1+ Server Tools Package on IIS server

8)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.2.2  Client Upgrade Only

2.2.2.1   Upgrade from SQL Server Compact 2.0 to SQL Server Compact 3.5

2.2.2.1.1       SQL Server 2000

 

This scenario is not supported. In this case, the server must be upgraded.

2.2.2.1.2       SQL Server 2005

 

1)    Upgrade SQL Server Compact clients

2)    Retain SQL Server on a Server computer

3)    Uninstall SQL Server Compact 3.1 Server Tools Package on IIS server (if any)

4)    Uninstall SQL Server Compact 2.0 Server Tools Package on IIS server

5)    Optionally uninstall SQL Server 2000 IIS Components on IIS server

6)    Install/Retain SQL Server 2005 IIS Components on IIS server

7)    Remove the SQL Server Compact 2.0 Server Agent ISAPI Virtual Directories

8)    Install SQL Server Compact 3.5 RTM+ Server Tools Package on IIS server

9)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.2.2.2   Upgrade from SQL Server Compact versions 3.0 and 3.1 to SQL Server Compact 3.5

2.2.2.2.1       SQL Server 2000

 

This scenario is not supported.  In this case, the server must be upgraded along with the clients.

2.2.2.2.2       SQL Server 2005

 

1)    Upgrade SQL Server Compact Clients

2)    Retain SQL Server on a Server computer

3)    Uninstall SQL Server Compact 3.1 Server Tools Package on IIS server

4)    Retain SQL Server 2005 IIS Components on IIS server

5)    Remove the SQL Server Compact 3.1 Server Agent ISAPI Virtual Directories

6)    Install SQL Server Compact 3.5 RTM+ Server Tools Package on IIS server

7)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.2.2.2.3       SQL Server 2008

 

This deployment scenario describes an incremental upgrade where servers are upgraded from SQL Server 2000 or 2005 to SQL Server 2008 as described in section 2.2.1.2 above  and then clients are getting upgraded. This deployment scenario might be useful in some cases where you might choose to upgrade the servers first and then the clients.

 

1)    Upgrade SQL Server Compact clients

2)    Retain SQL Server on a Server computer

3)    Uninstall SQL Server Compact 3.1 Server Tools Package on IIS server

4)    Retain SQL Server 2008 IIS Components on IIS server

5)    Remove the SQL Server Compact 3.1 Server Agent ISAPI Virtual Directories

6)    Install SQL Server Compact 3.5 SP+ Server Tools Package on IIS server

7)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.2.3  Client and Server Upgrade in Parallel

2.2.3.1   SQL Server Compact Clients: from 2.0 to 3.5, SQL Servers: from 2000 to 2005

 

1)    Upgrade SQL Server Compact clients

2)    Upgrade SQL Server

3)    Uninstall  SQL Server Compact 3.1 Server Tools Package on IIS server (if any)

4)    Uninstall SQL Server Compact 2.0 Server Tools Package on IIS server

5)    Uninstall SQL Server 2000 IIS Components on IIS server (optional)

6)    Remove the SQL Server Compact 2.0 Server Agent ISAPI Virtual Directories

7)    Install SQL Server 2005 IIS Components on IIS server

8)    Install SQL Server Compact 3.5 RTM+ Server Tools Package on IIS server

9)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.2.3.2   SQL Server Compact Clients: from 2.0 to 3.5, SQL Servers: from 2000 or 2005 to 2008

 

1)    Upgrade SQL Server Compact clients

2)    Upgrade SQL Server

3)    Uninstall  SQL Server Compact 3.1 Server Tools Package on IIS server (if any)

4)    Uninstall SQL Server Compact 2.0 Server Tools Package on IIS server

5)    Uninstall SQL Server 2000/2005 IIS Components on IIS server (optional)

6)    Remove the SQL Server Compact 2.0 Server Agent ISAPI Virtual Directories

7)    Install SQL Server 2008 IIS Components on IIS server

8)    Install SQL Server Compact 3.5 SP1+ Server Tools Package on IIS server

9)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

 

2.2.3.3   Server Compact Clients: from versions 3.0 or 3.1 to 3.5, SQL Server versions: from 2000 to 2005

 

1)    Upgrade SQL Server Compact clients

2)    Upgrade SQL Server

3)    Uninstall SQL Server Compact 3.1 Server Tools Package on IIS server

4)    Uninstall SQL Server 2000 IIS Components on IIS server (optional)

5)    Remove the SQL Server Compact versions 3.0 or 3.1 Server Agent ISAPI Virtual Directories

6)    Install SQL Server 2005 IIS Components on IIS server

7)    Install SQL Server Compact 3.5 RTM+ Server Tools Package on IIS server

8)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

 

2.2.3.4   Server Compact Clients: from versions 3.0 or 3.1 to 3.5, SQL Server versions: from 2000 or 2005 to 2008

 

 

1)    Upgrade SQL Server Compact clients

2)    Upgrade SQL Server

3)    Uninstall SQL Server Compact 3.1 Server Tools Package on IIS server

4)    Uninstall SQL Server 2000/2005 IIS Components on IIS server (optional)

5)    Remove the SQL Server Compact version 3.0/3.1 Server Agent ISAPI Virtual Directories

6)    Install SQL Server 2008 IIS Components on IIS server

7)    Install SQL Server Compact 3.5 SP1+ Server Tools Package on IIS server

8)    Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

2.3       Mixed Deployments

 

Mixed deployments might be due to choice or due to an incremental upgrade, etc.  This section describes how to setup IIS server in mixed deployment scenarios and in what cases multiple IIS servers are required. 

 

The scope of mixed subscribers in this section is limited to the SQL Server Compact subscribers of multiple versions. In other words, this section explains only mixed of versions of SQL Server Compact clients. This section does not explain the mixed deployment scenarios including different types of subscribers such as SQL Server Compact subscriber and SQL Express subscribers together.

 

 

 

2.3.1.1   SQL Server Compact Client versions:  2.0, 3.5; SQL Server versions: Any

 

This deployment scenario describes a deployment, which might include SQL Server Compact 2.0 or 3.5 subscribers and any version of SQL Server publishers.

 

SQL Server Compact 2.0 and 3.5 cannot be subscribers to the same publisher even with different publications.  This combination is not supported.  Either SQL Server Compact 2.0 subscribers must be upgraded to SQL Server Compact versions 3.0 or 3.1 or 3.5, or there must be different publishers for different SQL Server Compact clients in the deployments. 

 

If there are different publishers; you should make sure to have different IIS servers configured.  

For more information about how to setup two completely disjoint parallel deployments, please see New Deployment. 

 

2.3.1.2   SQL Server Compact Client versions: 2.0, 3.0 or 3.1; SQL Server versions: Any

 

SQL Server Compact 2.0 cannot be a subscriber to SQL Server 2008; therefore this deployment cannot be a valid mixed deployment. For more information about this kind of mixed deployment, see SQL Server Compact 3.1 Connectivity Tools.

2.3.1.3   SQL Server Compact Client versions: Any; SQL Server versions: 2000, 2008

This deployment scenario describes a deployment, which might include SQL Server Compact 2.0 or 3.0 or 3.1 or 3.5 subscribers and SQL Server 2000 or 2008 publishers.

 

Important: SQL Server Compact 3.5 cannot be a subscriber to SQL Server 2000 publisher.

 

 

 

If there are different publishers and different sets of subscribers, you should make sure to have different IIS servers configured.  In this case, you might need separate set of deployments, such as:

 

·         Subscriber Set1 merge replicates through IIS Server1 with SQL Server1

·         Subscriber Set2 merge replicates through IIS Server2 with SQL Server2

 

Note that this deployment scenario is not a mixed deployment but it is much more similar to the two completely disjoint parallel setups which can be configured as specified in section New Deployment above. 

 

 

 

2.3.1.4   SQL Server Compact client versions: 3.0, 3.1, 3.5; SQL Server versions: 2005, 2008

 

In this deployment scenario, one IIS server can serve all the SQL Server Compact subscribers with or without multiple publishers in the deployment.  Note that SQL Server Compact 3.5 IIS Components can connect to any SQL Server Compact version 3.x client component. Therefore, a single SQL Server Compact 3.5 Server Agent URL can be used by all SQL Server Compact version 3.x Clients. 

 

Note that  when using SQL Server 2008 as a Publisher, the SQL Server Compact 3.5 IIS components must be of version 3.5 SP1 or greater.

 

To setup this kind of mixed deployment, you should follow these steps:

 

1)    Upgrade clients and servers (if necessary)

2)    Uninstall SQL Server Compact 3.1 Server Tools Package on IIS server (if any)

3)    Uninstall  SQL Server Compact 2.0 Server Tools Package on IIS server (if any)

4)    Uninstall SQL Server 2000 IIS Components on IIS server (optional)

5)    Remove the SQL Server Compact 2.0 Server Agent ISAPI Virtual Directories

6)    Remove the SQL Server Compact versions 3.0/3.1 Server Agent ISAPI Virtual Directories

7)    Install/Retain SQL Server 2005 IIS Components on IIS server(if any publisher is SQL Server 2005)

8)    Install/Retain SQL Server 2008 IIS Components on IIS server(if any publisher is SQL Server 2008)

9)    Install SQL Server Compact 3.5 RTM+ Server Tools Package on IIS server(if all publishers are SQL Server 2005)

10) Install SQL Server Compact 3.5 SP1+ Server Tools Package on IIS server(if any publisher is SQL Server 2008)

11) Configure Web Synchronization with SQL Server Compact 3.5 Server Agent ISAPI

 

 

 

You might choose to configure multiple IIS servers for different set of publisher and subscriber combinations. If you do that, this case cannot be a mixed deployment anymore. It would be much similar to two completely disjoint parallel setups which can be configured as specified in section New Deployment above.

 

 

Thanks