DBコマンド

データ管理 > SQLに関する考慮事項 > Magic SQL データベース > MS-SQL Server データベースゲートウェイ > カーソルとDBコマンド

ゲートウェイでは、デフォルトでカーソルが使用されます。ファイルをスキャンするバッチタスクなど、Magicタスクで多数のレコードを処理する場合、[データソース特性]の[カーソル]特性を「No」に変更することによって、デフォルトの設定を変更することができます。この場合、ゲートウェイで、カーソルの代わりにDBコマンドが使われるようになり、結果セットごとに異なる接続が必要になります。接続の最大数はユーザによって定義されますが、デフォルトでは3に設定されています。

ゲートウェイでは、現在の接続で、多数のカーソルのほかにDBコマンドを1つだけ送信することができます。別のDBコマンドが発行されると、新しい接続が開かれます。DBコマンドは、リンクレコードの取得、CREATE TABLEコマンド、SQLコマンドタスクの実行など、1つのレコードやコマンドを実行するコマンドに使用されます。通常、ゲートウェイで使用される接続数が多いほど、クライアントのパフォーマンスが向上します。ただし、同時に多くのメモリが必要になり、サーバのパフォーマンスは低下します。保留中のコマンドによって既存の接続が全て使用されており、新しい接続が必要な場合、LRUアルゴリズムに基づいて既存の接続が解放されます。この場合、解放されたコマンドは最終的に再発行されるので、パフォーマンスに悪影響が生じる可能性があります。

SQLコマンドバッチタスクが使用されている場合(ストアドプロシジャまたはSELECT文)、全ての結果が取り出されるまで、ゲートウェイはこの接続を新たに使用することができません。ネストされているSQLコマンドバッチタスクが使用されており、ゲートウェイで使用可能な最大接続数が十分でない場合は、次のエラーメッセージが表示されます。

MS-SQL Gateway: No more connections available.

このエラーメッセージが表示された場合、[DBMS特性]の[最大接続数]特性の値を増やしてみてください。それでもエラーメッセージが表示される場合は、エラーメッセージに示されているパラメータの値を増やすか、またはネストされているSQLコマンドタスクを使用しないようにアプリケーションを修正してください。