locked
Strange Behavior RRS feed

  • Question

  • I have 2 packages that for ease I'll call Parent & Child.  The Parent package calls the Child package as the 4th step in the process.  Once the Child has completed, the Parent has a few more imports that it does.

     

    The Portfolio table is loaded in the Child package which is step 4 in the Parent package.  Then in step 5 a few tasks utilize that Portfolio data for lookups. 

     

    The strange part is that there are probably 4 or 5 data tasks that do lookups against the Portfolio data in Step 5 (step 5 is a container).  All but 2 of the data tasks retreive data from the Portfolio data.  The other 2 don't find any data and just move on.  Once the package stops, if I simply execute those tasks they run and load the data correctly.

     

    It seems to me to be a caching or an isolation problem but I can't find a solution.

     

    Any ideas?

    Wednesday, March 5, 2008 8:32 PM

Answers

  • Are all of the lookups using the same SELECT statement to populate the reference table? If so, you might try changing each of them to be unique - you can simply add a comment to the query to force the uniqueness.

     

    Lookups do some internal caching, and we've encountered some issues in the past where the cache gets flushed a little too early. There's a KB article on it somewhere, but I can't track it down right now.

    Thursday, March 6, 2008 2:35 AM

All replies

  • I have not seen that before; make sure all five tasks/lookups uses the same connection. I I have founded my self pointing to the wrong DBs/Environments.

    Wednesday, March 5, 2008 8:53 PM
  • Lookup caches are populated during the PreExecute phase of package execution. This means that when the parent package starts running (before child runs) the lookup cache is populated, and because of that it does not have the data you want to see.

     

    From what I can see right now, the way to achieve the behavior you want is to split the logic in the master package into other child packages that will start after the current child package has run. Simply having them in the master package later on is not enough.

     

    Wednesday, March 5, 2008 8:55 PM
  • I had someone else say that the caches were loaded during PreExecute.  I tried a couple of options to fix that issue to no avail.  I will definitely see if I can utilize your solution and see if it fixes the issue.

     

    Any idea why only 2 of the tasks would encounter this issue and the others don't?

    Wednesday, March 5, 2008 11:23 PM
  • Are all of the lookups using the same SELECT statement to populate the reference table? If so, you might try changing each of them to be unique - you can simply add a comment to the query to force the uniqueness.

     

    Lookups do some internal caching, and we've encountered some issues in the past where the cache gets flushed a little too early. There's a KB article on it somewhere, but I can't track it down right now.

    Thursday, March 6, 2008 2:35 AM
  • John,

    This seems to have fixed the problem.  Strange little issue!  Thank you.

     

    Friday, March 7, 2008 1:48 AM
  • No problem. It is tough one to figure out, unless you've encountered it before. Hopefully, with the new caching functionality in 2008, this will no longer be an issue.

     

    Friday, March 7, 2008 5:03 AM