We have a schedule job to restart the failed EDIINT SimpleDelivery tasks, but some times, we will send duplicate EDIINT messages to our partners. And then the partners will send two MDNs for the same EDIINT message. And the problem is, when the secondary EDIINT message sent out, it will update the user status to SendMsg:WAITMDN, and when webMethods received the new MDN for this message, it will trade it as the duplicate MDN, and the EDIINT message status will be SendMsg:WAITMDN for ever. So can I change the MDN processing rule to “Do not check for duplicate document”? And will it takes some disadvantage? Thanks.
The EDIINT processing rules comes with standard adapter setup,but if you want to edit/change the actions you can do it and i dont think you will have any impact.
We have schedule job to restart the deliver tasks with the status “FAILED”. Sometimes, the “EDIINT SimpleDelivery” tasks status were failed, may be there was some network issue,but our partners already received the EDIINT messages and sent our the MDN. In this case, the EDIINT message will be sent to the partner again, and the user status will be updated to “SendMsg:WAITMDN”. And when we received the MDN from the partner again, the IS will traded it as the duplicate MDN and will ignore it. Then the user status of the original EDIINT message will be “SendMsg:WAITMDN” for ever. So have any idea about it? Thanks a lot.
As I noticed, in the service wm.EDIINT.rules:processMDN, it will BRANCH on the ‘hasRelationship’ and ignore the MDN if it is ‘true’.
Can you please guide me on creating the scheduled custom service which can restart the failed delivery tasks?
Currently, While sending EDIINTs to Partners - if the instance fail due to connection problems - the instances are stuck in SendMSG:ERROR after 5 retries.
After this, we have to manually restart the delivery tasks. Can you plz guide me in creating the above said scheduled custom service which can select the failed delivery tasks on a particular cluster and then restart the failed tasks automatically?
Have you reviewed the TN/BIS user guides on task query related services? It should be self explanatory.
1).Use the wm.tnweb.querySvc:runTaskQuery to get the tasks you want to restart.
2).Then change server for task using wm.tn.task:changeServerForTask if the task was not created on current cluster node.
And for the EDIINT reprocess, you can get the EDIINT message with SendMsg:ERROR or SendMsg:WAITMDN over a dead time you defined, and then you can reprocess the messages with SendMsg:ERROR by restartTask and reprocess the messages with SendMsg:WAITMDN by reprocess/reroute. But the presupposition is your partners can handle the duplicate messages, as some time the partner may already received this transactions even it is showing failed status in your end.
Hope this will be help.
I am trying to create an event based monitoring rather than the scheduler itself. I dont want a scheduler to run periodically and check for errors.
I want to write a service which runs when a DELIVERY fails.
Event based Monitoring is better than a regular scheduler.
Can you please provide me a breif idea/architecture about how I can go about in building such an event based monitoring framework on B2B side?
You can set the tn.task.notifyFailure=true in TN Properties, then IS will publish the failed task info, and you can setup a trigger to subscribe this info and have your own processor. Please find the “Enabling Task Failure Notification” in for the detail. Hope it helps.
Yes please follow the gordon comments above and that should do the trick for notifying any task failures: