プログラム実行中の共用バッファ枯渇について

プログラム実行中に共用バッファの枯渇が発生するのはなぜですか?
このような現象となるのは、多数のアプリケーションから同時に異なるデータの参照/更新が発生したためです。(たとえば、1つのアプリケーションが大量のデータを参照、更新していたとしてもこのような「共用バッファプールの枯渇」にはなりません。)

このような現象が発生する場合には、共用バッファプールのページ数を増やす、資源ごとに別のバッファプールを用意する、または危険値を下げるなどの対応をしてください。どの対応が効果的であるかは、業務内容やデータベースに格納されているデータ量によって異なります。

Symfowareでは、共用バッファプールの空き領域が不足しそうになると、バッファプールを使い切るよりも前から、自動的に使用中の領域を解放し共用バッファの空き領域を確保するように動作します。
それにも関わらず「共用バッファプールの枯渇」という現象が現れたのは、以下のような状況が発生したためです。

  1. 多数のアプリケーションが、データベース内の特定または複数の表に対してアクセスしてきた。

  2. Symfowareは、データの参照効率を上げるため、読み込んだデータを共用バッファプール上に確保(キャッシュ)した。

  3. 多数のアプリケーションがさらにデータベース内の任意の表に対しアクセスしてきた。

  4. 共用バッファプールが一定量以上使用されたので(割合が危険値を超えたので)、Symfowareは内部的にデータの破棄または書き戻しを行った。

  5. しかし、さらに多数のアプリケーションはデータベース内の表へのアクセスを続けた。

  6. Symfowareの書き戻し処理は継続して行っているが、データベース内の表へのアクセスのためのバッファを確保できないアプリケーションが、バッファ待ちとなった。

  7. バッファ待ちのアプリケーションに対し、Symfowareは順次空きバッファ域を提供していくが、アプリケーションの要求数が多すぎるため一定の時間待ってもバッファをもらえないアプリケーションが出てきた。

  8. このような状況では、現状、また今後の業務にも影響を及ぼすおそれがあるとして、Symfowareより、「共用バッファプールの枯渇」というエラーメッセージをアプリケーションに対し通知した。

製品・サービス区分 Symfoware
製品・サービス情報
対象製品 Symfoware Server (Native Interface)
プラットフォーム Windows, Solaris, Linux
アンサー種別 運用/保守
このページの先頭へ