資料庫連線引發事務自動開啟問題
做的一個專案,涉及到兩個oracle資料庫,A庫和B庫。主打A庫,但有些資料要從B庫裡讀取。於是在A庫中建了一個數據庫連線(DBLINK),指向B庫。
於是月亮下去了,毛病出來了。
忽然發現,有些資料儲存,根本沒有提交成功。提示:
ORA-01453: SET TRANSACTION 必須是事務處理的第一個語句
造成原因:之前的事務沒有結束。
哪裡來的事務呢?
後來才發現,這一切的元凶就是資料庫連線。原因是,當我們使用dblink的時候,oracle認為這是一個分散式的東東,所以就算我們只是讀取資料,而沒有插入或更新、刪除啥的,它都自動開啟一個事務!
知道了原因解決問題就很簡單了,當呼叫完使用了dblink的語句後,不管3721,要來個事務回滾。
後來又查了下,發覺這個dblink還會帶來一個問題,就是資料庫連線得不到及時釋放,可能會引起連線耗盡問題。
我去,這個資料庫連線除了使用比較方便外,基本上就是一無是處啊,那些CLOB欄位問題就不用多說了。
相關推薦
資料庫連線引發事務自動開啟問題
做的一個專案,涉及到兩個oracle資料庫,A庫和B庫。主打A庫,但有些資料要從B庫裡讀取。於是在A庫中建了一個數據庫連線(DBLINK),指向B庫。 於是月亮下去了,毛病出來了。 忽然發現,有些資料儲存,根本沒有提交成功。提示: ORA-01453: SET TRANSACTION
ThreadLocal解決事務執行緒安全問題(c3p0資料庫連線池工具類)
ThreadLocal底層是Map集合,它的key是當前執行緒,value由自己設定,可以繫結Connection或其他物件等,保證本次同一執行緒使用同一Connection。 ThreadLocal類提供幾個方法: get/set/remove 以下是ThreadLocal搭配c3p
事務 與 資料庫連線池【c3p0】 與 DBUtiles學習筆記
1.事務 開啟事務:start transaction; 回滾事務:rollback; 提交事務: commit; 關閉自動提交事務:setAutoCommit(false); 1.1事務的特性ACID【面試】 1.原子性【A】:事務包含的邏輯不可分割 一致性【C】:事務執行前後,資料完
Java——Web開發之事務與資料庫連線池
事務:指的是一組操作,裡面包含許多個單一的邏輯,只要有一個邏輯沒有執行成功,那麼都算失敗,所有的資料都回到最初的狀態。事務在預設情況下是自動提交的。(事務指標對連線物件) 1.事務的簡單使用 1).關閉自動提交的設定 conn.setAutoCommit(fal
事務與資料庫連線池DBCP和C3P0與工具類DBUtils
文章目錄 事務 使用命令列方式演示事務。 使用程式碼方式演示事務 事務的特性 事務的安全隱患 讀未提交 演示 讀已提交演示 可序列化
javaweb 事務&資料庫連線池&DBUtils
事務&資料庫連線池&DBUtils 事務 Transaction 其實指的一組操作,裡面包含許多個單一的邏輯。只要有一個邏輯沒有執行成功,那麼都算失敗。 所有的資料都回歸到最初的狀態(回滾) 為什麼要有事務? 為了確保邏輯的成功。
JavaWeb之事務&資料庫連線池
1. 事務 Transaction 其實指的就是一組操作,裡面包含許多單一的邏輯,如果有一個邏輯沒有執行成功,那麼 個事務就是執行失敗,所有的資料都會回滾到未執行前的狀態。 事務是為解決資料安全操作提出的,事務控制實際上就是控制資料的安全訪問,比如銀行轉賬。 2. 事務的使用 命
CentOS自動開啟網路連線
CentOS開機網路預設的關閉的,檢視網絡卡: $ ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
事務 資料庫連線池 DBUtils
《事務&資料庫連線池&DBUtils》 事務 Transaction 其實指的一組操作,裡面包含許多個單一的邏輯。只要有一個邏輯沒有執行成功,那麼都算失敗。 所有的資料都回歸到最初的狀態(回滾) 為什麼要有事務? 為了確保邏輯的成功。 例子: 銀行
事務與資料庫連線池
文章目錄 事務 為什麼要有事務? 使用程式碼方式演示事務 事務的特性(ACID) 事務的隔離級別 事務的安全隱患【這裡都涉及到兩個事務】 解決丟失更新
mysql 開啟資料庫連線時,出現1130 -host 'localhost' is not allowed 。。的解決辦法
出現這個問題的原因是系統升級的補丁,禁止任何 IP 連線本機。 找到mysql 的安裝目錄,不要在navicate 的快捷方式上單擊右鍵,那樣找到的不是MYSQL 資料庫的目錄,在【程式】列表中找到路徑。 定位到\MySQL\MySQL Serv
JDBC、事務、資料庫連線池、DBUtils
JDBC 使用JDBC連線資料庫的規範程式碼(要求能默寫出) @Test public void query() { Statement stmt = null; ResultSet rs = null; try
C#中連線SqlServer資料庫並且使用事務和using語句的例項
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; namespace test2 {
13-事務&資料庫連線池&DBUtiles
事務&資料庫連線池&DBUtils 事務 Transaction 其實指的一組操作,裡面包含許多個單一的邏輯。只要有一個邏輯沒有執行成功,那麼都算失敗。 所有的資料都回歸到最初的狀態(回滾) 為什麼要有事務? 為了確保邏輯的成功。 例子: 銀行的轉
事務、資料庫連線池
事務、資料庫連線池 事務 為什麼要有事務 使用程式碼方式演示事務 事務的特性ACID 事務的安全隱患 事務總結 資料庫連線池 資料庫
springmvc(五)整合阿里 druid資料庫連線池和事務等配置,整合mybatis
感謝我們的小領導,他在研究,我們在套用,他走了以後再沒有完善過,一直沿用至今。如果看這裡的朋友有什麼需要整合進來的,不吝賜教,謝謝各位了。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:
遠端伺服器斷開連線,為什麼總自動關閉開啟的程式(程式自動關閉)
遠端伺服器斷開連線,為什麼總自動關閉開啟的程式 系統故障:遠端桌面斷開時不久,系統就會自動登出(一辦都認為原先開啟的程式自動關閉)。即:遠端桌面斷開時,當前執行的軟體會自動關閉,正在執行的其它程式也沒有了。再用帳戶遠端登入,發現是一個全新的桌面。 解決辦法:
封裝一個數據庫連線池工具類(connection與threadlocal與資料庫連線池和事務)
package com.itheima.utils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.St
ASP開啟與關閉資料庫連線
<% '開啟資料庫連線sub OpenDataBase(conn) set conn = Server.CreateObject("adodb.connection") connstr="Provider=SQLOLEDB.1;Persist Security In
JPA中幾種比較好的設定資料庫連線事務隔離級別的方法
在使用JPA時,有時候需要設定連線的事務隔離級別,以下幾種方法可供參考。 1). 直接在DataSource上設定DataSource source = (javax.sql.DataSource)