2009-05-04 9 views
1

나는 Advantage Database PHP Extension에서 버그가되는 것처럼 보입니다. (저도 압니다 ...). 나는 그것을 버그로보고했지만, 아직 아무것도 듣지 못했고, 그래서 나는 너희들에 의해 그것을 실행할 것이라고 생각했다.Advantage Database의 버그입니까?

작업 코드 :

for ($i = 0; $i < 100; $i++) 
{ 
    $connection = ads_connect('DataDirectory=\\some\path\;ServerTypes=2;RightsChecking=Off;TrimTrailingSpaces=true;CommType=TCP_IP;', '', ''); 

    $results = ads_do($connection , 'SELECT TOP 1 * FROM projects'); 

    ads_close($connection); 
} 

이것은 단지, 100 번을 통해 루프 DB를 연결, 쿼리 및 연결 해제를 실행합니다.

비 작동 코드 :

for ($i = 0; $i < 100; $i++) 
{ 
    $connection = ads_connect('DataDirectory=\\some\path\;ServerTypes=2;RightsChecking=Off;TrimTrailingSpaces=true;CommType=TCP_IP;', '', ''); 

    $results = ads_do($connection , 'SELECT TOP 1 * FROM projects'); 
    $results = ads_do($connection , 'SELECT TOP 1 * FROM projects'); 

    ads_close($connection); 
} 

주의 두 번째 쿼리 실행? 최대 장점 데이터베이스 서버 연결 초과 :이 루프는 오류

오류 6303로 51주기 (DB 서버는 50 개 개의 동시 연결에 각 응용 프로그램을 제한)에 실패합니다. 문제가 해결 않습니다, 그러나,

for ($i = 0; $i < 100; $i++) 
{ 
    $connection = ads_connect('DataDirectory=\\some\path\;ServerTypes=2;RightsChecking=Off;TrimTrailingSpaces=true;CommType=TCP_IP;', '', ''); 

    $results = ads_do($connection , 'SELECT TOP 1 * FROM projects'); 
    ads_free_result($results); 

    $results = ads_do($connection , 'SELECT TOP 1 * FROM projects'); 
    ads_free_result($results); 

    ads_close($connection); 
} 

이, 그리고 두 쿼리는 여전히 성공적으로 정확하게 실행! :

나는 몇 가지 다른 일없이 성공이 등을 시도했습니다

for ($i = 0; $i < 100; $i++) 
{ 
    $connection = ads_connect('DataDirectory=\\some\path\;ServerTypes=2;RightsChecking=Off;TrimTrailingSpaces=true;CommType=TCP_IP;', '', ''); 

    $results = ads_do($connection , 'SELECT TOP 1 * FROM projects'); 
    ads_close($connection); 

    $results = ads_do($connection , 'SELECT TOP 1 * FROM projects'); 
    ads_close($connection); 
} 

이 모든 것이 저에게 이상한 것처럼 보입니다 ... 어떤 아이디어입니까?

편집 : 내가 PHP 5.2.5에서 오전 ADS 8.1

답변

4

지식 기반은 6303 오류 방법과 클라이언트, http://devzone.advantagedatabase.com/dz/content.aspx?Key=17&RefNo=981124-0621에서 가능한 연결의 수를 증가하는 방법에이 항목을 가지고있다. R & D는 현재이 문제를 조사하고 있으며 다음 서비스 릴리스에서 해결하도록 노력하고 있습니다.

+0

이 정보는 오류의 의미와 더 많은 연결을 허용하는 방법을 보여줍니다. 그러나 다시 연결하기 전에 모든 연결을 닫을 때 최대 연결 오류가 발생하는 이유는 설명하지 않습니다. – KOGI

+0

그것은 연구 개발 부분에서 볼 수 있습니다. 연결에서 여러 문을 열 때 참조 계산에 문제가있는 것 같습니다. – LanceSc

+0

R & D는 이것이 여러 문장이 열리는 연결의 참조 계산에 버그가 있음을 확인했습니다. 다음 서비스 릴리스에서 수정 될 예정입니다. – LanceSc