ファイル・システム・フルのコールバック関数がある DLL (UNIX では共有オブジェクト) のファイル名を指定します。
{ dbsrv11 | dbeng11 } -fc filename ...
すべてのオペレーティング・システムとデータベース・サーバ
このオプションを使用すると、ファイル・システム・フルの状態が発生したときに、ユーザに通知して、必要に応じて修正措置をとることができます。-fc オプションを使用した場合、起動時にデータベース・サーバは指定の DLL の読み込みとコールバック関数のエントリ・ポイントの解決を試みます。DLL とエントリ・ポイントの両方を検出できない場合、SQL Anywhere データベース・サーバはエラーを返し、停止します。ユーザが提供する DLL は、コールバックを使用して指定のバッチ・ファイル (UNIX の場合はシェル・スクリプト) を呼び出し、診断または修正措置をとることができます。また、コールバック関数自体でもそのようなアクションを実行できます。
samples-dir\SQLAnywhere\DiskFull にディスク・フルのコールバック関数のサンプルがあります。
samples-dir の詳細については、サンプル・ディレクトリを参照してください。
SQL Anywhere は、他の DLL やファイルを検索する場合と同じロケーションでコールバック関数 DLL を検索します。
SQL Anywhere がファイルを検索する場所の詳細については、SQL Anywhere のファイル検索方法を参照してください。
データベース・サーバは、ディスク・フルの状態を検出すると、コールバック関数 (指定されている場合) を呼び出し、それに以下の情報を渡します。
条件がトリガされた DB 領域の名前
失敗した操作からのオペレーティング・システム固有のエラー・コード
xp_out_of_disk からのリターン・コードにより、原因となった操作を中止するか再実行するかが決定されます。0 以外の値が返された場合は、操作は中止され、それ以外の場合は操作が再実行されます。0 が返され、ファイル・システムの操作が失敗するかぎり、コールバック関数が繰返し呼び出されます。
Microsoft Windows プラットフォームでは、データベース・サーバの起動時に、データベース・サーバ・メッセージ・ウィンドウが表示される設定で (-qi も -qw も指定されていない)、コールバック DLL が指定されていない場合は、ディスク・フルの状態が発生するとウィンドウが表示されます。このウィンドウには、DB 領域名とエラー・コードが含まれているので、ユーザはディスク・フルの状態の原因となった操作を再実行するか中止するかを決定できます。
その他すべてのオペレーティング・システムでは、-fc が指定されていない場合にディスク・フルの状態になると、致命的なエラーが発生します。
データベース・ファイル、ログ・ファイル、テンポラリ・ファイルなどを格納しているデバイスの使用可能なディスク領域を管理するシステム・イベントを作成して、ディスク領域が不足している場合に管理者に警告できます。
CREATE EVENT 文を参照してください。
データベース・サーバは、起動時に diskfull.dll DLL をロードしようとします。
dbeng11 -fc diskfull.dll |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |