web-dev-qa-db-ja.com

ストアドプロシージャをコンパイルすると、Oracle SQLDeveloperがハングする

OracleSQLDeveloperで異常な問題に直面しています。ストアドプロシージャをコンパイルしようとすると、Oracle SQL DEveloper画面がハングし、SQL開発者インスタンスを強制終了して再起動する以外のアクティビティを実行できません。

しかし、同じ問題。誰かがそのような問題に直面しましたか?オラクルは初めてです。

ここで、問題へのいくつかの追加を5〜10分待って、このエラーが発生しました

ORA-04021 timeout occurred while waiting to lock object

しかし、Oracleのこのインスタンスに取り組んでいるのは私だけです

12
user367134

強制終了したプロシージャを作成するための以前の試みの1つは、まだスタックしていてアクティブです。 http://www.Oracle-base.com/articles/misc/KillingOracleSessions.php を使用してそのOracleセッションを強制終了する必要があります

このエラーのもう1つの原因は、データベース内の別のプロセスが、コンパイルしようとしているときにプロシージャを実行していることです。このクエリを使用して、実行中のプロセスを特定します。

select sess.sid, sess.username, sql_text
from v$sqlarea sqlarea, v$session sess
where sess.sql_hash_value = sqlarea.hash_value
and   sess.sql_address    = sqlarea.address
and   sess.username is not null;
12

クエリv$locked_object現在ロックされているオブジェクトが、ストアドプロシージャによって使用されているかどうかを確認します。その場合は、ロックされているクエリ/モジュールを追跡し、クエリを終了します。

トーマスによって与えられたリンクは、セッションが殺されたら、セッションを殺す方法の詳細を提供します&v$locked_objectレコードが表示されないため、正常にコンパイルできるはずです。

1
Sathyajith Bhat