sql >> データベース >  >> RDS >> Oracle

oracle.jdbc.driver.T4CConnectionでロックされたオブジェクトが見つかりました

    ここでは、データベースロックとJavaロックを混同しています。 JMCは、Javaプログラム内のロック(同期されたブロック、待機など)のみを表示し、DB内で何が起こっているかについては何も知りません。 SQLクエリは、DBレベルのロック(テーブルロック、行ロックなど)のみを表示し、Javaプログラム内のロックについては何も知りません。それらは完全に異なる領域であり、完全に異なるロックです。

    ここにあるのは、タイプT4CConnectionのオブジェクトのロックを保持するスレッドのダンプです。 アドレス0x7af3423c0 。これは、このスレッドがsynchronized(connection)内でコードを実行していることを意味するだけです。 ブロック。それで全部です。スレッドは他のスレッドによってブロックされません(そうでない場合、その状態はRUNNABLEになりません。 、WAITINGになります またはBLOCKED )。ネットワークソケットから何かを実行して読み取っています(おそらく、DBからの応答)。

    このような動作は完全に正常です。 DBドライバーは、SQLクエリの実行中に接続インスタンスで同期を実行し、他のスレッドがそれを並行して使用できないようにします。

    このスクリーンショットとこのスレッドダンプでは、心配する必要はありません。




    1. Oracle PL / SQL-単純な配列変数を作成する方法は?

    2. MySQLでランダムな行を選択するにはどうすればよいですか?

    3. LONGRAWの長さを取得する

    4. Postgresで配列が空かどうかを確認する方法