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 Sybase Unwired Platform components.

DCNs notify Unwired 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: Unwired Server Runtime and System Administration for development and administration information. The Developer Guide: Unwired Server Runtime provides DCN format and other details.

DCN process flow
SUP Debug DCN.
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.
SSybase Unwired 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 Unwired 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 Sybase Unwired 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 data source (third party application, database, Web service) is running.
  • Verify the DCN code is operating correctly.
    Note: If the DCN request is sent in HTTP, 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).

Unwired Server – data Services (DS):
  • In Sybase 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 Sybase 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 Sybase Control Center for Sybase Unwired Platform online help for complete details.
Unwired 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 Sybase Control Center. The output is written in the server log.
  • Select the desired application package, and enable monitoring. The captured data appears in Sybase Control Center. Use package-level logging to review data in the domain log.
  • On Unwired Server, review the errorlog.txt for any cache database system errors: SUP_HOME\Servers\UnwiredServer\logs\errorlog.txt.
  • Enable domain logging on the package to log incoming DCN requests.
  • Check the DCN request log in the Unwired Server HTTP Request Log (SUP_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
Sybase Unwired Platform End-to-End Process Flow
Debugging Message Synchronization
Debugging Replication Synchronization
Debugging the Cache
Debugging Android Device Development
Debugging BlackBerry Device Development
Debugging iOS Device Development
Debugging Windows and Windows Mobile Object API Development
Debugging DOE-C End-to-End Process Flow
Debugging JCO End-to-End Process Flow