Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
ファイルシステムフルのコールバック関数がある DLL (UNIX では共有オブジェクト) のファイル名を指定します。
dbsrv16 -fc filename ...
すべてのオペレーティングシステムとデータベースサーバ
このオプションを使用すると、ファイルシステムフルの状態が発生したときに、ユーザに通知して、必要に応じて修正措置をとることができます。-fc オプションを使用した場合、起動時にデータベースサーバは指定の DLL の読み込みとコールバック関数のエントリポイントの解決を試みます。DLL とエントリポイントの両方を検出できない場合、データベースサーバはエラーを返し、停止します。ユーザが提供する DLL は、コールバックを使用して指定のバッチファイル (UNIX の場合はシェルスクリプト) を呼び出し、診断または修正措置をとることができます。また、コールバック関数自体でもそのようなアクションを実行できます。
%SQLANYSAMP16%\SQLAnywhere\DiskFull にディスクフルのコールバック関数のサンプルがあります。
データベースサーバは、他の DLL やファイルを検索する場合と同じロケーションでコールバック関数 DLL を検索します。
データベースサーバは、ディスクフルの状態を検出すると、コールバック関数 (指定されている場合) を呼び出し、それに以下の情報を渡します。
条件がトリガされた DB 領域の名前
失敗した操作からのオペレーティングシステム固有のエラーコード
xp_out_of_disk からのリターンコードにより、原因となった操作を中止するか再実行するかが決定されます。0 以外の値が返された場合は、操作は中止され、それ以外の場合は操作が再実行されます。0 が返され、ファイルシステムの操作が失敗するかぎり、コールバック関数が繰り返し呼び出されます。
Microsoft Windows プラットフォームでは、データベースサーバの起動時に、データベースサーバメッセージウィンドウが表示される設定で (-qi も -qw も指定されていない)、コールバック DLL が指定されていない場合は、ディスクフルの状態が発生するとウィンドウが表示されます。このウィンドウには、DB 領域名とエラーコードが含まれているので、ユーザはディスクフルの状態の原因となった操作を再実行するか中止するかを決定できます。
その他すべてのオペレーティングシステムでは、-fc が指定されていない場合にディスクフルの状態になると、致命的なエラーが発生します。
データベースファイル、ログファイル、テンポラリファイルなどを格納しているデバイスの使用可能なディスク領域を管理するシステムイベントを作成して、ディスク領域の不足を管理者に警告できます。
データベースサーバは、起動時に diskfull.dll DLL をロードしようとします。
dbsrv16 -fc diskfull.dll -n my_server