Showing posts with label migrating. Show all posts
Showing posts with label migrating. Show all posts

Saturday, February 25, 2012

64-Bit Connectivity Issues

We are migrating from a botched 64-bit SQL Server setup to a new 64-bit SQL Server Setup (One instance versus 2). Things that worked on the first server, don't work on the new. My speculation is that the AS400 drivers installation is botched, but asking for feedback.

Am running a scheduled job that simply executes an SSIS package. There is a package configuration for the connection strings to AS400 and SQL Server. The package runs fine when you run it from DTEXECUI (obviously adding configuration file to run). The job is setup exactly the same as on the original server but gets the following errors:

Side question: Why does the job history errors conflict with the SQL Server logging from the package? Very frustrating.

Job History Error (I found these to be very inaccurate in the past):

Executed as user: bfusa\mfgsql. ...rsion 9.00.3042.00 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 9:45:06 AM Error: 2007-04-11 09:45:06.76 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTSStick out tongueassword" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available. End Error Error: 2007-04-11 09:45:06.78 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTSStick out tongueassword" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available. End Error Progress: 2007-04-11 09:45:16.34 Source: DFT_PESGRVSL Validating: 0% complete En... The package execution fa... The step failed.

SQL Server Package Logging:

System.InvalidOperationException: The 'IBMDA400.DataSource.1' provider is not registered on the local machine.

BTW, I tried using a cmdexec step to force it run in 32-bit mode, and still received errors. If it is in fact a driver error, why does it run fine in DTEXECUI? I know that always runs in 32-bit mode, but I tried to force a 32-bit mode also.

This might not be the answer but for that error "The system cannot find the file specified." on 64-bit I've opened the package, recompiled all my scripts, saved and ran again and it fixed it. This seems to happen less often in SP2 (or at least in SP2 you will get a warning in 32-bit mode that it is missing a binary for a script).

Based on the rest of your error message its probably not the correct answer but it can't hurt Smile

|||

Two issues here.

1. 32 bit vs. 64 bit package execution

The job history pasted in the message shows that the job is /was running under 64 bit. But even when that is fixed to run under 32 bit (as you apparently did in a cmdexec step) , the execution would still not initiate because of the Package Protection level property setting, which is the second issue. As to the 32 vs 64 bit package execution via dtexec, here's what is displayed when running the two versions of dtexec.exe on the x64 platform (and you can see that the job history shows a 64 bit execution attempt).

"%ProgramFiles(x86)%\Microsoft SQL Server\90\DTS\Binn\dtexec.exe"
Microsoft (R) SQL Server Execute Package Utility
Version 9.00.3042.00 for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.

At least one of the DTS, SQL, or File options must be specified.

"%ProgramFiles%\Microsoft SQL Server\90\DTS\Binn\dtexec.exe"
Microsoft (R) SQL Server Execute Package Utility
Version 9.00.3042.00 for 64-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.

At least one of the DTS, SQL, or File options must be specified.

That history shows it is running under 64 bit.

2. Package protection level

Even though you modified it to run in 32 bit mode, there are still errors. These have nothing to do with that platform, but rather, the PackageProtectionLevel. This issue is discussed ( with resolutions) in the following article: http://support.microsoft.com/kb/918760

|||A reinstallation of the DB2 drivers was done and this fixed the issue.

64-Bit Connectivity Issues

We are migrating from a botched 64-bit SQL Server setup to a new 64-bit SQL Server Setup (One instance versus 2). Things that worked on the first server, don't work on the new. My speculation is that the AS400 drivers installation is botched, but asking for feedback.

Am running a scheduled job that simply executes an SSIS package. There is a package configuration for the connection strings to AS400 and SQL Server. The package runs fine when you run it from DTEXECUI (obviously adding configuration file to run). The job is setup exactly the same as on the original server but gets the following errors:

Side question: Why does the job history errors conflict with the SQL Server logging from the package? Very frustrating.

Job History Error (I found these to be very inaccurate in the past):

Executed as user: bfusa\mfgsql. ...rsion 9.00.3042.00 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 9:45:06 AM Error: 2007-04-11 09:45:06.76 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTSStick out tongueassword" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available. End Error Error: 2007-04-11 09:45:06.78 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTSStick out tongueassword" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available. End Error Progress: 2007-04-11 09:45:16.34 Source: DFT_PESGRVSL Validating: 0% complete En... The package execution fa... The step failed.

SQL Server Package Logging:

System.InvalidOperationException: The 'IBMDA400.DataSource.1' provider is not registered on the local machine.

BTW, I tried using a cmdexec step to force it run in 32-bit mode, and still received errors. If it is in fact a driver error, why does it run fine in DTEXECUI? I know that always runs in 32-bit mode, but I tried to force a 32-bit mode also.

This might not be the answer but for that error "The system cannot find the file specified." on 64-bit I've opened the package, recompiled all my scripts, saved and ran again and it fixed it. This seems to happen less often in SP2 (or at least in SP2 you will get a warning in 32-bit mode that it is missing a binary for a script).

