J'ai édité la table de routage et rien n'a changé
J'ai édité la table de routage et rien n'a changé
no default routing table in new targets! sur la même ligne signifie que la nouvelle configuration n’avait pas de règles dans default. Souvent parce qu’un filtre auquel chaque règle référait est manquant ou désactivé.Pourquoi vendor1:from:==:MyBrand ne fonctionne pas ?
Pourquoi vendor1:from:==:MyBrand ne fonctionne pas ?
== est un opérateur numérique. Cette ligne ne fait pas simplement échouer la correspondance. Elle échoue à parser, et emporte tout le rechargement avec elle. Utilisez equals pour du texte :Mon motif ne correspond à rien et rien ne se plaint
Mon motif ne correspond à rien et rien ne se plaint
matches est une expression régulière et elle est ancrée. Elle doit correspondre à toute la valeur. ^61.* correspond à une destination complète ; un 61 nu ne correspond qu’à la chaîne de deux caractères 61.startsWith compare du texte littéral. Une expression régulière qui lui est remise demande si la valeur commence littéralement par ^(?:\+61, ce que rien ne fait, donc la règle charge, s’affiche et ne se déclenche jamais. Le panel avertit à ce sujet ; le gateway non.Les règles sous mon catch-all ne s'exécutent jamais
Les règles sous mon catch-all ne s'exécutent jamais
NORMAL s’arrête à la première correspondance, et un catch-all correspond à tout. Donc tout ce qui est en dessous est inaccessible. Rien ne refuse la table ; les règles parsent parfaitement.Déplacez-le en dernier. La table est rapportée sous unreachable-rules dans routing_warnings sur /ops/health, et le panel compte les règles mortes pour vous.J'ai désactivé un filtre pour élargir une règle et la règle a cessé de correspondre du tout
J'ai désactivé un filtre pour élargir une règle et la règle a cessé de correspondre du tout
J'ai désactivé un filtre pour retirer une route et rien ne s'est passé
J'ai désactivé un filtre pour retirer une route et rien ne s'est passé
default sans règles, tout le rechargement a été rejeté et les tables précédentes sont toujours en service.Désactiver un filtre n’est pas une façon de retirer une route. Supprimez ou désactivez la règle.Comment trouver pourquoi un message spécifique n'a pas correspondu ?
Comment trouver pourquoi un message spécifique n'a pas correspondu ?
Le log est devenu silencieux. La règle cassée est-elle réparée ?
Le log est devenu silencieux. La règle cassée est-elle réparée ?
routing.rule.broken est journalisé une fois par règle, et le compteur ne se remet à zéro que lorsqu’une nouvelle table de routage est publiée. Le silence est également cohérent avec « déjà rapporté ».Surveillez routing_rules_broken sur /ops/health. Le même fait sous forme de nombre. Et après une correction, surveillez la ligne pour la voir réapparaître plutôt que pour qu’elle reste absente.routing_failed_queue n'est pas à zéro. Que signifie-t-il ?
routing_failed_queue n'est pas à zéro. Que signifie-t-il ?
outSms.enqueueFailedRouting est réglé. Donc dans la configuration ordinaire ces messages sont partis, et ce compteur est le seul endroit où ce fait existe.Alertez dessus. routing_retry_queue est le voisin bénin : des messages attendant un backoff, ordinaire en petits nombres, un écart de routage quand il reste haut.L'ordre des règles compte-t-il dans une table au moindre coût ?
L'ordre des règles compte-t-il dans une table au moindre coût ?
LCR scanne chaque règle, traite les correspondances comme des alternatives, et laisse le taux de coût décider. Réordonner ne change rien.Si une table au moindre coût se comporte comme une table premier-match, vérifiez le nom de la fonction. Un nom non reconnu, comme ->function(LRC), retombe sur NORMAL avec seulement une ligne de log. Voir Routage au moindre coût.Un vendeur dans ma table LCR n'a pas de taux de coût. Va-t-il bloquer le trafic ?
Un vendeur dans ma table LCR n'a pas de taux de coût. Va-t-il bloquer le trafic ?
Pourquoi mon groupe de vendeurs ignore-t-il ses poids, ou ses membres ?
Pourquoi mon groupe de vendeurs ignore-t-il ses poids, ou ses membres ?
weighted. En définir un sous round-robin ou failover et rien ne se répartit, ce que le gateway dit en WARN plutôt que de vous laisser croire autrement.Et les blocs de groupe doivent venir avant le premier en-tête [table]. À l’intérieur d’un bloc table une ligne de membre ne correspond à rien et est supprimée silencieusement, donc le groupe a moins de membres qu’il ne semble en avoir.Une règle peut-elle envoyer un message à chaque membre d'un groupe ?
Une règle peut-elle envoyer un message à chaque membre d'un groupe ?
+copied sur une règle de groupe copie toujours vers un membre.Si chaque membre est en panne la règle n’envoie rien, journalise cause=group-all-dead nommant tous ceux qu’elle a essayés, et le scan continue, ce qui est ce qui garde une règle de repli écrite en dessous accessible.Que se passe-t-il quand une file se remplit ?
Que se passe-t-il quand une file se remplit ?
ESME_RMSGQFUL (0x14) et rien de facturé, REST avec 503 queueFull et tout ce qui a déjà été facturé remboursé. À l’intérieur du gateway une file pleine est du backpressure : le routeur attendant sur une file worker pleine est le routeur allant à la vitesse que le vendeur peut prendre.smsg.queue.capacity et inQueue.capacity ont tous deux pour défaut 0, signifiant non borné. Il n’y a pas de limite par défaut parce qu’une limite est une déclaration sur votre propre trafic et heap.Combien de submit_sm un message peut-il me coûter ?
Combien de submit_sm un message peut-il me coûter ?
maxRetries borne le total à un vendeur, à travers les retries en worker et chaque aller-retour par le routeur.Cela ne bornait avant que la moitié en worker, chaque hop routeur remettant une nouvelle allocation. Donc 1 à côté de vingt tentatives de routage signifiait environ 100 PDU pour un message. Revérifiez la valeur si vous avez ajusté autour. Basculer vers un vendeur différent démarre toujours un nouveau budget.Ai-je besoin de RabbitMQ ?
Ai-je besoin de RabbitMQ ?
amqp.bridge.degraded.Les messages sont acceptés puis disparaissent. Par où je commence ?
Les messages sont acceptés puis disparaissent. Par où je commence ?
maxAttempts est la seule raison qui signifie routage. headerNotApproved, templateNotMatched, missingMandatoryTlv, insufficientCredit et filtered signifient tous que le message a été refusé avant que le routage ne soit atteint. Marche à suivre complète : Rien n’est livré.
outSms.routing.debug. Il journalise chaque règle de chaque message et rend tout l’objet message pour cela, donc il est inutilisable aux débits où les questions de routage se posent.