SSDT fails to preview a table with error 0x80004005 - sql-server

I'm getting an unusual one that I cannot find any reference for out there?? Hope some of you have seen this?
I have a number of packages in my project all working fine, using a Project level Connection Manager, to a SQL Server DB.
I am configuring a number of Source to Destination flows in a Data Flow, to import text files into Stage tables.
I configure the Source to connect to the text file and Preview the data no problem. I add an OLE DB Connection to the DB and select the desired table in the dropdown. I then Click the View Existing Data button and get the following error;
An OLE DB record is available. Source: "Microsoft SQL Server Native
Client 11.0" Hresult: 0x80004005 Description: "Unspecified error".
An OLE DB record is available. Source: "Microsoft SQL Server Native
Client 11.0" Hresult: 0x80004005 Description: "Communication link
failure". Error at DFT_Name [TableName [230]]: Failed to open a
fastload rowset for TableName. Check that the object exists in the
database.
I also get a similar error if I try to Click the Mappings tab. The Connection Manage is working fine as I have an Execute SQL task in the Control flow that runs fine.
I should mention that in desperation, I deleted all the Data flow tasks and saved the package. I then recreated the data flows and all worked fine. I come in today and the problem is back, although no changes were made!! This has to be to do with Password caching or some such, but I am using Windows Authentication and the CM tests fine and the Execute SQL task still runs !! Help?

Related

SSIS OLEDB Destination Insert fail for Data Access Mode Table or View

I have OLEDB DEstination to insert to a table using Table or View Data Access Mode (Not Fast Load).
My table has a trigger AFTER INSERT, which will update a status.
When executing in Production, Package throws the below error.
SSIS Error Code DTS_E_OLEDBERROR.
An OLE DB error has occurred.
Error code: 0x80004005.
An OLE DB record is available.
Source: "Microsoft SQL Server Native Client 11.0"
Hresult: 0x80004005
Description: "Cannot find the object "MYTABLE_Response" because it does not exist or you do not have permissions."
The table has permissions (SELECT/INSERT/DELETE/UPDATE)
It ran succcessfully in UAT but not in Prod.
Any response on this will be helpful.
Here are some possible solutions:
Get the DBA to triple check that the account used in the connection manager has the
appropriate access to the table/database.
Verify that when the package runs in Prod that it's connecting to the database that you expect it to connect to, i.e. is it configured/parameterized correctly?
Verify the table actually exists in Prod.

SSIS migrated package fails because no schema defined with code "Invalid object name"

I just migrated a specific package from our old to our new enviorment.
The one thing that changed between the old and the new enviorment is that in the old enviorment the connection manager was setup with a linked-server.
In the new enviorment we connect through ODBC.
One of the SQL commands failed on the new enviorment.
It was something in the scope of:
SELECT * FROM view
It did throw this error:
Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E14 Description: "The batch could not be analyzed because of compile errors.".
An OLE DB record is availible.
Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E14 Description: "Invalid object name 'name of view'.".
I remembered some similiar issue from the past and tried supplying a schema name.
SELECT * FROM schema.view
Lo and behold, it works now.
This leaves me with the question:
Why doesn't the old enviorment throw an error when no schema is supplied while the new enviorment does?
It turned out some of the permissions weren't set properly on this specific database.
It is possible to query without a schema (I did specify it though just to be sure to get the right view).

SSIS Package Does Not Execute In SQL Server 2014 ProtectionLevel: EncryptSensitiveWIthUserKey

My boss wants me to figure out a problem we are facing. The problem is that we have a SSIS Project we built using Microsoft SQL Server data tools and are trying to execute that package on SQL Server 2014 Management studio.
It is listed under the SQL Server Agent as a Job and when we execute the job, we get an error: Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E4D. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E4D Description: "Login failed for user '********'."
In our SSIS properties under security, our protection level is "EncryptSensitiveWithUserKey". I've done a ton of research and it shows to either change that property to "Don'tSaveSensitive", which we need to save the password, or creating a user proxy to serve as a median across the platforms.
We are able to execute the project on the SQL Server Data Tools interface, but not when uploading the Job onto SQL Server 2014 Management Studio. We believe it's because the login is failing as stated in the error above.
How would I go about connecting the two platforms together? Would a user proxy work for this case?
I am still new to this, so please correct any errors I have above kindly.
When you use encrypt with user key that means that when the developer on the current machine, using the current login info, SSIS will decrypt everything when the package is opened by the developer on the same machine. To use the package on another machine you should use another setting such as EncryptSensitiveWithPassword.

