Contents
- Overview
- Solution: Assign a Unique AMS ID
-
Notes: “Message Queue Full” /
amsStoreFullStore Saturation - Frequently Asked Questions
Overview
If an AMS node appears as NOT AVAILABLE in tp_qcli -s -n after an AMS rebuild or database synchronization, the node may be failing cluster registration due to a duplicate AMS ID. This condition is typically confirmed by the log message: Duplicate AMS Id (X) detected. Two nodes have the same id!
In the same incident window, you may also observe submission failures such as SMPP 0x0014 “Message Queue Full” and amsStoreFull (0x03000003) when the AMS message store reaches its configured maximum (observed at 6,000,000 stored messages).
Solution: Assign a Unique AMS ID
Error messages / indicators
- In
/var/log/messageson the affected RTR/AMS node:Duplicate AMS Id (1) detected. Two nodes have the same id!AMS read 1 as ams_id from database for AMS identifier
- In
tp_qcli -s -noutput (from another node or any node able to query QCLI):- An AMS entry shows
NOT AVAILABLE(example:6 NOT AVAILABLE)
- An AMS entry shows
- Optional related symptoms during broader store saturation:
Sent SMPP error:0x0014 - Message Queue FullamsStoreFull (0x03000003)
Root cause
After an AMS rebuild or DB synchronization, a node can start with an AMS ID that is already used by another node. Because AMS IDs must be unique within the cluster, the duplicate ID prevents correct registration/communication (often visible as QCLI link up/down behavior) and can result in the node showing NOT AVAILABLE in tp_qcli.
Preconditions / impact
- Run commands as the
textpassuser (or usesudo su - textpass). - Stopping and restarting AMS on a node may cause temporary processing impact for traffic handled by that node. Use an appropriate maintenance window if needed.
Step 1 — Confirm the duplicate AMS ID in logs
On the affected node:
sudo su - textpass
grep "Duplicate AMS Id" /var/log/messages | tail -20
grep "AMS read" /var/log/messages | tail -20
Look specifically for:
Duplicate AMS Id (X) detected. Two nodes have the same id!AMS read X as ams_id from database for AMS identifier
Step 2 — Identify an unused AMS ID
From any healthy node (or the same node if it can run tp_qcli), list AMS node availability:
sudo su - textpass
tp_qcli -s -n
Choose a unique AMS ID that is not currently in use in the cluster (for example, if IDs 0–5 exist and 6 is missing, use 6):
<unique_ams_id>
Step 3 — Stop AMS on the affected node
sudo su - textpass
tp_stop --tp_ams
Step 4 — Set the new AMS ID and restart AMS
Use the following sequence:
sudo su - textpass
tp_ams --amsid=<unique_ams_id> --makemyday=yes
tp_start --tp_ams
sleep 30
Step 5 — Validate
-
Confirm the new AMS ID was applied:
grep "AMS read" /var/log/messages | tail -10Expected pattern:
AMS read <unique_ams_id> as ams_id from database for AMS identifier
-
Confirm the node is now available in QCLI:
sudo su - textpass tp_qcli -s -nExpected result: the previously missing/
NOT AVAILABLEentry now appears as available.
Notes: “Message Queue Full” / amsStoreFull Store Saturation
During the incident, AMS store saturation behavior was observed and correlated with SMPP submission failures:
- SNMP trap evidence indicating store growth to the maximum threshold:
TRAP6…messageStoreUsageGrowing … amsCntTotalStored.0 = … 6000000
- Explicit submit_sm failures tied to store-full behavior:
submit_sm … caused 'amsStoreFull' (0x03000003)Sent SMPP error 0x0014: Message Queue Full
This store-full behavior is expected behavior when AMS reaches its configured maximum stored message threshold (observed at 6,000,000 stored messages). If delivery throughput is briefly capped, the following parameter may be relevant:
amsPropMaxDeliveryRate.0 = Gauge32: 150
Definition used during the incident:
- Maximum number of delivery attempts per second (range 1–5000; default 150).
- If not present in host/common configuration, it defaults to 150.
- Increases should be performed gradually. Final sizing/target values and deployment-level design changes (for example, queue balancing/replication/topology considerations) are typically handled through Professional Services.
Frequently Asked Questions
- 1. How do I know this is the “duplicate AMS ID” problem (not something else)?
-
You will see the exact log error
Duplicate AMS Id (X) detected. Two nodes have the same id!, andtp_qcli -s -nwill show an AMS entry asNOT AVAILABLEeven thoughtp_statusshowstp_ams operatingon that node. - 2. What is the safest way to run the log check command? The grep returned “No such file or directory.”
-
Use quotes around multi-word patterns, and ensure the log file path is correct. For example:
grep "Duplicate AMS Id" /var/log/messages | tail -20 grep "AMS read" /var/log/messages | tail -20
Priyanka Bhotika
Comments