How to create a Cloudhouse Compatibility Container for SQL Server 2000

Save to PDF

Applies to: Cloudhouse Containers

25/06/2019 Najath Hussain   ID: 394187

Background

Microsoft SQL Server 2000 is not compatible with newer, Microsoft server operating system such as Windows Server 2016/2019. 

The purpose of this article is to explain how to successfully create a Cloudhouse Compatibility Container™ for SQL 2000 on Windows 2003 so that it can be deployed successfully to newer operating systems. 

Step-by-step process

Follow How to create a Cloudhouse Compatibility Container with the Auto Packager to package SQL 2000 using the Cloudhouse Auto Packager, paying specific attention to the stages below.

Note

Stages 1 and 2 are to be carried out during the Auto Packager process. The remaining items need to be carried out once the Auto Packager process is complete and the Container has been created.

Stage 1: Include the legacy SQL Server 2000 dependent file (sqlunirl.dll) in the Container

SQL 2000 relies on the SQL dynamic link library (DLL) that is already installed by default on Windows 2003. It is therefore not captured by the Auto Packager's snapshotting process so needs to be added at the Run App phase of packaging.

To add the DLL:

  1. On the Run Installed Applications page of the Auto Packager, click the Enterprise Manager shortcut.

On the Run Installed Applications page of the Auto Packager, click the Enterprise Manager shortcut.

SQL Server Enterprise Manager will launch.

SQL Enterprise Manager will launch.

  1. Close SQL Server Enterprise Manager and continue with the Auto Packager workflow.
  2. On the Captured Files page, in the Files requested at runtime pane browse to C:\WINDOWS\System32 then right-click sqlunirl.dll and select Include in package.

On the Captured Files page, in the Files requested at runtime pane browse to C:\WINDOWS\System32 then right-click sqlunirl.dll and select the Include in package.

  1. Click Next

Stage 2: Check Services

The SQL 2000 installation process installs several services on the target computer. By default, these services are not started post-installation (except for MSSearch). They are only started when the SQL Service Manager shortcut (installed by the application) is loaded and used to start the service(s).

Important

Ensure the following services are not running before completing the packaging process (i.e. the Complete Capture phase) and any other SQL applications or processes are closed:

  • MSSQLSERVER
  • MSSQLServerADHelper
  • SQLSERVERAGENT
  • MSSEARCH

Closing all processes before creating the Container is standard best practice. Failing to do this will most likely result in packaging errors caused by files that are in-use and locked.

Stage 3: Update the Microsoft Management Console

When SQL 2000 is packaged on Windows 2003, the Windows 2003 configuration of the Microsoft Management Console (MMC) is captured. To ensure we utilise the MMC capabilities of the newer operating system, make sure the following configurations are updated in both the Shortcuts.xml and Programs.xml files when the Container is created. 

Shortcuts.xml

Locate the Enterprise Manager and Configure SQL XML Support in IIS shortcuts and ensure the IconLocation setting is configured as follows:

Example Enterprise Manager shortcut:

<Shortcut>
    <Path>%Programs%\Microsoft SQL Server\Enterprise Manager.lnk</Path>
    <Target>%DefaultDir%\Cloudhouse.Container.Run.exe</Target>
    <Args>/RunConditions run8</Args>
    <Description />
    <IconLocation>C:\WINDOWS\system32\mmc.exe</IconLocation>
    <IconIndex>0</IconIndex>
    <WorkingDir />
</Shortcut>

Example Configure SQL XML Support in IIS shortcut:

<Shortcut>
    <Path>%Programs%\Microsoft SQL Server\Configure SQL XML Support in IIS.lnk</Path>
    <Target>%DefaultDir%\Cloudhouse.Container.Run.exe</Target>
    <Args>/RunConditions run9</Args>
    <Description />
    <IconLocation>C:\WINDOWS\system32\mmc.exe</IconLocation>
    <IconIndex>0</IconIndex>
    <WorkingDir />
</Shortcut>

Programs.xml

Locate the corresponding run conditions for the Enterprise Manager and Configure SQL XML Support in IIS shortcuts within the Programs.xml file. Ensure they are configured as follows, which allows the Container to load the local, newer version of the MMC:

Note

The -32 switch is used to force the 32-bit MMC to run when the MMC is run on a 64-bit target operating system.

Example Enterprise Manager programs run condition:

<Program>
    <RunCondition>run8</RunCondition>
    <ProcessWindowStyle>Normal</ProcessWindowStyle>
    <Path>%DefaultDir%\AppAcceleratorV.exe</Path>
    <Args>/f %SystemX86%\mmc.exe -32 /s "%DefaultDir%\ProgData\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC"</Args>
    <WorkingDirectory />
    <WaitCondition TimeoutInSeconds="0">Exit</WaitCondition>
