문제

그래서 우리 회사는 foxpro 데이터베이스에 많은 데이터를 저장하고 이를 직접 만지는 성능 저하를 해결하려고 노력하면서 더 빠른 사용자 경험을 위해 비동기적으로 수행할 수 있는 모든 메시지를 보낼 생각이었습니다.나는보기 시작했다 액티브MQ 하지만 C#이 얼마나 잘 작동할지 모르겠습니다.여러분 모두의 생각을 듣고 싶습니다.

편집하다 :웹 애플리케이션이 될 것입니다.이 foxpro를 만지는 것은 다소 느립니다(아마도 10년 전에 설정한 사람이 모든 것을 엉망으로 만들었기 때문일 것입니다. 일부 테이블 파일은 엄청나게 큽니다).우리는 밤마다 foxpro를 SQL에 복제하고 대부분의 데이터 읽기는 하루가 지난 후에도 괜찮으므로 쓰기에 집중하고 있습니다.게다가 쓰기는 사용자 경험(구매)의 중요한 부분에 영향을 미치므로 우리는 이를 SQL에 저장한 다음 가능할 때 foxpro에 넣으라는 메시지만 보냅니다.나는 우리가 foxpro를 제거할 수 있었으면 좋겠지만 불행하게도 회사는 Foxpro에 의존하는 아주 오래된 소프트웨어를 제거하고 싶어하지 않습니다.

도움이 되었습니까?

해결책

ActiveMQ는 Spring.NET 통합 및 NMS를 사용하여 C#과 잘 작동합니다.해당 방향으로 시작하는 데 도움이 되는 링크가 포함된 게시물 여기에.또한 MSMQ(System.Messaging 네임스페이스) 또는 .NET 기반 비동기 메시징 솔루션을 사용하는 것도 고려해 보세요. 여기에 몇 가지 옵션.

다른 팁

MSMQ(Microsoft Message Queueing)가 좋은 선택이 될 수 있습니다.이는 OS의 일부이며 선택적 구성 요소(프로그램 추가/제거/Windows 구성 요소를 통해 설치 가능)로 제공됩니다. 즉, 무료입니다(물론 Windows 비용을 이미 지불한 경우).MSMQ는 Win32/COM과 시스템.메시징 아피스.보다 현대적인 Windows Communication Foundation(Indigo라고도 함) 대기 중인 채널 MSMQ도 사용하세요.MSMQ는 Windows의 홈 SKU(XP Home 및 Vista Home)에서는 지원되지 않습니다.

언급할 가치가 있는 것은 ActiveMQ 오픈 소스 프로젝트 정의하다 NMS라는 메시징용 C# API 이를 통해 다음과 같은 다양한 메시징 백엔드를 사용할 수 있는 단일 C#/.Net API에 대해 개발할 수 있습니다.

MSMQ를 살펴보고 싶을 수도 있습니다..NET 및 VFP에서 사용할 수 있지만 사용하려면 다시 작성해야 합니다.다음은 VFP에서 MSMQ를 사용하는 방법을 설명하는 문서입니다. http://msdn.microsoft.com/en-us/library/ms917361.aspx

요청하신 내용이 아니라면 죄송합니다...Winsock을 사용하여 c/C++에서 비동기 소켓을 사용할 때 "버킷 시스템"처럼 작동하는 배후에서 일종의 캐시를 고려해 보셨나요?기본적으로 요청을 수락하고 즉각적인 응답을 웹 앱으로 다시 보내고, 마침내 기록을 찾으면 AJAX 또는 선택한 다른 기술을 통해 앱에서 해당 내용을 업데이트합니다.저는 C# 프로그래머가 아니기 때문에 구체적인 예를 제공할 수 없습니다.도움이 되었기를 바랍니다!

Fox 앱은 .CDX 인덱스를 사용합니까?그렇다면 프로그램 코드를 변경할 필요 없이 인덱스를 추가하여 성능을 향상시킬 수 있습니다.하지만 .IDX 인덱스를 사용하는 경우 실제 앱에서 변경을 수행해야 합니다.

문제는 쓰기에 있기 때문에 테이블에서 불필요한 인덱스를 >제거<하는 쪽으로 더 많은 노력을 기울일 것입니다.RDBMS에서 흔히 볼 수 있듯이 FoxPro 테이블의 모든 인덱스는 인덱스를 업데이트해야 하기 때문에 쓰기 작업 속도를 늦추고 테이블에서 직접 읽지 않거나 아마도 직접 쿼리하지 않기 때문에 많은 인덱스가 필요하지 않습니다. .쓰기 작업 속도가 느려질 수 있으므로 테이블의 트리거나 필드 규칙을 살펴보는 것이 좋습니다.하지만 참조 무결성이 여전히 유지되는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top