[PHP-users 18482]OCI関数でオラクルにアクセスしたら、オラクルプロセスが残ったままです・・・

?? ?? yoshisak30 @ msn.com
2003年 10月 16日 (木) 20:58:32 JST


さかもと@TSTです。 
初めて投稿いたします。 
今回、Webアプリを社内で使うことになり、
作成していましたが ある日、サーバのメモリがいっぱいになって
WebからオラクルDBのアクセスができなくなりました。 


    環境は、 
    Solaris2.X 
    PHP 4.3.2 
    DB Oracle 
    ざっと、こんな環境ですがプロセスをコマンドで表示したところ、 
    以下のようになりました。 
    オラクルのプロセスのみ、抽出しました。このプロセスのサイズは異様に 
    でかいです!メモリオーバーでたまに vi が動かないこともあります。 
    -------------------------------------------------------- 
    F S   UID   PID  PPID  C PRI NI     ADDR     SZ    WCHAN TTY      TIME 
CMD 
    8 S   100 17575     1  0  50 20        ?  50985        ? ?        0:01 
    oracle 
    8 S   100 17573     1  0  50 20        ?  51108        ? ?        1:16 
    oracle 
    8 S   100 17565     1  0  50 20        ?  51214        ? ?        3:59 
    oracle 
    8 S   100 17569     1  0  50 20        ?  51226        ? ?        2:37 

    oracle 
    8 S   100 17577     1  0  50 20        ?  50966        ? ?        0:08 
    oracle 
    8 S   100 27876     1  0  41 20        ?  51001        ? ?        0:00 
    oracle 
    8 S   100 17567     1  0  50 20        ?  51398        ? ?        2:36 
    oracle 
    8 S   100 17571     1  0  50 20        ?  51229        ? ?       39:35 
    oracle 
    8 S   100 17579     1  0  50 20        ?  51138        ? ?        0:04 
    oracle 
    8 S   100 26114     1  0  41 20        ?  51261        ? ?        0:06 
    oracle 
    8 S   100 26084     1  0  41 20        ?  51263        ? ?        0:06 
    oracle 
    8 S   100 26119     1  0  41 20        ?  51265        ? ?        0:06 
    oracle 
    8 S   100 26116     1  0  41 20        ?  51005        ? ?        0:06 
    oracle 
    8 S   100 26082     1  0  41 20        ?  51261        ? ?        0:06 
    oracle 
    8 S   100 26089     1  0  41 20        ?  51265        ? ?        0:06 
    oracle 
    8 S   100 26093     1  0  41 20        ?  51263        ? ?        0:07 
    oracle 
    ------------------------------------------------------- 
    ちなみネットワークの状況は(ポート1521関係を抜粋) 
    -------------------------------------------------------- 
    
      Local Address         Remote Address     State 
    -------------------- -------------------- ------- 
    solarisX.54605       solarisX.1521        32768      0 32768      0 
    CLOSE_WAIT 
         *.1521               *.*                0      0 24576      0 
LISTEN 
    solarisX.63846       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.63846       32768      0 32768      0 
    ESTABLISHED 
    solarisX.33032       solarisX.1521        32768      0 32768      0 
    CLOSE_WAIT 
    solarisX.33034       solarisX.1521        32768      0 32768      0 
    CLOSE_WAIT 
    solarisX.33055       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.33055       32768      0 32768      0 
    ESTABLISHED 
    solarisX.33056       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.33056       32768      0 32768      0 
    ESTABLISHED 
    solarisX.33057       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.33057       32768      0 32768      0 
    ESTABLISHED 
    solarisX.33059       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.33059       32768      0 32768      0 
    ESTABLISHED 
    solarisX.33060       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.33060       32768      0 32768      0 
    ESTABLISHED 
    solarisX.33061       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.33061       32768      0 32768      0 
    ESTABLISHED 
    solarisX.33062       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.33062       32768      0 32768      0 
    ESTABLISHED 
    solarisX.33080       solarisX.1521        32768      0 32768      0 
    ESTABLISHED 
    solarisX.1521        solarisX.33080       32768      0 32768      0 
    ESTABLISHED 
    ------------------------------------------------------------------ 
    
    だいたい、1対の通信(ソースポート・リモートポート)が約15組存在していま
す。
     
    
    OCIPLogon()関数でオラクルDBを処理していますが(便利な関数だと聞いており
ま 
    す。 
    httpdのプロセスに対応して接続、切断をしているとのことですが・・・)、 
    それを採用しても、なぜかオラクルの接続プロセスが残っています。接続が確立
した
     
    
    状態です。(ESTABLISHED) 
    
    いろいろ原因を考えましたが、わかりません。 
    どのように対処すれば、余分なプロセスを消してメモリを最小限にしておくこと
がで
     
    きるでしょうか? 
    宜しくお願いします。 
    ちなみに、このプロセスを殺して、DBに再接続したところ以下のエラーが出まし
た。
      
    --------------------------------------------------------------------- 
    OCIStmtExecute: ORA-03113: 通信チャネルでファイルが終りになりました。 
in 
    /usr1/www-data/daicho/logincheck.php on line 25 
    --------------------------------------------------------------------- 
    プロセスを直接殺す方法がだめだったので、もしおわかりの方がいらっしゃいま
した
    ら、教授宜しくお願いします。

_________________________________________________________________
あなたのPCを守るために定期的なセキュリティ対策を。マイクロソフト セキュリ
ティ情報センター http://www.microsoft.com/japan/protect/hm.asp 



PHP-users メーリングリストの案内