cancel
Showing results for 
Search instead for 
Did you mean: 

Questions on Syncrhonize Message Scenario

amelia_li3
Explorer
0 Kudos

We had a scenario set up for Syncrhonize Message between SAP  and  3rd Party System using ABAP Proxy and JDBC Adapter. I did couple test and really want to understand more thoroughly on this.  The message is collected from 3rd Party database by JDBC adapter then sending to SAP ECC by Proxy to process, a response message will generated and send back to 3rd Party Database through JDBC adapter.

1. On JDBC Adapter Polling Communication Channel: Both select and update statement need to be configured, at what timing the update statement will be triggered.

   The select statement is like: select  * from <table> where upd_flag is null and the update statement is like: update <table>  set UPD_FLAG = 'X' where upd_flag is null

   I did a test, if the HTTP connection from PI to SAP ECC is broken or time out, the message failed and Update statement will not be triggered. This cause the following database polling to collect the failed record ( not marked yet) and reprocess it.

2. Because of above test, I have a concern, if the process in ABAP Proxy is long enough, and when Update statement is triggered eventually, it may overwrite new records inserted into the <table> not yet polled and processed.

Let's say, record 1 being polled and passed to SAP ECC for process, meantime record 2 got inserted into <table>, by the time the Update statement is triggered, both record 1 and record 2 got updated with UPD_FLAG = 'X', the next polling will ignore record 2 which never be processed.

3. What is the communication setting between SAP ECC to PI Proxy, I believe is the SAP ECC IE configure, but I changed the central engine address to a faked one, but the response message still delivered successfully.

Anybody can help me on this, or anyone had the same type of issue before.  Your response is very appreciated.

View Entire Topic
amelia_li3
Explorer
0 Kudos

I found SAP OSS Note 831162. It explains how the Sender JDBC Adapter works, the Select and Update statement are paired in one DB transaction, but if message processing timeout as addressed in another OSS Note 1500791, all DB update will rollback. The following poll will retrieve all unprocessed message again include the messages sent but timed out which in design may not be a bad thing.

If we did not experience the processing timeout because of system disruption, I would not notice this. And based on my test, EO and BE do behave quite differently on message creation but on DB update they are the same.

Thanks for all the replies I got, I will close this question.