問題タブ [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.

0 投票する
5 に答える
18307 参照

sql - MS SQL Server で、カウンターとして使用されている列を「原子的に」インクリメントする方法はありますか?

Read Committed スナップショット トランザクション分離設定を想定すると、次のステートメントは同時インクリメントを「失う」ことがないという意味で「アトミック」ですか?

この更新ステートメントがより大きなトランザクションの一部である一般的なケースでは、そうではないと思います。たとえば、次のシナリオが可能だと思います。

  • トランザクション #1 内のカウンターを更新します
  • トランザクション#1で他のことをする
  • トランザクション #2 でカウンターを更新する
  • コミット トランザクション #2
  • トランザクション #1 をコミットする

この場合、カウンターが 1 だけ増えるのではないでしょうか。それがトランザクション内の唯一のステートメントである場合、違いはありますか?

stackoverflow のようなサイトは、質問ビュー カウンターでこれをどのように処理しますか? それとも、いくつかのインクリメントを「失う」可能性は許容できると考えられていますか?

0 投票する
2 に答える
1259 参照

postgresql - トランザクションを破棄してロールバックする必要がある場合

(PostgreSQL で) アプリケーションをデバッグしようとしましたが、次のエラーが発生しました:「現在のトランザクションは中止され、コマンドは無視されました」。

私が理解できる限り、「トランザクション」は基礎となるデータベース接続に関連する単なる概念です。

接続に「false」の自動コミットがある場合、失敗しない限り、同じステートメントを介してクエリを実行できます。その場合、ロールバックする必要があります。

自動コミットが「true」の場合、すべてのクエリがアトミックと見なされる限り問題ありません。

auto commit falseを使用すると、単純な場合でもPostgreSQLで前述のエラーが発生します

どの SQLException(s) が「トランザクション」が無効と見なされ、ロールバックするか、別のクエリに使用しないでください。

MacOS 10.5、Java 1.5.0_16、PostgreSQL 8.3、JDBC ドライバー 8.1-407.jdbc3 を使用

0 投票する
2 に答える
5730 参照

c# - .NET の TransactionScope バグ? 詳しくは?

.NET では、TransactionScope がタイムアウトになり、VoteCommit (VoteRollback ではなく) になる可能性があることを読んだ (またはおそらく同僚から聞いた) ことがあります。これは正確ですか、それとも伝聞ですか?この問題について話している Web 上の情報を追跡できませんでした (問題である場合)。

0 投票する
7 に答える
10407 参照

sql - 選択のみを持つトランザクションでは、コミットとロールバックに違いはありますか?

私の会社で使用している社内アプリケーション フレームワークでは、どのコマンドもデータベースを変更しないことが分かっていても、すべての SQL クエリをトランザクションに入れる必要があります。セッションの最後に、接続を閉じる前に、トランザクションをコミットして適切に閉じます。特に速度に関しては、ロールバックした場合に特に違いがあったのだろうか。

私は Oracle を使用していますが、他のデータベースも同様の動作をしていると思います。また、トランザクションを開始するための要件については何もできません。コードベースのその部分は私の手に負えません。

0 投票する
1 に答える
3002 参照

.net - SqlConnection が System.Transactions の tx に登録されているかどうかを判断する方法は?

System.Transactions からのトランザクションを使用する場合 (インスタンスの TransationScope を作成する)、デフォルトですべての Sql 接続 (System.Data.SqlClient.SqlConnection) (ただし、Oracle.DataAccess.OracleConnection には当てはまりません) を開くときに登録されます。 . いわゆる自動入隊です。素敵な機能。ただし、接続文字列のパラメーター (enlist=false) を使用してオフにすることができます。その場合、開かれている接続は登録されません。ただし、後で手動で登録できます。したがって、私の質問は次のとおりです。特定の SqlConnection のインスタンスについて、その接続が (System.Transaction に) 登録されているかどうかを判断するにはどうすればよいですか。パラメータの接続文字列を見ることができます。しかし、私が言ったように、接続は手動で参加できるため、これはうまくいきません。

0 投票する
5 に答える
36815 参照

asp.net - 「基礎となるトランザクションマネージャーとの通信に失敗しました」というエラーメッセージ

私たちのクライアントは最近、ASP.NET 1.1WebアプリケーションをCOM+トランザクション処理を使用するASP.NETにアップグレードし、トランザクションを処理しようとしたときに次の例外を受け取りました。

例外タイプ:System.Transactions.TransactionManagerCommunicationException
メッセージ:基になるトランザクションマネージャーとの通信に失敗しました。

内部例外タイプ:System.Runtime.InteropServices.COMExceptionエラーコード:-2147467259
メッセージ:エラーHRESULTE_FAILがCOMコンポーネントの呼び出しから返されました。

MSDTCセキュリティ設定の次の設定は次のとおりです。

-ネットワークDTCアクセス
-インバウンドを
許可-アウトバウンドを許可
-着信発信者の認証が必要

Windows XP SP3ワークステーションは、WindowsServer2003マシンへの接続を確立しようとしています。

他の誰かがこのエラーを経験し、それを解決する方法を知っていますか?

0 投票する
2 に答える
10706 参照

sql - postgresql 8.2 でネストされたトランザクション?

データベース スキーマの更新を適用するスクリプトに取り組んでいます。start transaction/commit を使用してすべての SQL 更新スクリプトをセットアップしました。これらのスクリプトをコマンド ラインで psql に渡します。

複数のスクリプトを同時に、1 つのトランザクションで適用する必要があります。これまでのところ、私が思いついた唯一の解決策は、スクリプトの元のセットから開始トランザクション/コミットを削除し、それらを新しい開始トランザクション/コミット ブロック内に詰め込むことです。これをその場で行うためのperlスクリプトを書いています。

事実上、ネストされたトランザクションが必要ですが、postgresql で行う方法がわかりません。

この目的のためにネストされたトランザクションを実行またはシミュレートする方法はありますか? エラーが発生した場合に自動的に救済されるように設定しているため、下位のトランザクションのいずれかが失敗した場合にトップレベルのトランザクションを続行する必要はありません。

0 投票する
1 に答える
1700 参照

sql-server - 2 つの MS SQL Server 2005 間の分散トランザクション

2 つの MS SQL Server 2005 間で DISTRIBUTED TRANSACTION を実行する必要があります。NO ACTIVE TRANSACTION IS PRESENT またはこのようなエラーが表示されます。DTCTESTER プログラムは、トランザクションを実行できなかったというエラーをドロップします。ところで、ファイアウォールで 135 ポートが開いています。

たぶん、誰かが問題を知っているか、提案がありますか?

0 投票する
6 に答える
1826 参照

database - データベースの自動コミット - ディスクに直接移動しますか?

自動コミットがすべてのSQLステートメントをコミットすることは知っていますが、データベースへの更新は直接ディスクに送られますか、それともフラッシュされるまでキャッシュに残りますか?

データベースの実装に依存していることを認識しています。

自動コミットとは、a) すべてのステートメントが完全なトランザクションであり、ディスクに直接送信されることを意味しますか、または b) すべてのステートメントが完全なトランザクションであり、後でフラッシュされるキャッシュに送信されるか、ディスクに直接送信されることを意味しますか?

明確化は素晴らしいでしょう。

0 投票する
6 に答える
21234 参照

java - Java Connection.close はロールバックしますか?

Java Connection.close は finally ブロックにロールバックしますか?

私は .Net SqlConnection.close がそれを行うことを知っています。

これで、キャッチせずに try/finally ブロックを作成できました...

例: