fujimoto Wed Dec 12 09:05:03 2001 EDT
Modified files:
/phpdoc/ja/features persistent-connections.xml
Log:
updated translation (up to 1.15).
Index: phpdoc/ja/features/persistent-connections.xml
diff -u phpdoc/ja/features/persistent-connections.xml:1.4
phpdoc/ja/features/persistent-connections.xml:1.5
--- phpdoc/ja/features/persistent-connections.xml:1.4 Wed Nov 14 17:55:19 2001
+++ phpdoc/ja/features/persistent-connections.xml Wed Dec 12 09:05:00 2001
@@ -78,6 +78,36 @@
合、各子プロセス毎にSQLサーバーへの20の異なった接続が行われます。
</simpara>
<simpara>
+
+しかし、気をつけなければならないことが一つあります。それはデータ
+
+ベースへの接続数を制限して使用している場合に、持続的な子プロセスの
+
+接続数がその数を超えると問題が発生し得ることです。もしデータベース
+
+の同時接続数の制限が16だとして、サーバに多くのアクセスがあったため
+
+17個の子プロセスが接続しようとするとそのうちの一つは接続に失敗しま
+
+す。もしスクリプトにコネクションをシャットダウンしないようなバグ(
+
+例えば無限ループ)があると32程度の同時接続しか許容しないデータベース
+
+はすぐにダメになってしまいます。使用しているデータベースが、中断さ
+
+れた、もしくは使用されていないコネクションをどのように扱うかを確認
+ してみてください。
+ </simpara>
+ <warning>
+ <simpara>
+
+持続的接続を使用する際にはまだいくつか心に留めておく必要がある注意
+
+点があります。一つは持続的接続でテーブルをロックする場合にスクリプト
+
+が何らかの理由でロックを外し損ねると、それ以降に実行されるスクリプト
+
+がその接続を使用すると永久にブロックしつづけてしまい、ウェブサーバか
+
+データベースサーバを再起動しなければならなくなるということです。もう
+
+一つはトランザクションを使用している場合に、トランザクションブロック
+
+が終了する前にスクリプトが終了してしまうとそのトランザクションブロッ
+
+クもまた次に同じ接続を使用して実行されるスクリプトに引き継がれる、と
+
+いうことです。どちらの場合でも<function>register_shutdown_function
+
+</function>を使用してテーブルのロックを解除したりトランザクションを
+
+ロールバックする簡単なクリーンアップ関数を登録することができます。
+
+しかしそれよりも良い方法は、テーブルロックやトランザクションを使用
+
+するスクリプトでは持続的接続を使用せず、問題を完全に避けて通ることで
+ す(他の箇所で使用する分には問題ありません)。
+ </simpara>
+ </warning>
+ <simpara>
重要なことをまとめます。持続的接続は、標準的な接続に1対1の割りつけ
を行うように設計されています。このことは、<emphasis>常に</emphasis>
持続的接続を非持続的接続で置きかえ、かつ動作を変更しないということ