ORA-04030 エラーが発生する

Document created by shunsuke_katakura Employee on Mar 23, 2015
Version 1Show Document
  • View in full screen mode

文書番号:            JTEC000289

製品名:                CA eHealth

バージョン:           5.7, 10.0, 4.8, 5.0.2, 5.6.6, 6.0, 6.1, 6.2, 5.5, 5.6, 5.6.5

OS:                      -

 

詳細内容

"ORA-04030: out of process memory when trying to allocate bytes(,) エラーが発生します。これは、OS が割り当てるメモリ以上のメモリを Oracle が必要としているために発生します。

 

回避方法/設定方法

以下の 2 つの作業を行ってください。

  • /3GB スイッチを有効にします
  • Oracle System Global Area (SGA) を1.7GB 以下にします

 

/3GB スイッチを有効にすると、Oracle はより多くのメモリにアクセスできるようになります。 

Windows Server 2003 では、メモリやメモリアドレス領域の使用割り当ての調節を可能にするスタートアップ スイッチがサポートされています。システム上の物理メモリの量に関わらず、Windows は4GB の仮想アドレス領域を使用し、2GB をユーザ モード プロセス(アプリケーションなど)に、残り2GB をカーネル モード プロセス(OS やカーネル モード ドライバなど)に割り当てます。1GB 以上の物理メモリがあるシステムでは、これらの2つのスタートアップ スイッチを、アプリケーションにより多くのメモリ(3GB)を、OS により少ないメモリ(1GB)を割り当てるよう使用することができます。この付加的な仮想アドレス領域は Exchange 情報格納プロセスの仮想アドレス領域で発生するメモリ フラグメンテーションの量を減らす支援をします。

/3GB スイッチは、この割り当て変更を達成するために使用されます。スイッチは、システムの boot.ini ファイルに入力し、再起動後有効になります。


Windows Server 2003 で /3GB スタートアップ スイッチを設定する方法

  1.   [ My Computer ] を右クリックし、 [ Properties ] を選択します。システムのプロパティ画面が表示されます。
  2. [ Advanced ] タブをクリックします。
  3. [ Startup and Recovery ] 領域で [ Settings ] をクリックします。 [ Startup and Recovery ] 画面が表示されます。
  4. [ System startup ] 領域で [ Edit ] をクリックします。 Windows の boot.ini ファイルが Notepad で開きます。
  5. [ Operating Systems ] セクションの /fastdetect スイッチを含むスタートアップ行の最後に次のスイッチを追加します。
    /3GB
  6. 変更を保存し、Notepad をクローズします。
  7. 開いているダイアログ ボックスを全て閉じ、変更が反映されるようコンピュータを再起動します。

 

Oracle System Global Area (SGA) を 1.7GB 以下に減らす方法

  1. %NH_ORACLE_HOME%\database\initEHEALTH.ora をバックアップします。バックアップしたファイルを以下のようにリネームします。

    %NH_ORACLE_HOME%/database\initEHEALTH.ora.bak

  2.   以下のように設定を変更・追加し、 %NH_ORACLE_HOME%\database\initEHEALTH.ora を修正します。 

    db_cache_size = 419430400
    shared_pool_size= 184549376
    large_pool_size=67108864
    sga_max_size=671088640
    pga_aggregate_target = 1153433600

  3.   %NH_ORACLE_HOME%\database\spfileEHEALTH.ora のファイル名を %NH_ORACLE_HOME\database\spfileEHEALTH.ora.bak に変更します。 
  4.   eHealth を停止します。 

    nhServer stop

  5.   コマンドライン上でデータベースにログインします。 

    sqlplus "sys/ehealth as sysdba"

  6.   SQL> プロンプトで以下のコマンドを実行します。 

    create spfile from pfile;
    exit

  7.   データベースを停止します。 

    nhStopDb immediate

  8.   eHealth とデータベースを起動します。 

    nhStartDb
    nhServer start

上記手順を行っても問題が解決しない場合は、 Oracle のパラメータである sort_area_size= を 25% 減らし ( デフォルト値 65536 を 49152 に ) 、システム パフォーマンスが改善するか確認してください。詳細については、Oracle メタリンク記事 116076.1 をご参照ください。

  


この情報は、CA Support Online に掲載されている以下のナレッジを翻訳したものです。翻訳後に参照しているナレッジが更新されている場合があります。

TEC519154: Error: "ORA-04030: out of process memory when trying to allocate bytes(,) (Legacy KB ID CNC TS33584 ) (最終更新日:2009/12/27)

CA は、お客様が本情報を利用されたことによって生じた直接または間接な問題や損害については、いかなる責任を負わないものとします。もし誤訳を発見された場合には、CA サポートまでご連絡ください。


Attachments

    Outcomes