Description
This guide to create and run WLF_srchLogRlMaintenance
Purpose :
Removes partitions from WLF_RL* tables (excluding WLF_RL_MESSAGE* tables) that were created for customer filtering before MIN_DATE_TO_KEEP parameter (including empty partitions).
Removes partitions from WLF_SRCH_LOG table which monthly interval high value is before MIN_DATE_TO_KEEP parameter.
Symptom
To housekeeping data from WLF_SRCH_LOG table.
Resolution
Below step to Run WLF_srchLogRlMaintenance :
1. Create batch script for parameter
2. Create batch script for process
3. Create Backup Table sql file, you can choose will backup on Database or on File
3.1. Create backup on Database.
3.2. Create backup on File.
4. Create Task Scheduler
5. Run Task Scheduler
Step 1 Create batch script for parameter
1. Create New text file
2. Add below :
@echo off
set DB_SERVER=localhost
set DB_WLF=WLF_APP_user
set DB_WLF_PWD=P@ssw0rd
set WL_LOG=C:\ACTIMIZE\Batch\
set AIS_RUN_UTILITY=C:\ACTIMIZE\AIS_SERVER\ais_run.exe
set WLF_SERVER=localhost
set WLF_PORT=2355
set WLF_USER=admin
set WLF_PASSWORD=password
3. Makesure the path folder and value is correct.
4. Save with name process_config.bat
Step 2 Create batch script for process
1. Create new text file
2. Add below :
@echo off
:: Purpose :
:: Removes partitions from WLF_RL* tables (excluding WLF_RL_MESSAGE* tables) that were created for customer filtering before MIN_DATE_TO_KEEP parameter (including empty partitions).
:: Removes partitions from WLF_SRCH_LOG table which monthly interval high value is before MIN_DATE_TO_KEEP parameter.
call D:\ACTIMIZE\batch\process_config.bat
rem call C:\ACTIMIZE\Batch\WLF\process_config.bat
::Parameter
set DAY_TO_KEEP=30
set OUTPUT=D:\ACTIMIZE\batch\WLF_SRCH_LOG_BAK.csv
:GetDate
::GET CURRENT DATE
ECHO %date% %time% - Information : Get Current Date Started
ECHO %date% %time% - Information : Get Current Date Started >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
for /f %%A in ('sqlcmd -S%DB_SERVER% -U%DB_WLF% -P%DB_WLF_PWD% -dWLF_APP -W -Q "SET NOCOUNT ON; SELECT CONVERT(VARCHAR, GETDATE()-%DAY_TO_KEEP%, 112) AS FormattedDate;"') do set MIN_DATE_TO_KEEP=%%A
echo %MIN_DATE_TO_KEEP%
::Choose Backup Data, rem if not used
rem goto BackupDataToDatabase
goto BackupDataToFile
:BackupDataToDatabase
ECHO %date% %time% - Information : Backup Data Started
ECHO %date% %time% - Information : Backup Data Started >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
sqlcmd -S%DB_SERVER% -U%DB_WLF% -P%DB_WLF_PWD% -dWLF_APP -W -i "C:\ACTIMIZE\Batch\WLF\Backup_WLF_SRCH_LOG.sql" -v Tanggal="%MIN_DATE_TO_KEEP%"
If NOT Errorlevel 0 goto Actimize_ERROR
If Errorlevel 1 goto Actimize_Error
echo %date% %time% - Information: Backup Data Completed
echo %date% %time% - Information: Backup Data Completed >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
goto RunMaintenance
:BackupDataToFile
ECHO %date% %time% - Information : Backup Data Started
ECHO %date% %time% - Information : Backup Data Started >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
bcp "SELECT * FROM ACTONE..alerts WHERE alert_date < CAST('%MIN_DATE_TO_KEEP%' as datetime); " queryout "%OUTPUT%" -c -t"," -T -S %DB_SERVER%
rem bcp "SELECT * FROM WLF_APP..WLF_SRCH_LOG WHERE JOB_TIMESTAMP < CAST('%MIN_DATE_TO_KEEP%' as datetime); " queryout "%OUTPUT%" -c -t"," -U%DB_WLF% -P%DB_WLF_PWD% -S %DB_SERVER%
If NOT Errorlevel 0 goto Actimize_ERROR
If Errorlevel 1 goto Actimize_Error
echo %date% %time% - Information: Backup Data Completed
echo %date% %time% - Information: Backup Data Completed >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
goto RunMaintenance
:RunMaintenance
echo %date% %time% - Information : Search Log Maintenance Started
echo %date% %time% - Information : Search Log Maintenance Started >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
rem %AIS_RUN_UTILITY% -s%WLF_SERVER% -t%WLF_PORT% -u%WLF_USER% -p%WLF_PASSWORD% -eAML_EWLF_srchLogRlMaintenance -a%MIN_DATE_TO_KEEP% -d"SearchLog Maintenance"
If NOT Errorlevel 0 goto Actimize_ERROR
If Errorlevel 1 goto Actimize_Error
echo %date% %time% - Information: Search Log Maintenance Completed
echo %date% %time% - Information: Search Log Maintenance Completed >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
goto Actimize_EXIT
:Actimize_ERROR
echo %date% %time% - Error in Run
echo %date% %time% - Error: Error in Run >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
exit /b 1
:Actimize_EXIT
echo %date% %time% - Finish Run
echo %date% %time% - Information: Finish Run. All process successfully completed. >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
exit /b 0
3. Make sure parameter is correct
4. Save file with name WLF_srchLogRlMaintenance.bat
Step 3.1 Create Backup Table sql file on Database
1. Create new file text
2. Add below :
USE WLF_APP;
IF OBJECT_ID('WLF_APP.[dbo].[WLF_SRCH_LOG_BAK]', 'U') IS NOT NULL
BEGIN
-- [KONDISI 1] Jika tabel SUDAH ADA, gunakan INSERT INTO
PRINT 'Tabel sudah tersedia. Menjalankan query INSERT INTO...';
SET IDENTITY_INSERT WLF_APP.dbo.WLF_SRCH_LOG_BAK ON;
INSERT INTO WLF_APP.dbo.WLF_SRCH_LOG_BAK
([ID]
,[JOB_ID]
,[JOB_NAME]
,[JOB_TIMESTAMP]
,[PARTY_KEY]
,[PARTY_FULL_NAME]
,[PARTY_IDS]
,[PARTY_COUNTRIES]
,[IS_PRE_FILTERED]
,[NUMBER_OF_HITS]
,[IS_ALERT]
,[ACT_ALERT_SCORE])
SELECT
[ID]
,[JOB_ID]
,[JOB_NAME]
,[JOB_TIMESTAMP]
,[PARTY_KEY]
,[PARTY_FULL_NAME]
,[PARTY_IDS]
,[PARTY_COUNTRIES]
,[IS_PRE_FILTERED]
,[NUMBER_OF_HITS]
,[IS_ALERT]
,[ACT_ALERT_SCORE]
FROM WLF_APP..WLF_SRCH_LOG
WHERE JOB_TIMESTAMP < CAST('$(Tanggal)' as datetime);
END
ELSE
BEGIN
-- [KONDISI 2] Jika tabel BELUM ADA, gunakan SELECT INTO
PRINT 'Tabel belum tersedia. Menjalankan query SELECT INTO...';
SELECT *
INTO WLF_APP.dbo.WLF_SRCH_LOG_BAK
FROM WLF_APP..WLF_SRCH_LOG
WHERE JOB_TIMESTAMP < CAST('$(Tanggal)' as datetime);
END
3. Make sure parameter is correct
4. Save file with name Backup_WLF_SRCH_LOG.sql
Step 3.2 Create Backup Table sql file on File
1. Open File Batch Script in Step 2
2. Add below :
:BackupDataToFile
ECHO %date% %time% - Information : Backup Data Started
ECHO %date% %time% - Information : Backup Data Started >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
bcp "SELECT * FROM ACTONE..alerts WHERE alert_date < CAST('%MIN_DATE_TO_KEEP%' as datetime); " queryout "%OUTPUT%" -c -t"," -T -S %DB_SERVER%
rem bcp "SELECT * FROM WLF_APP..WLF_SRCH_LOG WHERE JOB_TIMESTAMP < CAST('%MIN_DATE_TO_KEEP%' as datetime); " queryout "%OUTPUT%" -c -t"," -U%DB_WLF% -P%DB_WLF_PWD% -S %DB_SERVER%
If NOT Errorlevel 0 goto Actimize_ERROR
If Errorlevel 1 goto Actimize_Error
echo %date% %time% - Information: Backup Data Completed
echo %date% %time% - Information: Backup Data Completed >> %WL_LOG%\SearchLog_Maintenance_%FMT_DT%.log
goto RunMaintenance
3. Save File
Step 4 Create Task Scheduler
1. Open Task Scheduler
2. Create Task....
3, Fill Name
4. Fill Trigger : When the job running
5. Fill Action : Choose batch script WLF_srchLogRlMaintenance.bat
6. Save
Step 5 Run The Job
1. You can try the job from Task Scheduler
2. You can try the job from command prompth