ADSM-L

Re: Automatic checkin on a 3584?

2003-03-03 09:18:12
Subject: Re: Automatic checkin on a 3584?
From: "Kauffman, Tom" <KauffmanT AT NIBCO DOT COM>
To: ADSM-L AT VM.MARIST DOT EDU
Date: Mon, 3 Mar 2003 08:54:30 -0500
Dan --

I've been running a perl script on AIX to do this for several years (STK
9710 first, then the 3584).

My script tails the TSM log and works in this order:
1. 'checkin libv <library> search=bulk stat=private checklabel=barcode'
2. look for the ANR8373I message, peel off the reply number, and issue the
'REPLY #'
3. look for the ANR8430I message, peel off the volume number, and update the
volume to access readwrite
4. look for the ANR8431I and exit

By checking all volumes in as private and then updating to read/write the
corner cases go away; expired tapes go scratch, old database backups stay
private until deleted, and (big one) No Thinking Is Required. And by using
perl and the File::Tail module, there's no requirement for 'sleep' and no
timing issues if TSM goes off to do tape dismounts right after you fire up
the script.

The process uses Owen Crow's Adsm.pm perl module from several years ago --
let me know if you want to take a swack at what I've got.

Tom Kauffman
NIBCO, Inc

-----Original Message-----
From: Dan Foster [mailto:dsf AT GBLX DOT NET]
Sent: Monday, March 03, 2003 3:24 AM
To: ADSM-L AT VM.MARIST DOT EDU
Subject: Automatic checkin on a 3584?


Howdy -

        I seem to be having some sort of timing issues with the checkin
process via an automated script. The procedure:

        1. Fill the I/O station(s) with brought back tapes to be checkin'd
        2. Issue a 'checkin libvol <library> search=bulk status=scratch
                checklabel=barcode'
        3. Wait a bit for a request to appear in the request queue
        4. Issue a reply corresponding to what appears in 'q req'
        5. Wait a bit for the whole checkin process to finish in search mode
        6. Issue a 'checkin libvol <library> search=bulk status=private
                checklabel=barcode'
        7. Wait a bit for a request to appear in the request queue
        8. Issue a reply corresponding to what appears in 'q req'

        Manually, works great. My script parses all data just fine using
dsmadmc in batch mode (with -id= -pass=...) and the command syntax is
correct -- I know because it works fine by hand.

        I'm a little stuck in getting the exact timing *just right* for the
delays as well as the best way to construct a while loop logic to get the
timing right. It just runs through it so fast that it exits before it's
got a chance to answer both requests. Detecting certain corner cases seems
a little interesting when you throw in vagaries of timing, also.

        Alas, "cheating" by direct loading and using search=yes to avoid
the requests isn't an option for the weekly tape swaps. ;)

        Does anyone happen to have a similiar script fragment or even just
suggestions on how to construct the while loop 'just so'? :) Anything would
be much appreciated! (I'm trying to make the limited human interaction with
tapes reasonably bulletproof without requiring them to manually wade
through TSM - reduces chances of errors and not all personnel are skilled.)

-Dan

<Prev in Thread] Current Thread [Next in Thread>