I'd like to alter OnInformation event in order to add more parameters (as TaskHost). Is it possible? I've tried but appears an error:
OnInformation' cannot to implement OnInformation' because of it doesn't exists on the Microsoft.SqlServer.Dts.Runtime.IDTSEvents'
Sub OnInformation(ByVal taskHost As TaskHost, ByVal [source] As DtsObject, ByVal informationCode As Integer, ByVal subComponent As String, ByVal description As String, ByVal helpFile As String, ByVal helpContext As Integer, ByVal idofInterfaceWithError As String, ByRef fireAgain As Boolean) Implements IDTSEvents.OnInformation
I suppose that I must add an overload method but how?
I'm trying to log the information spit out by SSIS but only the rowcount part, e.g. "component xyz wrote 1000 rows", im currently using a execute sql task but that will log all information, any simple efficient way i can filter out that rows written line and log that into a sql server table?
In my SSIS package (which was created programatically) when I try to log details in OnInformation event I get all the entries twice. One with the source name as the taskhost.name property and another with a guid. I'm not able to figure out which component raises the event. Infact for all the events the sourcename comes as GUID.
So I thought I'll override the events by inheriting IDTSEvents or DefaultEvents, But I'm not sure how to proceed further so that I can pass the sourcename properly instead of GUID.
Within my SSIS packages I use a logging logic quite similar as the one described by Jamie Thomson here : http://blogs.conchango.com/jamiethomson/archive/2005/06/11/SSIS_3A00_-Custom-Logging-Using-Event-Handlers.aspx
But I still have a small "problem". When my package end with success the ErrorCode returned at the OnInformation event handler level is :
0x4001100B
1073811467
DTS_I_COMMITTINGTRANSACTION
Committing distributed transaction started by this container.
Instead of :
0x40013001
1073819649
DTS_MSG_PACKAGESUCCESS
Package "__" finished successfully.
Another example.
When there's an integrity constraint violation, I've got the following ErrorCode returned :
I've a sql task, and I would like to filled a log file at the end of the task execution. If execution OK -> SUCCES Task XXXX If execution KO -> FAILURE Task XXXX
I use OnPostexcuteEvent and OnTaskFailed with a script task. But the problem is that the OnPostExecuteEvent is always lauched. So when the task failed I've got two lines in my logfile : SUCCES Task XXXX FAILURE Task XXXX
Is there a way to block OnPostExecuteEvent when task failed ? Or Is there a way OnPostExecuteEvent script task, to test the if tere's an error message ( ex. : if error message do nothing else write in log file). ?
We know we can use the event lock_deadlock and xml_deadlock_report to capture the deadlock info, however I also want to capture the execution plans for all of the SPIDs in the deadlock graph, how to output the execution plans to the extended events trace results either ? such as if there is an action for execution plan or workaround for it ?If there is no built in action for execution plan , may I know if we can add the customized info to the extended events results file also ? Such as when the deadlock related event happens , then we can run a query to get some info ,then added the info along with other info such as sql_text, dbname etc  to the events trace results file either ? The reason is if we also know the execution plans when the deadlock happens, it is useful to turning the query based on the execution plans to reduce deadlock happening .
After executing a package, I found that the values in the "executionid" column are the only ones that are unique. Can we use this to determine what package was run? We are trying to architect a solution that would allow us to determine as to how long a package ran, if it ran into warnings / errors etc., We can easily accomplish this by having our own table and using Global variables within packages, we could insert / update this table. Appreciate any help.
Scenarion: 1.- SSIS Package execute tasks on 2000 SQL Server Database 2.- Execution takes places using Business Intelligence Studio Question: 1.- How can I tracked that SQl 2000 tasks took place using a SSIS Package?
I am currently working to write a progress log for my SSIS packages. So far I am able write a new log entry, update this log entry using OnProgress and OnError Event Handlers. I'd like to take it one step further. Whenever the package ends whether cancelled or finished normally; I'd like to write to my logging table COMPLETED_ABNORMALLY on cancelled or COMPLETED_NORMALLY on a normal finish of the package. I'm not sure where to begin with this process. I'd like to utilize a simple method and event handler.
I am using checkpoints in my SSIS packages which determines the step at which the package failed the last time and restart at that step. But i need some other task also to kickoff only during restart? There is not an OnRestart handler as OnError in SSIS. How can i do this ?
I am using a simple Data Flow within a Squence Controller and have added a Event Handler for OnPostExecute which contains a simple insert to a table, but this is not working. My package gets successfully execute but data is not getting inserted in the table used in Event Handler. I have also tried OnError, OnPackageFailer etc... but no results. Please guide.
I'm still fairly new to some of SSIS's enhanced funtionalities, one of them being Event handlers. I have tried creating a simple package, that simply contains a SQL Execute task that basically creates a simple table. Now i have then added a OnPostExecute even handler as a test which basically runs a script task that simply shows a msgbox. I have gone to execute the package, however after the completion of the SQL Execute task, nothing happens, the even handler doesnt get fired for some reason, i switch to the even handler page and the script task has not been executed. It is like this for every event handler i have tried, even the OnError event. Could this be a problem with my installation of SSIS or have i done something wrong?
Any help would be greatly appreciated as i have done SSIS training and to create an event handler was never this hard!
Is it possible to launch an SSIS package after a SQL event takes place? I need to run a package after a customer order is placed. Can a trigger in SQL launch the package?
I have an SSIS Package that loads data to a SQL Server table and also logs package statistics along the way with individual SQL statements. In the event of failure, I want the data loaded to the target table rolled back but I want the statistics updates saved to the database. My package consists of several Execute SQL tasks that handle the logging and a Data Flow task that loads the data to the target table along with a couple of event handlers to handle errors. I have the Transaction Option property on the Package set to Required, to Supported on the Data Flow, and to Not Supported on the Execute SQL tasks and the OnError Event Handlers.
When we run the package (and cause an error) everything runs fine until it gets to the On Error event handler for the Data Flow task. This task hangs and never finishes. If we set the Transaction Option for the Event Handler to Supported (allowing it to enlist in the parent transaction) it works but the updates that it makes roll back along with the data from the Data Flow.
Is there a problem with having Event Handlers stay out of a transaction started by the parent package?
I am using the sample SSIS Event Log reports provided by Microsoft: http://www.microsoft.com/downloads/details.aspx?familyid=526e1fce-7ad5-4a54-b62c-13ffcd114a73&displaylang=en
The Event Log Summary report is showing a negative value for #Abort. Why is the aborted count negative?
I would like to create an event handler that would catch any errors that result from a sys.<table> not existing. The package is designed to run on both SQL Server 2000 and SQL Server 2005 and when I query sys.<tables> there is an error when the query is run on SQL Server 2000. I just need a good starting point...I would like something that when the server isn't 2005 it just skips the server and doesn't fail the package and doesn't get counted towards the max error count. Thanks for any help. -Kyle
Hi, Is it possible to do an event based scheduling of SSIS packages from SQL Server Agent? Like schedule a package to run when a file is available in a particular folder. Does anyone have any similar experiences to share?
Has anyone used Checkpoint files in conjunction with the OnError Event Handler ? I'm having a problem getting the OnError event to fire when the SSIS package reruns with the Checkpoint file.
The first run of the package (without a checkpoint file) works fine. The error occurs, the OnError event handler is called, the package stops and the checkpoint file is created.
When the package is restarted is goes to the correct spot (where the error occured) using the checkpoint file, then it throws an error within the For Loop container and does not call the OnError event handler. The OnError event handler is setup on the For Loop container. The ForLoop performs three loops. Each one of these loops creates an error. Not one of these errors within the three loops will trigger the OnError event handler...
My project currently has task which have their own individual event handlers that get called onError (setup event messages). I also have a package level event handler that performs a generic task (sending events to the windows eventviewer) In the package level event handler there is a script task that decides on a boolean variable whether to "Success" or "Failure" to different task. When I fail one task of the main control flow, the task level event handler runs, then the package level event handler runs, and then it also runs again for some unknown reason. The second time it runs it picks up the value of a variable set in the variables window. However, I change this value at runtime to the value from a database. I can't understand why it would run the second time, and if it did run why it would have the value from the variables window and not the value that is set in memory. It's like the event handler runs with the value from memory and then runs and picks the values back out of the variables window, replacing the db values and re-runs.
Maybe the package itself is failing all together and then re-runing the package level event handler?
My SQL Server 2005 SP4 on Windows 2008 R2 is flooded with the below errors:-
Date  10/25/2011 10:55:46 AM Log  SQL Server (Current - 10/25/2011 10:55:00 AM) Source  spid Message Event Tracing for Windows failed to send an event. Send failures with the same error code may not be reported in the future. Error ID: 0, Event class ID: 54, Cause: (null).  Is there a way I can trace it how it is coming? When I check input buffer for these ids, it looks like it is tracing everything. All the general application DMLs are coming in these spids.
I have been testing with the WMI Event Watcher Task, so that I can identify a change to a file. The WQL is thus:
SELECT * FROM __InstanceModificationEvent within 30 WHERE targetinstance isa 'CIM_DataFile' AND targetinstance.name = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\AdventureWorks.bak'
This polls every 30 secs and in the SSIS Event (ActionAtEvent in the WMI Task is set to fire the SSIS Event) I have a simple script task that runs a message box).
My understanding is that the event polls every 30 s and if there is a change on the AdventureWorks.bak file then the event is triggered and the script task will run producing the message. However, when I run the package the message is occurring every 30s, meaning the event is continually firing even though there has been NO change to the AdventureWorks.bak file.
Am I correct in my understanding of how this should work and if so why is the event firing when it should not ?
Server 2003 SE SP1 5.2.3790 Sql Server 2000, SP 4, 8.00.2187 (latest hotfix rollup) We fixed one issue, but it brought up another. the fix we applied stopped the ServicesActive access failure, but now we have a failure on MSSEARCH. The users this is affecting do NOT have admin rights on the machine, they are SQL developers. We were having
Event Type: Failure Audit Event Source: Security Event Category: Object AccessEvent ID: 560 Date: 5/23/2007 Time: 6:27:15 AM User: domainuser Computer: MACHINENAME Description: Object Open: Object Server: SC Manager Object Type: SC_MANAGER OBJECT Object Name: ServicesActive Handle ID: - Operation ID: {0,1623975729} Process ID: 840 Image File Name: C:WINDOWSsystem32services.exe Primary User Name: MACHINE$ Primary Domain: Domain Primary Logon ID: (0x0,0x3E7) Client User Name: User Client Domain: Domain Client Logon ID: (0x0,0x6097C608) Accesses: READ_CONTROL Connect to service controller Enumerate services Query service database lock state
I have a SSIS package developed by a different user which does a lot of DML. This package sits on the server.
The package needs to be executed on a regular basis.
I have given RO access for a regular user on production DB, he is executing the package from his client desktop.
I was expecting this execution fail, since the package is doing lot of INSERTS , where the user has ONLY RO access.
I understand from the above experience that there is an “execution context� for SSIS execution. Can someone tell me how can I define the execution context for SSIS?
------------------------ I think, therefore I am - Rene Descartes
I have been using SSIS now for quite sometime and over teh past month when i open for edit or execute a package SSIS just seems to go away and wait for about 10 minutes before opening or starting the execution.
I have defragmented my drive, i have monitored cpu usage and it just looks like it is not doing anything at all.
I am running windows xp connecting to windows 2003 servers with sql server 2005.
Has anyone else experienced this and can anyone help?
when using lookup i am geting the following warning.our OLEDB connection is Oracle.how to resolve this will this have any performance impact.
[Lookup [14342]] Warning: Cannot retrieve the column code page info from the OLE DB provider. If the component supports the "DefaultCodePage" property, the code page from that property will be used. Change the value of the property if the current string code page values are incorrect. If the component does not support the property, the code page from the component's locale ID will be used.
I have multiple data source text files with different names , file extensions and format , i need to bring the data into SQL tables for temporary holding of data. Once i bring the data into table i need to identify some fields using substring and then after cleansing at table level command. Once thats done i need to convert those tables back into text file with comma delimited join those tables and bring a different output.
Problem i am facing is if i have one data flow task then the first source file bring the data into table which is destination , but how to convert the data back using those tables back in to text file.
basically when i create one source file which is text file becomes source of data flow task and when convert those files into tables becomes destination. but when i need to bring the data back into a different format , the tables which were destination needs to become source.
Do i need to create a multiple data flow task or is their any other way i could work out.
Which is the best way to execute SSIS packages? I have no problem to use dtexec command but I want it to run every night. Is this going to be done through the SQL Server (SQL Server Agent under Jobs)? Is the type going to be Operating System (CmdExec) or Transact Sql? How exactly is the command written there?
I'm experiencing a stuck SSIS package that I'm developing. The package reads about 9915 rows and then it juts stops processing, all the boxes in the data flow task remains yellow and it would not proceed.
I have another similar package but it does not get stuck.
Hi all, I am Hazara. I am trying to call a SSIS package from a web service. But package.execute() method is returning 'failure'. Though I am able to execute the same package from a normal .Net project and it is working fine (using the same code that i have used in web service).
I have also tried to execute it through stored procedure for which firstly I created a .dll in c#(which is perfectly working) and then I registered this .dll in sqlserver-2005 using following command.
CREATE ASSEMBLY asmPackageExecuter FROM 'C:WINDOWSMicrosoft.NETFrameworkv2.0.50727PackageExecuter.dll' WITH PERMISSION_SET = UNSAFE GO Now on calling the method of .dll (which is responsible to execute the package) I am getting the DTSExecResult as 'success' but data is not getting transfered from one able to other as was expected from the package.
Please help me. I have searched it everywhere on net but didn't get any solution. I want to execute package only through web-service or stored-procedure