Well, the jobs run fine when I switch them back to conventional loads. Our DBA can’t figure out what’s wrong; we put a trace on the job and didn’t see any particular errors, but I did notice the following last two lines of the trace before it died:
I know Oracle uses the sys_dl_cursor for bulk loading, but this is in SQL Server. Does it use a similar thing? Could the error be caused by permissions related to this?
Unfortunately I have 1000 data flows and no idea where bulk loading is used, so turning it off everywhere isn’t the ideal solution.
I believe I have found the problem; in the release notes I found a bug that was fixed in Patch 3:
ADAPT01668176
If the DSConfig.txt option is set to “UseSQLServerBulkCopy = FALSE”, under the al_engine section, and you execute a job with the bulk load option enabled on a SQL Server 2008 target table, the Data Services job fails with an access violation error.
Our setting was actually blank; we changed it to TRUE and things seem to be working. It appears to have gotten changed last week, but we’re still researching that.
We were fine for a week and then upgraded Data Services, and now we’re getting this error again on a couple data flows (that also had the error before). But on the third run it ran successfully. One data flow has a history preserving transform, but the other doesn’t have anything special. Neither have bulk load and the setting is correct in dsconfig anyway, so I guess it’s something else. Any ideas?
Edit: Had another error last night. That data flow had bulk load on.
Thanks, good to know. Unfortunately upgrading is not an option at the moment.
Yes, I think some of these data flows do use a lot of memory. In Linux I can see which process goes with which data flow, but is there a way to see that in Windows? I’ve watched the job some and it hasn’t come close to using all of the server’s memory (64 GB), but could I be hitting the limit for an individual process? Prior to version 4 I know the limit was 2 GB, but what is the limit now?
I did get a response from SAP today, suggesting trying in-memory cache. I will check that tomorrow.
Two of the data flows were doing a sorted input table compare on a table of 40 million rows. I was going to look at other options when I realized that they shouldn’t have that many records and there was a bug in the code. This was fixed and the tables now only have 650k. I also changed the cache to In-Memory and turned off bulk loading and haven’t had any errors since. The other 3 data flows with this error only processed about 100k rows however, so not sure what the real problem was. Unfortunately I can’t do any more testing as we are going live shortly.