Friday, April 20, 2018

Who has the #@!*$% file open?

I just found out about a nifty tool and thought I would share.

Scenario: The nightly ETL uses files as source data to insert into the data warehouse. The ETL failed because the file was locked and not accessible. The file is on a server in a shared folder. I needed to find out who had the file open, although I had a suspicion it was sql agent, not an actual person. Either way, the file needed to be closed, or the connection terminated.

Answer: openfiles.exe

I had never heard of this utility, but it works wonders. It was able to tell me who had the file open and allow me to disconnect the user's session with that file. In my case, the ETL was able to run successfully again. :) I did find out afterwards that our IT department performed maintenance over the weekend which must have caused the connection to 2 of these files to be "hung up".

The link above shows all the options available, but here is a summary also.

You can access the following information on the local server/workstation, or from remote. If you are remotely querying/disconnecting, then use the following switch:

  • /s ComputerName - you can use the name or IP of the remote computer.

You can perform all of these functions as yourself, or specify a specific user. You can use the following switches to indicate a specific user:

  • /u - specify the username to run the task as, format is domain\user
  • /p - enter the password for the username entered

List of files open and by whom

  • /fo {TABLE | LIST | CSV} - this alows you to specify the format of the results
  • /nh - this allows you to hide the headers in the results, but this switch can only be used when the /fo tag indicates a TABLE or CSV formatted resultset
  • /v - this stands for verbose and shows the verbose task information

Terminate the connection

  • /id ### - disconnects the file specified; use /query to determine the id of each file
  • /a username - disconnects all files opened by the specific username
  • /o mode - disconnects all open files that are in the specified mode (values expect either Read/Write or Read)
  • /se sessionname - disconnects all open files in the specified session
  • /op filename - disconnects the specific file by file name

Note: I tried to disconnect the files using the ID specified from the /query switch. However, it didnt disconnect as I expected. When I tried the /o Read/Write, it did work as expected and closed all files.  Also, when looking at files on a software share, you can use the ip address.

Hope this helps someone - I am sure I will be referring back to my own blog for this one a few times!

Write comment (0 Comments)

How much juice can you squeeze from a lemon?

How much juice can you squeeze from a lemon? I had no idea there are quite a few websites that teach you how to get EVEN MORE juice from a lemon. That is what I thought about when I realized I was going to write this blog post, so of course I had to look it up.

Since this blog is about SQL, not lemons, let me explain where my mind was earlier this evening. I was sitting in a pizza joint waiting for dinner (the kids love Pizza night, and I love the no cooking), and I started typing up an email that I had been putting off because I just didnt have time for it. I was rather proud of myself that I used some time that would have normally been wasted. Then, I started thinking, what if I actually started looking for times like these to stick quick tasks into? And that got me thinking about... is that how the Donald Trump's of the world do it (the kind of people who look like they accomplish sooo much that it sometimes, almost convinces me I wont ever be ale to keep up)?

I am wanting to start a user group in my town. Actually, let me jump back a moment, I am planning things out and will make the final decision when I feel I have more data to use to decide if I can actually do a good job of it and if it is desired in the community. Part of my planning has been to try to decide if I can actually put the needed amount of time into it. I dont want to drop the ball on something else, nor this new project, just because I had a hair-brained idea.

My head was swimming with thoughts and I remember the last one that crossed my head, just before the pizza was served - "How am I going to be able to play computer games, if I am busy all the time?" I know, sounds crazy, who pictures a MOM playing computer games? But... I am not too shabby :) Its a valid point though, will I have enough quality time for me, even though I am going to have to spend more time being productive?

I am asking around for tips and opinions about what challenges others have faced when starting/leading a user group, and what their advice is for things I dont even know to ask about. We will see how they respond, and go from there. Ohh, if you have advice, please share - you can email me here This email address is being protected from spambots. You need JavaScript enabled to view it.. :)

Hope you had a great day, and I will write again soon!

Write comment (0 Comments)

SSIS - Stored Procedures with Return Values

I am finally making a blog post about this. Everytime I go to use this technique, I always forget the syntax and have to scout around to find it.

The scenario: I want to use an "Execute SQL Task" transformation within SSIS to execute a stored procedure, using an OLE DB connection. Then, I want to capture the return value. My problem is, what is the syntax within the Parmeter Mapping configuration screen? I seem to always forget what to type in as the parameter name. :)

I start out providing the needed information about which stored procedure to execute, using which connection. I am adding in a screenshot below, but generally, the syntax for what I need is exec ? = usp_storedprocedurenamehere. (See screenshot 1). Then, when I go to the Parameter Mapping screen, I select the variable I am capturing the integer into, change the direction to be ReturnValue, and leave the default Data Type as LONG. Here is where I get stumped - The ParameterName needs to be 0 (that is a zero). (See screenshot 2) For Input/Ouput parameters, you can specify the numerical sequence of the parameter, or the parameter name. I will show that in another blog post.

Well, this is a short and sweet post - mostly to give me somewhere I can look when I forget, yet again. :)

Talk to you later!

Read more: SSIS - Stored Procedures with Return Values

Write comment (0 Comments)

TSQL Tuesdays # 47

This month's topic is all about SWAG. Kendal Van Dyke (blog | twitter) is hosting this month and wants to know "the story about the best SQL Server swag you've ever received." This is definitely a topic that will have some fun answers. :)

