1. 程式人生 > >用Hibernate儲存物件出現c3p0資料庫連線池死鎖問題的可能原因

用Hibernate儲存物件出現c3p0資料庫連線池死鎖問題的可能原因

我在執行以下程式碼時遇到了問題:

Session session = getSession();
        Transaction tx = session.beginTransaction();
        try {
            save(object, session);
            tx.commit();
        } catch(Exception e) {
            tx.rollback();
            throw new UPSException("", "QrMerchantDAO->insertQrMerchant出錯,出錯資訊如下"
+ e.getMessage() + ""); } finally { try { closeSession(session); } catch (Exception e) { } }

錯誤資訊如下:

com.mcyuan'yinhange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run  
WARNING: com[email protected]4b9cafa7 -- APPARENT DEADLOCK!!! Complete Status:

我出現這個問題的原因是:
要儲存的object物件對應的類通過外來鍵引用的方式和object1對應類有雙向關聯關係,object對應類包含了object1對應類的引用object1,在儲存object的時候,沒有給該引用賦值。

相關推薦

Hibernate儲存物件出現c3p0資料庫連線問題的可能原因

我在執行以下程式碼時遇到了問題: Session session = getSession(); Transaction tx = session.beginTransaction(); try {

c3p0資料庫連線解決

專案進行壓力測試的時候,執行大概1小時候,後臺丟擲以下異常: Java程式碼   Nov 9, 2012 1:41:59 AM com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector 

c3p0資料庫連線問題和mysql重連,連線丟失

c3p0引數解釋 #最常用配置#initialPoolSize:連線池初始化時建立的連線數,default : 3,取值應在minPoolSize與maxPoolSize之間 c3p0.initialPoolSize=10#minPoolSize:連線池保持的最小連線數,d

maven專案管理器,Junit測試單元以及C3P0資料庫連線的會總結

最近剛好連續學習了maven專案管理器,Junit測試單元以及C3P0資料庫連線池的使用,現將學習工程中遇到的問題與注意點總結如下: 1.maven專案管理器 maven是一種很好用的專案管理器,在開發工具中建立一個maven專案,它會自動生成各種目錄,有專門存放java

使用c3p0資料庫連線出現com.mchange.v2.resourcepool.TimeoutException

有一個線上環境使用的是c3p0資料庫,為外部提供介面服務。最近訪問壓力增大後臺tomcat的日誌裡面頻繁出現 com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting t

jsp,servlet 連線c3p0資料庫連線出現的問題

九月 02, 2015 10:17:48 下午 com.mchange.v2.log.MLog <clinit> INFO: MLog clients using java 1.4+ standard logging. 九月 02, 2015 10:17:48

Hibernate第十一篇【配置C3P0資料庫連線、執行緒Session】

Hibernate連線池 Hibernate自帶了連線池,但是呢,該連線池比較簡單..而Hibernate又對C3P0這個連線池支援…因此我們來更換Hibernate連線池為C3P0 檢視Hibernate自帶的連線池 我們可以通過Hibernate.

C3P0資料庫連線因網路阻塞出現的問題

我手上有一個簡訊傳送的系統,每天傳送量大約3萬的樣子,有天突然崩潰,看到資料庫連線池一直在報錯,很慌亂的重啟了系統,沒用效果. 之前選擇資料庫連線池時,看hibernate推薦c3p0,就下載了最新的版本,之前一直工作穩定.去到google下,發現好多問這個問題,原來是他新版

ThreadLocal解決事務執行緒安全問題(c3p0資料庫連線工具類)

ThreadLocal底層是Map集合,它的key是當前執行緒,value由自己設定,可以繫結Connection或其他物件等,保證本次同一執行緒使用同一Connection。 ThreadLocal類提供幾個方法: get/set/remove 以下是ThreadLocal搭配c3p

spring jdbc --注:c3p0資料庫連線或druid連線使用配置整理

是Maven配置檔案:pom.xml的程式碼內容: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch

Mysql學習--07.c3p0資料庫連線

學習目標 C3p0資料庫連線池 一、c3p0資料庫連線池          1、概述: c3p0是一個開源的JDBC連線池、它實現了資料來源和JNDI(Java Naming and Directory Interface,Java命名和目錄介面)繫結、支援jdbc3

c3p0 資料庫連線配置 詳細總結

前言 關於 c3p0 一般有這麼兩種配置,一種是通過 set 方法進行配置,另一種是通過在同 src 目錄下的 c3p0-conflg.xml 檔案或者 c3p0.properties 檔案進行相關的配置。 一、c3p0 通過 set 方法進行配置 原始碼: priva

c3p0資料庫連線如何正確的關閉資源(“too many connections”的解決辦法)

一.問題分析 關於c3p0資料庫連線池的資源的關閉是一個很重要的問題,但是資源的關閉不僅僅是隻呼叫close()方法,將連結放入池中那麼簡單,如果你不考慮資料來源DataSource的關閉,那麼你的Demo將在很少的資料庫互動之後報出“too many connection

javaWeb學習記錄:c3p0資料庫連線;DBUtils工具

1. c3p0資料庫連線池 讓我想起了星球大戰裡的C-3PO,哈哈。 1.1 資料庫連線池的概念 用池來管理Connection,這可以重複使用Connection。有了池,所以我們就不用自己來建立Connection,而是通過池來獲取Connecti

spring+mybatis+c3p0資料庫連線或druid連線使用配置整理

系統性能優化的時候,或者說在進行程式碼開發的時候,多數人應該都知道一個很基本的原則,那就是保證功能正常良好的情況下,要儘量減少對資料庫的操作。  據我所知,原因大概有這樣兩個:  一個是,一般情況下系統伺服器和資料庫伺服器應該是不在同一硬體上,這時候對資料庫的連線

JDBC整合c3p0資料庫連線 解決Too many connections錯誤

前段時間,接手一個專案使用的是原始的jdbc作為資料庫的訪問,釋出到伺服器上在運行了一段時間之後總是會出現無法訪問的情況,登入到伺服器,檢視tomcat日誌發現總是報如下的錯誤。 Caused by: com.mysql.jdbc.exceptions.jdbc4.

c3p0資料庫連線資料來源配置

 不管通過何種持久化技術,都必須通過資料連線訪問資料庫,在Spring中,資料連線是通過資料來源獲得的。在以往的應用中,資料來源一般是 Web應用伺服器提供的。在Spring中,你不但可以通過JNDI獲取應用伺服器的資料來源,也可以直接在Spring容器中配置資料來源,此外,你還可以 通過程式碼的方式建立一

tomcat配置c3p0資料庫連線遇到問題與解決

這短時間在做一個Android專案,由於牽扯到資料庫,也就有伺服器。app預期是想做大,所以一方面考慮到效能相關 因此就想把tomcat和比較知名的c3p0結合起來,從這一方面來提高效能。 首先第一步:把c3p0解壓資料夾的3個jar包全部考到tomcat根目錄下lib資料

JavaEE基礎(06):Servlet整合C3P0資料庫連線

本文原始碼:GitHub·點這裡 || GitEE·點這裡 一、C3P0連線池 1、C3P0簡介 C3P0是一個開源的JDBC連線池,應用程式根據C3P0配置來初始化資料庫連線,可以自動回收空閒連線的功能。 2、核心依賴 <dependency> <groupId>mysq

記一次:c3p0連線的問題

       在公司的專案開發中,我負責資料層介面的程式碼編寫工作,其中,就涉及到mysql資料庫的查詢介面。為提供效能,也使用了C3P0這個連線池技術。配置簡單,也好用。這裡說一下,我們的使用環境;由於是給中介軟體層使用,而中介軟體並沒有向web層那樣,有配置spring