Ist das ein Bug mit Advantage Database?
-
03-07-2019 - |
Frage
Ich laufe in, was ich scheint ein Fehler in der Advantage Database PHP Extension (Ich weiß, ich weiß ...) zu sein. Ich habe es als einen Fehler gemeldet, aber noch nicht alles wieder gehört, so dass ich dachte, dass ich laufen würde es von euch.
Arbeits Code:
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 );
}
Dies ist nur eine Schleife durch das 100-fache, verbindet sich mit dem db, führt eine Abfrage, und die Verbindung trennt.
Nicht-Arbeits Code:
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 );
}
Beachten Sie die zweite Abfrage-Ausführung? Diese Schleife nicht im 51. Zyklus (der DB-Server jede Anwendung zu 50 gleichzeitigen Verbindungen begrenzt) mit dem Fehler
Fehler 6303: Maximale Vorteil Datenbank-Server-Verbindungen überschritten.
Ich habe mehrere andere Dinge ausprobiert, einschließlich dies ohne Erfolg:
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 );
}
Dies ist jedoch DOES , um das Problem zu beheben, und beide Abfragen noch erfolgreich ausgeführt und genau !!
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 );
}
Das alles scheint sehr seltsam für mich ... irgendwelche Ideen?
EDIT: Ich bin auf PHP 5.2.5 und ADS 8.1
Lösung
Die Wissensbasis hat diesen Punkt auf den 6303-Fehlern und wie die Anzahl der Verbindungen erhöhen möglich von einem Client, http://devzone.advantagedatabase.com/dz/content.aspx?Key=17&RefNo=981124-0621 . R & D sucht derzeit in dieses Problem und arbeitet sie in dem nächsten Service Release behoben zu haben.