I know there will be several people this month who will have to really think about what the best SWAG they have received is. They will have to look at several things before making a decision. I am not in that predicament - not yet anyway. Of course, if any vendors are reading this, feel free to send me some stuff to put me in that position! :)

I have received exactly 1 thing so far that is my favorite (I have actually only received 2 things, so my choice was not hard). During TechEd 2013, there were daily A&Q themed twitter posts from Microsoft. I participated each day - and I won! I have never won anything, so it was a lot of fun. The prize was a USB power stick. I had never heard of these things before, so I read the instructions that came with it. It is an 8GB flash drive, and also keeps a charge that you can use to power other electronic devices. At the time I got it I wasnt sure where I would use it, but there have been 2 specific times it has come in really handy.

  1. I went on a trip with my son this past summer. We went to the easternmost point of the US (up in Maine), saw a couple of waterfalls, and went through Kentucky and Florida before coming home to Louisiana. I brought it with me and it was a good thing. We went camping (with a tent and sleeping on the ground - real camping stuff) and I was able to still use my ipod touch because of it.
  2. On the same said trip, while in Kentucky, my friend/coworker, Joe, and I went to a music festival. We got to see Willie Nelson (woo hoo!). Joe didnt have his phone charged - voila! - I was able to help him out. Without that, he wouldnt have gotten pictures of Willie Nelson. (I just had to say his name again - it was sooo exciting and I was up standing up front real close).

Pic coming as soon as I get home! :)

So, my favorite SWAG helped me help a friend - and he got more pictures of Willie Nelson. I am sure there will be someone who can beat that - I am excited about reading the other posts. Thanks Kendal for hosting this month!


EDIT: 10/8 9:26 PM CST - here is the picture! :)


Write comment (0 Comments)

SQL Saturday - Dallas #255 - 2013 (I'm Presenting)

I will be presenting at SQL Saturday in Dallas on Nov 2, 2013.  Check out the other wonderful sessions too.  See you there!

Write comment (0 Comments)

Tattered Old Books vs. Shiny New Ones and Osmosis

I am currently moving from 1 house to another one, approximately 2 miles away. With all the packing and cleaning - uggg... I am sick of it! :) A big problem for me in the new house is limited storage space - and the number of books I have. I use books as a resource, so I have a LOT of them. In fact, when I am pursuing learning or advancing my knowledge in any area, I tend to think about books as my first resource, then online, and finally paid training classes. I have books on writing BASIC code; I even found a book that I remember my dad using to write programs on the Commodore. (Dont snicker - I know that gives away my age, but if you are only as old as you feel, I am not that old. :) )

When I was re-packing the books into a better, stronger box, ** magically **, I found something I hadnt seen in years. My old MS ACCESS book!! (dont groan too loud) This book is so worn out - the front cover is completely off even though I had taped it back on years before; soooo many pages are highlighted and written on; and it is really tattered. When I saw this book, it brought back so many good memories, and I realized, this is exactly how a technical book should look like!

I also thought about all the books I have acquired in the last year and a half. I can gauge how much learning I have wanted to do, by how many books I have. It hit me like a ton of bricks, that I havent read/used them in the same way I did that ACCESS book. I think there has been a paradigm shift in my thinking - that if I own a book, I will just somehow know all the answers that it contains. It made me realize that I really need to buckle down and read them - and actually use them in the same way as I have before. Maybe not every one of them, but enough to know that I am actually moving forward with my learning, not learning just enough to put out fires. That kind of behaviour makes it easy to trick myself into thinking I am moving forward, when in reality, I am just getting by.

My father taught me that if you get 1 idea from a book, it was worth reading (no matter how boring the rest of it was). That logic was something he really instilled in me - and something I have tried to pass on to my kids. Even though all the books I have are a pain to keep around sometimes, I wouldnt give them up for anything. I love the feel of having something tangible that I can open when I have a problem. I love knowing I can thumb through something and find what I am looking for.

One of these days I should probably leap forward into the technology age of reading books on a tablet, etc. - even my mother reads on a Kindle Fire! I am not there yet though. Somedays I feel behind the times, but other days, I just hug my books and smile.

Write comment (0 Comments)

Transformations Not Visible When You Open A Package

This isnt a "problem", its just really annoying. :) When I open some of my SSIS packages (2008 R2), I have to scroll to the left and up just to see my transformations. I put up with it for a long time, but when I got to work today (on a Monday), I was already tired and a bit upset. Then, I said "enough is enough!" and promptly tried to fix this. What I noticed for each of the packages that were like this, was the text was smaller, almost like the zoom was different than on other packages.

I looked and looked for a zoom in the menu options - but I didnt see anything. So, last but not least, I right clicked in the Control Flow open space (there are several things I access from there) and Voila! Here are the steps for fixing this:

  1. Right-click in the Control Flow open space
  2. Choose Zoom... 100 %
  3. Make a small change to a transformation (just move it a little)
  4. Save and close the package
  5. Open the package -a nd again... voila!

Its crazy how easy that was and how long I put up with it. :) Hope this makes someone's day, like mine.

For those of you who are much more of a code junkie and dont want to use the GUI, you can use the "view code" and change the "PersistedZoom" value to 100. You will also have to open the designer and move a package, then save and close in order for the change to be seen.

Write comment (0 Comments)


Powered by mod LCA