Based on the rest of your error message its probably not the correct answer but it can't hurt Smile

|||

Two issues here.

1. 32 bit vs. 64 bit package execution

The job history pasted in the message shows that the job is /was running under 64 bit. But even when that is fixed to run under 32 bit (as you apparently did in a cmdexec step) , the execution would still not initiate because of the Package Protection level property setting, which is the second issue. As to the 32 vs 64 bit package execution via dtexec, here's what is displayed when running the two versions of dtexec.exe on the x64 platform (and you can see that the job history shows a 64 bit execution attempt).

"%ProgramFiles(x86)%\Microsoft SQL Server\90\DTS\Binn\dtexec.exe"
Microsoft (R) SQL Server Execute Package Utility
Version 9.00.3042.00 for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.

At least one of the DTS, SQL, or File options must be specified.

"%ProgramFiles%\Microsoft SQL Server\90\DTS\Binn\dtexec.exe"
Microsoft (R) SQL Server Execute Package Utility
Version 9.00.3042.00 for 64-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.

At least one of the DTS, SQL, or File options must be specified.

That history shows it is running under 64 bit.

2. Package protection level

Even though you modified it to run in 32 bit mode, there are still errors. These have nothing to do with that platform, but rather, the PackageProtectionLevel. This issue is discussed ( with resolutions) in the following article: http://support.microsoft.com/kb/918760

|||A reinstallation of the DB2 drivers was done and this fixed the issue.

64 Bit SQL Server try to access 32-Bit

Hi All,

I have a scenario where today we are migrating the existing code to new production server which is 64 Bit server.

The SSIS packages are put on new server and we are trying to run.

I tried to run a simple select query to fetch data from a 32bit remote server from cmd prompt usings a .sql file and it gives me error.

But this is the known issue of

‘a 64-bit SQL server trying to communicate to a 32-bit sql server’ and the error message is

The error message is similar to the following:

The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.
Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "<LinkedServerName>". The provider supports the interface, but returns a failure code when it is used

I saw the help for this in support.microsoft and it is suggested the resolution is

‘To resolve this problem, install SQL Server 2000 SP3 or SQL Server 2000 SP4 on the 32-bit SQL Server 2000 server. Then, manually run the Instcat.sql script that is included with SQL Server 2000 SP3 or SP4 on the 32-bit SQL Server 2000 server.’

I cannot do this as the remote server which am trying to access is not under my control and other issues.

Please suggest me what is the work around and what modifications do I need to do for my SSIS packages?

Help much appreciated.

Thanks and Regards

Sai

Hello,

I’ve just had the same problem. I was trying to access a SQL2K from a SQL2K5 64bits server. Although I had it a as a linked server, I had the same error.

Reading information, I found the patch to solve this problem here

http://support.microsoft.com/kb/906954

But, maybe if you don’t have the SQL2K server under your control, you won’t be able to execute the patch.

There is another way to make this, using OPENQUERY

select * from openquery([RemoteServer],'select * from DB.dbo.table')

And you won’t have the error. I tried it before install the patch and it worked for me.

Krgrds

64 Bit SQL Server try to access 32-Bit

Hi All,

I have a scenario where today we are migrating the existing code to new production server which is 64 Bit server.

The SSIS packages are put on new server and we are trying to run.

I tried to run a simple select query to fetch data from a 32bit remote server from cmd prompt usings a .sql file and it gives me error.

But this is the known issue of

‘a 64-bit SQL server trying to communicate to a 32-bit sql server’ and the error message is

The error message is similar to the following:

The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.
Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "<LinkedServerName>". The provider supports the interface, but returns a failure code when it is used

I saw the help for this in support.microsoft and it is suggested the resolution is

‘To resolve this problem, install SQL Server 2000 SP3 or SQL Server 2000 SP4 on the 32-bit SQL Server 2000 server. Then, manually run the Instcat.sql script that is included with SQL Server 2000 SP3 or SP4 on the 32-bit SQL Server 2000 server.’

I cannot do this as the remote server which am trying to access is not under my control and other issues.

Please suggest me what is the work around and what modifications do I need to do for my SSIS packages?

Help much appreciated.

Thanks and Regards

Sai

Sai,

You will need to contact the system administrator for the remote server and convince them to run the instcat.sql. I had exactly the same issue at our site, and this resolved the issue. Assuming the remote system is running SQL Server 2000 with at least SP3, there is no installation required, as the instcat.sql script will already exist on the machine. In fact, it isn't even necessary to get a console login to the box as the KB article suggests; the script can be run via Query Analyzer from a remote location. You will find the script in the <installation folder>\MSSQL\Install directory.

The script updates some of the Microsoft-delivered system stored procedures to the SP3 or SP4 version. It should not otherwise impact the normal functioning of any user databases or user stored procedures; at least, it caused no ill effects at our site, and it DID solve the problem. Perhaps you can use this information to help convince the other sysadmin of the benefit of executing the script.

Best regards,

Matt