無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 23 APIとライブラリー :: 23.2 MySQL C API :: 23.2.13 自動再接続挙動の管理
« 23.2.12.2 mysql_server_end()

23.2.14 C APIを使うときよく尋ねられる質問と問題 »
Section Navigation      [Toggle]
  • 23.2 MySQL C API
  • 23.2.1 C APIデータタイプ
  • 23.2.2 C API機能の概要。
  • 23.2.3 C API機能の説明
  • 23.2.4 準備されたC APIステートメント。
  • 23.2.5 準備されたC APIステートメントデータタイプ
  • 23.2.6 準備されたC APIステートメント機能の概要
  • 23.2.7 準備されたC APIステートメント機能の詳細
  • 23.2.8 準備されたC API ステートメントの問題
  • 23.2.9 マルチプルステートメントを実行するC APIハンドリング
  • 23.2.10 日付とタイム値のC API式取り扱い
  • 23.2.11 C APIスレッド機能の説明
  • 23.2.12 埋め込まれたC API機能の説明
  • 23.2.13 自動再接続挙動の管理
  • 23.2.14 C APIを使うときよく尋ねられる質問と問題
  • 23.2.15 クライアントプログラムの構築
  • 23.2.16 スレッド付きクライアントを作る方法

23.2.13. 自動再接続挙動の管理

実行されるべきステートメントをサーバに送ろうと試みるとき、接続がダウンしているとわかると、MySQLクライアントライブラリはサーバのため、自動再接続を実施します。この場合、ライブラリはサーバーに再接続しようと一回試み、ステートメントを再び送ります。

自動再接続は自分の再接続コートを搭載する必要がないので、便利であるが、再接続が起こると、接続状態の幾つかの局面がリセットされ、それがアプリケーションに知らされません。接続が関係する状態は、次のように影響を与えます:

  • クティブな取引がすべてロールバックされ、オートコミットモードがリセットされます。

  • すべてのテーブルロックが解放されます。

  • すべてのTEMPORARY テーブルが閉じ (且つドロップ)されます。

  • セッション変数が対応する変数値に再初期設定されます。これはSET NAMESのようなステートメントによって暗黙にセットされる変数に影響を与えます。

  • ユーザー可変の設定が失われます。

  • 準備されたステートメントがレリースされます。

  • HANDLER 変数が閉じられます。

  • LAST_INSERT_ID() の値が0にリセットされます。

  • GET_LOCK()を使って取得されたロックが解放されます。

接続のドロップを知り、(閉じるか状態情報の喪失に対して調整アクションを起こせるようにする)ことがアプリケーションにとって重要である場合、自動再接続が無効になっていることを確認してください。MYSQL_OPT_RECONNECTオプションを使って、 mysql_options()を呼び出すことによって、これを暗黙に実行することができます。

my_bool reconnect = 0;
mysql_options(&mysql, MYSQL_OPT_RECONNECT, &reconnect);

MySQLでは5.1、 自動再接続はデフォルトによって無効化されています。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.