• ベストアンサー

ストアド実行でORA-4030エラー の詳細を追加

exec ctx_ddl.sync_index('列名') 行1でエラーが発生しました。: ORA-20000: Oracle Textエラー: ORA-04030: 66840バイト(Heap for lexic,gxlGetMem:memory)を割り当てようとしてプロセス・メモリーが不足しています ORA-06512: "CTXSYS.DRUE", 行157 ORA-06512: "CTXSYS.CTX_DDL", 行1328 ORA-06512: 行1

質問者が選んだベストアンサー

  • ベストアンサー
  • nieve
  • ベストアンサー率51% (14/27)
回答No.3

Oracle9i データベース・エラー・メッセージ リリース2(9.2)によると、 http://otn.oracle.co.jp/mp/EL/sll?p=988-2293-1-0  ORA-06512 string行string   原因:通常、これはメッセージ・スタックの最後で、PL/SQLコードのどこで      問題が発 生したかを示します。   処置:例外の原因となった問題を修正するか、またはこの条件に対する例外      ハンドラを 作成してください。      または、アプリケーション管理者またはデータベース管理者(DBA)に      連絡してください。 と書いてあります。 JAPANESE_LEXERを指定した場合の問題となっていた、“ORA-06512: "CTXSYS.CTX_DDL", 行1328”はJAPANESE_VGRAM_LEXERに変更する事で解決したと思思っております。しかし、“ORA-06512: "スキーマ名.AAAAAAAAA", 行2203”を実行する際にメモリ不足を示す“ORA-04030”が新たに発生する様になり、実行したい“BEGIN AAAAAAAAA.update_BBBBB('',9999); END;”の処理を行えないとの質問ですか? この場合、記述されていると思われる"スキーマ名.AAAAAAAAA", 行2203がについてもう少し、詳細な情報を頂きたいです。 内容としては2203行目はコードなのか、またどのような処理を行いたいのかについても教えてください。 あと、ORA-04030が発生したときのtraceファイルがbdumpかudumpに出力されていると思います。 差し支えなければ、その情報も書いて頂けると何かわかるかもしれません。 (私が回答出来る問題であるかは分かりませんが…) 私のよく当たらない勘では“cursor work he…”とありますのでカーソルならSHARED_POOL_SIZE関連(SHARED_POOL_RESERVED_SIZE等)の設定を確認すべき? しかし、その場合はORA-04031が出る様な気も?また、ORA-04030が発生してとのことですのでOracleが動的にメモリを確保に行く所が問題になるのかな… など色々想像は出来ますが回答は出来ません。 http://search.goo.ne.jp/web.jsp?MT=SHARED_POOL_SIZE また、メモリを疑う前にどのようなデータに対してどのような処理をしようとしているのかも検証すべきだと思います。 ということで、もう少しヒントになる情報があれば何か分かる人がいるかもしれません。

yuzuyusa
質問者

お礼

nieveさん! 遅くなりましたが、ありがとうございまいた。メモリ関係はちょっと掴み所が無い感がありますが・・・また質問させて頂く際は、ご教示下さい。

yuzuyusa
質問者

補足

何度も回答頂きましてありがとうございます。 的を得た情報でないかもしれませんが、記述します。 "スキーマ名.AAAAAAAAA", 行2203が発生した時のエラーは発見できませんでしたが、alert_SID名.logには以下のメッセージがありました。 Wed Mar 2 17:33:49 2005 Errors in file /opt/oracle/admin/SID名/bdump/SID名_j000_13804.trc: ORA-12012: ジョブ1の自動実行エラーが発生しました ORA-04030: 2008バイト(session heap,frame segment)を割り当てようとしてプロセス・メモリーが不足しました。 ORA-06512: "スキーマ名.ストアド名", 行404 #cursorのselectの1列目の様です。 ORA-06512: "スキーマ名.ストアド名", 行960 #open ORA-06512: "スキーマ名.ストアド名", 行2059 #fetch ORA-06512: 行1 #SID名_j000_13804.trcはログの内容とほとんど #変わりありませんでした。 こんなのもありました! Sat Feb 26 02:54:06 2005 Errors in file /opt/oracle/admin/SID名/udump/SID名_ora_26267.trc: ORA-07445: 例外が検出されました: コア・ダンプ [kohatd()+758] [SIGSEGV] [Address not mapped to object] [0xFFFFFFF0] [] [] ORA-04030: 16396バイト(koh-kghu sessi,kolcalm coll)を割り当てようとしてプロセス・メモリーが不足しました。 #SID名_ora_26267.trcは8Mもあり、DUMPがあったり #SQL文が記述されたりしていました。

その他の回答 (2)

  • nieve
  • ベストアンサー率51% (14/27)
回答No.2

> レクサー型を'JAPANESE_VGRAM_LEXER'に変更する > 理由も教えて頂けますか? 返事が遅くなってしまいました。以前同じ現象を体験したので そのまま対処方法だけを書いたのですが上記の質問に対する回答を 探すのに手間取ってしまいました。 回答としてはJAPANESE_LEXERを指定するとメモリ不足になるでは 不十分とのことですよね? そこで改めて調べてみたのですがあまり良い情報はありませんでした。 今回の件に対する詳細情報は、Oracleの正式なサポート情報に頼る しかなさそうです。 情報としては、OracleのKROWN#85203に載っています。 しかし、公開区分が“契約顧客のみ”とされておりました。 そのため、詳細の記述は控えさせて頂きます。 また、同じような現象に遭遇された方の情報は下記にありましたので 参考までにURLを記述しておきます。 http://nikki.mikage.to/diary.cgi?ID=597&Command=Disp また、JAPANESE_LEXERに関してはKROWN#52324の問題もありますので 注意が必要です。 ところで、yuzuyusaさんはJAPANESE_LEXERを指定されていましたか? また、JAPANESE_VGRAM_LEXERに変更することで問題を解決出来ましたか?

yuzuyusa
質問者

補足

>ところで、yuzuyusaさんはJAPANESE_LEXERを指定されて >いましたか? 指定していました。 >また、JAPANESE_VGRAM_LEXERに変更することで問題を解 >決出来ましたか? 指定したところ以下のエラーとなりました。 Oracle9i Release 9.2.0.4.0 - Production JServer Release 9.2.0.4.0 - Production に接続されました。 BEGIN AAAAAAAAA.update_BBBBB('',9999); END; * 行1でエラーが発生しました。: ORA-04030: 1024バイト(cursor work he,kghsseg : kokeismo)を割り当てようとしてプロセス・メモリーが不足しました。 ORA-06512: "スキーマ名.AAAAAAAAA", 行2203 ORA-06512: 行1 やはり、質問:ストアド実行でORA-4030エラー で 指摘頂いた様に、メモリ関係のチューニングが必要 でしょうか?

  • nieve
  • ベストアンサー率51% (14/27)
回答No.1

プリファレンスを作成する際に下記のように指定されていますか? ctx_ddl.create_preference('japanese_lexer', 'JAPANESE_LEXER'); もし、そうならレクサー型を'JAPANESE_VGRAM_LEXER'に変更してみてください。

yuzuyusa
質問者

補足

レクサー型を'JAPANESE_VGRAM_LEXER'に変更する 理由も教えて頂けますか?