Properties check
There is a process that watches changes in MG properties and, if any, sends notification email to OPS about them. Currently applies to LH, A3 and EW.
Process takes MG properties and writes them in log files. The following query is used:
select strkey,strValue,strDefaultValue from allotmentproperties
union all select strkey,strValue,strDefaultValue from basicsproperties
union all select strkey,strValue,strDefaultValue from confirmationproperties
union all select strkey,strValue,strDefaultValue from contractcontrolproperties
union all select strkey,strValue,strDefaultValue from contractingproperties
union all select strkey,strValue,strDefaultValue from filecheckerrorsproperties
union all select strkey,strValue,strDefaultValue from flightclosureproperties
union all select strkey,strValue,strDefaultValue from flightcontrolproperties
union all select strkey,strValue,strDefaultValue from flightdeckproperties
union all select strkey,strValue,strDefaultValue from flightscheduleproperties
union all select strkey,strValue,strDefaultValue from interfaceproperties
union all select strkey,strValue,strDefaultValue from inventoryproperties
union all select strkey,strValue,strDefaultValue from invoicingproperties
union all select strkey,strValue,strDefaultValue from jobmachineproperties
union all select strkey,strValue,strDefaultValue from paxflightclosureproperties
union all select strkey,strValue,strDefaultValue from pay_paymentproperties
union all select strkey,strValue,strDefaultValue from reportingproperties
union all select strkey,strValue,strDefaultValue from servicemaxcountproperties
union all select strkey,strValue,strDefaultValue from specialserviceproperties
union all select strkey,strValue,strDefaultValue from systemproperties
union all select strkey,strValue,strDefaultValue from tsaconverterproperties
union all select strkey,strValue,strDefaultValue from usr_ourproperties
union all select strkey,strValue,strDefaultValue from webbookingproperties
order by strKey;
General logic of the process
-
Check if diff file already exists. If yes - send notification email as there's unresolved conflict (7). If no - continue processing (2)
-
Write current properties in a file, name follows pattern of properties-new.log
-
Check if old file is present. If yes - create a diff file comparing two versions. Old file name follows pattern of properties-old.log
-
Check if diff file is present. Diff file name follows pattern of properties.diff
-
If there is no diff file, new file is renamed to old file rewriting it
-
If there is a diff file and it is empty, diff file and old index file are removed. New file is renamed to old file
-
If there is non-empty diff file, email is sent that includes diff file contents
In case any exception happens during the process, it is written in exceptions-${today}.log
Solving the conflict
Main point of this monitoring is to make sure no unintentional changes are made to properties as well as help investigating customer tickets if something is suddenly not working as intended. As such, make sure that the changes are not a mistake.
After confirmation, diff file and old properties file must be removed, new properties file should be then renamed to old file name pattern. From that point monitoring will resume as usual.