Issues with requests limit for Azure db - ssis

My setup is - SSMS connecting to Azure SQL server. This server has deployed on it a number of SSIS packages to be run.
When a package is under execution, I have the error shown below:
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:
"Resource ID : 1. The request limit for the database is 60 and has
been reached. See 'http://go.microsoft.com/fwlink/?LinkId=267637' for
assistance."
.
After doing much research, I found that a potential solution was to decrease the MAXDOP amount. Set the value between 1 or 0. Doing this had no effect and did not prevent the error message.
Then, also as a result of research, I found out that I could restart the SQL services running. This ensured the SSIS package I execute could complete without errors twice! But on third attempt, the execution processes failed with the above error.
I found out online that there could be other reasons why I'm getting this error. Any chance someone can assist by pointing me in the right direction.
Many thanks
Thanks.

There was a package with a data-flow task in it. This task was writing to over 30 table simultaneously.
In the end, I broke the task down into mini tasks, to reduce the number of simultaneous db access.
This solved my issue.

Related

Error message when an SSIS package runs that is scheduled to run as a SQL Server Agent job: "An OLE DB error has occurred. Error code: 0x80004005"

I am receiving the following error in SSIS "An OLE DB error has occurred. Error code: 0x80004005" for each of my data flow tasks.
When I set 'delay validation' to 'True' for all data flow tasks and execute my packages the integration works okay.
However the SQL agent job doesn't run.
As far as I can tell, the reason for this is due to the 'to_update' temporary tables I have set up to act as a middle man. The Microsoft article below seems to back this up.
https://support.microsoft.com/en-us/topic/error-message-when-an-ssis-package-runs-that-is-scheduled-to-run-as-a-sql-server-agent-job-an-ole-db-error-has-occurred-error-code-0x80004005-6a687a1f-917a-d3ae-4d3a-44e7dae82988
As the article says my next step would be to 'change the permissions for the Temp directory of the SQL Server Agent Service startup account. Grant the Read permission and the Write permission to the SQL Server 2005 Agent proxy account for this directory.' however I honestly have no idea where I would do this (I'm new to the world of SSIS!)
If someone could point me in the right direction that would be much appreciated.
There are a few things to take into account, the delay validation might be a red herring and nothing to do with the error or it might be that the Agent is calling an older version of the package that doesn't delay validation. So first of all make sure the package with the delay validation is deployed correctly and it is the one being run by SQL Agent.
Then, if the problem continues it could be permission or that the Temp directory is running out of space, worth checking it.
Finally, if it comes to permission problems then whoever is in charge of maintaining the DB, I'm assuming there is a DBA, should check what account is running the package from SQL Agent and make sure it has the right permissions.
another thing to check:
make sure the Run as is correct and if not running as 32 bit try it or viceversa.
After spending some more time it looked like the issue was actually related to disk space, the memory on the server I was using was running at 100% and the SQL agent jobs were running but very slowly and never actually ran successfully. I ended several processes and staggered when each of the SQL jobs run so they do not all trigger at once, and these are running successfully again.

SSIS Logging Throws an Error

I have programmed some ETL which works OK, the processing finishes without errors. Now I want to create a log using SSIS Loggin feature.
However, once I set this logging up (SSIS log provider for SQL Server; all events; all cotainers are checked, also the log is checked) and start the ETL, the MS Visual Studio 2008 app return error window with not error specified in it so I don't have even clue what could be the problem. The destination of ETL is SQL Server 2008 R2. The credentials are the same as my AD account, I have no problem to write the data into this DB (respectivelly it's tables).
To sum up, the whole ETL run works without problem, but once the SSIS Logging is turned on, the ETL does not even start.
One notice: the log table was created in the DB though [domain\user_name].[sysssislog]. Also the logging to e.g. text file works without any problems.
Any suggestions, please?
+++
Error I am receiving
TITLE: Package Validation Error
Package Validation Error
ADDITIONAL INFORMATION:
Error at Reporting_v3 [Log provider "SSIS log provider for SQL Server"]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E14.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E14 Description: "There is already an object named 'sysssislog' in the database.".
Error at Reporting_v3 [Log provider "SSIS log provider for SQL Server"]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E14.
There is like around 500 rows with the same error. If I delete the ssislog table and run the package with SSIS Logging turned on, the table is created again and the same error pops up.
Fixed. The solution can be found at the following link:
http://connect.microsoft.com/SQLServer/feedback/details/467794/ssis-log-provider-for-sql-server-do-not-work-when-default-schema-is-not-dbo-sysdtslog90-sysssislog

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

while runnig the ssis package i'm calling sp in the ADO.net source,but getting this error
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.I have set the command timeout to 0(infinite time),but still getting the error.The sp is working fine in sql server and taking approx 31 seconds for executing it,but in ssis its throwing error..please help me on this.Thanks in advance.
Check out this bug report - there is a sp in the SSISDB database in SQL Server 2012 causing packages to time out before they start running. I had error message "Failed to execute IS server package because of error 0x80131904" and "Description: The operation failed because the execution timed out" when calling multiple (more than 10) packages from my scheduling tool via DTExec. Please vote for the issue on the connect site so that MS can release an official fix.
Today, I was experiencing the same error while using the ADO Net Source, my sp works fine on the SSMS, but fails in the package, while In the package, it errors our with a long laundry list of errors, but basically it is timing out.
Solution is Right click on the ADO Net Source - Show Advanced Editor - Component Properties - Custom Properties - CommandTimeout - Increase the time here
I had the same problem in SSAS.
The way I sorted this out was extending the client and server time out settings.
you can see more details in the link below:
routine to backup ssas databases fails with: The XML for Analysis request timed out before it was completed

