あるシステム屋によるJava開発の記録

現在Javaを使ったWEBシステムを開発している筆者が、日々気付いたこと・思ったことや過去に経験したことを記していきます。

ストアド・パッケージの再コンパイル時にORA-04068, ORA-004061, ORA-04065発生

まずは、いわゆる"ストアド"についてのまとめ。

ストアド
(1) ストアド・プロシージャ
(2) ストアド・ファンクション
(3) ストアドパッケージ
に分類される。
(2)が(1)を、(3)が(1), (2)をそれぞれ包含していると言える。
(2), (3)は表形式の返り値を持つこともできるため、SQLのFROM句に指定することもできる。


実際に使ったことがあるのは、(3) ストアドパッケージ のみである。
比較的複雑な処理を一つにまとめて、ストアドパッケージにあるパラメータを渡すことで動的に異なる結果を返すような仕組みを実装した。
具体的な比較を行ったわけではないが、一般にストアドパッケージを使用すると実行速度の向上が期待できる。
ストアドパッケージはDBのメモリ上でコンパイルされた状態で格納されているため、その分速度が上がるというわけである。

一点、ストアドパッケージ使用時の注意として、既にOracleのセッション上に読み込まれているストアドパッケージを再コンパイルした場合などに、以下のOracleエラーが発生する場合がある:

ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package body "schema.package_name" has been invalidated
ORA-04065: not executed, altered or dropped package body "schema.package_name"


WEBサーバからコネクションプーリングを使用してOracleに接続している場合は、コネクションを使いまわすことになるので、ストアドパッケージを使用した後で再コンパイルを行ってしまうと、別ユーザであっても上記エラーが発生する可能性がある。
コネクションを複数用意している場合は、コネクションによってはエラーが発生しないという場合もありうる。
このような場合は、WEBサーバを再起動するなどして、WEBサーバとして確保しているコネクションを一度開放する必要がある。

ストアドパッケージの変更はDB側のみの変更なのでWEBサーバを停止しなくてもいい、と安易に考えてしまうとORA-04068が発生しやすくなってしまう。


※ 引用元:
ストアドプロシージャ、パッケージとは
ORA-04068
※ 上記サイトはいずれもSHIFT the Oracle内のコンテンツです。

テーマ:Oracle - ジャンル:コンピュータ

  1. 2008/02/16(土) |
  2. Oracle
  3. | トラックバック:0
  4. | コメント:0

関連エントリー

<<FC2に投稿しても記事が登録されない | ホーム | 資格取得! - テクニカルエンジニア(データベース)(2) ->>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://javasystem.blog4.fc2.com/tb.php/36-8023f6af
この記事にトラックバックする(FC2ブログユーザー)

ブログ内検索

カテゴリー

最近の記事

カレンダー

08 | 2008/09 | 10
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

月別アーカイブ

feedmeter & あわせて読みたい

フィードメーター - あるシステム屋によるJava開発の記録
あわせて読みたいブログパーツ

CHEER ENGINEER

Yahoo logoole

プロフィール

Author:kamii
ピタゴラスイッチ好きなシステム開発屋@二児の父です。

メールフォーム

名前:
メール:
件名:
本文:

カウンター

checker

ページランク


ブログチャート

FoxMeter 3

Firefox3 Meter

KiTT

Amazon商品一覧【新着順】

情報処理教科書 テクニカルエンジニア[データベース]2008年度版 (CD-ROM付) (情報処理教科書)
情報処理教科書 テクニカルエンジニア[データベース]2008年度版 (CD-ROM付) (情報処理教科書)

情報処理教科書 ソフトウェア開発技術者 2007年度版 (情報処理教科書)
情報処理教科書 ソフトウェア開発技術者 2007年度版 (情報処理教科書)

現在時刻

全エントリ表示

全てのエントリを表示する

RSSフィード

リンク

このブログをリンクに追加する

By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる