Thursday, February 9, 2012

Could not open global shared memory to communicate with performance DLL

SQL Server SSIS :
[SSIS.Pipeline] Warning: Could not open global shared memory to communicate with
performance DLL; data flow performance counters are not available. To resolve,
run this package as an administrator, or on the system's console.

"SQL Server:SSIS Pipeline 10.0" performance object does not appear in the "Performance object" list while another user accesses some SSIS pipeline counters in SQL Server 2008, in SQL Server 2008 R2 or in SQL Server 2005  

The Package works fine when executed as 'Administrator' but fails for every other user. The SQL Server Agent service is running under a different user which is also administrator but the job running the package still fails.
 
There is a Microsoft support page that discusses this issue.

But based on my investigation I found that the workaround for this issue is to use OLEDB Destination instead of SQLDB Data destination. Not sure what is the practical difference in using one versus the other. But for most situations either of them work.
  
You might be able to run the package in debug mode and have a success. But it will fail if you run it on the command line via DTEXEC or run as a SQL Server job step. 
So the workaround will work fine.


 

No comments:

Post a Comment