Create your own Automatic Message Restart job on PI Java Stack (PI 7.3 EHP1)
So far, till we arrived at Java Single stack of PI, we have the luxury of scheduling most of the house keeping jobs on ABAP stack. One of the most important of those jobs is automatic message restarting. Let’s see how we can create our own Automatic Message Restart Job in PI (This blog is based on PI 7.3 EHP1, SP05).
To begin with, the default jobs that were provided on the AAE are
- Default Version Archive Job
- Default Delete Job
- Default Recover Job
Let’s consider a message that got failed (deliberately though) in the receiver file adapter. The message Id is ‘f1042b3f-b580-11e2-a376-000001ffb7ce‘.
Now, it’s time to create our own message restarting job. Go to Configuration and Monitoring Home -> Adapter Engine -> Background Job Processing Monitor -> Create Job . You will get the below screen.
In the Job Details tab, select the job type as Restart and fill the other attributes. The job name is given to be MyMsgRestartJob in this case. Move on to the Parameters tab.
In the drop down list, there are two options. Select MAX-RESTART and fill the parameter with the appropriate value.
Move on to the Rules tab.
Create a Rule Definition. This rule definition has various options. Few of them are Sender Component, Receiver Component, Interface, Interface Namespace etc. Based on the above combinations, you can create your own rule. This job restarts only those messages that are in NDLV state and that meet the rule created in this step.
Save and Activate the Job.
Now that our job is active, it will be executed in the next one hour (as per scheduled earlier). But, in order not to wait till the next run and at the same time to prove that the job works fine, we will execute the job manually by hitting the button Execute Now in the above image.
Execute the job and check the message log of the same message that we considered in the beginning.
Observe the time that we had executed our message restart job and the log version that shows that the “Message restart triggered by restart job: MyMsgRestartJob”.
Go ahead and create your own jobs… 🙂
I have created the Automatic Message Restart job with my own user id by following the steps mentioned in your blog. But when I am clicking the Execute Now button nothing happens. Also the job is not getting executed automatically at mentioned intervals (say in every 1 hour). The status is showing 'Unknown' with no green box.
Is there anything I am missing?
Nice to know...
Awesome, thank you very much for this article! 🙂
Can we create a job to resend messages in holding status .??
Message in status "holding" will be re-send automatically.
How often and how long that retries take place, is defined in the inbound communication channel of that specific scenario.
Or are you referring to a different status?
Thanks for reply.
In my case messages are getting holding status even predecessor delivered successfully.Until re-send manually messages are not delivering. I want to create background job to resend holding messages.
1) Is it possible to create background job to resend HOLD(Not System Error) message for particular channel?(without using EJB)
2)I am using SOAP channel at receiver. How to configure inbound channel to resend holding messages.
I'm in the same situation. I use Extended EOIO Error Handling and I don't know how to restart the holding messages. Trying to find a work around.
Thanks you for this article!
Could you please tell me if there is a way to resend the cancelled messages in SAP PI 7.31
My requirement: Messages getting cancelled in SAP PI 7.31 as the target system is down and i need to resend them manually.
Using the above blog there is any way to cancel the error messages for a particular interface in adapter engine.
could you please suggest any solution for this.
Would you have similar for the MQMON housekeeping?