問題タブ [autocommit]
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.
solr - SolrJ: 自動コミットを無効にする
Solr のインスタンスがあり、solrconfig.xml で autoCommit をオンにすると、実際にニーズを満たすことができることがわかりました。ただし、自動コミットを一時的に無効にしたいインスタンスやバッチ操作がいくつかあります。私は何も見つけることができませんでしたが、SolrJを介して特定のプロセスの自動コミットを無効にしてから再度有効にできるかどうかを誰かが知っていたのでしょうか?
oracle - OracleへのJBoss自動コミットは常に機能するとは限りません
私は非常に興味深い状況にあります。私はJBossとOracleに少し慣れていませんが、主にDB2上のWeblogicを使用しています。そうは言っても、私がやろうとしていることは非常に単純です。
Oracleデータベースへのlocal-tx-datasourceがあります。Java Iコードから、適切なJNDI名を使用してデータソースを取得した後、datasource.getConnection()を呼び出します。-ds.xmlファイルのlocal-tx-datasource宣言には、自動コミット動作への明示的な参照がありません。
接続を取得した後、作成/更新クエリを実行すると、正しい更新カウントが返されます。その後、短期間でこのレコードを取得することもできます。しかし、その後、データベースはそもそもレコードを取得しなかったふりをし、何もありません。
接続に関する私の経験は、これは接続がその作業をコミットしないときに発生することを示唆しているため、その接続自体のみがトランザクション内のデータを見ることができます。私が読んだところによると、JBossも、返される接続が自動コミットであるという仕様に従います。これをJavaコードから確認したところ、自動コミット動作がtrueに設定されていることが示されています。しかし、その場合、レコードが作成/更新されないのはなぜですか?
これに続いて、Connectionの自動コミット動作をfalseに設定し(これもJavaコードから)、明示的にコミットを実行しました。それ以来、問題はありません。
何がうまくいかない可能性がありますか?ここでの自動コミットについての私の理解は正しくありませんか、それともJBossには他の解釈がありますか?ご注意ください、私は全く取引をしていません。これらは非常に単純な単一レコード挿入クエリです。
mysql - DBI begin_workは、ストアドプロシージャ呼び出しでは機能しません
トランザクション内のwithからストアドプロシージャを簡略化された形式で呼び出そうとしています。
これにより、次のエラーが発生します。
begin_workステートメントを $dbh->{'AutoCommit'} = 0;
(準備の前または後に)に置き換えると、次のエラーが発生します。
ストアドプロシージャの呼び出しを単純なselectステートメントに置き換えると、すべて正常に機能します。
ストアドプロシージャには多数の更新が含まれ、selectステートメントで終了します。もちろん、プロシージャ内でトランザクションを処理できれば、ロールバックが発生した場合にいくつかのPerlコードを実行する必要があります。
Windows 7でActivePerlを使用しており、DBI 1.616がインストールされたCentosを実行しているAmazonクラウドインスタンスを使用しています。これは、両方で発生します。
これは機能する必要がありますか、それとも回避する方法がありますか?
ありがとう
svn - SVNコミット証明書の問題
5分ごとにいくつかのファイルをコミットするcronジョブがあります。ただし、もう機能していません。印刷します
このスクリプトを手動で実行すると、エラーは発生せず、正常にコミットされます。この問題の原因は何で、どうすれば解決できますか?ありがとうございました
java - JavaアプリケーションからOracleへのjdbc接続の自動コミットモード
connection.setAutoCommit(false)
1つのトランザクションでいくつかのDMLステートメントをグループ化するために呼び出す必要がありますか?jdbc docには、自動コミットモードで新しい接続が作成されると記載されているため、少し混乱しています。同時に、Oracleには自動コミットトランザクションがありません。DMLステートメントが存在しない場合は、新しいトランザクションを開始します。したがって、私の理解でconnection.setAutoCommit(false)
は、冗長です(別のRDMSに切り替えることを検討していないと仮定します)。
誰かがこれを明確にすることができますか?
ありがとう。
mysql - 「begin transaction」のない単一の「commit」ステートメント
私はmysqldbアダプタでweb2py dalを使用してmysqlサーバーに接続しています。
私の質問:
- 「 set autocommit=0」の後に「begin transaction 」を開始せずに単一の「 commit 」が必要なのはなぜですか
- autocommit=0 の場合、「select」ステートメントはトランザクションを開始しますか?
サーバー情報: innodb engine autocommit=1 (デフォルト値) tx_isolation=repeatable-read (デフォルト値)
一般ログ:
hibernate - JPA アノテーションを使用した Hibernate の単体テストで AUTO COMMIT がない
永続化コードの単体テストを作成しようとしています。JPA アノテーション付きの Hibernate を使用しています。persistence.xml はありません (JPA 単体テストに関するすべての記事で使用されています)。多くの永続化クラスがあり、それらすべての休止状態の初期化に時間がかかるため、Spring を使用したり、persistence.xml を作成したりしたくないため、明示的に休止状態にするクラスを追加したいと考えています。
またconfiguration.createSessionFactory()
、私のDAOにはSpringによって注入されたJPA EntityManagerがあるため、Hibernate単体テスト記事で推奨されているように使用できません。
だから私は使用していEntityManagerFactoryImpl
ます:
これは問題ないように見えますが、何らかの理由で db への挿入は発生しませんが、すべての選択は問題ありません (SQL を true に表示しました)。AUTOCOMMIT が false のようです (本番環境では、Spring がトランザクションを管理します)。ご覧のとおり、構成を AUTOCOMMIT true に設定し、EntityManager から JDBC 接続を取得し、デバッガーで自動コミットが true であることを確認しましたが、単体テストでトランザクションを明示的に開始してコミットした場合にのみ挿入が起動されます。
私が間違っていることは何ですか?自動コミットでテストを実行するにはどうすればよいですか?
ありがとうございました!
python - python pymysql set autocommit falseが失敗する
私のスクリプトは、ファイルから MYSQL UPDATE クエリを読み取り、autocommit = 0 を使用して一度に実行する必要があります。ただし、削除conn.commit()
しても、コミットしていませんが、1 つずつ実行されます。エラーはどこにありますか?
mysql - トランザクションはDBにオーバーヘッドを追加しますか?
アプリケーション内のすべてのサービスメソッドの周りにDBトランザクションを配置するためのオーバーヘッドが追加されますか?
現在、DBトランザクションは、明示的/明白な必要性がある場合にのみ使用しています。最近、すべてのサービスメソッドに関するトランザクションを提案しましたが、他の開発者の中には慎重な質問をしました。これによりオーバーヘッドが増えるのでしょうか。
私の気持ちはそうではありません-自動コミットはDBの観点からはトランザクションと同じです。しかし、これは正確ですか?
DB:MySQL