Hi
Everyone,
Recently
I came across an issue where ords service on windows was getting stopped due to
some reason. It was hard to monitor as they had no mechanism to monitor this.
To
mitigate the problem, I wrote a batch script which will monitor ords service’s
uptime on windows . The script will send a mail once notifying service has gone
down.
Save the
following script in .bat format and schedule it as per your requirement in task
scheduler.
@echo off setlocal
enabledelayedexpansion set
my_date=%date% set
my_time=%TIME% set
my_hours=%my_time:~0,2% set
my_minutes=%my_time:~3,2% set
my_seconds=%my_time:~6,2% REM Define
variables set
APEX_URL=http://server1.example.com:7799/ords set
MAIL_RECIPIENT='soumya.das@testmail.com' set
SMTP_SERVER=smtp.office365.com set
SMTP_PORT=587 set
MAIL_SENDER=notification@example.com set
MAIL_SUBJECT="Oracle APEX URL Status" set
SMTP_USER=emr-notification@example.com set
SMTP_PASSWORD=xyz123# set
SUBJECT="Apex down Alert" set
HOSTNAME=%COMPUTERNAME% REM Check if
the URL is accessible curl -s -o
NUL -w "%%{http_code}" %APEX_URL% > D:\response.txt REM Check if
D:\response.txt exists if not exist
D:\response.txt ( REM If D:\response.txt is not present,
send email notification powershell.exe
-command "Send-MailMessage -From '%MAIL_SENDER%' -To %MAIL_RECIPIENT%
-Subject '%SUBJECT%' -Body 'Oracle APEX URL is not accessible at %HOSTNAME%
.Apex Service is down.' -SmtpServer '%SMTP_SERVER%' -Port %SMTP_PORT% -UseSsl
-Credential (New-Object PSCredential('%SMTP_USER%', (ConvertTo-SecureString
'%SMTP_PASSWORD%' -AsPlainText -Force)))" ) REM Read the
HTTP status code set /p
HTTP_STATUS=<D:\response.txt REM Check if
HTTP status code is 000, indicating a failure if
"%HTTP_STATUS%" equ "503" ( powershell.exe -command
"Send-MailMessage -From '%MAIL_SENDER%' -To %MAIL_RECIPIENT% -Subject
'%SUBJECT%' -Body 'Oracle APEX URL is not accessible at %HOSTNAME%.Apex
Service is down.' -SmtpServer '%SMTP_SERVER%' -Port %SMTP_PORT% -UseSsl
-Credential (New-Object PSCredential('%SMTP_USER%', (ConvertTo-SecureString
'%SMTP_PASSWORD%' -AsPlainText -Force)))" ) else if
"%HTTP_STATUS%" equ "000" ( powershell.exe -command
"Send-MailMessage -From '%MAIL_SENDER%' -To %MAIL_RECIPIENT% -Subject
'%SUBJECT%' -Body 'Oracle APEX URL is not accessible at %HOSTNAME%.Apex
Service is down.' -SmtpServer '%SMTP_SERVER%' -Port %SMTP_PORT% -UseSsl
-Credential (New-Object PSCredential('%SMTP_USER%', (ConvertTo-SecureString
'%SMTP_PASSWORD%' -AsPlainText -Force)))" ) REM Cleanup
temporary files del
D:\response.txt endlocal |