• ベストアンサー

コミット(commit)について

SQL*PLUSをウィンドウ右上の×や「終了」でするとコミットされてしまいます。 SHOW AUTOCOMMITはOFFでした。 どういうことでしょうか?

  • Oracle
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.1

それはSQL*PLUSの仕様上の動作です。 ウィンドウ右上の×や「終了」することは異常終了とはみなされずコミットされてしまいます。 AUTOCOMMIT ONはDML文を実行するたびにCOMMITすることを意味します。もっと言えば、これがONになっている場合、ROLLBACKはできません。 ウィンドウ右上の×や「終了」はこれとは別の問題であり、制御する方法はありません。

その他の回答 (1)

  • suzushiro
  • ベストアンサー率45% (10/22)
回答No.2

SQL*PlusをEXITかQUITと入力すると自動COMMITがかかりますが、 ウインドウの×ボタンを押すと自動ROLLBACKがかかっているはずです。 ウインドウの×ボタンを押してしまうと アプリケーションは正常終了でもオラクルとの接続が異常終了してしまうからです。 (クライアント側のユーザプロセスが異常終了し、サーバ側のプロセスモニターというプロセスが、それを感知し、自動ROLLBACKしてくれてます)

shin9387
質問者

補足

ウインドウの×ボタンを押すと、COMMITがかかります。

