URL SendTransactedMsg
Cette URL envoie tous les messages en suspens en utilisant les services Send Transacted Sending.
Structure de l'adresse URL
- http://host_name/path/
- Nom qualifié complet du serveur HCL Commerce et chemin de configuration
Valeurs des paramètres
- msgId
- ID qui identifie de manière unique le message. Indique le message à envoyer lorsque la commande est appelée à l'aide de la valeur dans la colonne MSGID du tableau MSGSTORE. Spécifiez msgId ou numOfMessages. Si numOfMessages est utilisé avec le paramètre msgId, le numOfMessages est ignoré.
- maxSeconds
- Le nombre maximal de secondes pendant lesquelles une instance du travail peut s'exécuter. Cette valeur n'inclut pas le temps passé à attendre un verrou de mise à jour sur la ligne de la table SCHCONFIG. Cette valeur ne tient pas non plus compte du temps passé à attendre une fois les registres actualisés. Spécifiez un nombre positif, ou zéro pour n'indiquer aucune limite. La valeur par défaut est de 90% de la valeur d'intervalle de travail du planificateur DynaCacheInvalidationCMD. Pour ajuster le temps d'attente après l'actualisation des registres, modifiez la valeur du paramètre waitSecondsAfterRefreshRegistry. Lorsque la transaction atteint la limite maxSeconds, le travail tente de faire une pause, laissant le travail restant incomplet. Le travail incomplet demeure jusqu'à ce que le même travail s'exécute à nouveau. Si la valeur de cette colonne est nulle, maxSeconds=0 est utilisé. Modifiez la valeur maxSeconds basée sur l'expiration de la transaction configurée dans la base de données et la valeur SCCINTERVAL. La durée réelle utilisée par la transaction peut dépasser le nombre spécifié.
- numOfMessages
- Facultatif : Spécifie le nombre de messages dans le tableau MSGSTORE à envoyer. Seuls les messages dont la valeur RETRIES est supérieure à 0 sont envoyés. Spécifiez numOfMessages ou msgId.
- batchSize
- Facultatif : Spécifie le nombre maximal de messages à envoyer dans une transaction ; la valeur par défaut est 1. Si un message du lot ne peut pas être envoyé, tous les autres messages du lot seront mis en file d'attente pour la prochaine exécution de l'URL. Utilisez ce paramètre avec le paramètre numOfMessages ou seul.
Exemple 1
Cet exemple montre l'envoi d'un maximum de 99 messages d'une taille de lot de 3.
https://myhostname/webapp/wcs/stores/servlet/SendTransactedMsg?numOfMessages=99&batchSize=3
Exemple 2
Cet exemple montre l'envoi d'un message avec l'ID 123456.
https://myhostname/webapp/wcs/stores/servlet/SendTransactedMsg?msgId=123456
Comportement
- Lorsque l'URL s'exécute, la commande de contrôleur SendTransactedMsgCmd est appelée pour envoyer des messages en file d'attente à l'aide du service d'envoi
sendTransacted(). - La méthode
performExecute()appelle la méthodeassembleMsg()pour extraire les paramètres facultatifs. - Les messages exceptionnels sont dans le tableau de base de données MSGSTORE et envoyés. Chaque message est envoyé dans une transaction individuelle (lorsque batchSize est 1). Si une exception est rencontrée lors de l'envoi d'un message, la valeur dans la colonne MSGSTORE.RETRIES pour le message est diminuée de 1. Le service tente alors d'envoyer le message suivant localisé. Le message que le service n'a pas envoyé reste stocké et si la valeur de la colonne RETRIES est supérieure à 0, le service tente d'envoyer le message à nouveau lors de la prochaine exécution de l'URL. Les messages d'une valeur de 0 dans la colonne RETRIES sont laissés dans le tableau et ne sont pas envoyés tant qu'un administrateur de site n'a pas incrémenté la valeur dans la colonne RETRIES. Alternativement, l'administrateur peut supprimer le message du tableau.
Si batchSize est plus grand que 1, disons 3, il tente d'envoyer 3 messages avant qu'une transaction soit terminée. Une fois la transaction terminée, une tentative est lancée pour le reste des messages en suspens. S'il y a moins de 3 messages, la transaction sera effectuée après la tentative du dernier message.
- Si la durée de nouvelle tentative (en heures) d'un type de message est affectée au transport par e-mail, la valeur de la colonne RETRIES n'est pas diminuée jusqu'à la fin de la durée de nouvelle tentative. Cette durée commence à la première tentative d'envoi du message.
Conditions d'exception
- Si un paramètre n'est pas valide, le paramètre est ignoré.