Tuesday, March 20, 2012

Package error: Cannot create thread

I have a child package that has been run successfully multiple times in the last month +. Each time with roughly the same amount of data, give or take a few thousand rows.

Suddenly, this child package is now giving me the following errors from the log file:

Error: 2006-11-17 12:04:19.98
Code: 0xC0047031
Source: DFLT Primary DTS.Pipeline

Description: The Data Flow task failed to create a required thread and cannot begin running. The usually occurs when there is an out-of-memory state.

End Error

Error: 2006-11-17 12:04:20.03
Code: 0xC004700E
Source: DFLT Primary DTS.Pipeline

Description: The Data Flow task engine failed at startup because it cannot create one or more required threads.

End Error

I tried taking the child out of parent and running it by itself. I still get the same error. There are three other child packages that run on the exact same data and they have no problems. The control flow for the package first runs an SQL command. Then it has a data flow. The data flow grabs records from the source, adds two derived columns, looks up data and then stores to the destination. Relatively easy compared to other packages that are running just fine.

I've had our network people check the both the server running SSIS and the database server (two different machines) and there are no memory spike while the package is running.

Any ideas?

The problem could also be related with all the other applications/processes running on that box. Can you try stopping other SSIS packages and applications, and try running the problematic one? if that works, that means the machine is maxed out on available number of threads. or memory...

It's also possible that other applications might be running zombie processes on the box, even if the process seems to exit, there could be a thread or memory leak.

I'd use perfmon tool to read some of the critical resources for the box in which SSIS is running. You don't need to look at the database server, as SSIS creates a new process only on the box it's running. I'd check : thread/process, total thread, memory/process, total memory, page faults.

No comments:

Post a Comment