Skip to main content

Runbook: [Repush PMS Reservation After DB/OTA/CM Down]

Service[Channel Manager / tripla Link v1]
Owner Team slack handle[@bnl-team-a and @bnl-team-c]
Team's Slack Channel#bnl-teams-a dan #bnl-teams-c

Table of Contents


This section links to the most relevant resources for an engineer responding to this alert.

DescriptionLink / Detail
Slack Notif Server#bnl-notif-server
Aurora Performance InsighentAWS Aurora
BNL Uptime KumaUptime Kuma Channel Manager

1. Triage

Goal: Ensure that reservations received by the OTA are successfully sent to the PMS when there is a downtime in the Database / OTA service / Channel Manager


Step - Notification Validation

There are several validations that can be performed before repushing PMS reservations. Repushing reservations can only be done if the Channel Manager / Tripla Link is back UP and the database condition is normal.

1.1 Here is how to check the status of the Channel Manager:

  1. Log in to BNL Uptime Kuma
  2. Select PROD - Channel Manager from the Monitor List
  3. Check whether the status is Up or Down

If it is Up, it will display a status like the following example:

Check Uptime Kuma

Additionally, you can also check the up status by directly accessing admin.bookandlink.com. If you can log in and access the admin page, then the Channel Manager is already Up.

1.2 Here is how to check the load status of the Database:

Under normal conditions, the database load wait will be below 1.

Check Uptime Kuma

In the example above, the highest db load wait is at 0.6. If it is like this, it means the db load is already normal.


2. Decision Point

  • IF the status is normal at points 1.1 and 1.2 :

    • ➡️ Proceed to: [[#4. True Incident]]
  • IF the status is not normal at points 1.1 and 1.2:

    • ➡️ Proceed to: [[#3. False Alarm]]

3. False Alarm

If:

  • Channel Manager status is Up but db load wait is still high

Then it is likely caused by:

  • There are still sync processes (OTA / PMS) running after DB Down

Actions:

  1. No action is needed if this false alarm occurs
  2. Wait until DB load returns to normal
  3. Monitor DB load until it returns to normal

4. True Incident

If the channel manager and DB load are normal and UP, then you can proceed with the process of repushing PMS reservations. Here are the steps:


4.1. Recover the System

For PMS itself, there are 2 types of PMS, namely: XML and API. Here is how to check and repush. Because the logs for both are stored in different databases:

4.1.1. PMS XML

For PMS XML, logs are stored in the prod-channel-manager-db database. Here is how to check and repush:

1. Run a query on the prod-channel-manager-db database to get the number of data that needs to be repushed

The query is:

SELECT 
T0.id,
T0.pms_id,
T0.booking_id,
T0.property_id,
T0.`timestamp`,
T0.pms_confirmation_timestamp,
T1.pms_notification_type
FROM
pms_resa_update_new T0
LEFT JOIN external_site_user T1 ON T0.pms_id = T1.ota_id AND T0.property_id = T1.property_id
WHERE
(`timestamp` >= '2026-03-17 14:25:00' AND `timestamp` <= '2026-03-17 15:12:00')
AND pms_confirmation_timestamp = '0000-00-00 00:00:00'
AND pms_notification_type = 1
GROUP BY
T0.id
ORDER BY
id DESC;
2. Result for reservations that need to be repushed

Result PMS XML

3. Repush PMS XML

To repush PMS XML, you can do the following:

  1. Impersonate the property known to have the issue.
  2. Go to the PMS Log menu
  3. Select the Reservations sub-menu
  4. Search for the reservation ID in the Res # column
  5. Enter the superadmin password / portal password in the password field
  6. Tick or check the reservations you want to repush
  7. Click the Repush button

Result PMS XML

4.1.2. PMS API

For PMS API, the repush method is the same as PMS XML, only the query is different. Here is the query for PMS API:

1. Run a query on the prod-channel-manager-db database to get the number of data that needs to be repushed
SELECT 
T0.id,
T0.pms_id,
T0.booking_id,
T0.property_id,
T0.`timestamp`,
T0.pms_confirmation_timestamp,
T1.pms_notification_type
FROM
pms_api_reservation T0
LEFT JOIN external_site_user T1 ON T0.pms_id = T1.ota_id AND T0.property_id = T1.property_id
WHERE
(`timestamp` >= '2026-03-17 14:25:00' AND `timestamp` <= '2026-03-17 15:12:00')
AND pms_confirmation_timestamp = '0000-00-00 00:00:00'
AND pms_notification_type = 1
GROUP BY
T0.id
ORDER BY
id DESC;
2. Result for reservations that need to be repushed

Result PMS API

3. Repush PMS API

To repush PMS API, you can do the following:

  1. Impersonate the property known to have the issue.
  2. Go to the PMS Log menu
  3. Select the Reservations sub-menu
  4. Search for the reservation ID in the Res # column
  5. Enter the superadmin password / portal password in the password field
  6. Tick or check the reservations you want to repush
  7. Click the Repush button

Result PMS XML


4.1. Clean up

After the repush process is complete, wait about 5-10 minutes for the repush process. Here is an example if the repush process has finished.

Success Repush

The result column will display success and the Time Confirm is not empty.