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

java - コレクションを2つの開いているセッションに関連付けようとする違法な試み

別のpojoのコレクションにpojoを追加しようとしています。私はどこかで本当にばかげた間違いを犯していると確信していますが、それを解決する方法がわかりません。

列のリストを含むpojoLookupTableがあります。

私の休止状態の構成では、次のようになります。

私のSpring設定ファイルには次のものがあります。

そして最後に、私のマネージャークラス(com.foo.LookupTableManager)内ですべてが失敗するコード:

ここでの変数lookupTableDaoは、HibernateDaoSupportを拡張する単純なDAOクラスを参照します。

私が得るエラーは次のとおりです。

OK、私は私が得ている基本的なメッセージを理解しています。しかし、私が理解していないのは、2番目のセッションをどこで取得するかです。...誰かがこれを手伝ってくれますか?

Hibernate 3.2.6.ga、Spring 2.5.5、Tomcat6.0を使用しています

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

sql - LINQtoSQLでネストされたトランザクション

多くのテーブルで動作し、かなりの数のSQLコマンドを実行する非常に複雑なビジネスロジックを実現するための支援が必要です。ただし、データが不整合な状態のままにならないようにしたいので、現時点では、ネストされたトランザクションを必要としないソリューションは見当たりません。達成したいシナリオに似たシナリオを示す簡単な擬似コードを作成しました。

私にとって最大の問題は、FinalOperationが失敗した場合に、成功したすべての操作Operation(i)がロールバックされるようにする方法です。また、単一のOperation(i)の失敗を無視できるようにしたいと思います。

ネストされたTransactionScopeオブジェクトを使用してこれを実現することは可能ですか?そうでない場合は、そのような問題にどのようにアプローチしますか?

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

sql-server - SQL Server の入れ子になったトランザクションの分離の範囲は?

次の SQL を検討してください。

つまり、トランザクションを開始し、その分離レベルを に設定しますREAD COMMITTED。次に、ランダムな SQL を実行し、ネストされた別のトランザクションを開始します。このトランザクションでは、分離レベルを に変更しREAD UNCOMMITTEDます。次に、そのトランザクションをコミットして、もう一方に戻ります。

さて、私の推測では、内部コミットの後、分離レベルは に戻りますREAD COMMITTED。これは正しいです?

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

c# - .net でのトランザクション

C# .Net 2.0 でトランザクションを実行するためのベスト プラクティスは何ですか。使用する必要があるクラスは何ですか? 注意すべき落とし穴などは何ですか。コミットとロールバックのすべて。DB にデータを挿入するときにいくつかのトランザクションを実行する必要があるプロジェクトを開始したところです。トランザクションに関する基本的なことでも、応答やリンクは大歓迎です。

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

java - サーバーでJavaプログラムを使用して、Javaクライアントからのpostgesアクセスを制限します

おそらくこの質問はあまり明確ではありませんが、私がすぐに対処したい問題を説明する見出しのためのより良い言葉を見つけられませんでした。

Javaデスクトップアプリケーションからpostgresへのアクセスを制限したい。

背景:

2つのアプリを実行していて、最初のアプリケーションがデータベース内のデータに基づいて複雑な計算を実行する必要があるとします。データベース内のデータの不変性を明確にするために、挿入、更新、および削除操作のためにデータベースをロックしたいと思います。クライアント側では、この動作を十分に処理することは不可能だと思います。そこで、プロキシのように機能する小さなjava-appをサーバー側で使用することを考えました。したがって、タスクは、ロックするコマンドを取得するまでCRUD(Create Read Update Delete)操作を引き渡すことです。ロック後、ロックしているクライアントからロック解除コマンドを取得するか、タイムアウトに達するまで、すべてのCUD操作を拒否します。

質問:

このアプローチについてどう思いますか?

このようなアプローチを使用しているときにデータベースをロックすることは可能ですか?

サーバー側のJavaアプリとしてJavaSEまたはJavaEEのどちらを使用しますか?

前もって感謝します。

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

tsql - T-SQL でトランザクション中にログを実装する最良の方法は何ですか?

トランザクションの現在の状態に関する洞察に満ちたメッセージを挿入するテーブルで構成される単純なデバッグ ログを実装したいと考えています。このテーブルへの挿入が、デバッグしようとしているトランザクションのロールバックの影響を受けないようにするにはどうすればよいですか? Oracle ではPRAGMA AUTONOMOUS_TRANSACTION、挿入がトランザクションの外部で確実に行われるようにするために使用できますが、T-SQL ではどのようなオプションがありますか? あなたのショップではどのようにロギングを実装していますか?

注: SQL Server は使用していません。Sybase 12.5 を使用しています。

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

sql - トランザクションに MSMQ または SQL Service Broker を使用する必要がありますか?

