Version number error executing package with xp_cmdshell - sql-server

I have an SSIS package on Server2 (2008, 64 bit)and I am trying to call it from server1(2005, 32 bit) using xp_cmdshell using command,
exec xp_cmdshell 'dtexec /FILE "\\Wdvwd99a0234\PWOSSIS\RTS_SSIS\RTS_ETL.BE_2_DUNSMasterPackage.dtsx"'
It keeps giving error:
Microsoft (R) SQL Server Execute Package Utility Version 9.00.5000.00
for 32-bit Copyright (C) Microsoft Corp 1984-2005. All rights
reserved. NULL Started: 1:00:42 PM Error: 2012-11-29 13:00:42.83
Code: 0xC001700A Source: Description: The version number in
the package is not valid. The version number cannot be greater than
current version number. End Error Error: 2012-11-29 13:00:42.83
Code: 0xC0016020 Source: Description: Package migration from
version 3 to version 2 failed with error 0xC001700A "The version
number in the package is not valid. The version number cannot be
greater than current version number.". End Error Error: 2012-11-29
13:00:42.83 Code: 0xC0010018 Source: Description: Error
loading value "3" from node
"DTS:Property". End Error Could not load package
"\Wdvwd99a0234\PWOSSIS\RTS_SSIS\RTS_ETL.BE_2_DUNSMasterPackage.dtsx"
because of error 0xC0010014. Description: The package failed to load
due to error 0xC0010014 "One or more error occurred. There should be
more specific errors preceding this one that explains the details of
the errors. This message is used as a return value from functions that
encoun ter errors.". This occurs when CPackage::LoadFromXML fails.
Source: Started: 1:00:42 PM Finished: 1:00:42 PM Elapsed: 0.078
seconds NULL

As others have commented, the version of dtexec.exe needs to match the version of the target package. Your options are
Install the 2008 Integration Services components on Server1. You would need to provide an explicit path to the dtexec to ensure xp_cmdshell runs the 2008 version.
Run the package on the remote (Server2) machine. Lowest barrier of entry would be to create a SQL Agent job on Server2, unscheduled, that simply runs the package RTS_ETL.BE_2_DUNSMasterPackage.dtsx You would then start the job in place of the current xp_cmdshell. EXECUTE msdb.dbo.sp_start_job 'RTS_ETL.BE_2_DUNSMasterPackage' Two caveats to this approach
You can have as many concurrent dtexec calls running as your machine can support. A specific SQL Agent job cannot be running more than once.
If you were providing dynamic run-time options, that also isn't going to work with an agent job.

A 2008 package cannot be ran with the 2005 package utility.

Related

Run ssis package in agent job while both are on separate machines

