views:

18

answers:

2

I have a very simple SSIS pacakge having 3 containers in the control flow. Each container is explicitly connected by a precedence constraint which evaluation operation is set to constraint only and each has a pre-execute event handler in it. When I run the package from Visual Studio, it works perfect but when I run it from DTExec.exe, it skipped the first container event handler and executes second container directly. And the most weird thing is when I copy that package to another computer, create a new package and paste the content without changing anything, it runs fine. I am having problem with this issues in 2 of my 8 computers. Any idea ?

Thanks

A: 

try adding logging entries to a database table as part of your package so you can see which container's starting when.

Add 4 new containers, each calling the same stored procedure that passes a string message and adds a new row to a log table with a timestamp.

  1. 'Starting step 1'
  2. "Finished step 1, starting step 2"
  3. "Finished step 2, starting step 3"
  4. "Finished step 3"

Here's what my sp looks like:

CREATE PROCEDURE [dbo].[usp_ssis_stamp_xfer_log] 
    (@seq int, @comment varchar(1000))
AS
BEGIN
    SET NOCOUNT ON;

    insert into dbo.ssis_xfer_log (stamp, sequence, comment)
    values (getdate(), @seq, @comment)
END

and the log table:

CREATE TABLE [dbo].[ssis_xfer_log](
    [stamp] [datetime] NOT NULL,
    [sequence] [smallint] NOT NULL,
    [comment] [varchar](50) NULL,
 CONSTRAINT [PK_xfer_log] PRIMARY KEY CLUSTERED 
(
    [stamp] ASC,
    [sequence] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
Beth
A: 

You mention 3 'containers'. Objects within each container will activate once the container becomes active, but unless the objects inside of the container are linked together they will run independently.

Josef Richberg