チーム リーダーから、製品の新しいバージョンのオプションとして MSMQ を調査するように依頼されました。現在のバージョンでは SQL Service Broker を使用しています。どの製品が私のニーズに適しているかを見つけるために、実験とグーグルをかなり試しましたが、プログラミングの回答については、私が知っている最高のサイトに尋ねようと思いました.

いくつかの詳細:

  • クライアントは .NET 1.1 および 2.0 コードです。ここからメッセージが送信されます。
  • SQL Server 2005 インスタンスのターゲット。すべてのメッセージは、最終的にデータベースの更新または挿入になります。
  • トランザクションとして扱われなければならないいくつかの更新を送信します。
  • メッセージを完全に復元できる必要があります。メッセージが失われることはありません。
  • ターゲットの SQL サーバーがダウンしている場合でも、非同期でメッセージを受け入れることができる必要があります。
  • 独自のキューイング ソリューションを開発することはできません。私たちは小さなチームです。

これまでに発見したこと:

  • MSMQ と SQL Service Broker の両方がこの仕事を行うことができます。
  • トランザクション メッセージの場合、Service Broker の方が高速なようです。
  • Service Broker はどこかで実行されている SQL サーバーを必要としますが、MSMQ はどこかで実行されている構成済みの Windows マシンを必要とします。
  • MSMQ は、クラスターでのセットアップ/実行がより優れている/高速である/簡単であるように見えます。

何か不足していますか?ここに明確な勝者はいますか?考え、経験、またはリンクは高く評価されます。ありがとうございました!

編集: 一部のクライアント コードでカスタム DB フレームワークを使用しているため、サービス ブローカーを使用することになりました (トランザクションをより適切に処理します)。そのコードはトランザクションの SQL をキャプチャしましたが、. クライアント コードもすべて .NET のバージョン 1.1 だったので、すべてのクライアント コードをアップグレードする必要がありました。ご協力いただきありがとうございます!

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

java - データベースからオブジェクトを取得するときに JPA (Hibernate) がトランザクションを処理する方法

私は現在、Hibernate を永続化マネージャーとして使用し、JPA を永続化管理の休止状態の抽象化として Java でアプリケーションを開発しています。

結果クエリをトランザクションにラップすることの影響を知りたいです。エンティティマネージャーは、遅延フェッチされたフィールドのバグに対して開いたままにしておく必要があることを知っています。これでトランザクションはどうなりますか?

以下は、トランザクションのアクティブ化/非アクティブ化機能を使用したコード例です。

この関数が呼び出されたときの withTransaction の有効化と無効化の違いは何ですか?

ありがとう、フレッド

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

.net - TransactionScope で SQL コマンドを実行し、MSMQ メッセージを送信することは可能ですか?

チームの新しいプロジェクトで MSMQ の使用を調査していますが、MSMQ メッセージを送信して System.Transactions.TransactionScope 内で SQL コマンドを実行し、それらを一緒にコミットまたはロールバックできるかどうかを知る必要があります。コード例で「はい」と言う信頼できる情報源をオンラインで見つけることができません。

いくつかのメッセージを 1 つのキューに送信し、いくつかのレコードを 1 つのデータベースに挿入する必要がありますが、同時に成功または失敗する必要があります。

編集: テストでこれが機能するかどうかを実際に確認することはできませんでした (私はこのタスクをすぐにやめました) が、すべてのドキュメントには、TransactionScope が MSMQ メッセージと SQL コマンドを同じインスタンスでキャプチャすることが記載されています。

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

sql-server-2005 - 長時間実行される挿入に必要な SQL Read TRANSACTION ISOLATION LEVEL はどれですか?

関連するいくつかのテーブルにデータを挿入する挿入トランザクションを長時間実行しています。

この挿入の実行中は、メインテーブルから選択 * を実行できません。選択は、挿入が完了するまでホイールを回転させるだけです。

これらの挿入のいくつかを同時に/重複して実行します。情報が 2 回挿入されていないことを確認するために、最初に MainTable にクエリを実行して、エントリが存在するかどうか、およびその処理済みビットが設定されていないかどうかを確認します。

挿入トランザクション中に、その行の MainTable 処理済みビットを反転します。

そのため、テーブルを読み取って、特定の行が現在更新されているかどうかを確認できる必要があります。

Microsoft SQL 2005 でこれを設定する方法についてのアイデアはありますか? SET TRANSACTION ISOLATION LEVELのドキュメントを調べています。

ありがとう、
キース

編集: 同じ挿入バッチが同時に発生するとは思わない。これらは、処理中のバイナリ ファイルであり、そのデータがデータベースに挿入されます。データを解析して挿入する前に、ファイルが処理されていないことを確認します。チェックを行うとき、ファイルが表示されていない場合は、処理されたビットを false に設定して MainTable にすばやく挿入します。

テーブル全体ではなく、更新中の行をロックする方法はありますか?