I am trying to run ssis package through agent jobs. The packages and the sql server are on different machines.
When the agent job tries to run ssis package step the job fails with following error:
Executed as user: Domain\username. Microsoft (R) SQL
Server Execute Package Utility Version 13.0.5026.0 for 64-bit
Copyright (C) 2016 Microsoft. All rights reserved. Started:
1:42:42 AM Error: 2020-01-23 01:42:42.49 Code: 0xC0011007
Source: {07BB41B6-D0DF-4349-B9AE-498397D214D7} Description:
Unable to load the package as XML because of package does not have a
valid XML format. A specific XML parser error will be posted. End
Error Error: 2020-01-23 01:42:42.49 Code: 0xC0011002 Source:
{07BB41B6-D0DF-4349-B9AE-498397D214D7} Description: Failed to
open package file
"D:\ssis_packages\package.dtsx"
due to error 0x80070003 "The system cannot find the path specified.".
This occurs when loading a package and the file cannot be opened or
loaded correctly into the XML document. This can be the result of
specifying an incorrect file name when calling LoadPackage or the
specified XML file has an incorrect format. End Error Could not load
package
"D:\ssis_packages\package.dtsx"
because of error 0xC0011002. Description: Failed to open package file
"D:\ssis_packages\CoreLogic\CoreLogicSSIS\Real_Estate_Monthly.dtsx"
due to error 0x80070003 "The system cannot find the path specified.".
This occurs when loading a package and the file cannot be opened or
loaded correctly into the XML document. This can be the result of
specifying an incorrect file name when calling LoadPackage or the
specified XML file has an incorrect format. Source:
{07BB41B6-D0DF-4349-B9AE-498397D214D7} Started: 1:42:42 AM
Finished: 1:42:42 AM Elapsed: 0.047 seconds. The package could not
be found. The step failed.
I need some suggestion as what is the best way to run ssis package when sql server and packages are on different machines.
There can be below defined reasons and solutions.
1. The error says it cannot find the package. Just double-check if this is the correct path for your package:
D:\ssis_packages\CoreLogic\CoreLogicSSIS\Real_Estate_Monthly.dtsx
2. It looks like a local path, so if indeed your package is on the D: Drive of another server make sure to add the server name in front of the path:
//server-name/ d$/
ssis_packages\CoreLogic\CoreLogicSSIS\Real_Estate_Monthly.dtsx
3. Grant the account running your SQL Agent job (I am guessing it's the SQL Agent account, but you should double-check that) access rights to the folder where your SSIS package is stored.
4. If the above did not solve the issue, also check if the SSIS package and your SSIS installation on the server where you are running it are the same. Running a 32bit SSIS package on a 64-bit system/SSIS will result in a similar error message.

Created a SQL agent Job to run a package which uses FTP connection

I created a SQL agent Job to run a package which uses FTP connection. The package contains a script task to get run time variable values and create a new output file. package runs locally successfully, When I run through job it throws below error.
CORP\U4PWMCA1. Microsoft (R) SQL Server Execute Package Utility Version 10.50.6560.0 for 32-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Started: 3:06:26 PM Error: 2019-04-25 15:06:27.79 Code: 0x00000008 Source: SCR_Set_Global_Variables Description: The script returned a failure result. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 3:06:26 PM Finished: 3:06:27 PM Elapsed: 1.078 seconds. The package execution failed. The step failed.
Can you please suggest what is the issue?

Error Running SSIS Package from Command Line

Ultimately, I'm trying to schedule SSIS packages to run on a regular basis using Task Scheduler in an Azure VM (Windows Server 2016 Datacenter). From the command line on my development machine (Windows 10), I'm able to run...
dtexec.exe /Project "pathToMy.ispac" /Package "pathToMy.dtsx"
...and it works as expected. However, when I try to do the same from the Azure VM I get the following error:
Microsoft (R) SQL Server Execute Package Utility Version 11.0.6020.0
for 32-bit Copyright (C) Microsoft Corporation. All rights reserved.
Started: 2:17:46 PM Could not load package
"MyPackage.dtsx" because of error 0x80131500.
Description: The package failed to load due to error 0xC0011008 "Error
loading from XML. No further detailed error information can be
specified for this problem because no Events object was passed where
detailed error information can be stored.". This occurs when
CPackage::LoadFromXML fails. Source: MyPackage
Started: 2:17:46 PM Finished: 2:17:47 PM Elapsed: 0.547 seconds
On both machines, I have the same version of SQL Server 2016 Developer (w/ SSIS) and Visual Studio 2015 installed. Also, I'm able to run the package fine on the VM from within Visual Studio. It's only from dtexec.exe that I have issues.
I've tried every solution on here from other posts getting similar errors and none have helped. Any ideas?
Thanks,
Ian
Thanks to #Nick.McDermaid, the answer to this riddle has been found. By running dtexec.exe (with no parameters) on the dev machine and on the VM, I was able to see that the VM version was v11 and the dev version was v13 which explained why I was getting the error and why one worked and another didn't.
I then did a File Explorer search on the VM for dtexec.exe copies and found several. Apparently, the environment path was set to find the older version. I probably could have found the variable causing this problem and changed it. However, out of concern about breaking something else and wanting a quick solution, I chose to execute using the full path to the correct version. For v13, this ended up being...
"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtexec.exe"
So, for my schedule task I set the following properties for my "Start a program" action.
Program/Script: "C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtexec.exe"
Add Arguments: /Project "bin/Development/myProject.ispac" /Package "myPackage.dtsx"
Start in: c:{path to my .dtsx file}

SSIS error could not find "sgen.exe" in Window Server

I'm Working With SQL Server and SSIS
In my package has Script task to call Web Service
Package are run correctly in my laptop
But when I Deploy package on Server (Visual Studio not installed)
I get this error when run
Date 9/26/2016 8:16:22 PM
Log Job History (TestCallws)
Step ID 1
Server CRM2016
Job Name TestCallws
Step Name test
Duration 00:00:02
Sql Severity 0
Sql Message ID 0
Operator Emailed
Operator Net sent
Operator Paged
Retries Attempted 0
Message
Executed as user: NT Service\SQLSERVERAGENT. Microsoft (R) SQL Server Execute Package Utility
Version 12.0.2000.8 for 32-bit Copyright (C) Microsoft Corporation. All rights reserved.
Started: 8:16:22 PM
Error: 2016-09-26 20:16:24.45
Code: 0x00000005
Source: Script Task Script Task
Description: Failed to compiled scripts contained in the package.
Open the package in SSIS Designer and resolve the compilation errors.
End Error
Error: 2016-09-26 20:16:24.45
Code: 0x00000005
Source: Script Task Script Task
Description: MSB3086 - Task could not find "sgen.exe" using the SdkToolsPath "" or the registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86".
Make sure the SdkToolsPath is set and the tool exists in the correct processor specific location under the SdkToolsPath and that the Microsoft Windows SDK is installed, C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets, 2769, 5
End Error
Error: 2016-09-26 20:16:24.47
Code: 0x00000005
Source: Script Task Script Task
Description: The binary code for the script is not found. Please open the script in the designer by clicking Edit Script button and make sure it builds successfully.
End Error
Error: 2016-09-26 20:16:24.50
Code: 0x00000004
Source: Script Task
Description: The binary code for the script is not found. Please open the script in the designer by clicking Edit Script button and make sure it builds successfully.
End Error
Error: 2016-09-26 20:16:24.50
Code: 0xC0024107
Source: Script Task
Description: There were errors during task validation.
End Error DTExec: The package execution returned DTSER_FAILURE (1).
Started: 8:16:22 PM
Finished: 8:16:24 PM Elapsed: 1.703 seconds.
The package execution failed. The step failed.
Any one can help me to solve this problem
Thank you.
This error is due to no .Net SDK installed on your destination server. It is needed for your web task, to generate serialization assembly.
You can fix it in a number of ways - install .Net 4.0 SDK on the target server.
Alternative - disable Generate Serialization Assembly option. To do this - open your Script task, go to edit script code, then select project and open its properties (with context menu). On Build page - select Generate serialization assembly and pick Off. Then save your code and project before you leave code editor.

while scheduling SSIS package in sql 2012 64 bit i am getting this error

Executed as user: ASIAPACIFIC\nshanm. Microsoft (R) SQL Server Execute
Package Utility Version 10.0.1600.22 for 64-bit Copyright (C)
Microsoft Corp 1984-2005. All rights reserved. Started: 2:45:01 PM
Error: 2016-08-29 14:45:01.18 Code: 0xC001700A Source:
Description: The version number in the package is not valid. The
version number cannot be greater than current version number. End
Error Error: 2016-08-29 14:45:01.21 Code: 0xC0016020 Source:
Description: Package migration from version 6 to version 3 failed with
error 0xC001700A "The version number in the package is not valid. The
version number cannot be greater than current version number.". End
Error Error: 2016-08-29 14:45:01.21 Code: 0xC0010018 Source:
Description: Error loading value "6" from node
"DTS:Property". End Error Could not load package
"C:\ssis\fileupload\fileupload\Package.dtsx" because of error
0xC0010014. Description: The package failed to load due to error
0xC0010014 "One or more error occurred. There should be more specific
errors preceding this one that explains the details of the errors.
This message is used as a return value from functions that encounter
errors.". This occurs when CPackage::LoadFromXML fails. Source:
Started: 2:45:01 PM Finished: 2:45:01 PM Elapsed: 0.125 seconds.
The package could not be loaded. The step failed.
I try to schedule SSIS package in SQL Server Agent but I am getting this error.
This is due to the old version of the DTEXEC is picked up by SQL Server instead of the new one.
Refer Link: https://blogs.msdn.microsoft.com/ramoji/2008/12/24/package-migration-from-version-3-to-version-2-failed-with-error-0xc001700a-the-version-number-in-the-package-is-not-valid-the-version-number-cannot-be-greater-than-current-version-number/

Resources