問題タブ [transactions]
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.
sql - 読み取りトランザクションをコミットまたはロールバックする必要がありますか?
分離レベルを指定できるように、トランザクション内で実行する読み取りクエリがあります。クエリが完了したら、どうすればよいですか?
- トランザクションをコミットする
- トランザクションをロールバックする
- 何もしない (これにより、using ブロックの最後でトランザクションがロールバックされます)
それぞれを行うことの意味は何ですか?
編集:問題は、トランザクションを使用する必要があるかどうか、またはトランザクションレベルを設定する他の方法があるかどうかではありません。問題は、何も変更しないトランザクションがコミットまたはロールバックされることで違いが生じるかどうかです。性能差はありますか?他の接続に影響はありますか? 他に違いはありますか?
asp.net - SQL トランザクション: ASP.Net で実装する最良の方法
私は、それぞれがデータベースに永続化されるさまざまな種類のオブジェクトを持つアプリケーションを持っています。これはこれまでトランザクションなしでうまく機能しており、それらを追加するために暴走するつもりはありません。ただし、オブジェクトのコレクション全体が更新を開始する前に、トランザクションを開始して、コレクション内のすべてのオブジェクトが成功した場合にのみデータベースが実際に更新されるようにする必要がある場合があります。
たとえば、リンゴのコレクションがあるとします。すべてのリンゴを更新するコマンドがコレクションに発行されます。[トランザクションの開始はここにあります] 各リンゴはコードを実行して自分自身を更新します。[トランザクションのコミット/ロールバックはここで発生する必要があります]。
私が抱えているヒッチは、現在、各更新がアトミックであることです(トランザクションに明示的にラップされていません)。各「リンゴ」に ID を渡して、ある種のキャッシュに格納されたトランザクションを識別することができますが、更新中にキャッシュが無効になり、不要な問題が発生するリスクがあります。
では、これに対する最善のアプローチは何ですか?
c# - Transaction Binding=Explicit Unbind を使用すると、接続は閉じません。接続文字列で
タイムアウト付きの TransactionScope も使用しているため、ここでTransaction Binding=Explicit Unbind
推奨されているように接続文字列で使用しています。問題は、接続が破棄された後に閉じられないように見え、最終的に接続プールで使用可能な接続がなくなることです。TransactionTimeoutIssueDemo (リンクを参照) を変更し、TransactionScopeTest() (明示的なアンバインド接続文字列を使用) をループで十分な回数実行して、接続プール内の使用可能なすべての接続を使い切っても、同じ結果が得られました。プール内の接続のデフォルト値は 100 ですが、これはたとえば設定を使用して変更できます。SqlConnection と TransactionScope の両方が使用されているにもかかわらず、明示的なバインド解除を使用すると、接続が解放されないようです。Max Pool Size =10
using
句。誰でもこれを処理する方法を知っていますか?
c# - NHibernateがSQLプロファイラーを使用して実際にトランザクションを使用していることを確認するにはどうすればよいですか?
次の汎用コードを使用してエンティティを保存しています。
BEGIN TRANSACTION
ただし、SQL Profilerを見ると、SQLServerに送信されているものが表示されません。これは正常ですか、予想されますか?
asp.net - Asp.Netを使用してSQLデータベースから最後に作成されたエントリのIDを取得する方法
例を挙げて問題を説明します。
私のデータベースには、entry、tagsという名前の2つのテーブルがあります
両方のテーブルにID_ENTRYという名前の列があります。テーブルエントリにレコードを追加するときは、最後に追加されたレコードのID_ENTRYを取得して、テーブルタグに追加する必要があります。どうすればいいですか?
asp.net - システム トランザクション .net セッションから例外を削除
私はasp.netが初めてです。システム トランザクションを実行しているアプリケーションで作業しています。コードのある時点で例外が発生し、コードが爆発します。グリッド リストの特定の行レコードをクリックすると爆発します。ただし、ユーザーが例外を確認した後...彼らは戻って他のレコードをクリックしようとします..これは機能するはずです..同じ例外が再び表示されます.2回目は発生しませんが、初めて。ユーザーがログアウトした場合、これは自動的に解決します...再度ログインし、2行目をクリックします..問題はないはずです。
これは、例外エラー ページが表示された後、ユーザーがグリッドリスト ページに戻ったときにセッションから例外がクリアされないことに関連していますか?
php - mysqli->error: 最後のクエリのみですか、それともクエリ グループからの最後のエラーですか?
私はmysqliを初めて使用し、以下のような場合、errnoが最後のエラーに設定され、最後のクエリのエラーではないことを確認しようとしています。
これはまともな方法ですか、それともすべてのクエリ間のエラーをチェックする必要がありますか?
ありがとう!
php - トランザクションがすでに開始されていることをどのように検出しますか?
Zend_Dbを使用して、トランザクション内にデータを挿入しています。私の関数はトランザクションを開始してから、トランザクションを開始しようとしてもちろん失敗する別のメソッドを呼び出します(MySQL5を使用しています)。したがって、問題は、トランザクションがすでに開始されていることをどのように検出するかです。コードのサンプルビットは次のとおりです。
PaymentInstrument :: createの内部には、トランザクションがすでに開始されていることを示す例外を生成する別のbeginTransactionステートメントがあります。
django - Django:データベースエントリの同時変更から保護するにはどうすればよいですか?
2人以上のユーザーによる同じデータベースエントリの同時変更から保護する方法はありますか?
2番目のコミット/保存操作を実行しているユーザーにエラーメッセージを表示することは許容されますが、データを黙って上書きしないでください。
ユーザーが「戻る」ボタンを使用するか、単にブラウザを閉じて、ロックを永久に残す可能性があるため、エントリをロックすることはオプションではないと思います。
linq-to-sql - Sql Server 2000 に対する TransactionScope エラー - パートナー トランザクション マネージャーがリモート/ネットワーク トランザクションのサポートを無効にしました
Sql 2000 データベースに対する Linq-to-Sql アクションの単純なトランザクションを設定しようとしています。TransactionScope を使用すると、次のようになります。
ただし、次のエラーが発生し続けます。
パートナー トランザクション マネージャーは、リモート/ネットワーク トランザクションのサポートを無効にしました。(HRESULT からの例外: 0x8004D025)
しかし、従来のトランザクションを使用してトランザクションをセットアップすると、問題なく動作します。したがって、これは正常に機能します:
TransactionScope が、私の 2 番目の実装とは裏で何か違うことをしているのだろうかと思っています。そうでない場合、TransactionScope を使用しないと何が失われますか? また、エラーの原因に関するガイダンスも役立ちます。MSDTC が SQL サーバーとクライアント マシンの両方で実行されていることを確認しました。