September 8, 2015 at 10:39 am
Hello,
i'm using a foreach loop to loop throught the files of a directory, the files name is saved in a variable "filename". within the loop, i use a file system task to move the files to another directory. i use the same variable "filename" as source of the file system task.
Now when i execute the whole foreach loop i get this error :
File System Task Error: The process cannot access the file because it is being used by another process
Help please !!!
September 9, 2015 at 8:50 am
Yeah i can tell that it's used by another process thank u, but when i checked i found that it's only used by one process which is DtsDebugHost.exe ( and it is running twice for the same package ).
Actually i am using a loop within another to loop through the sheets of many excel files. and whenever it navigates through a file i wana move it to another directory. Now when i disable the inner loop (on the sheets) leaving only the loop on files running, it works fine . but when i enable it, the file system task ( used to moving the files ) fails, and i just can't figure out what's wrong!
PS: when i run the same package in another laptop it works
September 9, 2015 at 9:07 am
Chances are the issue is due to your package processing files faster than Windows can release the file after processing. I've had that problem many times.
You could try adding a script task in your ForEach to add a delay to give Windows time to release the file. I'd start with a 30 second delay just to see if this fixes the problem. If it does, try changing the delay to just a few seconds.
For more information about creating a delay with a script task, see: http://microsoft-ssis.blogspot.com/2011/04/pause-in-ssis.html
For best practices on asking questions, please read the following article: Forum Etiquette: How to post data/code on a forum to get the best help[/url]
September 9, 2015 at 11:15 am
Thank you for ur answer Alvin, i tried the delay option before and it didn't work, still getting the same error...
i thought maybe it's something related to the package parameters : i tried setting Run64Bitruntime to false ( it didn't help)
i checked the transaction options : supported, i set delay validation to true for the file system task ...i'm still getting the error
I'm beggening to think there's something wrong with the ssis 2008 r2 (32) version i have, since the package works fine on an other laptop with ssis 2008 r2 (64).
September 9, 2015 at 11:49 am
mrani.soukaina (9/9/2015)
Thank you for ur answer Alvin, i tried the delay option before and it didn't work, still getting the same error...i thought maybe it's something related to the package parameters : i tried setting Run64Bitruntime to false ( it didn't help)
i checked the transaction options : supported, i set delay validation to true for the file system task ...i'm still getting the error
I'm beggening to think there's something wrong with the ssis 2008 r2 (32) version i have, since the package works fine on an other laptop with ssis 2008 r2 (64).
The problem could be an issue with Windows or some other process, like anti-virus software.
For best practices on asking questions, please read the following article: Forum Etiquette: How to post data/code on a forum to get the best help[/url]
September 15, 2015 at 10:38 am
Have you set OverwriteDestinaton as TRUE.
September 15, 2015 at 11:33 am
Hi
I met similar problem, a few years ago I was involved in central repository project.
It had to move files prepared by users (local servers in branches) to the central server and index it in repository db.
I created Script Task to check that the file qualify to move (name, length, PDF format). Problems appeared during the first run (returned
the same error as yours). I did a small change, replaced move operation with copy and added another step which deletes all copied files at the end.
Best regards
Mike
September 16, 2015 at 7:57 am
Hi,
Thank you all for your help.
Yes i did try everything you have suggested before but it didn't fix my problem.
Finally, i added a script task executing the following script to close and dispose any EXCEL.EXE running while i'm executing my package :
Public Sub Main()
Dim procList() As Process = Process.GetProcesses()
Dim k As Integer
For k = 0 To procList.GetUpperBound(0) Step k + 1
If procList(k).ProcessName = "EXCEL" Then
procList(k).Close()
procList(k).Dispose()
End If
Next
GC.Collect()
GC.WaitForPendingFinalizers()
Dts.TaskResult = ScriptResults.Success
End Sub
and it works fine now
May 27, 2021 at 10:02 am
Its not so obvious , i had the same problem. Please remove crictic developers but not soloutions. Very annoying,
Viewing 9 posts - 1 through 9 (of 9 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy