phpでOracleにセッション張りっぱなしになる

公開日: : php

php-logoora-logo

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」(無制限)になっていた。

phpinfo

 

以下の順番でためすことにした。

  1. oci8.persistent_time の値をチューニング(これが設定も評価も簡単そう。)
  2. oci8.max_persistent の値をチューニング
  3. oci8_pconnect()をoci8_connect()に変える

 

Googleアドセンスレスポンシブ

関連記事

php-logo

php7 Oracleに接続 sourceからインストール

phpからORACLEのDBに接続するには2つのソフトウェアが必要 Instant Cl

記事を読む

php-logo

php 7.4をソースからインストール時にchecking for sqlite3 > 3.7.4… no configure: error: Package requirements (sqlite3 > 3.7.4) were not met:

原因 sqliteのパッケージがなかったため。   対応 インストールする。

記事を読む

php-logo

php ソースからインストールした際のオプションはphpinfoで見れる。

configure option の欄を見る 以下の部分。

記事を読む

php-logo

php require_onceでDocumentRootからのパスで指定する

やり方 相対パスで書く場合 こちら

記事を読む

php-logo

php =& イコールアンパサンド で参照渡し

意味 変数やオブジェクトなどを参照渡しする。 # 下記はどちらも同じ挙動になります $

記事を読む

php-logo

php function(関数)の中でincludeやrequireを使うのは可能だがおすすめできない

グローバル関数が絡むと厄介 出典

記事を読む

php-logo

php make test でYou may have found a problem in PHP.が出ても続行できる場合があるらしい

make test後に出た失敗メッセージ  You may have found a pr

記事を読む

php-logo

php5 varによる宣言

古い、人が作ったソース見てたらvarで変数宣言しているのがあって調べた。  

記事を読む

php-logo

phpの変数などにつく「_」アンダースコアについて調べた

ちょこちょこいろんなところで見てモヤモヤしておりました。phpだけじゃなくて職場の先輩がbash

記事を読む

php-logo

php require_onceで相対パスで指定する

  相対パスで指定する書き方 理由 require_onceしたファイル先で

記事を読む

Googleアドセンスレスポンシブ

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

PAGE TOP ↑