We have a number of import jobs that previously worked fine. These dtx packages were execute from VS2005 on a Windows XP box with Office 2007 installed.
The developer has not got a nice new machine, 64bit, Windows 7, Office 2010. Now when he tries to execute the packages he gets the following error:
SSIS package
"Import_BygningsKategorier.dtsx"
starting. Information: 0x4004300A at
Data Flow - Import_BygningsKategorier,
DTS.Pipeline: Validation phase is
beginning. Error: 0xC0202009 at
Import_BygningsKategorier, Connection
manager "Excel Connection Manager":
SSIS Error Code DTS_E_OLEDBERROR. An
OLE DB error has occurred. Error code:
0x80040154. An OLE DB record is
available. Source: "Microsoft OLE DB
Service Components" Hresult:
0x80040154 Description: "Class not
registered". Error: 0xC020801C at Data
Flow - Import_BygningsKategorier,
Source - Import_BygningsKategorier
[1]: SSIS Error Code
DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.
The AcquireConnection method call to
the connection manager "Excel
Connection Manager" failed with error
code 0xC0202009. There may be error
messages posted before this with more
information on why the
AcquireConnection method call failed.
Error: 0xC0047017 at Data Flow -
Import_BygningsKategorier,
DTS.Pipeline: component "Source -
Import_BygningsKategorier" (1) failed
validation and returned error code
0xC020801C. Error: 0xC004700C at Data
Flow - Import_BygningsKategorier,
DTS.Pipeline: One or more component
failed validation. Error: 0xC0024107
at Data Flow -
Import_BygningsKategorier: There were
errors during task validation. SSIS
package
"Import_BygningsKategorier.dtsx"
finished: Failure. The program '[6332]
Import_BygningsKategorier.dtsx: DTS'
has exited with code 0 (0x0).
It looks like the problem may be that a class is not registered, how do we findout which class is not registered?
OLEDB drivers for Excel do not exist for 64 bit.
Run the 32-bit version of the DTS import utility (should be included, look in the Start menu).
Related
I have a SSIS package which gets data from flat file and writes it to SQL. It was running fine in IDE with Windows Authentication in the OLEDB Connection. But I wanted this to be run by anyone instead of using my Windows Authentication setting, so I changed the Authentication to SQL Auth. When I run this package in SQL Job, it fails, but runs fine in IDE. What would be the issue ?
My Package level ProtectionLevel is : EncryptSensitiveWithUserKey
Do I need to change the ProtectionLevel to EncryptSensitiveWithPassword instead?
This is the error I am getting:
Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". 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.
The worst part is, I reverted to run in the Windows Auth itself as of now, but now I am getting a strange error -
Executed as user: . Microsoft (R) SQL Server Execute Package Utility Version 12.0.4100.1 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved. Started: 10:46:00 AM Error: 2019-08-15 10:46:09.43 Code: 0xC0209303 Source: Import_Freight_Data Connection manager "Source Excel (xls) File" Description: The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not registered. If the 64-bit driver is not installed, run the package in 32-bit mode. Error code: 0x00000000. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered". End Error Error: 2019-08-15 10:46:09.43 Code: 0xC020801C Source: Get Data From xls File Source - XLS file import [96] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Source Excel (xls) File" failed with error code 0xC0209303. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error Error: 2019-08-15 10:46:09.43 Code: 0xC0047017 Source: Get Data From xls File SSIS.Pipeline Description: Source - XLS file import failed validation and returned error code 0xC020801C. End Error Error: 2019-08-15 10:46:09.43 Code: 0xC004700C Source: Get Data From xls File SSIS.Pipeline Description: One or more component failed validation. End Error Error: 2019-08-15 10:46:09.43 Code: 0xC0024107 Source: Get Data From xls File Description: There were errors during task validation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 10:46:00 AM Finished: 10:46:09 AM Elapsed: 8.906 seconds. The package execution failed. The step failed.
When you use EncryptSensitiveWithUserKey, SSIS will decrypt sensitive values using your windows identity as a means of authentication. When this job runs in SQL agent, it is no longer running under your account and cannot decrypt the password.
You can use EncryptSensitiveWithPassword, but this means that you will need to store the package password in clear text when you call the package from SQL agent. Some more preferable options would be:
Use windows auth, but run the package under a proxy. More on that here: https://community.spiceworks.com/how_to/129293-configure-an-ssis-package-to-execute-as-a-proxy-account
Set the password at runtime using package configurations. More on that here: https://learn.microsoft.com/en-us/sql/integration-services/lesson-5-add-ssis-package-configurations-for-the-package-deployment-model?view=sql-server-2017
m
I resolved the Excel issue by forcing it to run in 32-bit environment
Now, need to work on the SQL Authentication part.
Setting the 32-bit environment in SQL Job
I have created a SSIS Package using Visual Studio 2015 that takes an Excel file and imports it into a database. The job has been running smoothly for weeks, but for some reason, it failed this morning. When I run it as its own package, it runs perfectly but whenever it is in a job, even if it's the only step in the job, it fails. It is running using 32-bit runtime. The error I receive is pasted below.
Executed as user: NA\SQL_INTDB01$. Microsoft (R) SQL Server Execute Package
Utility Version 13.0.1601.5 for 32-bit Copyright (C) 2016 Microsoft. All
rights reserved. Started: 9:41:48 AM Error: 2018-01-04 09:41:49.36
Code: 0xC0202009 Source: STRATImport Connection manager "Excel
Connection Manager" Description: SSIS Error Code DTS_E_OLEDBERROR. An
OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is
available. Source: "Microsoft Access Database Engine" Hresult: 0x80004005
Description: "Failure creating file.". End Error Error: 2018-01-04
09:41:49.36 Code: 0xC020801C Source: Data Flow Task 1 Excel Source
[71] Description: SSIS Error Code
DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection
method call to the connection manager "Excel Connection Manager" failed with
error code 0xC0202009. There may be error messages posted before this with
more information on why the AcquireConnection method call failed. End Error
Error: 2018-01-04 09:41:49.36 Code: 0xC0047017 Source: Data Flow
Task 1 SSIS.Pipeline Description: Excel Source failed validation and
returned error code 0xC020801C. End Error Error: 2018-01-04 09:41:49.36
Code: 0xC004700C Source: Data Flow Task 1 SSIS.Pipeline Description:
One or more component failed validation. End Error Error: 2018-01-04
09:41:49.36 Code: 0xC0024107 Source: Data Flow Task 1
Description: There were errors during task validation. End Error DTExec:
The package execution returned DTSER_FAILURE (1). Started: 9:41:48 AM
Finished: 9:41:49 AM Elapsed: 0.438 seconds. The package execution
failed. The step failed.
Microsoft Access Database Engine has thrown the following error:
Failure creating file
This error is thrown when the Excel connection manager cannot access to the chosen path, it might be caused by:
You are using a network path / try replacing with a local path
it might be pointed to your local server, but when it is deployed to another server it will throw error
you do not have permission to access the selected path from the account that is running the SSIS
path does not exists
References
SSIS Excel File issue - Failure creating file
Failure creating file" error trying to drop and create tables in an Excel data source
How to resole this error?
Executed as user: NT Service\SQLSERVERAGENT. Microsoft (R) SQL Server
Execute Package Utility Version 11.0.2100.60 for 64-bit Copyright
(C) Microsoft Corporation. All rights reserved. Started: 10:06:01
AM Error: 2016-08-30 10:06:02.76 Code: 0xC0209303 Source:
Package Connection manager "Excel Connection Manager" Description:
The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not
registered. If the 64-bit driver is not installed, run the package in
32-bit mode. Error code: 0x00000000. An OLE DB record is available.
Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154
Description: "Class not registered". End Error Error: 2016-08-30
10:06:02.76 Code: 0xC020801C Source: Data Flow Task Excel
Source [2] Description: SSIS Error Code
DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The
AcquireConnection method call to the connection manager "Excel
Connection Manager" failed with error code 0xC0209303. There may be
error messages posted before this with more information on why the
AcquireConnection method call failed. End Error Error: 2016-08-30
10:06:02.76 Code: 0xC0047017 Source: Data Flow Task
SSIS.Pipeline Description: Excel Source failed validation and
returned error code 0xC020801C. End Error Error: 2016-08-30
10:06:02.76 Code: 0xC004700C Source: Data Flow Task
SSIS.Pipeline Description: One or more component failed
validation. End Error Error: 2016-08-30 10:06:02.77 Code:
0xC0024107 Source: Data Flow Task Description: There were
errors during task validation. End Error DTExec: The package
execution returned DTSER_FAILURE (1). Started: 10:06:01 AM
Finished: 10:06:02 AM Elapsed: 1.704 seconds. The package execution
failed. The step failed.
Your trying to us a 64 bit driver when one is not present. You can install the 64 bit driver or assuming you already have the 32 bit driver installed force it to use a 32 bit runtime. Below is a screenshot of an sql agent job where this setting can be found.
Here 64bit driver is not installed, either install
https://www.microsoft.com/en-us/download/details.aspx?id=23734
https://www.microsoft.com/en-us/download/details.aspx?id=13255
or run it on 32 bit in the debug/run settings
My aim is to update some fields in SQL Server 2008 R2 database from an Access database 2007
I created an ssis package using an Access source which is mapped to network drive, I shared the database
The package executes fine in ssis.
I have to run job for scheduling, and when I run this in SQL Agent job it gets an error shown below
Date,Source,Severity,Step ID,Server,Job Name,Step
Name,Notifications,Message,Duration,Sql Severity,Sql Message
ID,Operator Emailed,Operator Net sent,Operator Paged,Retries Attempted
03/02/2015 12:48:53,test_job,Error,0,PAVAN,test_job,(Job outcome),,The
job failed. The Job was invoked by User PAVAN. The last step to run
was step 1 (testjob_step).,00:00:01,0,0,,,,0
03/02/2015
12:48:53,test_job,Error,1,PAVAN,test_job,testjob_step,,Executed as
user: PAVAN\sys-32. Microsoft (R) SQL Server Execute Package Utility
Version 10.50.1600.1 for 32-bit Copyright (C) Microsoft Corporation
2010. All rights reserved. Started: 12:48:53 PM Error: 2015-03-02 12:48:54.93 Code: 0xC0202009 Source: FirstPackage Connection
manager "\RAGHU-PC\vijay\access db\weighbridge.mdb" Description:
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error
code: 0x80004005. An OLE DB record is available. Source: "Microsoft
Office Access Database Engine" Hresult: 0x80004005 Description: "The
Microsoft Office Access database engine cannot open or write to the
file '\RAGHU-PC\vijay\access db\weighbridge.mdb'. It is already
opened exclusively by another user or you need permission to view
and write its data.". End Error Error: 2015-03-02 12:48:54.93
Code: 0xC020801C Source: datafor sqlserver OLE DB Source [1]
Description: SSIS Error Code
DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The
AcquireConnection method call to the connection manager
"\RAGHU-PC\vijay\access db\weighbridge.mdb" failed with error code
0xC0202009. There may be error messages posted before this with more
information on why the AcquireConnection method call failed. End
Error Error: 2015-03-02 12:48:54.93 Code: 0xC0047017 Source:
datafor sqlserver SSIS.Pipeline Description: component "OLE DB
Source" (1) failed validation and returned error code 0xC020801C. End
Error Error: 2015-03-02 12:48:54.93 Code: 0xC004700C Source:
datafor sqlserver SSIS.Pipeline Description: One or more component
failed validation. End Error Error: 2015-03-02 12:48:54.93 Code:
0xC0024107 Source: datafor sqlserver Description: There were
errors during task validation. End Error DTExec: The package
execution returned DTSER_FAILURE (1). Started: 12:48:53 PM
Finished: 12:48:54 PM Elapsed: 0.936 seconds. The package execution
failed. The step failed.,00:00:01,0,0,,,,0
Along the lines of the above, make sure whoever has Access open did not open it via a shortcut that in the command line has /excl in it, which opens it exclusively and maybe locking this data pump.
Also just for kicks and giggles try running the SSIS package with nobody in it.
Also make sure \RAGHU-PC\vijay\access db\weighbridge.mdb is a valid path on the server where the SSIS package is executed, just it case that is not a correct mapping.
I have the SSIS package which iterates all excel files in the particular folder and import rows into the SQL 2008 database. I use 4 Package Scope Variables for files and folders paths.
I could run the package and import all data in excel files if I run the package in BI Studio.
But when I move the package and set up the job in the SQL 2008 server, I could not run the package and it shows me the following message.
Executed as user: xxxxx Microsoft (R) SQL Server Execute Package Utility Version 10.0.4000.0 for 32-bit. Started: 16:19:23 Error: 2011-05-26 16:19:23.53 Code: 0xC0202009 Source: PCounter Connection manager "Excel Connection Manager" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft JET Database Engine" Hresult: 0x80004005 Description: "The Microsoft Jet database engine cannot open the file ''. It is already opened exclusively by another user, or you need permission to view its data.". End Error Error: 2011-05-26 16:19:23.53 Code: 0xC020801C Source: Data Flow Task Excel Source 1 Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error Error: 2011-05-26 16:19:23.53 Code: 0xC0047017 Source: Data Flow Task SSIS.Pipeline Description: component "Excel Source" (1) failed validation and returned error code 0xC020801C. End Error Error: 2011-05-26 16:19:23.53 Code: 0xC004700C Source: Data Flow Task SSIS.Pipeline Description: One or more component failed validation. End Error Error: 2011-05-26 16:19:23.53 Code: 0xC0024107 Source: Data Flow Task Description: There were errors during task validation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 16:19:23 Finished: 16:19:23 Elapsed: 0.547 seconds. The package execution failed. The step failed.
I am sure that the files are not opened by anyone and my SSIS Proxy account do has the permission to access that folder. It still shows me this error however I tried.
Please give me suggestions.
You are using a variable to set the excel file via your Excel Connection Manager. Unless you have DelayValidation set to true at the package level, the connection manager will fail when it can't find the file you originally specified when you set up the Excel Connection Manger. Try setting DelayValidation on both the package and the connection manager to true - or make sure that the file you used to set up the connection manager is accessible by your sql server/sql agent account.