Export To Database Table Error

hope someone can give me a tip on this one. I'm trying to export query results from a database in one server to a table in a database in another server. The Export Wizard transferred a couple hundred thousand rows and then threw the errors below:
Errors:
Error 0xc0202009: Data Flow Task 1: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Protocol error in TDS stream".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Protocol error in TDS stream".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Protocol error in TDS stream".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Communication link failure".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "TCP Provider: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
".
(SQL Server Import and Export Wizard)
Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "Source - Query" (1) returned error code 0xC0202009. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
(SQL Server Import and Export Wizard)
Protocol error in TDS stream can be attributed to perhaps a flaky network connection or an isolated network jam. There may be a networking issue between Source and Destinaion.TDS stands for Tabular Data Stream and is the underlying protocol that SQL Server uses to return results to clients. The problem is with SQL Server or with the network communications. Possibly a faulty network card in one of the computers or an issue with the networking hardware in-between them. Check the event logs on both computers for networking errors at the OS level. Also check firewall setting if you are using load balancing. Transferring big table over slow network will cause problem.
If you are using linked-server queries then try explicitly casting VARCHARs, e.g., CAST(fieldname AS VARCHAR(30)) AS FIELDNAME. Sometime adding the CAST eliminate the problem.
Also give a try by following below.
The issue is solved when the Network Protocol used to connect to the source SQL Server is changed from TCP/IP to NamedPipes. Basically, an alias for the source is created on the destination server using the below steps.
Go to Start--> All Programs--> Microsoft SQL Server 2008--> Configuration Tools --> SQL Server Configuration Manager
Expand the node SQL Native Client 10.0 Configuration
Right click on "Aliases" and then select "New Alias..."
Provide the IP address of the Source SQL server against the "Server" field and specify the Source server name against the "Alias Name" field.
Choose the protocol as "NamedPipes" and click OK
There was a bug which was causing TDS error, so make sure that you have the latest updates/patches/hotfix for you SQL server.

SSIS package creating Hresult: 0x80004005 Description: "Login timeout expired" error

I have an SSIS package that is being executed by an SQL Job which runs twice a day. I recently updated the SSIS package by removing a where clause of a Select statement in it. Now the results have around 1800 rows compared tot he 650 of before. When I execute the new package on my local machine everything runs fine. But when I put it on the Prod server, it does not run and gives me Hresult: 0x80004005 Description: "Login timeout expired" error.
This error is usually thrown when remote access is not enabled but it is. The Job is running under my account, so the rights should not be a problem. Also, the package was running without problems before and I only changed a where clause that makes the Table larger by a thousand rows, so I should not have a login timeout error for that.
I know it is not the remaining space on the server because if I change the config file of the SSIS package and direct it the the production database, everything works fine.
Again, that problem is bugging me because when I put the old package with the old where clause, everything works fine.
Anyone has any idea what might be causing the problem?
Here is the Log entry:
Executed as user: Services. ...sion 9.00.3042.00 for 32-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 1:49:21 PM Error: 2011-08-04 13:50:12.28 Code: 0xC0202009 Source: Brd Load Connection manager "DataBase" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Login timeout expired". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "TCP Provider: A connection att... Process Exit Code 1. The step failed.
I finally found the problem. The error was not the good one.
Apparently, Ole DB source have a bug that might make it crash and throw that error. I replaced the OLE DB destination with a OLE DB Command with the insert statement in it and it fixed it.
The link the got me there:
http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/fab0e3bf-4adf-4f17-b9f6-7b7f9db6523c/
Strange Bug, Hope it will help other people.
The answer here is not clear, so I wanted to add more detail.
Using the link provided above, I performed the following step.
In my XML config manager I changed the "Provider" to SQLOLEDB.1 rather than SQLNCLI.1. This got me past this error.
This information is available at the link the OP posted in the Answer.
The link the got me there: http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/fab0e3bf-4adf-4f17-b9f6-7b7f9db6523c/
I had a similar error..This might be due to two reasons.
a) If you have used variables, re-evaluate the expressions in which variables are used and make sure the expression is evaluated without errors.
b) If you are deleting the excel sheet and creating excel sheet on the fly in your package.

Resources