Thursday 19 January 2012

Custom SSIS Component: File-in-use Task

A while ago a did a post about waiting until a source file is unlocked. This script prevents immediately failure if the file is still locked by an other process (or user).
Script Task














Microsoft.Net colleague Marc Potters helped me to create a custom task for it, which should make thinks easier for those who have less programming experience.
File-in-use task

















The SSIS File-in-use Task prevents immediately failure if the file is still locked by an other process (or user). It checks every X seconds if the lock is gone. You can specify the number of checks until failure and the time between the checks. You can either check one of the appropriate connectionmanagers or a string variable that contains a filepath.


Disclaimer
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Downloads:
You can download a SSIS 2008 and 2012 version on the download page.
V1.0: initial version 2008-2012
V1.1: Added 2014-2016, ability to add connection manager, property for debug info, upgradable. Added 64 bit installers

Installation
The installer registers the DLL in the GAC and copies it to the task folder of SSIS (example: C:\Program Files\Microsoft SQL Server\100\DTS\Tasks\). After that you have to close Visual Studio/BIDS because it caches the GAC on startup.

How add the task the the toolbox
When you open a SSIS project in Visual Studio/Bids, right click the toolbox and choose "Choose Items...". After this Visual Studio will be busy for a couple of seconds!
Right click toolbox






















When the Choose Toolbox Items window appears, go to the SSIS Control Flow Items and search for the newly installed File-in-use Task and select it. Click ok to finish.
Choose Toolbox Items





















Now the new task will appear in the toolbox. Ready to use! Have fun.
New task added

























Bugs or feature suggestions
Please contact me or leave a comment if you have any suggestions or found a bug in this Custom task.





2 comments:

  1. ran your file-in-use task and receiving an "access to path xxx is denied". the path is a unc network path. tried mapping it to z: but still errors. the folder/file has "read" rights. does it also need "write" rights?

    ReplyDelete
    Replies
    1. It tries to open the file in a filestream. See the script task variant of this task. Will try to reproduce it (could take a few days) and comeback with a reply.

      Delete

Please use the SSIS MSDN forum for general SSIS questions that are not about this post. I'm a regular reader of that forum and will gladly answer those questions over there.

All comments are moderated manually to prevent spam.

Related Posts Plugin for WordPress, Blogger...