2008-08-07 3 views
8

그래서 우리 회사는 많은 데이터를 foxpro 데이터베이스에 저장하고 그것을 직접 만지는 성능 저하를 극복하기 위해 나는보다 효율적인 사용자 경험을 위해 비동기 적으로 수행 할 수있는 메시징을 생각하고있었습니다. 내가 ActiveMQ보고 시작하지만 얼마나 잘 C#을 함께 갈고리 모르겠다. 여러분 모두의 생각을 듣고 싶습니다.C#을 사용한 메시징에 사용하는 것

편집 : 웹 응용 프로그램이 될 것입니다. 이 foxpro를 만지는 것은 다소 느립니다. (아마 10 년 전에 그것을 설치 한 사람이 지옥에 그것을 엉망으로 만들었 기 때문에 테이블 파일 중 일부는 엄청나게 큽니다). 우리는 밤에 SQL에 foxpro를 복제하고 우리의 데이터 읽기의 대부분은 우리가 글에 초점을 맞추고 있기 때문에 하루가 지났음을 확인합니다. 더하기 쓰기가 사용자 경험의 중요한 부분 (구매)에 영향을 미치면 SQL에 저장 한 다음 메시지를 작성하여 foxpro에 넣을 수 있습니다. 불행히도 foxpro를 없애 버리고 싶을뿐입니다. 회사는 구입 한 소프트웨어의 아주 오래된 부분을 없애고 싶지 않습니다.

답변

6

ActiveMQ는 Spring.NET 통합과 NMS를 사용하여 C#에서 잘 작동합니다. 그 방향으로 시작하게하는 몇 가지 링크가있는 게시물 is here. some options here과 함께 MSMQ (The System.Messaging 네임 스페이스) 또는 .NET 기반 비동기 메시징 솔루션 사용을 고려해보십시오.

+1

이 블로그는 더 이상 제공되지 않습니다. –

0

죄송합니다. 요청하시는 것이 아닐 경우 ... winsock을 사용하여 c/C++에서 비동기 소켓을 사용할 때 "버킷 시스템"과 약간 비슷한 역할을하는 일종의 캐시가 있습니까? 기본적으로 요청을 수락하여 작동하고 웹 응용 프로그램에 즉각적인 응답을 보냅니다. 마지막으로 사용자의 기록을 찾으면 AJAX 또는 원하는 다른 기술을 통해 앱에서 업데이트됩니다. 필자는 C# 프로그래머가 아니기 때문에 구체적인 예를 제시 할 수 없습니다. 희망이 도움이!

0

Fox 앱에서 .CDX 인덱스를 사용합니까? 그렇다면 프로그램 코드를 변경하지 않고도 인덱스를 추가하여 성능을 향상시킬 수 있습니다. 그래도 .IDX 인덱스를 사용하면 실제 앱에서 변경해야합니다.

0

쓰기에 문제가 있으므로 테이블의 불필요한 인덱스 인 <을 제거하는 것이 좋습니다. RDBMS에서 일반적인 것처럼 FoxPro 테이블의 모든 인덱스는 인덱스를 업데이트해야하므로 쓰기 연산 속도가 느려지고 테이블에서 직접 (또는 아마도 직접 쿼리하는 것보다) 많은 인덱스가 필요하지 않습니다. . 쓰기 작업 속도가 느려질 수 있으므로 테이블의 트리거 또는 필드 규칙을 살펴볼 수도 있습니다. 그래도 참조 무결성이 유지되는지 확인하십시오.

4

MSMQ (Microsoft Message Queuing)는 좋은 선택 일 수 있습니다. 그것은 OS의 일부이며 옵션 구성 요소 (프로그램 추가/제거/Windows 구성 요소를 통해 설치할 수 있음)로 제공됩니다. 즉, 무료입니다 (물론 Windows 용으로 지불 한만큼 오래 사용할 수 있습니다). MSMQ는 Win32/COM 및 System.Messaging API를 제공합니다. 보다 현대적인 Windows Communication Foundation (일명 인디고) queued channels도 MSMQ를 사용합니다. MSMQ는 Windows (XP Home 및 Vista Home)의 홈 SKU에서 지원되지 않습니다.

관련 문제