問題タブ [ora-08177]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - ORA-08177: このトランザクションのアクセスをシリアライズできません
ORA-08177 例外をスローする ADO.NET を使用した非常に単純なコードがあります。これの何が問題なのかわかりません。Oracle 32ビットクライアントがインストールされているWindows Vistaマシンでこれを試しています。Visual Studio のコンパイル オプションは x86 プラットフォームに設定されています。
注意すべき重要なこと: (それらが接続されているかどうかはわかりません) しかし、マシンから最新の Windows 更新プログラムをアンインストールすると、この問題に直面することはありません。
誰かがこれに直面したか、ここで何が起こっているかについての手がかりを持っていますか?
編集:-
この問題は、問題の BLOB 列タイプがある場合にのみ発生することがわかったところ、いくつかの進歩があります。単純な列の場合は正常に機能します。
その他の詳細(それが違いを生むかどうかはわかりません)
私は64ビットのWindows Vistaビジネスマシンで作業しています。Windows Vista 用の 32 ビット Oracle クライアントをインストールしました (64 ビット Oracle クライアントは Vista では動作しないため)。Visual Studio で x86 (32 ビット環境) 用にプロジェクトをコンパイルしています。これはコンソール アプリケーションであり、現時点で誰もデータベースにアクセスしていないことがわかっています。したがって、複数のトランザクションはあり得ません。
また、最新の Windows Update をアンインストールすると、この問題は発生しません。(KB963027、KB967190、KB959426、KB960225、KB960803、KB952004、KB956572、KB958687、KB958690、KB958481、KB958483、KB943729)
oracle - データベースへの接続が 1 つしかない場合、ORA-08177 が発生することはありますか?
バックエンドが本番環境で使用するのに十分な品質であるかどうかを確認できるように、オラクルのストーム バックエンドで単体テストを実行する任務を負っています。私が直面している問題の 1 つは、シリアル化可能モードで接続すると、ORA-08177 (このトランザクションのアクセスをシリアル化できません) が発生することです。コミット読み取りモードを使用すると、問題はなくなります。
この質問記事を読んだところ、これは基本的に同時実行の問題であることがわかりました。
データベースに接続しているスレッドが 1 つしかなく、世界中でこのデータベースに接続している人がいないと仮定すると、このエラーが発生する可能性はありますか? もしそうなら、誰かがこのエラーを生成するクエリの例を教えてくれませんか?
それとも、これはカーソルまたは接続がどこかで閉じられていないことを示している可能性がありますか? または、トランザクションがコミットまたはロールバックされていませんか?
oracle - アクティブなセッションが1つだけのORA-08177をランダムに取得する
テーブルを作成してからデータを挿入するプログラムを実行しています。
これは、データベースにアクセスする唯一のプログラムです。
ランダムにORA-08177を取得しています。
実際のコードはやや複雑ですが、この動作を再現する簡単なプログラムを作成しました。
このコードは無限サイクルで実行されます。
各反復で、次のアクションを10回実行します。
オープンセッション
ランダムデータで100行を挿入します
セッションを閉じる
エラーが発生しなかったことを示すメッセージを表示します
エラーが発生した場合、例外がキャッチされ、そのメッセージが出力されてから、次の反復が実行されます。
これがサンプル出力です。ご覧のとおり、ORA-08177はランダムにインターリーブを成功させています。
Oracle 11.1.0.6.0を実行していて、ODP.NET2.111.6.20を使用しています。
問題を修正するために分離レベルを変更しますが、私は本当にこれをレベルReadCommited
で実行したいと思います。この問題は私だけではない
ようです
が、答えが出なかったので、もう一度質問します。
私は何を間違っているのですか、そしてどうすればこれを修正できますか? Serializable
APCによる編集
他の誰かが間違ったツリーを吠えるのを防ぐために、投稿されたコードサンプルはORA-8177エラーの単なるジェネレータです。どうやら実際のコードは異なります。具体的には、テーブルの削除と再作成は赤いニシンです。
ora-08177 - Oracle XE でワークスペースを作成する方法
Oracle XE でワークスペースを作成する方法