2016-05-16 8 views
0

このアプリケーションは、公式サイトから提供されているJDBCドライバを使用してoracle 11Gデータベースに接続されています。同じスキーマに接続された異なるインスタンスからの多くのユーザー(約50人)がアプリケーションを使用し始めると、アプリの周りにいくつかのフリーズが発生し、ロックセッションとロックされたオブジェクトを取得するためのクエリを実行すると、 "Row Exclusive"通常、すべての表をロックしてはならず、複数のセッションでDML問合せを実行できるようにするロック・タイプです。したがって、私の質問は、行の排他テーブルがテーブル全体をロックすることができるか、そうでなければこれらのフリーズを引き起こします。oracleロックのためアプリケーションが応答しなくなる

注:私はフォーラムを見回し、いくつかのMAXTRANSとITL構成を見ましたが、これらのパラメータがこれらのフリーズを生成する可能性がありますか?

は、私はあなたがあなたの用語は混乱があると思うあなた

+1

行ロックがOracleでエスカレートしないことは間違いありません。任意のDDLを実行しているか、特定の行を使用して合計を稼働しているか、シーケンス番号を維持していますか?複数のセッションで1つの行を変更する必要がある場合は、 –

+0

はい私はアドレステーブルに挿入するためにシーケンスを使用していますが、これが原因で問題が発生する可能性があり、すべてのユーザーのみがSELECT/INSERT/UPDATE/DELETEクエリを受け取ります – AyoubK

+0

Oracleシーケンスオブジェクトの使用は望めませんもちろんキャッシュのサイズをチェックすることはできますが、テーブルの行ロックは発生しません。 –

答えて

0

ありがとう..「行排他」ロックを意味する「私はこの行をロックしています。..他のセッションは、それを更新するために許可されていません」。

だから、特定の行を更新または削除しようとしているセッションが50個ある場合は、はい。競合することになります。それはあなたのパフォーマンスを真剣に制限します。

だから、その可能性のあるアプリケーションには、行が変更された後にロックを解放するcommitステートメントがないと思われます。

あなたはシーケンスを使用していると言っています。実際にはoracleシーケンス(つまりcreate sequence my_seq;)を使用していますか、別の悪い考えであるselect max(id)+1 from sequence_tableのようなカスタムにしていますか?

+0

私はカスタムのものではなく、カスタムのものを使用しています。コミットのためにはい私はJDBCドライバを設定して、トランザクションごとに自動コミットし、ユーザーは同じ行を強制的に変更せずに同じテーブルを操作しています – AyoubK

+0

もう1つのオプションはあなたのアプリケーションコードが 'select * from table for update'のようなものを実行していて、代わりに' tb *からIDを選択してください:: idid:myid for update' – ShoeLace

+0

私はすべてのクエリをチェックしましたが、 where節、私はそのようなクエリがTMロックを発生させることができることを理解しています。それは最初にチェックしたものでした。 – AyoubK

0

Oracleを非難するのは時期尚早です。 execスレッドが不十分な場合など、サーブレットコンテナのコンフィグレーションになる可能性があります。あるいは、それは内部の競合になる可能性があります。多くのことが間違っています。ボトルネックを突き止める簡単な方法は、アプリケーションが「アプリケーションのまわりでいくつかのアプリケーションをフリーズ」しているときにスレッドダンプを取得し、スレッドが滞っている場所を確認することです。 Javaプロセスにkill -3を送信することによって、スレッド・ダンプを取得できます。ここに投稿すると、それを見てうれしいでしょう。

+0

こんにちは、ありがとうございます。しかし、私はこれがアプリのデスクトップ版であることを忘れていました。私はユーザーにコンテンツを配信するためにアプレットを使用しています – AyoubK

+0

これは問題ありません。この状況の最善の方法は、アプレットの内部で何が起こっているのかを正確に知ることです。もし私があなただったら、私はJProfiler(2週間の無料評価期間があります)とアプレットのプロファイルをして、何が起きているのかを正確に見ていきます。問題を解決することに加えて、あなたは非常に有用なスキルを身に付けるでしょう。 –

関連する問題