springboot在weblogic中的事務失效問題

cover
記錄下最近專案中遇到的坑,關於事務的問題,我們的專案使用springboot構建,並且我們的連線池使用的是druid,在本地直接使用springboot打好jar包,
一切正常行,然後將專案打包成war包,上到weblogic中,執行也正常,但是一次匯入excel表的case中,匯入失敗了,但是資料沒有回滾!經過測試才發現在weblogic中springboot管理的事務失效了,馬上查詢資料,經過幾小時的谷歌後找到了解決辦法,在weblogic中放棄自己的連線池,轉而使用weblogic中的jndi資料來源。
配置步驟如下:
-
啟動weblogic,進入到管理介面,選擇服務下邊的資料來源,點選新建按鈕
mark
-
選擇一般資料來源,選擇你的資料庫,輸入名字,jndi名稱(重要),建議 資料來源名稱和jndi名字一樣,點選下一步
mark
mark
-
接著驅動程式選擇 “for instance connections”。
mark
-
事務型別預設
mark
-
填寫資料來源資訊,最下方的oracle.jdbc.DRCPConnectionClass: 可不填寫
mark
-
繼續後下一步確認你的資訊
mark
-
接著下一步,勾上AdminServer,點選完成
mark
-
建立完畢
mark
-
修改你的springboot專案配置檔案,新增配置:
mark
這裡的jndi的name就是剛剛你新建的名字。
- 去掉原來的資料來源配置(同時存在的話,還是原來的資料來源生效),重新打war包,執行,此時事務生效!
本文原創地址,我的部落格: https://jsbintask.cn/2019/01/22/webcontainer/weblogic-springboot-tx/#more , 未經允許,禁止轉載。