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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top