SSIS MySQL Copying Table to SQL Server

I want to copy tables from MySQL to SQL Server.
ADO.NET source using the MySQL connection.
OLE DB destination, SQL Server.
The statement is a full copy so no big deal there. When I hit the play button, after a while an error pops up. I set a DataViewer and started all over again, running it from inside the DataFlow while checking the DataViewer. After a while (this time it took longer) the error.
Error: 0xC02090F5 at Data Flow Task, ADO NET Source 1: The component
"ADO NET Source" (1) was unable to process the data. Fatal error
encountered during data read.
Error: 0xC0047038 at Data Flow Task,
SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The
PrimeOutput method on component "ADO NET Source" (1) returned error
code 0xC02090F5. 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.
Any idea on this error?
this took me few days to figure out...so I thought I would share my notes
How to connect and load data from MySQL to SQL Server
1 - Download the 32 bit ODBC driver.
go to the MySQL website and download: “mysql-connector-odbc-5.2.4-ansi-win32.msi” NOTE: Do not use the 64 bit driver on BIDS 2008. BIDS 2008 is 32 bit. You will get a mismatch error when creating SSIS’s connection manager: “The specified DSN contains an architecture mismatch between the Driver and Application”
2 - Create a User DSN You need to open the using windows 32 ODBC admin tool. DO NOT open the regular ODBC admin, in control panel. Open the ODBC admin located here: c:\Windows\SysWOW64\odbcad32.exe. If you use the default ODBC admin…it will not work. Additionally you must create a “User DSN” - NOT a System DSN. Otherwise it will not show up in SSIS NOTE: the screens look the same so you will have no way of knowing whether you are in 32 BIT ODBC Admin tool or not.
3 – Create a new SSIS package and create an ADO.NET connection manager AND ADO.NET SQL Server destination.
4 – Change the Source ADO.NET properties. You will get validation errors and your package will not run. You need to change the “ValidateExternalMetadata” to FALSE (in the “Advanced Editor” dialog box) of the ADO.NET source It will also give you metadata error…that’s ok…just click ok. It will still pull the metadata (column names/data types). You cannot select the tables as you would in SQL server. You need to type the SQL select statement.
5 - Run the package and should run and load normally.

SSIS connection dropped

I have an SSIS package that within a data flow task fetches a lot of data using an OLEDB connection.
When i run the package from my local machine it sometimes fails with the following error (snippet):
Warning: 0x80019002 at OnError: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. [..]
Error: 0xC0202009 at DFT Transform, SRC BSASREL1 [1]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft OLE DB Provider for SQL Server" Hresult: 0x80004005 Description: "[DBNETLIB][ConnectionRead (recv()).]Generel netværksfejl. [..]
Error: 0xC0047038 at DFT Transform, SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "SRC BSASREL1" (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.
If I deploy the package to the server and run it with an agent job nothing goes wrong.
The error is periodical which makes it hard for me to debug....
Have anyone else had similar errors or do anyone have ideas of how to solve this?
EDIT: It seems that the problem is solved. We haven't had connection problems since we disabled TCP Chimney.
I don't think there's enough information here to isolate the root cause of the error. That's not SSIS' fault. There are error returned from various providers and SSIS simply "forwards" them. There are likely clues in the error message pointing to the cause.
I once spent a lot of time trying to fix a connectivity issue in SSIS and SQL Server. The root cause turned out to be one of the DCs had gone offline...
Andy
Does it run for a long time? Is the server where you deploy the package the same server where you read the data from?
If so, your problem might be external. I have similar issues with some heavy data transfer packages i run. Sometimes they fail if the server is too loaded with other processes. If that is the case, it is an external problem.
My advice is that you try to pinpoint the source of the error (trying to overload a test server while you run the package, or look for timeouts on the connection) and circumvent the limitation through a retry mechanism, or by running the package on lower traffic times.
well, 0xC0202009 is a DTS_E_OLEDBERROR error (http://msdn.microsoft.com/en-us/library/ms345164.aspx) and dbnetlib.dll process "has the ability to send keep-alive TCP/IP packets to Microsoft SQL Server in order to maintain the connection" (this is from BOL)
I would say something related timeouts.
There is a command timeout propertie on the OLE DB Source component. Can you check the value?
Or maybe on the connectionstring on the Connection manager
Nobody's done anything with this post in two years, but I ran into this error and found that the size of the data set determined whether this error was thrown or not. Oddly, when running the SSIS program through the IDE, I didn't get the error. It's only in production mode that I found this error occurring.
The solution, I found, was to break up my data sets (which were being written to XML) using something like this to limit the amount of data returned:
select * from (
select *, row_number() over (order by a.pkey asc) 'ranker' from sometable
) where Ranker <500000
Sucks, but that's what I found worked.