2013-07-15 1 views
0

기본적으로 여러 DBF, FPT 및 CDX 파일의 폴더 인 데이터베이스를 사용하는 VFP9 응용 프로그램을 현재 실행하고 있습니다.네트워크를 통해 VFP App/dbase 데이터베이스에 액세스하는 여러 사용자 - 느린 문제

이제이 데이터베이스는 50 명 이상의 사용자가 액세스 할 수 있도록 네트워크 (1GB 네트워크/스위치/PC)에서 공유됩니다.

이제 우리는 "잠금 시도 중"메시지가 나타납니다. 문제점이나 병목 현상이 발견되지 않아 하드웨어를 검사했습니다. 또한 50 명이 넘는 사람들이 몇 초 내에 특정 파일에 액세스하거나 파일에 쓸 수도 있습니다.

Google을 통해 Lanman 영역의 "Oplocks"와 관련된 잠재적 인 문제가 발생했지만 Windows 2008 R2/Windows 7에는 존재하지 않습니다. 또한 SMB에서 일반적으로 읽었지만 미친 끝.

다음에 무엇을보아야할지 모르십니까? 어쩌면 VFP/Dbase 시스템이 할 수있는 한계를 테스트하고 있습니까?

아무도 도와 줄 수 있습니까?

감사 라이언

+0

app/db를 Citrix 또는 Terminal Server로 이동하십시오. – sskoko

답변

0

이 일을 많이 할 수 있고, 당신에게 응용 프로그램의 소스 코드가 완벽하게 정상 될 수 있을까?

".. 50 명이 넘는 사람들이 몇 초 내에 특정 파일에 액세스하거나 글을 쓸 수 있습니다."라는 말은 잠금 충돌을 일으키는 것은 놀랄 일이 아닙니다.

메시지를 잠그려고한다는 것은 둘 이상의 사람이 동일한 레코드 (또는 원시 잠금의 경우 파일)에 액세스하려고한다는 것을 의미합니다.

최근에 사용자 수가 증가 했습니까?
이 시스템 용으로 설계 되었습니까? 소프트웨어의 특정 기능에 영향을 미칩니 까? (있을 가능성이 높음) 또는 여러 가지 기능으로 시스템 전체에 적용됩니까?

VFP의 기술적 한계는 (단일 테이블 당 2GB라고 생각합니다.) 수백만 건의 레코드가있을 때 실제로 느려집니다 (거대한 일반화). 좋은 색인 생성은 테이블이 커질 때 도움이됩니다.

시스템에서 간헐적으로 깜박입니다 (예 : 점심 시간 및 저녁 시간 초과)? 아니면 시스템에 지속적으로 자주로드됩니까?

소스 코드가 있다면 많은 DBF가 잠겨 있는지 파악할 필요가 없다면 많은 일을 할 수 있습니다 (많은 레코드가 포함 된 파일 일 것이며 큰 파일 크기 일 수도 있습니다)

VFP 자체를 가지고 있습니까? 아니면이 컴파일 된 EXE입니까?

많은 옵션과 할 일이 있지만 더 많은 정보가 필요합니다. 응용 프로그램 속도 저하 닉

+0

이 경우에는 "감사"파일이 있습니다. 따라서 시스템의 어떤 영역이 어떤 영역에 접근하든 관계없이 기록 된 모든 동작은 감사 dbf/fpt에 기록됩니다. 감사 파일이 커질 수 있으므로 (500MB) 시스템이 준비되어 있지만 매월 초에 자동 보관되므로 어리석은 짓을하지 않게됩니다. VFP 프로그램 자체는 컴파일 된 EXE이며 컴퓨터에 관계없이 항상 로컬로 액세스됩니다. 특정 사용자가 서버 컴퓨터에 RDP를 사용하지 않는 한 일반적으로 네트워크를 통해 액세스하는 데이터베이스 위치입니다. – Ryan

+0

그런 다음 매월보다 자주 감사 파일을 지우는 것이 좋다고 생각하십시오. – user1302114

+0

VFP.EXE를 사용하여 자동 보관 전후에 감사 파일을보고 보관 프로세스가 전체 또는 일부를 지우는 지 확인합니다. – user1302114

0

, 한 가지 내가 당신이 VFP 응용 프로그램에 두근 거리는 50 명의 사용자가 특히 문제가 될 수있어. 응용 프로그램이 SERVER에서 실행되고 있습니까? 즉, 모든 사용자가

S : \ SomeShare \ YourVFPApp와 같은 항목을 가리키고 있습니까?exe

그런 경우 성능이 현저하게 저하 될 수 있습니다. 그것은 모든 사용자가 트래픽을 빨아 들이기 위해 네트워크를 통해 애플리케이션을 끌어 내려고합니다. 고객과 내가 한 일은 다음과 같습니다. 컴퓨터의 로컬 C : 드라이브에서 지점을 선택하십시오. 예 : C : \ NetworkApps 및 YourVFPApp.exe를이 C : \ NetworkApps 폴더로 복사하십시오.

다음으로 C : \ NetworkApps \ YourVFPApp.exe를 가리키는 새 바로 가기를 만들어 저장하십시오.

다음은 바로 가기를 수정하지만 이번에는 "시작 폴더"를 "S : \ SomeShare \"와 같은 원래 위치로 변경하십시오. 변경 사항을 저장하고이 바로 가기 버전을 실행하십시오.

기본적으로 앱을 로컬로 실행하는 것은 공유되는 동일한 최종 위치에서 시작하는 것입니다 (특히 하드 코드 경로가 처리되고 처리하는 것이 끔찍한 경우). 이것이하는 일은 모든 사용자가 네트워크를 통해 응용 프로그램을 가져와 실제 테이블과 데이터 트래픽을 처리 할 필요가 없도록하는 것입니다.

예, 응용 프로그램 업데이트가있을 때 약간의 어려움이있을 수 있지만 로컬 드라이브를 살펴보고 "최신 버전"의 exe와 비교하는 다른 VFP 간단한 응용 프로그램을 작성했습니다. 네트워크 공유에서와 마찬가지로 서버 버전이 더 새로운 경우 로컬로 복사 한 다음 예상 된 "S : \ SomeShare \"폴더에서 시작하십시오.

잠금의 경우 TABLE 잠금 대 RECORD 잠금을 수행하는 경우 잠금 메시지를 기다리는 데 더 많은 지연 문제가 있음을 분명히 알 수 있지만 응용 프로그램 끝에서 가능한 네트워크 병목을 삭제하면 문제를 완화하는 데 도움이 될 수 있습니다.

+0

:-) 기꺼이 도와 – Ryan

+0

잠긴 테이블이 아닌 잠긴 레코드로 실행합니다 또한. 위에서 언급 한 사람이 아마도 파일 크기 (테이블을 읽고 쓰는 데 걸리는 시간이 200MB 늘어나기 때문일 수도 있습니다) 또는 아마도 테이블에 액세스하여 쓰기 작업을하는 50 명 이상의 사용자 때문일 수도 있습니다. 어느 한 순간에. – Ryan

관련 문제