@echo off @if not "%OS%"=="Windows_NT" goto :EXIT rem **************************************************************** rem Script for UniFi Replication rem Created: 06/08/2000 by Dmitri Levin rem Last Modified: rem **************************************************************** rem **************************************************************** rem Variable definitions rem **************************************************************** set db-name=unifipc set replic-dir=\\nt_los\replictn set replic-db=E:\Database\UniFiRPT\%db-name% set log-file=%replic-dir%\replictn.log rem to Stop Replication create empty file named stop-replic.txt if exist %replic-dir%\stop-replic.txt goto :EXIT rem standard variables set dlc=d:\dlc83c set path=%dlc%\bin;%path% set replic-ai=%replic-dir%\%db-name% set date-file=%replic-dir%\today.out rem **************************************************************** rem Main Block rem **************************************************************** for /f "delims=," %%A in ( 'date /t' ) do set curr-day=%%A set file-day= if exist %date-file% ( for /f "delims=," %%A in ( %date-file% ) do set file-day=%%A) if not "%curr-day%"=="%file-day%" call :PROCEDURE-FIRST-RUN call :PROCEDURE-TIME rem Check replication database is available if not exist %replic-db%.db echo Replication Database does not exist -- %curr-time% >> %log-file% if not exist %replic-db%.db goto :NO-REPLICATION if exist %replic-db%.lk echo Replication Database is in use -- %curr-time% >> %log-file% if exist %replic-db%.lk goto :NO-REPLICATION set ai-cnt=0 rem Replicate AI extnets :MAIN-LOOP call :PROCEDURE-FIND-FIRST-AI if not exist %replic-ai%.ai%ai-num% goto :REPLIC-DONE call :PROCEDURE-APPLY-AI goto :MAIN-LOOP :REPLIC-DONE call :PROCEDURE-TIME if "%ai-cnt%"=="0" ( echo AI extent could not be found -- %curr-time% >> %log-file% ) else echo %ai-cnt% AI applied --- %curr-time% >> %log-file% echo . >> %log-file% if "%ai-cnt%"=="0" call :PROCEDURE-E-Mail :NO-REPLICATION goto :EXIT rem **************************************************************** rem APPLY AI PROCEDURE rem **************************************************************** :PROCEDURE-APPLY-AI echo Attempt to apply %replic-ai%.ai%ai-num% -- %curr-time% >> %log-file% %COMSPEC% /C _rfutil.exe %replic-db% -C roll forward -a %replic-ai%.ai%ai-num% del /q %replic-ai%.ai%ai-num% rem Add 1 to AI count set /a value=%ai-cnt% set /a value+=1 set ai-cnt=%value% goto :EXIT rem **************************************************************** rem FIND FIRST AI PROCEDURE rem **************************************************************** :PROCEDURE-FIND-FIRST-AI set ai-num=0 for %%A in ( %replic-ai%.ai* ) do call :PROCESS1 %%A goto :EXIT :PROCESS1 rem I assume here that neither NT name nor directories have a periods in the name for /f "delims=. tokens=2" %%A in ("%1") do set tmp-num=%%A set tmp-num=%tmp-num:~2% set /a value1=%tmp-num% set /a value2=%ai-num% if "%ai-num%"=="0" ( set ai-num=%tmp-num% ) && ( goto :EXIT ) if %value1% LSS %value2% set ai-num=%tmp-num% goto :EXIT goto :EXIT rem **************************************************************** rem TIME PROCEDURE rem **************************************************************** :PROCEDURE-TIME for /f %%A in ( 'time /t' ) do set curr-time=%%A goto :EXIT rem **************************************************************** rem E-Mail PROCEDURE rem **************************************************************** :PROCEDURE-E-Mail set email-file=%main-dir%\message.txt echo Check replication on NT_LOS box ( replic.bat ) AT scheduler > %email-file% echo apply-ai.bat script could not find any AI extents on NT_LOS >> %email-file% echo . >> %email-file% date /t >> %email-file% CALL :PROCEDURE-TIME echo at %curr-time% >> %email-file% echo . >> %email-file% echo apply-ai.bat script >> %email-file% blat.exe %email-file% -t to-address@company.com -c copy-to-address@company.com -s "Replication not Started. Check NT_Source." -i NTscript@company.com -f from-address@company.com -server SMTP_MAIL del %email-file% goto :EXIT rem **************************************************************** rem FIRST-RUN PROCEDURE - is running only during first replication of the day rem **************************************************************** :PROCEDURE-FIRST-RUN set line=******************************************* rem Log File entry for the day echo %line% >> %log-file% date /T >> %log-file% echo %line% >> %log-file% date /t > %date-file% rem **************************************************************** rem FIRST-RUN PROCEDURE END rem **************************************************************** goto :EXIT :EXIT