MinCheckAffectedRowCount Behavior with JDBC Endpoints

Understand how MinCheckAffectedRowCount behaves with JDBC endpoints.

For JDBC endpoints only, SAP Mobile Platform tests all UPDATE and DELETE operations for the number of rows affected in the JDBC backend (This does not apply for JDBC UPDATE/DELETE operations modeled with a stored procedure). If more than one row was affected for an UPDATE or DELETE operation, SAP Mobile Platform creates an error log entry for the client that simply indicates "com.sybase.vader.da.jdbc.MinCheckAffectedRowCountException" has been encountered on SAP Mobile Server. The cause of the exception is application-specific and could mean several things:
  1. The predicate definition of the UPDATE or DELETE operation is invalid.
  2. The backend RDBMS no longer contains a row that matches the predicate of the UPDATE or DELETE operation.
  3. The client application passes in an invalid parameter to the UPDATE or DELETE operation and therefore the predicate of the UPDATE or DELETE operation is failing.
For example, a client deletes a record and synchronizes, and a second client attempts to update the deleted record and synchronizes. The second client correctly receives a replay failure with an error log entry "com.sybase.vader.da.jdbc.MinCheckAffectedRowCountException:null", and the information returned when the onReplayFailure callback method is invoked for the entity is empty. Since only the "surrogate" key is available and this fails to find a record, any failure message itself is meaningless.

For another example, see Hybrid App development topic MincheckAffectedRowCountException Error Received.