cancel
Showing results for 
Search instead for 
Did you mean: 

controlling the no. of retries for a synchronous database request

Former Member
0 Kudos

I have a synchronous send step in an Integration process to make a query to a database. I want the BPM to stop processing in case the synchronous request is not answered after 3 retries. Can the addition of a wait step in the Integration process help in this case, if it can where should it be added? Also can the JDBC comm channel parameter 'No. of retries of Database transaction on SQL error' help in this regard?

Edited by: diptee s on Jul 11, 2010 7:55 AM

Edited by: diptee s on Jul 11, 2010 8:09 AM

Accepted Solutions (0)

Answers (1)

Answers (1)

samiullah_qureshi
Active Contributor
0 Kudos

Hello,

As far as I know, for synchronous communication niether Integration engine nor adapter engine will retry to send the message.

However, you can set the number of retries by the receiver communication channel in RWB. But these retries will be applicable only to the asynchronous messages.

Regards,

Samiullah

Former Member
0 Kudos

By retries i mean that in this synchronous call XI is sending the same query to the database every three minutes till it receives a response.....do you mean this should not happen by default??

samiullah_qureshi
Active Contributor
0 Kudos

Number of retries after particular time period mechanism called as Guranteed Delivery. SAP PI provides the gurateed delivery of messages only for the quality of service Exactly Once(EO) and Exactly Once In Order(EOIO) i.e. asynchronous communication.

By default PI will not support retries for the delivery of message for the QoS Best Efforts(BE) i.e. synchronous communication.

Former Member
0 Kudos

hey in that case if i have a synchronous send for querying a database what will XI do in case it does not receive a response for the first data request it sent, simply wait?

Edited by: diptee s on Jul 12, 2010 6:22 AM

Edited by: diptee s on Jul 12, 2010 6:22 AM

samiullah_qureshi
Active Contributor
0 Kudos

Hello,

For synchoronous communication, PI will send the request message to the receiver and wil wait for the response till http timeout period is reached for connection.

Once timeout is reached, PI will not retry to send the message to the receiver and will send the message status as System Error.

Regards,

Sami

Former Member
0 Kudos

Thats riight. Also this will set the status of BPM to 'Error'

Now, in my system we have a background job which runs every 15 minutes and resarts all the BPMs which are in error at that moment.

This allows my BPM to resend the sync message and wait for a response when they are restarted.

What I want to be acheiving here is that my BPM shud stop after sending 3 such sync send i.e. 1 at the initial start and the other 2 after the BPM restart (due to the above mentioned background job).

I tried using a deadline branch for this; however whatever time i put in the dealine condition, the 1st BPM which starts never ends and some of the following BPMs wait after the sync send steps has been running for 6 minutes & 2 seconds some others never end like the first one.

Would you be able to explain the working of a deadline branch for a sync send request?

Note: I have also tried using a exception branch but this does not allow my BPM to be restrarted and hence send the sync request more than once, in case the first sync send does not receive a response within the HTTP timeout.

Edited by: diptee s on Aug 8, 2010 11:25 AM