問題タブ [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 投票する
2 に答える
165 参照

sql-server - 1K ID を作成し、同時実行を考慮してすべての行に transactionID を割り当てる

  1. クライアントは、サーバーから 1K 行の ID を要求します。
  2. clientID = -1 の 1K の ID があることを確認する必要があります。そうでない場合は、1K の新しい ID をテーブルに挿入する必要があります。
  3. 次に、これらの 1K ID を clientID にリンクする必要があります
  4. 予約済みの 1K ID をクライアントに返します。

これらすべてをトランザクションにラップするのと同じくらい簡単ですか?

0 投票する
3 に答える
6108 参照

multithreading - JDBC: マルチスレッド アプリで接続を共有して、素敵なトランザクションを楽しむことはできますか?

JDBC でトランザクションを処理する従来の方法は、auto-commit を false に設定することのようです。これにより新しいトランザクションが作成され、commit の呼び出しごとに次のトランザクションの開始がマークされます。マルチスレッド アプリでは、スレッドごとに新しい接続を開くのが一般的であることを理解しています。

私は RMI ベースのマルチクライアント サーバー アプリケーションを作成しているので、基本的にサーバーは新しい接続ごとに 1 つのスレッドをシームレスに生成します。トランザクションを正しく処理するには、これらのスレッドごとに新しい接続を作成する必要がありますか? このようなアーキテクチャのコストは法外なものではありませんか?

0 投票する
4 に答える
7444 参照

sql-server - sqlserver のトランザクションの基本テンプレート

クエリを単純にラップすると、次のようになります。

その中で何かが失敗した場合、自動的にロールバックしますか?

他のコードを見ると、エラーをチェックしているように見えます。エラーがある場合は、GOTO ステートメントを実行し、ROLLBACK TRANSACTION を呼び出します。

しかし、挿入/更新のたびに IF( @@ERROR <> 0) をチェックしなければならないのは、作業の割り当てのようです。

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

mysql - 会計アプリケーションとの MySQL トランザクション

次のようなテーブルがあります。

このテーブルは、金融タイプのアプリのアカウント トランザクションを維持するために使用されます。

複式簿記であるため、ユーザー A から B への転送では、次のようにテーブルに 2 つの行が挿入されます。

アカウントの残高は、そのアカウントのトランザクションを合計することによって計算されます。

例えば:

資金の移動をロックする最善の方法は何ですか? 私の現在のコードは次のようになります。

これは期待どおりに機能していないようです。基本的に言うトランザクションについてオンラインで多くの例を見ます:開始、デビット送信者、クレジット受信者、コミット。しかし、その間に送信者の残高を確認する最良の方法は何ですか?

通過してはならないトランザクションがあります。ユーザーが 3K の残高を持っていて、2 つのトランザクションが 3K に対してまったく同時に入ってきたとします。これらは両方とも、1 つだけが通過する必要があります。

ありがとうございました

0 投票する
3 に答える
1036 参照

java - Java EE の長いトランザクション時間の解決策?

私のキャリアの中で何度か遭遇した問題は、階層化されたサービス アーキテクチャで、すべてのスレッドがデッドロックまたはある種の無限ループで消費される状態になると、単一のダウンストリーム システムがクライアント アプリケーション全体をダウンさせる可能性があることです。そのシステムのバグ。このような状況下でも、Java EE サーバーのサーバー ソケットは、クライアント アプリケーションからの要求を受け入れてキューに入れています。これにより、クライアント アプリケーションは、適切に確立されたソケット接続からの応答を待っているすべてのスレッドを使い果たします。その後、すべてのユーザーの要求もキューに入れられるため、システムからロックアウトされます。

私はいくつかの解決策を考えましたが、コミュニティにもっと良い解決策があるかどうか疑問に思っていました.

  1. ダウンストリーム リクエスト用に分離されたスレッド プール。これが問題になるのは、システム内のアイドル スレッドの数を増やして、完全なスループットを確保するのに十分なスレッドが必要な小さなプールを多数作成するためです。スレッドを生成するということは、トランザクション コンテキストとセキュリティ コンテキストを自分で処理する必要があることを意味します。サポートされている Java EE ソリューションではありません。

  2. Java EE の推奨される非同期ソリューションである MDB ソリューションは、かなり重いように見えますが、アプリ サーバーが MDB スレッド プールの管理を処理できるという追加の利点があります。(現在、私のリストの第 1 位)

  3. ESB。これはさらに負荷が高く、ネットワークと処理時間が長くなります。ただし、個々のサービスのタイムアウトを設定できます。また、大企業に実装するには永遠にかかるという問題があるため、おそらく私の時間枠では実用的ではありません.

皆さん、もっと良いアイデアはありますか?

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

database - データベース外でトランザクション動作が必要になることはありますか?

トランザクションのないデータベースで複雑なことをするつもりはありません。ほとんどの場合、使いやすい組み込みコマンドがあります。しかし、他の永続データを扱うようになると、トランザクション サポートを簡単に使用することができなくなります。いくつかの例は

  • ファイルシステム
  • Web サービス (私が使用したものはありません)

非永続データであっても、例外に続いて作業ブロックを元に戻すと便利なことがよくあります。言語で得られる標準的なデータ構造はどれも、トランザクションをサポートしていません。

私が知りたいのは、なぜデータベースが特殊なケースなのですか?

データベース外のトランザクション動作のトピックへの有用なリンクはありますか?

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

vb.net - vb.netでトランザクション方法を実装するには?

MS-Access データベースに接続する VB.net (200%) を使用して 1 つのアプリケーションを開発します。Access DB ファイルへの接続には TableAdapter と Dataset を使用します。

DBへの保存時に簡単なトランザクションメソッド(コミット、ロールバック)を実装する必要がありますか?

インライン SQL ステートメントを使用せずにそれを行う方法はありますか?

ありがとう、

0 投票する
4 に答える
451 参照

c# - LINQ to SQL を使用して一連のレコードを定期的に削除する最良の方法

これは、ASP.NET アプリケーションの存続期間中に定期的に実行され、データベースに保存されている期限切れのセッションをクリーンアップするメソッドの最初のクラックです。かなりうまくいっているように見えますが、私のソフトウェア エンジニアは、このコードについて「正しい」とは感じていません。数か月間 LINQ to SQL を使用してきましたが、次のコードにはあまり自信がありません。私はいくつかのことを心配しています:

  1. 次のコードは、データベースがアプリケーション内の異なるスレッドによってアクセスされている状況で安全に実行できますか? トランザクションの概念については十分に理解していますが、トランザクションを適切に使用していることを確認したいと考えています。

  2. 私のクエリはパフォーマンスの問題を引き起こしますか? それとも、この場合、この特定のテーブルのすべてのレコードを選択するのが適切でしょうか? このメソッドは 15 分ごとにしか実行されないため、短期間に何度もクエリが実行されるわけではありません。

  3. これを行うためのより良い方法はありますか?あるというしつこい感じがあります。

コード:

0 投票する
3 に答える
1465 参照

asp.net - ASP .net メンバーシップのトランザクション

1回のトランザクションで2つのデータベース操作を行いたいです。その2つの操作は

  1. 挿入操作を 1 回実行します。
  2. 1 人のユーザーを作成します (メンバーシップを使用 - SQL メンバーシップ プロバイダー)

私はTransactionScopeを試しましたが、その行で分散トランザクションに行きました: -- Membership.CreateUser("test", "password", "test@test.com");

DBしかないので、軽量トランザクションでこれを行うにはどうすればよいですか?

前もって感謝します。

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

sql-server - 読み取りクエリのトランザクションが必要ですか?

一部の開発者/データベース管理者は、読み取り専用の呼び出しであっても、すべてのデータベース呼び出しでトランザクションを使用することを推奨していると読んでいます。トランザクション内で挿入/更新することは理解していますが、トランザクション内で読み取る利点は何ですか?