Monday, February 13, 2012

A native exception occurred: synchronizing data between the MS SQL Server database and PDA

ISSUE:

While synchronizing data between the PDA and MS SQL Server database, using Active Sync connection, the sync process fails at times and displays an empty error message box and occasionally it shows the following exception:

Error During Synchronization:

A native exception occurred.

ExceptionCode:0xc0000005

ExceptionAddress:0x01627b28

Reading: 0x1e000000

OK to terminate

CANCEL to debug

Moreover the .SDF file on the PDA gets corrupted. The ActiveSync connection drops as soon as the sync process fails. Later when the .SDF file is deleted and restored the synchronization is successful.

Note: The replication monitor in the SQL Server indicates that the synchronization was successful even when the above error occurs.

SCENARIO:

Steps to replicate:

  1. The PDA is placed on the cradle and a manual connection is established with the SQL Server database using the guest partnership.
  2. The PDA application is invoked. Some data is saved in the local .sdf file via the application.
  3. The User clicks on the “Sync” menu option (Sample code below **) to start the sync process
  4. Most times the sync process is successful. Occasionally the above issue is encountered.

** Sample code where the app crashes we encounter the issue:

Public Sub Synchronize (ByVal vShowMessage As Boolean)

Dim ce As SqlCeReplication = Nothing

Try

ce = New SqlCeReplication

'Set Internet properties.

ce.InternetUrl = vInternetURL ' "http://xx.xx.xx.xx/SQLCE/sscesa20.dll"

'Set Publisher properties.

ce.Publisher = vPublisher '"CGH-RSMS"

ce.PublisherLogin = vPublisherLogin '"sa"

ce.PublisherPassword = vPublisherPassword '"xxxxxx"

ce.PublisherSecurityMode = SecurityType.DBAuthentication

ce.PublisherNetwork = NetworkType.DefaultNetwork

ce.PublisherDatabase = vPublisherDatabase '"RSMS"

ce.Publication = vPub_Name '"PUB_RSMS"

'Set Subscriber properties.

ce.Subscriber = vSub_Name

ce.SubscriberConnectionString = "Data Source=" & DB_PATH & vDatabase_Name

If File.Exists(DB_PATH & vDatabase_Name) = False Then

ce.AddSubscription(AddOption.CreateDatabase)

End If

ce.Synchronize()

Catch ex As SqlCeException

If vShowMessage = True Then

MsgBox(ex.Message)

End If

Throw ex

Catch ex1 As Exception

If vShowMessage = True Then

MsgBox(ex1.Message)

End If

Throw ex1

Finally

ce = Nothing

End Try

End Sub

Asheesh, I am following up with you on this issue on the other thread titled:
"Initializing SQL Server Reconciler has failed"

Lets just work on one thread.|||

Hi Mahesh....
Ya sure i will be following you up on the Initializing SQL Server Reconciler has failed" thread.Well tahks a lot for ur help and guidance.will be in touch regarding the same.

Thanks and Warm Regards,
Asheesh.

No comments:

Post a Comment