2016-11-02 1 views
0

데이터베이스의 "레코드"가 변경되면 로컬 네트워크의 사용자에게 알리는 응용 프로그램에서 작업하고 있습니다. 따라서 사람 "A"가 레코드 1을 변경하고 사람 "B"가 자신의보기에 레코드 1을 가지면 레코드 B가 레코드 1이 변경되었다는 통지를 받게됩니다. 현재 WCF 서비스를 통해 이러한 알림을 보내려면 "이중"서비스를 사용하고 있습니다. 서비스는 다소 느리고 이상적으로는 제거하려고합니다. 다른 사용자가 데이터베이스를 업데이트 한 경우 사용자가 실시간으로 데이터를 유지할 수있는 방법이 있습니까?C# WPF 응용 프로그램과 SQL Server간에 데이터를 동기화하는 방법은 무엇입니까?

+0

데이터베이스를 감사하는 것처럼 들립니다. 실시간 감사입니까? 타이머 폴링 여부입니다. 알림 지연에 영향을 줄 수있는 많은 요소가 있습니다. 당신이 다이빙을하고 도매를 바꾸기 전에 병목이 어디에 있는지 찾아 낼 수 있습니다. –

+0

시스템의 현재 디자인에 달려 있다고 가정합니다. 모든 응용 프로그램이 동일한 WCF 서비스에 연결합니까? 이 서비스는 업데이트 될 때 모든 응용 프로그램에 알림을 보냅니다. 그것은 복잡해 보입니다. –

+0

모든 앱이 동일한 서비스에 연결됩니다. 서비스가 이벤트를 발생시킨 데이터베이스에서 무언가가 변경되면 해당 이벤트를 수신하는 각 클라이언트에 변경 사항이 알림됩니다. 정말로 매우 복잡합니다! –

답변

0

알림 서비스를 바꾸려면 내 생각에 SignalR을 사용하여 DB와 동기화 된 상태로 유지하는 것이 좋습니다.

0

나는 비슷한 문제를 한 번 겪었고 Firesharp 라이브러리가있는 Firebase라는 NoSound 클라우드 솔루션으로 넘어갔습니다. Firebase - Features, Firesharp.

블리딩 속도가 빠르며 실제로 사용하기가 실제로 쉽습니다. 따라서 응용 프로그램이 여전히 작고 NoSql 설치로 마이그레이션 할 때 발생할 수있는 비즈니스 위험이 적 으면 가치있는 솔루션 일 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 불행히도 이것은 거대한 응용 프로그램이므로 우리 환경에서 작동하지 않을 것이라고 생각합니다. –

0

레코드를보기에 얼마나 오래 보관합니까? 값이 변경되었는지 확인하는 메커니즘은 무엇입니까? 어떤 클라이언트 응용 프로그램을 사용하고 있습니까?

데이터베이스를 쿼리 할 nodejs 서버에 대해 사용자가 사용중인 항목의 상태를 확인하는 비동기 메서드를 만들 수 있습니다. 특정 레코드에 대해서는 값으로 응답하고 async 메서드는 현재 값은 DB로부터의 값과 다르며 사용자에게 알리거나 레코드를 갱신 할 수 있습니다. 작은 공간을 차지하므로보다 효율적으로 실행해야합니다.

관련 문제