We have a very large number of SSIS jobs that are scheduled every evening/early morning to run in succession. These jobs populate and update large amounts of data for our production systems. Recently, we have begun receiving an error message on different jobs at different times. So far, it has been impossible to reproduce on a consistent basis:
Code: 0xC0202009
Source: [Job Name] Connection manager "[Connection.Manager.Name]"
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: "Communication link failure".
An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Named Pipes Provider: No process is on the other end of the pipe. ".
End Error
Error: 2009-03-10 05:19:51.09
Code: 0xC00291EC Source: Update record status Execute SQL Task
Description: Failed to acquire connection "[Connection.Manager.Name]". Connection may not be configured correctly or you may not have the right permissions on this connect... The package execution fa... The step failed.
The connection is definitely configured properly, and we are running it as a user with the proper permissions. For over a year, these jobs had performed flawlessly. Google searches turn up results that seem to span everything from possible connection issues to data integrity issues. We have tried working this from the data source end as a connectivity problem, and from the SQL Server db and the server box by checking event logs. Nothing seems to line up. Here is our setup:
We have one Server 2003 box with SQL Server 2005 dedicated to just housing and running SSIS jobs
We have a dedicated Server 2003 box with just the SQL Server database on it that houses our data and also serves up Reporting Services reports
Most of our jobs connect via ODBC to a Sybase DB to get data from our system of record and bring it down to the SQL Server for reporting and data manipulation
Has anyone run across this exception in a similar manner? Again, we have tried to troubleshoot the SQL Server DBs and also the Sybase connection with no luck.
In our case it was resource contention. Deadlocks were occurring due to table level locks from other jobs. The Native Client error wasn't descriptive enough to let us know what was wrong initially. We had to run SQL Server Profiler on the DB and filter for Deadlock errors. This article helped a lot to get us pointed in the right direction.
Hope that helps!!
If OLE DB is lying to you, then this could be anything at all. If it's not, then maybe there's no process on the other end of the pipe. You should look in the event logs, etc. to see if maybe the other process died.
Even processes that have been running in production for years can change their behavior if something else changes. For example, a backup or other automated job may be taking longer and longer, and now collides with the existing schedule of your SSIS packages. Such a thing might force closed any open connections, causing "no process on the other end of the pipe".
Related
I have an on-premise SQL Server and SSIS 2014. I also have a SQL Server database (Microsoft SQL Server 2019 Standard Edition (64-bit)) in AWS RDS. There is a simple package in on-premise SSIS than must get data from tables in AWS SQL Server and transfer it to an on-premise database. For connection to AWS I use SQL Server Native Client 11.0.
After successful transferring data from several tables, I get the exception
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: "Unable to complete login process due to delay in opening server connection".
I tried different scenarios:
loading per 8 tables simultaneously, then next 8 tables and etc.
loading per 6 tables simultaneously, then next 6 tables and etc.
loading per 2 tables simultaneously, then next 2 tables and etc.
loading data with waitings
But every time I get an exception mentioned above.
For AWS SQL Server are applied the next settings:
Any ideas what the reason could be?
The reason is it was used the connection string to the listener. When the 'listener' was deleted from the connection string the data transfer became work fastly and without any issues.
I wonder if you can help me, I am having a problem which I can't figure out for the last few days... I get these errors when I run a package, that runs perfect on SSIS, on SQL - server job activity:
Error: There were errors during task validation
Error: .. failed validation and returned error code 0xC0208449
Error: One or more component failed validation
ADO NET source has failed to acquire the connection {...} with the following error message "exception from HRESULT: 0x80131937
Some additional info:
I am using project deployment mode
my Sql server version is 2014
My protection level in SSIS is DontSaveSensitives both in project and packages, but I think that it doesn't matter when I deploy anyway.
The package I get this error about run on SSIS but not on SQL-server job activity
When runnin within Sql Agent Job, your package is failing to acquire connections. First review your package/job connections, and make sure they have deployed properly.
Then rule out access permissions issues by testing the package using a Sql Server user/password account. If it works this way then most likely you need to use a Sql Server Proxy account.
If you are still unable to access then check connectivity between the machine you are running the job and the one(s) where your data is located (addresses, ports and instances,..). Also make sure that all involved machines can use the same transport (named pipe, tcp,...) in Sql Server Configuration Manager.
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.
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.
I'm getting a Connection Busy With Results From Another Command error from a SQLServer Native Client driver when a SSIS package is running. Only when talking to SQLServer 2000. A different part that talks to SQLServer 2005 seems to always run fine. Any thoughts?
As I just found out, this can also happen on SQL 2005 if you do not have MARS enabled. I never even knew that it was disabled by default, but it is. And make sure you are using the
"NATIVE OLEDB\SQL Native Client" connection type. If you're using the "OLEDB.1" type connection (or whatever...) MARS is not even an option, and you get the SQL 2000 behavior, which is nasty.
You can enable MARS by opening the connection properties, and clicking "All", and scolling down in Management Studio.
I know your question has long since been answered, but I'm just throwing this in for the next sucker like me who gets burned by this.
Had this error today with MS ODBC Driver 11 for SQL Server for Linux to SQL Server connection. Wanted to help next searcher considering this was the first Google search result when I made the search.
You need to set MARS_Connection in /etc/odbc.ini as following:
[ConnName]
Driver=ODBC Driver 11 for SQL Server
Server=192.168.2.218,1433
Database=DBNameHere
MARS_Connection=yes
Speaking of MS ODBC Linux Driver: It is a complete PITA to deal with it but I insisted using native solution. I experienced too many walls especially working with ZF2, however, every trouble has a solution with the driver I can say. Just to encourage people using it instead quickly give up.
If somebody met this annoying bug while using PHP PDO with ODBC, then use closeCursor() method after query execution.
Microsoft KB article 822668 is relevant here:
FIX: "Connection is busy with results for another command" error message occurs when you run a linked server query
Symptoms
Under stress conditions, you may receive the following error message when you perform linked server activity:
Server: Msg 7399, Level 16, State 1, Procedure <storedProcedureName>, Line 18 OLE DB provider 'SQLOLEDB' reported an error.
OLE/DB Provider 'SQLOLEDB' ::GetSchemaLock returned 0x80004005:
OLE DB provider SQLOLEDB supported the Schema Lock interface, but returned 0x80004005 for GetSchemaLock .].
OLE/DB provider returned message: Connection is busy with results for another command
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ::CreateSession returned 0x80004005.
Note The OLE DB source of the error may vary. However, all variations of the error message include the text "Connection is busy with results for another command".
Resolution
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000.
As noted there, the problem was first corrected in SQL Server 2000 Service Pack 4.
This blog post by Mark Meyerovich, a Senior Software Engineer at RDA Corp, also provides some insight (now archived, because the original link went dead):
SQL Server service pack upgrade
A quick search on Google turns up the following article (http://support.microsoft.com/kb/822668):
FIX: "Connection is busy with results for another command" error message occurs when you run a linked server query.
It basically implies the issue is a bug and recommends an upgrade to Service Pack 4. We have started out with SQL Server 2000 SP3 and we do have some linked servers in the equation, so we give it a try. After the upgrade to SP4 – same result.
Just for information if somebody else have the problem. I tried connecting via NetCobol of Fujitsu on an SQLEXPRESS via ODBC with embedded sql and to solve the problem I had to change a value in the registry namely
\HKLM\Software\ODBC\ODBC.INI\MyDSN
with MyDSN as a string value:
Name - MARS_Connection
Value - Yes
I just put the information here if it can help.