Hi!
I have a dataflow that sometimes ends with the error message “Process terminated because its parent had died”, but most of the time it works perfect.
The dataflow consists of one embedded dataflow and I guess that that’s whats causing the problem once in a while.
My question is what can I do to prevent this?
Are there any settings in DI or does it have to do with the DI-server or something else?
An embedded dataflow does not have a parent process. The optimizer merges the parent and the embedded dataflow into one dataflow as if it would have been designed that way before executing it. HAs to be related to something else.
First you have to figure out exactly what is happening. Check your server logs for the source and target databases, talk to your networking people and look at the memory graphs for the server to see what your culprit is.
If it is database connectivity, talk to your DBA’s about scheduled down times and down time notification. If it is network connectivity, same thing with your network services folks.
If the job is running out of memory, modify the job so that it does not do that. If you are on 11.7 or later this could be as simple as a switch to pageable cache. Otherwise it may mean many other things, we can help you more if you give more information.
we got similar kind of problem, we did two things …
changed DFRegistrationTimeoutInSeconds=600 (by default it is 30) in DSConfig.txt file
and made sure that job runs using pageable cache instead of inmemory and it worked.
A client of mine ran into this problem recently in DS 12.1.1.4. The DFRegistrationTimeoutInSeconds property in DSConfig.txt was set to 300 (the default - 30 is not the default) and the Dataflow was running in-memory. The Dataflow does not use any Embedded Dataflows, does not have Run in a separate process turned on and the degrees of parallelism is 1.
The Dataflow had been running for about 36 hours performing a Table Comparison using the Sorted Input method. Unfortunately, it was also using “Detect deleted rows”. The “Process terminated because its parent had died” error happened during our weekly maintenance window. So it is likely that the database server killed the connection.
The Dataflow should never have run that long. Given that it was processing about 6 million rows in each of the source and compare tables (both tables are very wide) it was rather slow and the “Detect deleted rows” made things much worse. Turning off “Detect deleted rows” allowed the Dataflow to run in an hour - and therefore not run during the maintenance window - and we have not see the “Process terminated because its parent had died” error since then.
After significant time looking for clues when one of my jobs died last night with the same message, I determined the culprit. Microsoft Update Tuesday. Windows Update was scheduled to run nightly at 3 a.m. and it did an auto-reboot for me, thank you Microsoft.
It was nice of Data Services to detect that and place one final log entry before closing the log.
I was (pleasantly) surprised that once the machine came back up, Data Services re-ran the job. I’ve never seen that happen before.