비동기 데이터의 동기화
비동기 데이터 동기화를 수행하면 SQL Server 2005 Compact Edition(SQL Server Compact Edition) 응용 프로그램에서 데이터 동기화가 완료될 때까지 기다리면서 다른 정보를 계속 처리할 수 있습니다.
예를 들어 응용 프로그램에서 정기적으로 데이터를 동기화하고 대량의 데이터를 느린 연결 속도로 전송하는 경우를 가정해 보십시오. 이 경우 데이터 동기화가 진행되는 동안 응용 프로그램은 사용자 명령에 응답하지 않습니다. 그러면 사용자는 응용 프로그램이 제대로 작동하지 않는다고 생각할 수 있습니다. 응용 프로그램이 데이터를 동기화하는 동안 진행 상황을 알아보기 쉽도록 동기화 상태를 나타내는 진행률 표시줄을 스마트 장치에 표시할 수 있습니다. 비동기 데이터를 동기화하면 데이터 동기화를 초기화한 후에 동기화 이벤트가 발생할 때 동기화 이벤트를 트래핑할 수 있습니다. 그러면 응용 프로그램에서 이러한 이벤트를 사용자에게 표시할 수 있습니다.
[!참고] 또한 비동기 데이터를 동기화하면 이미 진행 중인 데이터 동기화를 취소할 수 있습니다.
비동기 데이터 동기화 메서드 사용
Microsoft .NET Compact Framework 및 관리되는 프로그래밍 언어(Microsoft Visual Basic 또는 Microsoft Visual C#) 중 하나를 사용하여 SQL Server Compact Edition 응용 프로그램을 개발하는 경우 비동기 호출은 Microsoft .NET Framework의 다른 비동기 호출과 같이 처리됩니다. Microsoft Visual C++ for Devices를 사용하여 네이티브 응용 프로그램을 개발하는 경우에는 ISSCEMerge 인터페이스의 SyncStatusReport 속성을 사용합니다.
관리되는 API 사용
비동기 데이터의 동기화에는 다음 3가지 System.Data.SqlServerCE 네임스페이스가 사용됩니다.
- OnStartTableUpload
이 이벤트는 구독의 각 테이블을 게시자에 로드할 때 발생합니다. - OnStartTableDownload
이 이벤트는 게시자에서 각 테이블을 반환할 때 발생합니다. - OnSynchronization
이 이벤트는 조정자를 시작하거나 코드가 동기화 검사를 수행할 때 발생합니다.
Replication 개체의 다음 3가지 메서드도 사용할 수 있습니다.
- BeginSynchronize
이 메서드는 IAsyncResult 개체를 사용하여 동기화 프로세스를 시작합니다. - EndSynchronize
서버에서 동기화 종료 메시지를 반환할 때 EndSynchronize를 호출합니다. - CancelSynchronize
CancelSynchronize 메서드를 호출하여 언제든지 동기화를 취소할 수 있습니다.
다음 단계는 관리되는 API를 사용하여 비동기 데이터를 동기화하는 프로세스를 보여 줍니다.
- Replication 개체를 만들고 속성을 설정합니다.
- IAsyncResult 개체를 만들고 Replication 개체의 BeginSynchronize 메서드로 설정합니다.
- 다음 속성을 BeginSynchronize 메서드로 전달합니다.
- 콜백 메서드(AysncCallback 이벤트)
- OnStartTableUpload 이벤트를 처리하는 메서드
- OnStartTableDownload 이벤트를 처리하는 메서드
- OnSynchronization 이벤트를 처리하는 메서드
- 콜백 메서드에 코드를 추가하여 EndSynchronize 메서드를 호출합니다.
- IAsyncResult 개체의 AsyncWaitHandle 메서드를 호출합니다.
- 이벤트 처리기에서 코드를 추가하여 현재 동기화 상태를 보고하거나 동기화를 취소할 수 있습니다.
[!참고] 각 사용자 테이블의 업로드를 시작할 때, 각 사용자 테이블의 다운로드를 시작할 때, 조정자를 시작할 때 및 조정자 "완료율" 값을 업데이트할 때 등 4개의 이벤트 동안 상태 보고서가 보내집니다.
네이티브 API 사용
동기 데이터를 동기화할 때와 마찬가지로 ISSCEMerge 인터페이스를 사용하여 비동기 데이터를 동기화합니다. 그러나 관리 코드의 프로세스와 달리 비동기 데이터의 동기화는 여전히 단일 스레드 프로세스입니다. 동기화 알림은 동기화와 같은 스레드에 있습니다. ISSCEMerge 인터페이스의 SyncStatusReport 속성을 사용하여 동기화 상태 보고서를 검색합니다.
참고 항목
작업
개념
데이터 동기화(SQL Server Compact Edition)
동기 데이터 동기화
다중 사용자 액세스 및 동기화