</Program>

Example Configure SQL XML Support in IIS programs run condition:

<Program>
    <RunCondition>run9</RunCondition>
    <ProcessWindowStyle>Normal</ProcessWindowStyle>
    <Path>%DefaultDir%\AppAcceleratorV.exe</Path>
    <Args>/f %SystemX86%\mmc.exe -32 /s "%DefaultDir%\ProgData\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL IIS Admin.MSC"</Args>
    <WorkingDirectory />
    <WaitCondition TimeoutInSeconds="0">Exit</WaitCondition>
</Program>

Recommendation

To provide a better user experience, we recommend natively installing and using the 2012 version of SQL Server Management Studio (SSMS) to manage SQL 2000 instead of the Enterprise Manager shortcut that is installed by SQL 2000.

SSMS can be downloaded as part of SQL Server 2012 Express by clicking Download and then selecting the relevant version of SSMS (\x86\SQLManagementStudio_x86_ENU.exe or ENU\x64\SQLManagementStudio_x64_ENU.exe).

Stage 4: Update Services

On legacy operating systems such as Windows 2003, SQL 2000 installs the MSSEARCH service. Newer operating systems such as Windows 2016/2019, have built-in, upgraded search capabilities that SQL 2000 can use.

To ensure we use the newer features in the target operating system, remove the following service in the Services.xml file:

<Service>
    <Name>MSSEARCH</Name>
    <ImagePath>%DefaultDir%\Cloudhouse.Container.Run.exe /RunConditions run8</ImagePath>
    <Description>Creates full-text indexes on content and properties of structured and semi-structured data to allow fast linguistic searches on this data</Description>
    <DisplayName>Microsoft Search</DisplayName>
    <Startup>Automatic</Startup>
    <StartOnDeploy>false</StartOnDeploy>
    <DependOnService>
      <Name>RPCSS</Name>
      <Name>NTLMSSP</Name>
    </DependOnService>
    <LogOnAs>
      <Username>LocalSystem</Username>
    </LogOnAs>
</Service>

The resultant Services.xml should only contain the three services as shown below:

<Services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <Service>
    <Name>MSSQLSERVER</Name>
    <ImagePath>%DefaultDir%\Cloudhouse.Container.Run.exe /RunConditions run9</ImagePath>
    <DisplayName>MSSQLSERVER</DisplayName>
    <Startup>Automatic</Startup>
    <StartOnDeploy>false</StartOnDeploy>
    <LogOnAs>
      <Username>LocalSystem</Username>
    </LogOnAs>
  </Service>
  <Service>
    <Name>MSSQLServerADHelper</Name>
    <ImagePath>%DefaultDir%\Cloudhouse.Container.Run.exe /RunConditions run10</ImagePath>
    <DisplayName>MSSQLServerADHelper</DisplayName>
    <Startup>Manual</Startup>
    <StartOnDeploy>false</StartOnDeploy>
    <LogOnAs>
      <Username>LocalSystem</Username>
    </LogOnAs>
  </Service>
  <Service>
    <Name>SQLSERVERAGENT</Name>
    <ImagePath>%DefaultDir%\Cloudhouse.Container.Run.exe /RunConditions run11</ImagePath>
    <DisplayName>SQLSERVERAGENT</DisplayName>
    <Startup>Manual</Startup>
    <StartOnDeploy>false</StartOnDeploy>
    <DependOnService>
      <Name>MSSQLSERVER</Name>
    </DependOnService>
    <LogOnAs>
      <Username>LocalSystem</Username>
    </LogOnAs>
  </Service>
</Services>

Stage 5: Update the Redirection Engine 

Note

Stage 5 only applies when using Auto Packager versions older than 4.6.1906.24369

64-bit operating systems include 64-bit components that sometimes don't translate well when working with certain legacy 32-bit applications. When the SQL 2000 Container is created on a 32-bit instance of Windows 2003, it utilises our 32-bit redirection engine automatically.

However, for all aspects of SQL 2000 to successfully operate with all required elements on a 64-bit operating system, we need to update the Container to include our 64-bit redirection engine. 

To do this, navigate to the package folder structure on the packaging computer and copy across the five files from the location shown below and overwrite the same, existing files in the Container:

To do this, navigate to the package folder structure on the packaging computer and copy across the five files from the location shown below and overwrite the same, existing files in the Container:


Source:
Was this article helpful?

Table of Contents

    Can't find what you're looking for?

    Contact Support