Warning: Could not open global shared memory to communicate with performance DLL

Today I was busy with SSIS and came across this error

Warning: Could not open global shared memory to communicate with performance DLL;

So how did this happen? I had a Data Flow Task with a OLE DB Source and an OLE DB Destination. In the source I executed a stored proc like this:

EXEC [ExpandAccountDivision] @AccountId = ?

I mapped the parameter to the appropriate variable and everything worked fine. Next I made a copy of the DFT and tried running it again, the initial DFT worked and the copied one failed and got the above error. I tried building, rebuilding, removing/re-adding the Data Flow Paths nothing seemed to work. Eventually I thought lets try changing the copy to run it without the parameter. Hey presto it worked, which lead me to the fact theirs a problem with the Parameter Mapping.

So I reverted back to using the parameter in the Command and checked the Parameter Mapping. What do you know, SSIS copied the DFT no problems, validated and built the package without a problem. But at runtime it gave this very misleading error, which was caused by SSIS not copying across the Parameter Mapping.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.