phpでOracleにセッション張りっぱなしになる
公開日: : php
Oraの画像がでかい…笑
事象
仕事で相談を受けた。
「Webサイトへの同時アクセス数が大量にあるとき、Webページが閲覧しにくい状態となり、調べてみるとOracleへのセッション数が大量に溜まっていた。」
これを解消したい。
原因
調べてみると、phpの公式サイトにそれらしき説明があった。
phpでOracleに接続する際に利用するoci8において使用できる関数が3つ用意されてる。
上記3つは、上から順に、接続の寿命が短い。
今回の事象を調べてみると、一番下のoci_pconnect()を 利用していた。
oci_pconnect()は、キャッシュの量(oci8.max_persistent)や接続持続時間の秒数(oci8.persistent_timeout)でキャッシュの寿命を指定できる。
それぞれphp.iniで設定でき、値を「-1」とした場合には、無制限となる。
デフォルト値が何か公式サイトに見当たらなかったが、php7.4でphp.iniで設定せずにphpinfoを確認してみると「-1」(無制限)になっていた。
以下の順番でためすことにした。
- oci8.persistent_time の値をチューニング(これが設定も評価も簡単そう。)
- oci8.max_persistent の値をチューニング
- oci8_pconnect()をoci8_connect()に変える
Googleアドセンスレスポンシブ
関連記事
-
php function(関数)の中でincludeやrequireを使うのは可能だがおすすめできない
グローバル関数が絡むと厄介 出典
-
php アットマーク
意味 @マークをつけると、エラーを表示させない。 どこで使うか 関数とか変数の頭につける。
-
php ソースからインストールした際のオプションはphpinfoで見れる。
configure option の欄を見る 以下の部分。
-
php でハッシュ化と検証
php でMySQLにパスワードなど暗号化したい文字列を格納し、 更にそれが合ってるかの確認処
-
php7 Oracleに接続 sourceからインストール
phpからORACLEのDBに接続するには2つのソフトウェアが必要 Instant Cl
-
phpのコンストラクタ
コンストラクタとは classがnewされた瞬間に実行されるfunction。 php3、p
-
php parent 親クラスのプロパティやメソッドにアクセスする
子クラスで使う すると親クラスのプロパティやメソッドにアクセスできる 例:pare
-
php require_onceでDocumentRootからのパスで指定する
やり方 相対パスで書く場合 こちら
-
php require_onceで相対パスで指定する
相対パスで指定する書き方 理由 require_onceしたファイル先で
-
phpで PHP Parse error: syntax error, unexpected ‘$’, expecting ‘)’ の原因
エラーメッセージの意味 簡単に説明すると ")"付近(直前)のソースコードに、想定外の