1

アドバンテージ データベース PHP 拡張機能のバグと思われるものに遭遇しました (わかっています、わかっています...)。バグとして報告しましたが、まだ何も返ってこないので、皆さんに任せようと思いました。

作業コード:

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 回ループし、データベースに接続し、クエリを実行し、切断します。

動作しないコード:

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 );
}

2 番目のクエリの実行に注目してください。このループは 51 番目のサイクルで失敗し (db サーバーは各アプリケーションを 50 の同時接続に制限します)、エラーが発生します。

エラー 6303: Advantage データベース サーバーの最大接続数を超えました。

これを含む他のいくつかのことを試しましたが、成功しませんでした:

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

1 に答える 1

4

ナレッジ ベースには、6303 エラーに関するこの項目と、クライアントから可能な接続数を増やす方法 ( http://devzone.advantagedatabase.com/dz/content.aspx?Key=17&RefNo=981124-0621 ) があります。R&D は現在この問題を調査しており、次のサービス リリースで解決できるよう取り組んでいます。

于 2009-05-04T22:18:29.260 に答える