Debugging Data Change Notification

Describes the data change notification process flow, and options available for diagnosing problems at each step of the process.

Process flow

This diagram shows a logical view of data change notification (DCN) between the enterprise information system (EIS) and SAP Mobile Platform components.

DCNs notify SAP Mobile Server when data used by an application changes on an EIS server. DCNs are used as a strategy to update very specific data automatically. See Developer Guide: SAP Mobile Server Runtime and System Administration for development and administration information. The Developer Guide: SAP Mobile Server Runtime provides DCN format and other details.

DCN process flow
2.3 DCN Process Flow

DCN Error Reporting

Errors while processing data change notification (DCN) requests are reported with HTTP error codes. A single DCN request can contain multiple DCN messages and each message can have payload for a specific mobile business object (MBO).

If one of the DCN messages in a DCN request fail, then all the other successfully executed DCN messages are rolled back and a failure is reported as a DCN result with individual status messages for each DCN message. DCN messages that occur after the failed message are not processed, and failure is reported for them as well.

Success is reported only if all the DCN messages succeed.

Error codes applicable to DCN
Error code Error reason Example of error cause
400 DCN usage error A required parameter is missing from the DCN request.
401 Authentication error The user name or password is incorrect.
403 Authorization error The user does not have the SUPDCNUser assigned.
500 Internal server error The DCN filter could not be loaded.
DCN usage errors, HTTP error 400
Error Error message
JSON parsing error DCN JSON request <jsonDCNRequest> could not be parsed. Make sure it conforms to DCN JSON standard.
Required parameters not specified in DCN request like operation name, package name, username, password, dcn_request <parameter> not supplied in the DCN request.
Wrong MBO name in DCN request VirtualTableName is null. MBO name <mboName> might be incorrect or missing capitalization in the DCN request.
SAP Mobile Platform internal errors, HTTP error code 500
Error code Error reason
Wrong attributes in DCN request Unable to set attribute names to update the cache. Check the cols section in the DCN request.
DS error in modifying cache As returned by the DS.
DCN filter classloading issues Package <packageName> or Server wide loader for filter class <filterClassName> not found. Check if DCN request contains the fully qualified name of the filter class and/or it is deployed on the SAP Mobile Server.
DCN filter processing errors Error in postprocessing/preprocessing by filter class <classname>.
Error in setting domain Error in setting the current domain
Package properties not found in the SAP Mobile Platform repository Package properties not found for package <packageName> in domain <domainName>.
Error in getting DS object to process DCN dsAPIServiceNotFound.
Error dispatching cache event by DS As returned by the DS.

Troubleshooting options

This section describes the options available for diagnosing DCN processing flow problems.

EIS
  • Verify the EIS datasource (third party application, database, Web service) is running.
  • Verify the DCN code is operating correctly.
    Note: If the HTTP GET method for the DCN request is enabled in the server side, you may simply construct an HTTP request and send them through an Internet browser, instead of running from Java code and so forth, and then continue with other debugging steps.

Similar to cache, updates from DCN activity are propagated to devices based on a number of other settings. Review the change detection interval property associated with the synchronization group, the notification threshold of replication synchronization subscription, or the push-related settings for the device (message synchronization).

SAP Mobile Server – data Services (DS):
  • In SAP Control Center, enable data services (DS) subsystem logging by setting its log level. The output is written in the server log.
  • Review subsystem messages for information about getting data and sending transactions.
  • For cache activities, you can enable domain logging on the package using SAP Control Center, and then review data in cache sub-systems (Cache Refresh and DS Interface specifically) for the period domain logging is enabled. See Domain Logs and Domain Log Categories related documentation in System Administration and SAP Control Center for SAP Mobile Platform online help for complete details.
SAP Mobile Server – administrative Services (MMS):
  • If you like to troubleshoot at the system-level (which will record all domain and package activities), you can enable MMS logging by setting the log level in SAP Control Center. The output is written in the server log.
  • Select the desired application package, and enable monitoring. The captured data appears in SAP Control Center. Use package-level logging to review data in the domain log.
  • On SAP Mobile Server, review the errorlog.txt for any cache database system errors: SMP_HOME\Servers\UnwiredServer\logs\errorlog.txt.
  • Enable domain logging on the package to log incoming DCN requests.
  • Check the DCN request log in the SAP Mobile Server HTTP Request Log (SMP_HOME\Servers\UnwiredServer\logs\hostname-http.log). The log shows a history of DCN requests, and performance data (including counts of total requests and processing time).
Related reference
SAP Mobile Platform End-to-End Process Flow
Debugging the Cache
Debugging Android Object API Development
Debugging BlackBerry Object API Development
Debugging iOS Object API Development
Debugging Windows and Windows Mobile Object API Development
Debugging OData End-to-End Process Flow
Debugging DOE-C End-to-End Process Flow
Debugging JCO End-to-End Process Flow