Sequence Container Allows Bleedthrough Of Constraint Objects
Jan 10, 2008
I am working with SSIS and use Sequence Conatiners extensively. I have become frustrated enought to stop what I am doing and create this thread in the MSDN SSIS forum.
When working with expanded container objects, constraint objects connecting control objects not in the container can be seen. The control object is hidden (sent ot back) but the constraint objects remain visible (sent to front.)
This is extremely frustrating as the unwanted constraint object can be interacted with and not only interfers with the visual presentation during design, it also allows for unintended changes.
I have implemented SSIS upgrades from MDSN but either haven't implemented the appropriate upgrade or an upgrade doesn't exist for this.
Are there any suggestins or comments that can help me get my sanity back?
I have (6) sequence containers, each with a data flow task and script task. The script task renames the file and the data flow uses an OLE DB Source connection to export to a flat file using the Flat File Destination connection.For sI have been unable to move from the 1st sequence container to the 2nd (and the next and so on...). I am trying to do this "on success" (on failure I generate an email notification within each container), but am apparently missing a piece to this because after the sequence container executes, which it does successfully, nothing happens.
If i place a loop container inside a sequence container the connectors within the loop container disappear.... is this a bug - will the loop tasks still run in the correct order?? or will they fire off willy nilly??
i am trying to insert data into a table and roll back if this fails. What i have done is created an Execute SQL task with a SQL statement of BEGIN TRANS .. if the constraint = success then it goes to a Sequence Conatiner that amoungst other thing includes an Execute SQl task that does INSERT statement . outsied of the container i have 2 execute sql tasks that to a COMMIT TRANS ond a ROLLBACK Trans . when executing it i get an error the Rollback Transaction request has no corrasponding Begin tranaction. I have seen this in a SSIS created by one of the Wizards and it works fine, im oviously missing something fundemental .. any pointers ?
hi people, i have crashed on a this problem. I have a sequence container and on this container I have set "FailPackageOnFailure=true". Now in this container there are 2 tasks. The first one is preceeding the second one. Now both this task have set "FailParentOnFailure=true". Both task are the same and their purpose is to drop table A.
1) I run the package and it fails, because there is no table to drop. 2) I create the table manualy and run package again. 3) I see, that the first task is beeing just SIMPLE OMMITED and the second task runs
In general, everytime any task in a sequence container invokes failure, next time is beeing ommited regardelss of its status. How can this be fixed ? Thanks
I am attempting to open up my ssis integration project but when I try to open up packages it says @ the bottom "Validating Sequence Container" and it just stays there. I cannot click on anything and nothing is responsive. Does anyone know why this is happening?
I have a package that is going to have roughly 20 sequence containers in it. Each of these containers is going to have the same start task and the same end task. The data flow task(s) in each sequence container will differ. So I was thinking I would create a custom sequence container that would implement the common steps I need in each of my containers. I started to create a task that would inherit from Sequence, but I found that it is sealed. Bummer.
What is involved in creating a sequence task by inheriting from Task? I see that Sequence implements IDtsSequence. But looking at this interface, it seems like I would have to build the logic to execute the workflow contained in my sequence.
I have a package that contains multiple SEQUENCE CONTAINERS, each execute a bunch of tasks. I try to use the script task to dynamically disable or enable each of these SEQUENCE CONTAINERS base on parameters that pass in from parent package, but for some reason, I can€™t set the disable value to True/False at runtime. Anyone knows how to do this?
Our VB application throws .dtsx on-demand by using Threads. Everything's fine but a little detail: when it goes to launch a SSIS package with a only task, concretely a Sequence Container task (empty, without tasks inside) fails Prevalidate method.
I have a sequence container that contains a bunch of tasks.
I have a failure constraint that goes from the sequence container to execute sql task. The execute sql task then sends out an email upon a failure of the container, which is triggered by the failure of any given task inside the container.
My question is, is there a way to pass a SPECIFIC error message to the execute sql task?? That is, if one of the components inside the sequence container fails, I would like the email message to reflect the error message of that particular component, not just that the container failed, as there are different levels of severity of errors, depending on which component failed.
I am creating a staging database in which I am loading required tables from 2 different sources. I have 30 different tables to load from source 1 and 10 different tables from source 2. This is the way I am doing, in Control flow task I am using Sequence container and in that I included the data flow task, the data flow task has source OLD DB connection from where I select the table and then destination OLE DB connection where I load the data. So for 30 tables I have one Sequence container with 30 different data flow task and each data flow task has OLE DB source and OLD DB destination. I wanted to find out if this is the efficient way to do, or if there is any other way to do this. And for source 2 shall I put in another package or shall I use the same package with different sequence container and follow the same steps as for Source 1 tables. Please advice. Thanks,
I have a sequence container in my Package and this sequence has more than one control flow tasks.
Can I create the checkpoints such that only the failed component inside the sequence container runs again and not the other successful components/tasks in the sequence container?
I have a Sequence Container with an Exec SQL Task in it. I can't delete the task or the container. I can't disable them.
Here's how I got there:
I put a Dataflow Task and the Exec SQL Task in the container, then set a precedence constraint. Lots of complaints moving either of them. Managed to delete the Dataflow Task, but now can't do anything.
An Execute SQL task returns one row with two values that are correctly stored into variables.
Based off those two variables, a sequence container is chosen to execute.
That sequence container then does magic. The last step of the container has an execute SQL task that runs and stores the result in a variable - let's call this[User::result] with type Int32.
Based off the value in [User::result] one of two final tasks run. A non zero value executes one task; a zero value executes another. Basically,SOMETHING runs after this.
Simple? I thought so... except Step 4 doesn't work. If I set a post-execute breakpoint on the sequence container, the variables are populated as expected, but nothing else runs. If I add another task to run (without a conditional expression) to run after the sequence container completes, the pre-execute breakpoint shows the data looking exactly as I expect.
Those script tasks are just MessageBox.Show calls and the expression, as you can see, doesn't use variables at all.
I have a sequence container with 2 task into. If one of the tasks alert a failure then the sequence container should alert a failure too, but it doesn't. For testing I forced the error with setting the attribute ForceExecutionResult to Failure for one of the tasks. The task fails, but the sequence container succeeds.
I tried:
- changed the Precedence Constraints from AND to OR between the 2 tasks into the sequence container - changed the attribute FailPackageOnFailure setting True - changed the attribute FailParentOnFailure setting True
I've created an SSIS package that contains a Sequence Container with TransactionOption = Required. Within the container, there are a number of Execute Package Task components running in a serial fashion which are responsible for performing "Upserts" to dimension and fact tables on our production server. The destination db configuration is loaded into each of these packages using an XML configuration file. The structure of these "Upsert" packages are nearly identical, while some execute correctly and others fail. Those that fail all provide the same error messages.
These messages appear during Pre-Execute
[Insert new dimension record [1627]] Error: The AcquireConnection method call to the connection manager "DW" failed with error code 0xC0202009.
[DTS.Pipeline] Error: component "Insert new dimension record" (1627) failed the pre-execute phase and returned error code 0xC020801C.
... which are followed by
[Connection manager "DW"] Error: The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D00A "Unable to enlist in the transaction.".
[Connection manager "DW"] Error: An OLE DB error has occurred. Error code: 0x8004D00A.
While still in debug mode, I can check the properties of the "DW" connection and successfully test the connection within the packages that fail.
The same packages run successfully when tested outside the container (i.e. no transaction) or when the configuration file is modified to point the "DW" connection to a development version of the db which is running on the same server as the source database.
I have successfully used DTCtester to verify that transactions from source to destination server are working correctly. Also tried setting DelayValidation = True with no change. I have opened a case with Microsoft and am awaiting a reply so I thought I'd throw a post out here to see if anyone else has encountered this and might have a resolution. Here's some more on the environment:
Source Server:
Windows Server 2003 Enterprise Edition SP1 SQL Server 2005 Enterprise Edition SP0
Destination Server:
Windows Server 2003 Enterprise Edition SP1 SQL Server 2000 Enterprise Edition SP3 (clustered)
Thank you in advance for any feedback you might be able to provide.
please help newbieI need to create a lot of objects the same type (let's say: schemas)I wish to use paramerized block in loop to do so.- how to put names of my objects to such control-flow?belss you for help
passing serialised objects to a stored procedure for the purpose of data inserts. I see this as being a way to handle multiple row inserts efficiently.
However, in my limited use of XML data I am not so sure how to link the data when I have a dependency on another "object" within the serialised XML.
Below is a code snippet showing what I have so far.
The first insert statement works fine - but how to retrieve the identifier created by the DB - I want to use an SQL statement that finds the record in the table based on the XML representation (of the PluginInfo), allowing me to insert the ConfigurationInfo with the correct reference to the PluginInfo
DECLARE @Config NVARCHAR(MAX) DECLARE @Handle AS INT DECLARE @TransactionCount AS INT SELECT @Config = ' <ConfigurationDirectory > <ConfigurationInfo groupKey="Notifications" sectionKey="App.Customization.PluginInfo"
I am trying to create table with following SQL script:
Code Snippet
create table Projects( ID smallint identity (0, 1) constraint PK_Projects primary key, Name nvarchar (255) constraint NN_Prj_Name not null, Creator nvarchar (255), CreateDate datetime );
When I execute this script I get following error message:
Error source: SQL Server Compact ADO.NET Data Provider Error message: Named Constraint is not supported for this type of constraint. [ Constraint Name = NN_Prj_Name ]
I looked in the SQL Server Books Online and saw following:
CREATE TABLE (SQL Server Compact) ... < column_constraint > ::= [ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ] | [ PRIMARY KEY | UNIQUE ] | REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ]
As I understand according to documentation named constraints should be supported, however error message says opposite. I can rephrase SQL script by removing named constraint.
Code Snippet
create table Projects( ID smallint identity (0, 1) constraint PK_Projects primary key, Name nvarchar (255) not null, Creator nvarchar (255), CreateDate datetime ); This script executes correctly, however I want named constraints and this does not satisfy me.
We are using SQL CE 3.5 on tablet PCs, that synchs with our host SQL 2005 Server using Microsoft Synchronization Services. On the tablets, when inserting a record, we get the following error: A duplicate value cannot be inserted into a unique index. [ Table name = refRegTitle,Constraint name = PK_refRegTitle But the only PK on this table is RegTitleID.
The table structure is: [RegTitleID] [int] IDENTITY(1,1) NOT NULL, [RegTitleNumber] [int] NOT NULL, [RegTitleDescription] [varchar](200) NOT NULL, [FacilityTypeID] [int] NOT NULL, [Active] [bit] NOT NULL,
The problem occurs when a Title Number is inserted and a record with that number already exists. There is no unique constraint on Title Number. Has anyone else experienced this?
I have an execute sql task that uses the following query: (modified for this thread but normally its going to return all records in the table)
Code Snippet
SELECT
'PrimaryID' AS 'Parameter/name', PrimaryID AS 'Parameter/value', 'LastName' AS 'Parameter/name', LastName AS 'Parameter/value'
FROM ParkingUpload WHERE primaryid = '1234' or primaryid = '4321'
FOR XML PATH('T2Method')
The output of this query looks like this: (I know normally this would be a bad xml file, but its needed for my purpose)
Code Snippet
<T2Method> <Parameter> <name>PrimaryID</name> <value>1234</value> <name>LastName</name> <value>Abiola</value> </Parameter> </T2Method> <T2Method> <Parameter> <name>PrimaryID</name> <value>4321</value> <name>LastName</name> <value>Aboud</value> </Parameter> </T2Method> That xml is stored in a user variable in the Execute SQL Task. I need to take that user variable and send out that xml to a webservice. The web service is expecting one record at a time(a new record is defined by the <T2Method> node.
So question is, does my approach seem fine so far? I was wondering if my next step should be to put this variable in a For Each Container and send out one record at a time to the webservice. If so, how would I go about doing that?
If anyone else has a different suggestion as how to approach this, or be able to help with the For Each portion (I am brand new to SSIS), I would really appreciate it.
Sorry that I open a new thread again but I didn€™t found any good tutorials about foreach loop container. I would like to read every row from one table and do something. I red something about sql task€¦ Can someone give a little instruction, please?
Hi, I'm using data flow as flat file source -> derived column ->Data Conversion-> oledb destination I have a fifty thousand record in a delimited file. while processing i got error in 45000th row. In database only 40000 records are there(why is there no all 45000 records). Is there any way to roll back all the 40000 records.
I using data flow task to import from flat file to database but i need to use Foreach Loop Container to import multiple files in specific folder and all will be insert in the same table
What I'm trying to do is take multiple "snapshots" of a membership for many months. I was trying to do this in a For Loop Container in which I added one to the month variable and subtracted one from an iteration variable each loop, unless the month variable = 13...then I would add one to the year variable, set the month variable to 1 and subtract one from the iteration variable. This, I was hoping, would allow me to initialize 24 to the iteration variable, 1 to the month variable and 2004 to the year variable, kick off the package, and get 2 years worth of "snapshots" in seperate files (one for each month). Here is the AssignExpression I thought would work:
The package states that the single "=" should be double, but I don't think that that is what I want to do (I tried doing this just to check, and it didn't like this either). I think that it is having problems with doing multiple things on both sides of the ":". What am I doing wrong?
I have a RAID 10 container consisting of 4 146GB, SAS, 3.5-inch 15K RPM Hard Drives.
We have the OS on its own RAID so we are strictly dealing with setting up SQL Server 2005 on the RAID 10.
SO ... is it better to create seperate volumes for the Data, TLog and TempDB file placements (i,e, C:, F: and G or is it alright to create just plain-jane folders for the file placements?
Has anyone investigated extending any of the SSIS Container classes?
I have been looking into it because we'd like to add a set of standard logging calls on events, standard startup procedures, etc. on any package that we execute.
I've been looking into the Sequence Container, For-Each, etc. They are all sealed classes. I'm not sure why MS has sealed them.
We're currently thinking of implementing our own version of the Sequence Container -- we'd really like to be able to extend the functionality of a standard container class, but we don't want to have to implement the actual container class itself.
Is there a way to set a variable as a substring of the enumerator in a Foreach File Enumerator type? The Variable Mappings tab in the Foreach Loop Editor does not allow you to enter an expression.
I was wondering about a silly thing but, anyway, which is the maximum number of grouping for a container? I mean, when you group from, i.e, a sql task and then over that group do again another one and so on...
We have a config table which has columns like pollingfolder, cop to folder etc. Data looks like this Config id polling folder 1 d:dataloadacn 2 d:dataloadship under ACN and Ship folders we can have more than 1 source files which had to be loaded into target the load process has to be repeated for each file in all the folders like ACN and ship I have used for each loop container to poll the folder. Can we set the directory to be polled at runtime taking from config table. For doing this I have used the property Directory in expression editor of for each loop. But it is not working. If I hard code the variable value in variables section , then its working. How to change the directory to be polled value at runtime?
I am using For each loop container in my SSIS package which will loop through more than one input file in the input folder. All the input files in the input folder are picked by one by one. All the input files in the input folder are executed with the same ExecutionInstanceGUID.
Now, my requirement is to get a new ExecutionInstanceGUID during the execution of each input file in the For each loop container. My package only contains the For each loop container with some logic inside that.
Please let me know if any one can help me for the same.
I am trying to do the following and am quite new to SSIS.
I have to select a dataset from a database on server A, check if it exists on server B and perform an Update or Insert dependant on the existence.
I have created a SQL task to do the Select from server A with the results set passed to a variable of Vendors. I have added a ForEach Loop container with an enumerator of Foreach ADO Enumerator and the source variable is set to Vendors.
I have created 2 variables in the Foreach Loop called Code and Supplier - both as strings - as there are 2 fields from the initial Select that need to be passed to the final Update/ Insert.
I have then created another SQL task insert the Foreach which will perform the Update/Insert.
obviously when I run it at the moment it performs the Update/ Insert but just adds the rows with both Code and Supplier as NULL.
having looked at a couple of examples in books I have i know i need to add something in the Expressions of the Update/Insert SQL task but it is here i get a bit lost.
Which of the properties from the drop down do i need to use to map the variables against?
Any help would be massively appreciated asI am tearing my hair out!