forked from php/doc-ja
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfan.xml
125 lines (125 loc) · 5.33 KB
/
fan.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f4c44b86948f70a7e89f582b500e2595452e00f0 Maintainer: satoruyoshida Status: ready -->
<chapter xml:id="oci8.fan" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>OCI8 高速アプリケーション通知 (FAN) サポート</title>
<para>
FAN サポートは、高速接続フェイルオーバーという
Oracle Database 高可用性機能を提供します。
これにより、データベースマシンまたはデータベースインスタンスが使用不能になると、
PHP OCI8 スクリプトに通知されるようになります。
FAN を使用しないと、数分間かもしれませんが、
TCP タイムアウトが発生してエラーが返されるまで
OCI8 がハングアップすることがありえます。
OCI8 で FAN を有効にすると、
Web ユーザーが機能停止に気づかないように
アプリケーションがエラーを検出し、
使用可能なデータベースインスタンスに再接続できるようになります。
</para>
<para>
FAN サポートは、PHP とリンクする Oracle クライアントライブラリ、
および Oracle Database の両方のバージョンが 10gR2 以降の場合に使用可能です。
</para>
<para>
データベースインスタンスを生き残らせるための接続がただちに作成されるので、
FAN は、Oracle のクラスタリング技術 (RAC) のユーザーに役立ちます。
ブローカーがある場合の Oracle Data Guard のユーザーは、
スタンバイ用のデータベースがオンラインになる際に
FAN イベントが生成されることに気づくでしょう。
スタンドアローンのデータベースは、データベース再始動の際に FAN イベントを送信します。
</para>
<para>
アクティブな接続の場合、
データベースマシンまたはデータベースインスタンスが使用できなくなると、
現在呼び出されている OCI8 拡張モジュールの関数により
接続失敗エラーが返されます。
後続の PHP スクリプト再接続時には、
残存するデータベースインスタンスへの接続が確立されます。
OCI8 拡張モジュールはまた、
いかなるサービスの中断もスクリプトで意識しないように
PHP 接続呼び出しが新鮮な接続を確立するよう、
データベースマシンまたはデータベースインスタンスの障害の影響を受けた
すべてのアイドル状態の接続を透過的にクリーンアップします。
</para>
<para>
FAN イベントを有効にすると、サービスの中断により無効にされた
アイドル状態の接続の積極的な接続管理が提供されるため、
<link linkend="ini.oci8.events">oci8.events</link> が
<literal>On</literal> の場合、ping を無効にするには
<link linkend="ini.oci8.ping-interval">oci8.ping_interval</link> を -1 に
設定することがお勧めです。
</para>
<para>
PHP OCI8 で FAN サポートを有効にするには、
Oracle 10gR2 以降のライブラリとともに PHP OCI8 をビルドし、
以下のステップに従います。
</para>
<para>
<itemizedlist>
<listitem>
<simpara>
データベースサービスが FAN イベントをポストできるようにするには、
特権を持つデータベース管理者として SQL*Plus のようなプログラムを使用します。
たとえば下記のように使用します。
</simpara>
<para>
<informalexample>
<screen>
<![CDATA[
SQL> execute dbms_service.modify_service(
SERVICE_NAME => 'sales',
AQ_HA_NOTIFICATIONS => TRUE);
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<simpara>
php.ini を編集して以下のように追加します。
</simpara>
<para>
<informalexample>
<screen>
<![CDATA[
oci8.events = On
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<simpara>
もし OCI8 のエラー条件をアプリケーションがすでに正しく処理していなければ、
障害を検出し、適切なアクションを取るように変更します。
これは、再接続や再実行のステートメントを含むかもしれません。
</simpara>
</listitem>
<listitem>
<simpara>
アプリケーションを実行し、Oracle Database 10gR2 以降に接続します。
</simpara>
</listitem>
</itemizedlist>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->