array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.oci-set-action.php', 1 => 'oci_set_action', ), 'up' => array ( 0 => 'ref.oci8.php', 1 => 'OCI8 関数', ), 'prev' => array ( 0 => 'function.oci-server-version.php', 1 => 'oci_server_version', ), 'next' => array ( 0 => 'function.oci-set-call-timout.php', 1 => 'oci_set_call_timeout', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/oci8/functions/oci-set-action.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)
oci_set_action — アクション名を設定します
Oracle が追跡するアクション名を設定します
PHP からデータベースへの次の「ラウンドトリップ」が起きると、 アクション名がデータベースに登録されます。これは一般的にSQLステートメントが実行されるときに起こります。
V$SESSION
のようなデータベース管理ビューから、
アクション名を後に問い合わせることができます。
それは例えば、 V$SQLAREA
及び
DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE
と一緒に追跡とモニタリングのために使われることができます。
この関数で設定した値は、持続的接続をまたがって保持される可能性があります。
connection
oci_connect()、oci_pconnect() あるいは oci_new_connect() が返す Oracle 接続 ID。
action
ユーザーが選んだ、長さが最高32バイトの文字列。
例1 アクションを設定する
<?php
$c = oci_connect('hr', 'welcome', 'localhost/XE');
// アクションを登録する
oci_set_action($c, 'Friend Lookup');
// クエリを実行することで、ラウンドトリップを起こすコードの例:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);
sleep(30);
?>
// スクリプトを実行中、管理者は実行されるアクションを見ることができる sqlplus system/welcome SQL> select action from v$session;
注意: Oracle のバージョン
この関数が使えるのは、PHP をバージョン 10g 以降の Oracle データベースライブラリとリンクさせた場合だけです。
古いバージョンの OCI8 や Oracle データベースでは、クライアントの情報を Oracle の
DBMS_APPLICATION_INFO
パッケージで設定することができました。
それよりも oci_set_client_info() を使うほうが効率的です。
OCI8 関数の中には、データベースとのやりとりを伴わないものもあります。 たとえば、結果のキャッシングが有効になっている場合、 クエリを実行してもデータベースとのやりとりを行わない可能性があります。