MSSQL Server Logon Connection Failed
Problem:
The following error appears when using TimeForce with Windows NT 4.0
Server Edition:
MSSQL Server logon. Connection
failed. SQL State 42000 SQL Server error 552
[Microsoft][ODBC SQL Server
Driver][SQL Server]CryptoAPI function 'CryptAcquireContext' failed.
Error 0x8009001d: Provider
DLL failed to initialize correctly
Solution:
The solution for this issue is taken from Microsoft Knowledge Base Article
321459. To
access this article directly, go to the following web address:
http://support.microsoft.com/default.aspx?scid=kb;en-us;321459
The CryptoAPI Function Generates an Error When You Try to Connect to
an Instance of SQL Server 2000
You can receive this error message in various situations; however, this
article only applies to situations in which you receive the error message
and all of the following conditions
are true:
The
client application is trying to connect to an instance of Microsoft SQL
Server 2000 Personal Edition or Microsoft SQL Server 2000 Desktop Engine.
The
computer that is running SQL Server Personal Edition or Desktop Engine
has at least 512 MB of physical RAM.
The
computer that is running SQL Server Personal Edition or Desktop Engine
is running one of the following operating systems:
Microsoft
Windows NT 4.0 Server
Microsoft
Windows NT 4.0 Enterprise
Microsoft
Windows NT 4.0 Workstation
You
are using SQL Server Authentication to connect to the instance of SQL
Server Personal Edition or Desktop Engine.
Cause:
SQL Server uses the Windows NT CryptoAPI
functions for authenticating SQL Server (Standard Security) logins that
are trying to connect to an instance of SQL Server. In this case, the
CryptoAPI .dll file does not load
because of a problem with the Ole32.dll file, which dynamically rebases.
The .dll file rebases because SQL Server was already using its default
load address, which causes a handled access violation and the error that
is returned to the client computer.
Workaround:
To work around this problem, have SQL Server or Desktop Engine load
Ole32.dll during the server startup process. To do this, configure the
sp_MSgetversion stored procedure
as a startup stored procedure:
On
the computer that is experiencing the problem, use the osql
utility to try to connect to an instance of SQL Server or Desktop Engine
Windows NT Authentication. Make sure to use Windows NT Authentication
while you are logged on with a Windows NT account that is a member of
the SQL Server sysadmin role.
If you can do this successfully, go to step 7.
Use
the following code to modify the Boot.ini file. Use the /maxmem=96
option to limit the physical memory that Windows NT 4.0 registers to 96
MB:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows
NT" /maxmem=96
Restart
the operating system.
In
Task Manager, verify that the physical memory that Windows NT registers
is 96 MB. If not, make sure that you performed step 2 correctly.
Start
Desktop Engine.
Try
to connect to SQL Server Desktop Engine by using the osql
utility. Use the sysadmin login
and the appropriate password. If you cannot connect, note the error message
that you receive, and then open a support incident with Microsoft Product
Services (PSS).
If
you can connect to the instance of SQL Server or Desktop Engine by using
the osql utility, run the following
query to set up the startup stored procedure:
SP_PROCOPTION 'sp_MSgetversion', 'STARTUP', 'TRUE'
Restart
the instance of SQL Server or Desktop Engine.
View
the most recent Errorlog file and verify that the sp_MSgetversion
is being called during the SQL Server startup process:
2002-04-30 13:09:28.00 spid3 Launched
startup procedure 'sp_MSgetversion'
If you do not see this in the Errorlog file, repeat step 6 through
step 8.
Connect
to the instance of SQL Server or Desktop Engine by using the sa account.
If you cannot connect, note the error message that you receive, and then
open a support incident with Microsoft Product Services (PSS).
If
you performed step 2 to reduce the memory that the operating system registers,
modify the Boot.ini file, but remove the /maxmem=96
parameter that you originally added in step 2. Restart the computer, and
then verify that Windows NT 4.0 can now see all the physical memory that
is on the computer.
More
Information:
To view a complete list of Microsoft Product Support Services phone
numbers and information about support costs, visit the following Microsoft
Web site:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
|