関連するQ&A

  • COM+で2フェーズコミット出来ますか?

    COM+で2フェーズコミット出来ますか? いっそ.NET Frameworkを使うか迷っています SQL Serverを考えています 皆さんのアドバイスをお願いします

  • コミットチャージの値が下がらない

    以前、internetのつながりが悪いと、質問したら、コミットチャージの値を見て、メモリの増設をしたら、、と回答がきました。 そこで、メモリの増設をしましたが、いまいち良くありません。 そこで、コミットチャージを監視していたのですが、、 ここで質問です。 internetを次々に開いていくと、コミットチャージの値がだんだん上がっていきますよね、次に開いているinternetのページを閉じていくと、コミットチャージの値も下がるんですが、思ったほど下がりません。 たとえば、パソコンを開いた直後5分程度のコミットチャージの値は、300000くらいなんですが、これが、最近は40000程度から下がりません。すべてのソフト(タスクマネージャーのアプリケーションのところで立ち上がっているソフト)を閉じても、下がりません。常駐のソフトもすべてとめても下がりません。 internetの調子は、350000程度を超えると悪くなるので、コミットチャージの値をさげたいんです。 パソコンをログオフすると、300000程度に下がるんですが、毎回ログオフするのも、面倒で。 何か良い方法はありませんか? ためしに、メモリの開放ソフトや、internetオプションのファイルの削除・cookieの削除なんかもやってみたんですが、どうもうまくいきません。 何方か、詳しい方、いらしたら、よろしくお願いします。

  • デットロック回避策(autocommit off)について

    環境:LINUX Postgres8.4.0 デットロックを回避する為に、自動コミットをやめ、手動コミットに変更したいです。 psqlで\set AUTOCOMMIT offとすると確かに手動コミットになってしまいますが、 毎回設定するのは、手間がかかるのとシステム全体に反映されません。 システム全体を手動コミットに変更するには、どうしたら宜しいのでしょうか?

  • Oracle 11g コミットのタイミングについて

    コミットされるタイミングに関して。。。 ----------------------------------------------------- REDOログバッファがREDOログファイルに書き出されるタイミングは ・コミットした時 ・3秒毎 ・REDOログバッファが3分の1になった時 ・DBWnがデータファイルに書込むとき ------------------------------------------------------- 上記の認識ですが、この中の3秒毎と言うのが理解できません。 こちらで試してみた結果がこちらです。 プロンプト1にて (1)sql接続 (2)name列確認 結果⇒test01 (3)name列更新 結果⇒test02 (4)コミットせずに3秒以上経過。 プロンプト2にて (5)sql接続 (6)name列確認 結果⇒test01 となります。 3秒毎にコミットされていない!! (4)でコミットをしてやると、(6)での結果はtest02になります。 3秒毎とはどういったことなのでしょうか。 よろしくおねがいいたします。

  • たまったコミットチャージの開放?

    メモリが足りなくなるとコミットチャージが 物理メモリ以上になってしまって重くなります その原因となるソフトを終了させてもコミットチャージの 数字がタスクマネージャで見てもなかなか減りません 動作は軽くなるのですが。 これってみかけだけ増えているだけで、実際はへっているのでしょうか? きにしなくてもいいですか?

  • コミットチャージ

    こんにちは。 windows 2000のタスクマネージャにあるコミットチャージってなんですか? ”コミット済みの仮想メモリ”と”使用可能なメモリ空間、または現在使用中のメモリサイズ”という2つの文をみつけましたが、この2つがつながらないようなきがします。 制限値や最大値、物理メモリとの関係など理解できません。 アドバイスよろしくお願いします。 また詳しく説明しているHPはあるでしょうか?

  • mySQLでロールバックされずコミットされる

    お世話になっております。 現在JavaのjdbcでmySQLに接続してデータを更新する処理を入れているのですが AutoCommitをfalseにしておりrollbak処理をしているにも関わらず commitがされている状態になっています。 ログ出力にてメソッド内でsetAutoCommitがfalse、 rollbakが実行されていて、commitが実行されいないのは確認済みですが 実際にはデータがロールバックされずcommitされたのちに コネクションが閉じられています。 このような勝手なコミットがされてしまう原因で 他に何か思い当たる確認点はないでしょうか? ご力添えお願いします。

    • ベストアンサー
    • Java
  • TortoiseSVNにて、コミットができません。

    TortoiseSVNにて、コミットができません。 TortoiseSVNにて、右クリックからコミットを選択し、変更項目確認画面で編集したファイルを選択した上でOKボタンを押下しても、反応がありません。 (一瞬だけウインドウを表示するような振る舞いを見せますが、以後反応なしです。エラーも出ません。) この他、マージ・ロックの取得も同様の現象でできません。 なお、これらの現象は突然現れたものではなく、TortoiseSVN初回インストール直後から発生しています。 ただし、チェックアウトや更新、差分の表示などは正常にできます。 また、コマンド(svn commit)によるコミットは正常に実行できます。 さらに、別のクライアントからは、GUIによるコミットができます。 特定のクライアイント特有の問題のようですが、原因がわかる方いらっしゃいますでしょうか? <試したこと> ・ファイアーウォールを無効にする ・日本語化バッチなしで、TortoiseSVNを再インストールする ・リポジトリで管理するファイル数を1つにし、1ファイルのみのコミットを試みる(ファイルサイズは10KB程度) ・匿名ユーザからのリポジトリへの書き込みも許可する <利用環境> WindowsServer2008上に svnserverを構築しており、ネットワーク経由でクライアントからリポジトリにアクセスしています。 また、特定のクライアイントからのみできないと記載しましたが、各クライアイントのOSは全て同じWindowsXPです。

  • ループでCOMMITのUPDATE実行したい。

    SQL初心者です。Oracle 10gで大量データをUPDATEする事になり、 初めてFETCHなどの存在を調査し、知りました。 http://www.shift-the-oracle.com/plsql/fetch-across-commit.html を参照し、『フェッチ・アクロス・コミット 使用例』を実行してみたのですが構文エラーになってしまいます。 テーブルなどは存在していることは確認できています。 そもそもこれは使用例の一部であり何か足りないのでしょうか? また、SQLを発行する際はObject Browserから発行してます。 教えてください。宜しく御願いします。

  • torotoise svnでコミットに失敗する

    tortoise svnで管理しているファイルの更新を実施したので、コミットしようとすると次のようなエラーが発生しました。 Committing transaction... Error Commit failed (details follow): Error No such revision 465 Completed! このようなエラーが発生してしまいコミットできません。 なお、svn updateもできません。 このようなエラーが出た原因として少し心当たりがあるのですが、 半年くらい前に、このリポジトリを管理しているファイルサーバが故障してしまい、リポジトリごと消えてしまうトラブルが発生しました。 復旧作業で、別のPCにtortoise svn serverをインストールして、約1年くらい前にバックアップしておいたリポジトリデータを再設置しました。それ以来コミットができなくなっているようです。 リポジトリのトップディレクトリでshow logを実施すると、最終Revisionは458と出てきます。 どうぞ、ご教示の程宜しくお願い致します。