Hi,
Right now, i need to develop an analysis about the possible errors in Sender JDBC adapter. Please, correct me if there is a better choice in the next scenarios that i'm going to describe.
1. Error in the comunicattion with the sender database
I suppose that the sender DBMS deals with this problem doing a rollback if the update fails and the next PI pool could fetch the same records.
2. Mapping error
This kind of problem shouldn't happen. If this problem appears may be some database data is erroneous and it must be fix there. The solution would be to establish (manually) the “update” flag to the original data for the records can be read another time.
3. Error in the connection between PI and the receiver or another internal PI internal problem.
Restart the message from monitoring when the connection or PI is up. Is it possible to resend the message automatically?. To check this problem (point 2 also) the best way is to configure the alert monitoring with the error and send an email.
4. Expected or not expected error inside the receiver system.
In order to have the sender and receiver databases consistent, there must exist a controll mechanism. I think the best way is to work in the sender database with three states (available, read, proccesed). Sender JDBC channel takes the records with available status and update them with read status. The receiver system process the message, if all is ok then call PI, and with a receiver JDBC channel the PI update with porccesed flag, if there is a data problem the receiver will put the status available.
If the receiver system crush during the message processing, the unique solution that i think about right now is to create another PI scenario that takes the records with the read status, polling weekly o daily depending of the bussines scenario.
Thanks in advance