ADSM-L

Re: [ADSM-L] TSM and Windows Cluster Environment

2007-07-12 15:59:50
Subject: Re: [ADSM-L] TSM and Windows Cluster Environment
From: Robben Leaf <robben.leaf AT USBANK DOT COM>
To: ADSM-L AT VM.MARIST DOT EDU
Date: Thu, 12 Jul 2007 14:56:36 -0500
We deal with enough Windows clusters that we have developed a batch file to
run on each potential failover host of a vnode within the cluster, to get
the services set up (you still need to manually configure the cluster
services that will control the local Windows services - I haven't scripted
that part of it because we use both Windows clustering and Veritas
clustering, and I haven't had the time to devote to it).

This batch file allows you to set up the services on the failover platforms
that are not the current host of the virtual node, WITHOUT failing them
over!

You do still need to plan ahead - you'll need to know what the cluster name
is, whether or not you want all of the drives in the vnode backed up under
one TSM node name, which drives are in the vnode, and which HTTP port the
client acceptor will listen on (keeping in mind that every vnode in the
cluster needs to use a unique HTTP port). It's assumed that the name of the
vnode is the name of the TSM node, unless individual drives in the vnode
are so big they need individual TSM nodes to handle them.

Copy the following into a batch file (we call ours tsmclsvc.bat), make
appropriate modifications, and then just copy the batch file onto each
cluster server on which you need to set up clustered services.
Double-click, and away you go. Remember, it needs to be run for EACH vnode,
on EACH physical host that vnode can fail over to. So if you have three
vnodes and two physical servers in your cluster, you'll need to run it six
times - three on each physical server.

@echo off
echo.
echo.
echo Is this physical host machine currently in control of the vnode and
its drives?
echo i.e. Can you access the vnode's clustered drive from here at the
moment?
echo.
set /p HOST=?
echo.
if (%HOST%) == () goto NOHOST

echo.
echo Enter the name of the virtual server (all caps).
echo.
set /p NODENAME=Nodename:
echo.
if (%NODENAME%) == () goto NONODE

echo.
echo Enter the name of the cluster.
echo.
set /p CLUSTERNAME=Clustername:
echo.
if (%CLUSTERNAME%) == () goto NOCLUST

echo.
echo Enter the drive letter in the virtual server
echo where the dsm.opt file goes (no colon) (e.g. G).
echo.
set /p DRIVE=Drive:
echo.
if (%DRIVE%) == () goto NODRIVE

echo.
echo If there are other drives in this vnode, BUT they have so much data
that
echo you need multiple TSM nodes to back them up, type "yes" at the prompt.
echo This will change the TSM node name to "%NODENAME%-%DRIVE%", and
echo this TSM node will ONLY back up the one drive you specified above.
echo.
echo If the vnode only has a single drive, or you want to back up all
echo of its drives under one TSM node, just press Enter.
echo.
echo Most of the time you should just press Enter here.
echo.
set /p RESTRICT=Restrict?
if (%RESTRICT%) == () goto OTHERS
set NODENAME=%NODENAME%-%DRIVE%
goto MORE

:OTHERS

echo.
echo Enter any other drive letters included in this virtual server (not the
whole cluster), WITH colons.
echo Separate multiple drives with spaces (e.g. H: J: K:).
echo All of these drives will back up under the same TSM node, and should
fail over together.
echo Just hit the Enter key for no additional drives.
echo.
set /p OTHERDRIVES=OtherDrives:
echo.
goto :MORE

:MORE

echo.
echo Enter the HTTPPORT that this node will use (e.g. 1591).
echo Remember, no two virtual servers in a cluster can use the same port.
echo.
set /p HTTPPORT=HTTPPORT:
echo.
if (%HTTPPORT%) == () goto NOHTTPPORT

echo.
echo Enter the TSM server that will back up this node.
echo Use tsm1, tsm2, tsm3, ...
echo (Update the above line to correspond with the definitions listed in
the script below)
echo.
set /p SERVERNAME=Servername:
if (%SERVERNAME%) == () goto NOSERVER

rem
*******************************************************************************
rem %1 = SERVERNAME
rem %2 = CLUSTERNAME
rem %3 = Shared DSM.OPT location
rem %4 = HTTPPORT
rem
*******************************************************************************

if (%HTTPPORT%) == (1591) set TCPCLPORT=1571
if (%HTTPPORT%) == (1592) set TCPCLPORT=1572
if (%HTTPPORT%) == (1593) set TCPCLPORT=1573
if (%HTTPPORT%) == (1594) set TCPCLPORT=1574
if (%HTTPPORT%) == (1595) set TCPCLPORT=1575
if (%HTTPPORT%) == (1596) set TCPCLPORT=1576
if (%HTTPPORT%) == (1597) set TCPCLPORT=1577
if (%HTTPPORT%) == (1598) set TCPCLPORT=1578
if (%HTTPPORT%) == (1599) set TCPCLPORT=1579

if (%SERVERNAME%) == (tsm1) set Svr=TSMSRV1
if (%SERVERNAME%) == (tsm1) set SVRADDR=TSMHOST1.your.company.com
if (%SERVERNAME%) == (tsm1) set PORT=1500
if (%SERVERNAME%) == (tsm1) goto NEXT
if (%SERVERNAME%) == (tsm2) set Svr=TSMSRV2
if (%SERVERNAME%) == (tsm2) set SVRADDR=TSMHOST2.your.company.com
if (%SERVERNAME%) == (tsm2) set PORT=1500
if (%SERVERNAME%) == (tsm2) goto NEXT
if (%SERVERNAME%) == (tsm3) set Svr=TSMSRV3
if (%SERVERNAME%) == (tsm3) set SVRADDR=TSMHOST2.your.company.com
if (%SERVERNAME%) == (tsm3) set PORT=1505
if (%SERVERNAME%) == (tsm3) goto NEXT
rem Modify and expand the above list to fit your environment

goto WRONGSRVR

:NEXT

rem
*******************************************************************************
rem Make sure we are in the right directory
rem
*******************************************************************************
rem if NOT exist .\DSMCUTIL.EXE GOTO WRONGDIR

rem
*******************************************************************************
rem Determine where the TSM client is installed
rem
*******************************************************************************
if exist C:\PROGRA~1\TIVOLI\TSM\BACLIENT\DSMCUTIL.EXE set
TSMDIR=C:\PROGRA~1\TIVOLI\TSM\BACLIENT
if exist C:\PROGRA~1\TIVOLI\TSM\BACLIENT\DSMCUTIL.EXE GOTO CHECK
if exist C:\TSM\BACLIENT\DSMCUTIL.EXE set TSMDIR=C:\TSM\BACLIENT
if exist C:\TSM\BACLIENT\DSMCUTIL.EXE GOTO CHECK

GOTO NOINSTALL

:CHECK

if (%HOST%) == (Y) goto MAIN1A
if (%HOST%) == (Yes) goto MAIN1A
if (%HOST%) == (y) goto MAIN1A
if (%HOST%) == (yes) goto MAIN1A
if (%HOST%) == (YES) goto MAIN1A

if (%HOST%) == (N) goto MAIN1B
if (%HOST%) == (No) goto MAIN1B
if (%HOST%) == (n) goto MAIN1B
if (%HOST%) == (no) goto MAIN1B
if (%HOST%) == (NO) goto MAIN1B

goto TRYAGAIN

rem
*******************************************************************************
rem   Main process: current server is host of vnode
rem
*******************************************************************************

:MAIN1A

if exist %DRIVE%:\TSM\DSM.OPT GOTO OPTEXIST
if not exist %DRIVE%:\TSM md %DRIVE%:\TSM

echo.                                                 >>
%DRIVE%:\TSM\DSM.OPT
echo ********************************************************     >>
%DRIVE%:\TSM\DSM.OPT
echo * IBM Tivoli Storage Manager                     >>
%DRIVE%:\TSM\DSM.OPT
echo * Option file generated by tsmclsvX.bat                >>
%DRIVE%:\TSM\DSM.OPT
echo ********************************************************     >>
%DRIVE%:\TSM\DSM.OPT
echo.                                                 >>
%DRIVE%:\TSM\DSM.OPT
echo * Communication Method                           >>
%DRIVE%:\TSM\DSM.OPT
echo COMMMETHOD               TCPip                         >>
%DRIVE%:\TSM\DSM.OPT
echo TCPSERVERADDRESS         %SVRADDR%               >>
%DRIVE%:\TSM\DSM.OPT
echo TCPPORT                  %PORT%                        >>
%DRIVE%:\TSM\DSM.OPT
echo TCPCLIENTPORT            %TCPCLPORT%                   >>
%DRIVE%:\TSM\DSM.OPT
echo HTTPPORT                 %HTTPPORT%              >>
%DRIVE%:\TSM\DSM.OPT
echo.                                                 >>
%DRIVE%:\TSM\DSM.OPT
echo * Client Node                                    >>
%DRIVE%:\TSM\DSM.OPT
echo NODENAME                 %NODENAME%              >>
%DRIVE%:\TSM\DSM.OPT
echo.                                                 >>
%DRIVE%:\TSM\DSM.OPT
echo * Access and Performance Options                       >>
%DRIVE%:\TSM\DSM.OPT
echo MANAGEDSERVICES          WEBCLIENT SCHEDULE            >>
%DRIVE%:\TSM\DSM.OPT
echo passwordaccess           generate                      >>
%DRIVE%:\TSM\DSM.OPT
echo tcpwindowsize            63                      >>
%DRIVE%:\TSM\DSM.OPT
echo tcpbuffsize              32                      >>
%DRIVE%:\TSM\DSM.OPT
echo txnbytelimit             25600                         >>
%DRIVE%:\TSM\DSM.OPT
echo largecommbuffers         no                      >>
%DRIVE%:\TSM\DSM.OPT
echo memoryefficient          no                      >>
%DRIVE%:\TSM\DSM.OPT
echo.                                                 >>
%DRIVE%:\TSM\DSM.OPT
echo * Cluster node                                   >>
%DRIVE%:\TSM\DSM.OPT
echo clusternode              yes                     >>
%DRIVE%:\TSM\DSM.OPT
echo.                                                 >>
%DRIVE%:\TSM\DSM.OPT
echo * Log File Retention                             >>
%DRIVE%:\TSM\DSM.OPT
echo errorlogr                10 d                    >>
%DRIVE%:\TSM\DSM.OPT
echo schedlogr                10 d                    >>
%DRIVE%:\TSM\DSM.OPT
echo.                                                 >>
%DRIVE%:\TSM\DSM.OPT
echo * Domain Statement                               >>
%DRIVE%:\TSM\DSM.OPT
echo domain                   %DRIVE%: %OTHERDRIVES%        >>
%DRIVE%:\TSM\DSM.OPT
echo.                                                 >>
%DRIVE%:\TSM\DSM.OPT
echo * log files                                >> %DRIVE%:\TSM\DSM.OPT
echo schedlogname             %DRIVE%:\tsm\dsmsched.log     >>
%DRIVE%:\TSM\DSM.OPT
echo errorlogname             %DRIVE%:\tsm\dsmerror.log     >>
%DRIVE%:\TSM\DSM.OPT

echo.
echo Option file for %NODENAME% is configured.

c:
cd %TSMDIR%

.\dsmcutil.exe install /name:"TSM Scheduler: %NODENAME%"
/clientdir:"%TSMDIR%" /optfile:%DRIVE%:\tsm\dsm.opt /node:%NODENAME%
/commmethod:tcpip /commserver:%SVRADDR% /commport:%PORT% /password:PASSWORD
/validate:no /autostart:no /startnow:no /clusternode:yes
/clustername:%CLUSTERNAME%

echo.
echo TSM Scheduler Service for %NODENAME% is configured.
rem
*******************************************************************************
rem The ping statements emulate Sleep, to allow the registry to fully
update before the next command runs.
rem
*******************************************************************************
ping 127.0.0.1 -n 2 -w 1000 > nul

.\dsmcutil.exe install cad /name:"TSM Client Acceptor: %NODENAME%"
/clientdir:"%TSMDIR%" /optfile:%DRIVE%:\tsm\dsm.opt /node:%NODENAME%
/password:PASSWORD /validate:yes /autostart:no /startnow:no
/httpport:%HTTPPORT% /cadschedname:"TSM Scheduler: %NODENAME%"

echo.
echo TSM Client Acceptor Service for %NODENAME% is configured.
ping 127.0.0.1 -n 2 -w 1000 > nul

.\dsmcutil.exe install remoteagent /name:"TSM Rmt Agent: %NODENAME%"
/optfile:%DRIVE%:\tsm\dsm.opt /node:%NODENAME% /password:PASSWORD
/validate:no /startnow:no /partnername:"TSM Client Acceptor: %NODENAME%"

echo.
echo TSM Remote Client Agent Service for %NODENAME% is configured.
ping 127.0.0.1 -n 2 -w 1000 > nul

.\dsmcutil.exe updatepw /node:%NODENAME% /commMethod:tcpip
/commServer:%SVRADDR% /commPort:%PORT% /password:PASSWORD
/oldpassword:PASSWORD /updateonserver:yes /clusternode:yes
/clustername:%CLUSTERNAME% /validate:yes

echo.
echo Password is reset.

goto CLEANUP

rem
*******************************************************************************
rem   Main process: current server is NOT host of vnode
rem
*******************************************************************************

:MAIN1B

if not exist C:\TSM\%NODENAME% md C:\TSM\%NODENAME%
if exist C:\TSM\%NODENAME%\DSM.OPT del C:\TSM\%NODENAME%\DSM.OPT

echo.                                                 >>
C:\TSM\%NODENAME%\DSM.OPT
echo ********************************************************     >>
C:\TSM\%NODENAME%\DSM.OPT
echo * IBM Tivoli Storage Manager                     >>
C:\TSM\%NODENAME%\DSM.OPT
echo ********************************************************     >>
C:\TSM\%NODENAME%\DSM.OPT
echo.                                                 >>
C:\TSM\%NODENAME%\DSM.OPT
echo * Communication Method                           >>
C:\TSM\%NODENAME%\DSM.OPT
echo COMMMETHOD               TCPip                         >>
C:\TSM\%NODENAME%\DSM.OPT
echo TCPSERVERADDRESS         %SVRADDR%               >>
C:\TSM\%NODENAME%\DSM.OPT
echo TCPPORT                  %PORT%                        >>
C:\TSM\%NODENAME%\DSM.OPT
echo TCPCLIENTPORT            %TCPCLPORT%                   >>
C:\TSM\%NODENAME%\DSM.OPT
echo HTTPPORT                 %HTTPPORT%              >>
C:\TSM\%NODENAME%\DSM.OPT
echo.                                                 >>
C:\TSM\%NODENAME%\DSM.OPT
echo * Client Node                                    >>
C:\TSM\%NODENAME%\DSM.OPT
echo NODENAME                 %NODENAME%              >>
C:\TSM\%NODENAME%\DSM.OPT
echo.                                                 >>
C:\TSM\%NODENAME%\DSM.OPT
echo * Access and Performance Options                       >>
C:\TSM\%NODENAME%\DSM.OPT
echo MANAGEDSERVICES          WEBCLIENT SCHEDULE            >>
C:\TSM\%NODENAME%\DSM.OPT
echo passwordaccess           generate                      >>
C:\TSM\%NODENAME%\DSM.OPT
echo tcpwindowsize            63                      >>
C:\TSM\%NODENAME%\DSM.OPT
echo tcpbuffsize              32                      >>
C:\TSM\%NODENAME%\DSM.OPT
echo txnbytelimit             25600                         >>
C:\TSM\%NODENAME%\DSM.OPT
echo largecommbuffers         no                      >>
C:\TSM\%NODENAME%\DSM.OPT
echo memoryefficient          no                      >>
C:\TSM\%NODENAME%\DSM.OPT
echo.                                                 >>
C:\TSM\%NODENAME%\DSM.OPT
echo * Cluster node                                   >>
C:\TSM\%NODENAME%\DSM.OPT
echo clusternode              yes                     >>
C:\TSM\%NODENAME%\DSM.OPT
echo.                                                 >>
C:\TSM\%NODENAME%\DSM.OPT
echo * Log File Retention                             >>
C:\TSM\%NODENAME%\DSM.OPT
echo errorlogr                10 d                    >>
C:\TSM\%NODENAME%\DSM.OPT
echo schedlogr                10 d                    >>
C:\TSM\%NODENAME%\DSM.OPT
echo.                                                 >>
C:\TSM\%NODENAME%\DSM.OPT
echo * Domain Statement                               >>
C:\TSM\%NODENAME%\DSM.OPT
echo domain                   %DRIVE%: %OTHERDRIVES%        >>
C:\TSM\%NODENAME%\DSM.OPT
echo.                                                 >>
C:\TSM\%NODENAME%\DSM.OPT
echo * log files                                >>
C:\TSM\%NODENAME%\DSM.OPT
echo schedlogname             %DRIVE%:\tsm\dsmsched.log     >>
C:\TSM\%NODENAME%\DSM.OPT
echo errorlogname             %DRIVE%:\tsm\dsmerror.log     >>
C:\TSM\%NODENAME%\DSM.OPT

echo.
echo Option file for %NODENAME% is configured.

c:
cd %TSMDIR%

.\dsmcutil.exe install /name:"TSM Scheduler: %NODENAME%"
/clientdir:"%TSMDIR%" /optfile:C:\tsm\%NODENAME%\dsm.opt /node:%NODENAME%
/commmethod:tcpip /commserver:%SVRADDR% /commport:%PORT% /password:PASSWORD
/validate:no /autostart:no /startnow:no /clusternode:yes
/clustername:%CLUSTERNAME%

echo.
echo TSM Scheduler Service for %NODENAME% is configured.
rem
*******************************************************************************
rem The ping statements emulate Sleep, to allow the registry to fully
update before the next command runs.
rem
*******************************************************************************
ping 127.0.0.1 -n 2 -w 1000 > nul

.\dsmcutil.exe install cad /name:"TSM Client Acceptor: %NODENAME%"
/clientdir:"%TSMDIR%" /optfile:C:\tsm\%NODENAME%\dsm.opt /node:%NODENAME%
/password:PASSWORD /validate:yes /autostart:no /startnow:no
/httpport:%HTTPPORT% /cadschedname:"TSM Scheduler: %NODENAME%"

echo.
echo TSM Client Acceptor Service for %NODENAME% is configured.
ping 127.0.0.1 -n 2 -w 1000 > nul

.\dsmcutil.exe install remoteagent /name:"TSM Rmt Agent: %NODENAME%"
/optfile:C:\tsm\%NODENAME%\dsm.opt /node:%NODENAME% /password:PASSWORD
/validate:no /startnow:no /partnername:"TSM Client Acceptor: %NODENAME%"

echo.
echo TSM Remote Client Agent Service for %NODENAME% is configured.
ping 127.0.0.1 -n 2 -w 1000 > nul

.\dsmcutil.exe updatepw /node:%NODENAME% /commMethod:tcpip
/commServer:%SVRADDR% /commPort:%PORT% /password:PASSWORD
/oldpassword:PASSWORD /updateonserver:yes /clusternode:yes
/clustername:%CLUSTERNAME% /validate:yes

echo.
echo Password is reset.
ping 127.0.0.1 -n 2 -w 1000 > nul

rem
*******************************************************************************
rem Now update the services so the referenced option file will be in the
correct place when a failover happens
rem
*******************************************************************************

.\dsmcutil.exe update /name:"TSM Scheduler: %NODENAME%"
/optfile:%DRIVE%:\tsm\dsm.opt
ping 127.0.0.1 -n 2 -w 1000 > nul

.\dsmcutil.exe update /name:"TSM Client Acceptor: %NODENAME%"
/optfile:%DRIVE%:\tsm\dsm.opt
ping 127.0.0.1 -n 2 -w 1000 > nul

.\dsmcutil.exe update /name:"TSM Rmt Agent: %NODENAME%"
/optfile:%DRIVE%:\tsm\dsm.opt

goto CLEANUP

:NOHOST
echo.
echo.
echo You must enter Yes or No. Find out if the server you are logged
echo in to is currently the host of the vnode, and restart the batch file.
echo.
echo.
pause
goto end

:WRONGDIR
echo.
echo.
echo tsmclsv1.bat must be run from the \TSM\BACLIENT directory.
echo.
echo.
echo Please change directory to the BACLIENT directory.
echo.
echo.
pause
goto end

:NONODE
echo.
echo The Virtual Server name is missing.
echo.
echo Re-execute tsmclsvc.bat and include the name of the clustered
echo virtual node.
echo.
echo.
pause
goto end

:NOCLUST
echo.
echo The Cluster Name is missing.
echo.
echo Re-execute tsmclsvc.bat and include the name of the cluster that the
echo virtual node is a part of.
echo.
echo.
pause
goto end

:NODRIVE
echo.
echo The DSM.OPT Volume letter is missing.
echo.
echo Re-execute tsmclsvc.bat and include the volume letter
echo where the DSM.OPT file should reside.
echo.
echo.
pause
goto end

:NOHTTPPORT
echo.
echo The HTTPPORT paramter is missing.
echo.
echo Re-execute tsmclsvc.bat and include the HTTPPORT.
echo Example: 1591
echo.
echo.
pause
goto end

:NOSERVER
echo.
echo The TSM Server abbreviation is missing.
echo.
echo Re-execute tsmclsvc.bat and include the TSM Server name that the
echo clustered node will back up to.
echo.
echo.
pause
goto end

:WRONGSRVR
echo.
echo ServerName parameter is incorrect, or is capitalized.
echo.
echo Re-execute tsmclsvc.bat and input the TSM server name as requested, in
lower case.
echo.
echo.
pause
goto end

:NOINSTALL
echo.
echo There doesn't seem to be a TSM client install in the default
locations.
echo Please ensure that the TSM client is installed in C:\TSM, or
C:\Program Files\Tivoli\TSM
echo and run this script again.
echo.
pause
goto end

:OPTEXIST
echo.
echo There is already a DSM.OPT file in %DRIVE%:\TSM\.
echo.
echo This batch file is for new configurations only. If there are no
services for
echo this vnode installed yet, you may delete the DSM.OPT file in
%DRIVE%:\TSM\
echo and run this script again.
echo.
pause
goto end

:TRYAGAIN
echo.
echo Sorry, you need to answer yes or no to the first question.
echo Please try again.
echo.
pause
goto end

:CLEANUP
if exist "C:\Program Files\VERITAS\Cluster Manager\bin\ClusterManager.exe"
vxvssprovider /unregserver
if exist "D:\Program Files\VERITAS\Cluster Manager\bin\ClusterManager.exe"
vxvssprovider /unregserver
pause
goto end

:USAGE
echo.
echo Usage rules;
echo tsmclsvc.bat
echo.
echo   Double-click on this batch file  when logged
echo     in to a physical server that can be a host to the vnode being set
up.
echo.
echo   The node must already be defined on the TSM server.
echo.
echo   You will be prompted for the following parameters:
echo.
echo     Host (yes/no):     Is the machine you are logged in to currently
hosting the vnode?
echo.
echo     Nodename:          The name of the node you are setting up, as
defined on the TSM server
echo.
echo     clustername:       The name of the cluster that the node is part
of
echo.
echo     Drive:             Volume letter in the vnode that the dsm.opt
file will reside on, e.g. L
echo.
echo     Restricted (yes?): Do you want to restrict this TSM node to back
up only one drive?
echo.
echo     OtherDrives:       Any other drives in the vnode, e.g. M: N:
echo.
echo     HTTPport:          Httpport CAD service will listen on, e.g. 1591,
1592,..
echo.
echo     Servername:        The TSM server that this node will back up to
echo.

:end

Robben Leaf
Enterprise Storage Backup and Retention
651-962-2698
robben.leaf AT usbank DOT com



             "Bos, Karel"
             <Karel.Bos@ATOSOR
             IGIN.COM>                                                  To
             Sent by: "ADSM:           ADSM-L AT VM.MARIST DOT EDU
             Dist Stor                                                  cc
             Manager"
             <[email protected]                                     Subject
             .EDU>                     Re: [ADSM-L] TSM and Windows
                                       Cluster Environment

             07/12/2007 10:26
             AM


             Please respond to
             "ADSM: Dist Stor
                 Manager"
             <[email protected]
                   .EDU>






Hi,

Yep, we and others have.

What are the problems you are running into? Installing ITSM clients in a
cluster is described in the ITSM client documentation.

Regards,

Karel


-----Original Message-----
From: ADSM: Dist Stor Manager [mailto:ADSM-L AT VM.MARIST DOT EDU] On Behalf Of
Richard Mochnaczewski
Sent: donderdag 12 juli 2007 17:19
To: ADSM-L AT VM.MARIST DOT EDU
Subject: TSM and Windows Cluster Environment

Hi *,

Has anyone successfully implemented TSM in a Windows Cluster environment
? We are running into various problems when trying to configure the TSM
client on certain servers in the cluster and IBM is not being very
helpful.

TSM Server : 5.3.3.0 running on AIX 5.2 ML9


Rich



------------------------------------------------------------------------------
Electronic Privacy Notice. This e-mail, and any attachments, contains 
information that is, or may be, covered by electronic communications privacy 
laws, and is also confidential and proprietary in nature. If you are not the 
intended recipient, please be advised that you are legally prohibited from 
retaining, using, copying, distributing, or otherwise disclosing this 
information in any manner. Instead, please reply to the sender that you have 
received this communication in error, and then immediately delete it. Thank you 
in advance for your cooperation.
==============================================================================

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