项目中spring事务管理配置分析与修改方案
概要:
現有spring事務管理配置存在問題:對數據庫無關的service層方法,也會進行事務管理(創建數據庫鏈接、提交(回滾)事務、釋放連接等),消耗資源。
修改方案:只對執行數據庫寫操作的service層方法進行事務管理,其它方法均不做配置。
需要做的工作:統計現有service層方法命名;修改事務管理配置文件;規范后續開發時的service層方法命名。
后續工作
1、確定事務管理機制
2、清理現有service層方法命名及功能
3、按確定的事務管理機制修改事務管理配置
4、規范以后的方法命名。
1、現有配置
配置如下:
<tx:method?name="get*"?read-only="true"?/>
<tx:method?name="query*"?read-only="true"?/>
<tx:method?name="*"?propagation="REQUIRED"?/>
日志輸出:
1、com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken
創建事務
2012-01-17?11:46:39,656?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction:371]?-?Creating?new?transaction?with?name?[com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken]:?PROPAGATION_REQUIRED,ISOLATION_DEFAULT
建立鏈接
2012-01-17?11:46:58,375?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:202]?-?Acquired?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?for?JDBC?transaction
2012-01-17?11:46:58,468?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:219]?-?Switching?JDBC?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?to?manual?commit
執行處理邏輯
2012-01-17?11:46:58,468?INFO?[com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken:44]?-?令牌基數是:100000,當前令牌值是:1
commit預處理
2012-01-17?11:46:58,468?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit:903]?-?Triggering?beforeCommit?synchronization
2012-01-17?11:46:58,468?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletion:916]?-?Triggering?beforeCompletion?synchronization
2012-01-17?11:46:58,468?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit:730]?-?Initiating?transaction?commit
提交事務
2012-01-17?11:46:58,484?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit:259]?-?Committing?JDBC?transaction?on?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]
Commit后處理
2012-01-17?11:46:58,484?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCommit:929]?-?Triggering?afterCommit?synchronization
2012-01-17?11:46:58,484?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion:945]?-?Triggering?afterCompletion?synchronization
釋放數據庫鏈接
2012-01-17?11:46:58,484?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCleanupAfterCompletion:314]?-?Releasing?JDBC?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?after?transaction
2、com.sinosig.carpremium.services.impl.AutocompleteServiceImpl.getTravelHotCityList
創建事務
2012-01-17?11:47:05,687?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction:371]?-?Creating?new?transaction?with?name?[com.sinosig.carpremium.services.impl.AutocompleteServiceImpl.getTravelHotCityList]:?PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly
創建數據庫鏈接
2012-01-17?11:47:05,687?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:202]?-?Acquired?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?for?JDBC?transaction
2012-01-17?11:47:05,687?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:219]?-?Switching?JDBC?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?to?manual?commit
執行邏輯
2012-01-17?11:47:05,765?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100000}?Connection
2012-01-17?11:47:05,781?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100000}?Preparing?Statement:????Select?p.City?city,?p.Spelling?spelling,?p.Org_Id???orgId,p.spelling_acronym?spellingAcronym,p.city_plate?cityPlate???,a.PRO_PLATE?provincePlate???From?t_Se_City?p?left?join?t_se_netCityControl?a??????on?p.org_id?=?a.org_id????Where?p.hot_sign=??and?a.isnew?=?'1'?Order?By?p.city_id???Asc??
2012-01-17?11:47:05,953?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100001}?Executing?Statement:????Select?p.City?city,?p.Spelling?spelling,?p.Org_Id???orgId,p.spelling_acronym?spellingAcronym,p.city_plate?cityPlate???,a.PRO_PLATE?provincePlate???From?t_Se_City?p?left?join?t_se_netCityControl?a??????on?p.org_id?=?a.org_id????Where?p.hot_sign=??and?a.isnew?=?'1'?Order?By?p.city_id???Asc??
2012-01-17?11:47:05,953?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100001}?Parameters:?[1]
2012-01-17?11:47:05,968?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100001}?Types:?[java.lang.String]
2012-01-17?11:47:06,015?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?ResultSet
2012-01-17?11:47:06,031?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Header:?[CITY,?SPELLING,?ORGID,?SPELLINGACRONYM,?CITYPLATE,?PROVINCEPLATE]
2012-01-17?11:47:06,031?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[北京市,?BeiJingShi,?01682900,?bjs,?京,?京]
2012-01-17?11:47:06,031?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[濟南市,?JiNanShi,?02129700,?jns,?魯A,?魯A]
2012-01-17?11:47:06,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[南京市,?NanJingShi,?03515500,?njs,?蘇A,?蘇]
2012-01-17?11:47:06,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[重慶市,?ChongQingShi,?05141600,?cqs,?渝,?渝]
2012-01-17?11:47:06,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[鄭州市,?ZhengZhouShi,?06511000,?zzs,?豫A,?豫]
2012-01-17?11:47:06,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[上海市,?ShangHaiShi,?07518800,?shs,?滬,?滬]
2012-01-17?11:47:06,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[廣州市,?GuangZhouShi,?08512200,?gzs,?粵A,?粵]
2012-01-17?11:47:06,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[深圳市,?ShenZhenShi,?09101800,?szs,?粵B,?粵B]
2012-01-17?11:47:06,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[青島市,?QingDaoShi,?11402000,?qds,?魯B,?魯B]
2012-01-17?11:47:06,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[石家莊市,?ShiJiaZhuangShi,?15503200,?sjzs,?冀A,?冀]
2012-01-17?11:47:06,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[杭州市,?HangZhouShi,?19503500,?hzs,?浙A,?浙]
2012-01-17?11:47:06,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[成都市,?ChengDuShi,?21114000,?cds,?川A,?川]
提交預操作
2012-01-17?11:47:06,062?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit:903]?-?Triggering?beforeCommit?synchronization
2012-01-17?11:47:06,078?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletion:916]?-?Triggering?beforeCompletion?synchronization
2012-01-17?11:47:06,078?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit:730]?-?Initiating?transaction?commit
提交事務
2012-01-17?11:47:06,078?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit:259]?-?Committing?JDBC?transaction?on?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]
提交后操作
2012-01-17?11:47:06,093?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCommit:929]?-?Triggering?afterCommit?synchronization
2012-01-17?11:47:06,093?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion:945]?-?Triggering?afterCompletion?synchronization
2012-01-17?11:47:06,093?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCleanupAfterCompletion:314]?-?Releasing?JDBC?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?after?transaction
問題:
與數據庫無關的service層操作也被納入了事務管理的范圍里。事務管理和數據庫操作都會占用系統資源。
方案一:對數據庫增/刪/改操作的操作進行事務管理,其余均不做配置。
配置如下。
<tx:method?name="add*"?propagation="REQUIRED"?/>
<tx:method?name="save*"?propagation="REQUIRED"?/>
<tx:method?name="update*"?propagation="REQUIRED"?/>
<tx:method?name="edit*"?propagation="REQUIRED"?/>
<tx:method?name="remove*"?propagation="REQUIRED"?/>
<tx:method?name="delete*"?propagation="REQUIRED"?/>
日志記錄
1、com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken
2012-01-17?12:11:29,578?INFO?[com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken:44]?-?令牌基數是:100000,當前令牌值是:1
2、com.sinosig.carpremium.services.impl.AutocompleteServiceImpl.getTravelHotCityList
2012-01-17?12:11:35,312?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100000}?Connection
2012-01-17?12:11:53,765?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100000}?Preparing?Statement:????Select?p.City?city,?p.Spelling?spelling,?p.Org_Id???orgId,p.spelling_acronym?spellingAcronym,p.city_plate?cityPlate???,a.PRO_PLATE?provincePlate???From?t_Se_City?p?left?join?t_se_netCityControl?a??????on?p.org_id?=?a.org_id????Where?p.hot_sign=??and?a.isnew?=?'1'?Order?By?p.city_id???Asc??
2012-01-17?12:11:53,953?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100001}?Executing?Statement:????Select?p.City?city,?p.Spelling?spelling,?p.Org_Id???orgId,p.spelling_acronym?spellingAcronym,p.city_plate?cityPlate???,a.PRO_PLATE?provincePlate???From?t_Se_City?p?left?join?t_se_netCityControl?a??????on?p.org_id?=?a.org_id????Where?p.hot_sign=??and?a.isnew?=?'1'?Order?By?p.city_id???Asc??
2012-01-17?12:11:53,953?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100001}?Parameters:?[1]
2012-01-17?12:11:53,953?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100001}?Types:?[java.lang.String]
2012-01-17?12:11:54,000?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?ResultSet
2012-01-17?12:11:54,015?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Header:?[CITY,?SPELLING,?ORGID,?SPELLINGACRONYM,?CITYPLATE,?PROVINCEPLATE]
2012-01-17?12:11:54,015?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[北京市,?BeiJingShi,?01682900,?bjs,?京,?京]
2012-01-17?12:11:54,015?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[濟南市,?JiNanShi,?02129700,?jns,?魯A,?魯A]
2012-01-17?12:11:54,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[南京市,?NanJingShi,?03515500,?njs,?蘇A,?蘇]
2012-01-17?12:11:54,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[重慶市,?ChongQingShi,?05141600,?cqs,?渝,?渝]
2012-01-17?12:11:54,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[鄭州市,?ZhengZhouShi,?06511000,?zzs,?豫A,?豫]
2012-01-17?12:11:54,046?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[上海市,?ShangHaiShi,?07518800,?shs,?滬,?滬]
2012-01-17?12:11:54,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[廣州市,?GuangZhouShi,?08512200,?gzs,?粵A,?粵]
2012-01-17?12:11:54,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[深圳市,?ShenZhenShi,?09101800,?szs,?粵B,?粵B]
2012-01-17?12:11:54,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[青島市,?QingDaoShi,?11402000,?qds,?魯B,?魯B]
2012-01-17?12:11:54,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[石家莊市,?ShiJiaZhuangShi,?15503200,?sjzs,?冀A,?冀]
2012-01-17?12:11:54,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[杭州市,?HangZhouShi,?19503500,?hzs,?浙A,?浙]
2012-01-17?12:11:54,062?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100002}?Result:?[成都市,?ChengDuShi,?21114000,?cds,?川A,?川]
3、com.sinosig.carchannel.services.impl.NetInfoServcieImpl.saveNetInfo
2012-01-17?12:17:58,437?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction:371]?-?Creating?new?transaction?with?name?[com.sinosig.carchannel.services.impl.NetInfoServcieImpl.saveNetInfo]:?PROPAGATION_REQUIRED,ISOLATION_DEFAULT
2012-01-17?12:17:58,437?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:202]?-?Acquired?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?for?JDBC?transaction
2012-01-17?12:17:58,515?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:219]?-?Switching?JDBC?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?to?manual?commit
2012-01-17?12:17:58,546?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100009}?Connection
2012-01-17?12:17:58,546?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100009}?Preparing?Statement:?????select?SEQ_INSUINFO.nextval?from?dual???
2012-01-17?12:17:58,546?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100010}?Executing?Statement:?????select?SEQ_INSUINFO.nextval?from?dual???
2012-01-17?12:17:58,546?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100010}?Parameters:?[]
2012-01-17?12:17:58,546?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100010}?Types:?[]
2012-01-17?12:17:58,562?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100011}?ResultSet
2012-01-17?12:17:58,562?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100011}?Header:?[NEXTVAL]
2012-01-17?12:17:58,562?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100011}?Result:?[15081689]
2012-01-17?12:17:58,562?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100009}?Preparing?Statement:???????insert?into???T_SE_INSURANCE_INFO(PK_T_INS_ID,CONT_TEL,PROV_CITY,USEYEAR,???NUM_PLATE,PURCHASE_DATE,PRICE,IS_NEW,INSU_APP_DATE,CONT_NAME,???PUSHED_FLAG,PURGECODE,AREACODE,EMAIL,SPSOURCE,HASDRI,INSU_APP_DATE_TRA)???values(?,?,?,?,????,?,?,?,to_date(?,'yyyy-MM-dd'),?,???'9',?,?,?,?,'0',?)??
2012-01-17?12:17:58,562?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100012}?Executing?Statement:???????insert?into???T_SE_INSURANCE_INFO(PK_T_INS_ID,CONT_TEL,PROV_CITY,USEYEAR,???NUM_PLATE,PURCHASE_DATE,PRICE,IS_NEW,INSU_APP_DATE,CONT_NAME,???PUSHED_FLAG,PURGECODE,AREACODE,EMAIL,SPSOURCE,HASDRI,INSU_APP_DATE_TRA)???values(?,?,?,?,????,?,?,?,to_date(?,'yyyy-MM-dd'),?,???'9',?,?,?,?,'0',?)??
2012-01-17?12:17:58,562?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100012}?Parameters:?[15081689,?13800138000,?02129700,?5,?魯A423423,?2007-01-17,?,?0,?2012-01-18,??,?WB-OB-NR-FQ,?W00000002,?,?NET,?2012-01-18]
2012-01-17?12:17:58,562?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100012}?Types:?[java.lang.Long,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String]
2012-01-17?12:17:58,578?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit:903]?-?Triggering?beforeCommit?synchronization
2012-01-17?12:17:58,578?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletion:916]?-?Triggering?beforeCompletion?synchronization
2012-01-17?12:17:58,578?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit:730]?-?Initiating?transaction?commit
2012-01-17?12:17:58,578?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit:259]?-?Committing?JDBC?transaction?on?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]
2012-01-17?12:17:58,578?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCommit:929]?-?Triggering?afterCommit?synchronization
2012-01-17?12:17:58,578?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion:945]?-?Triggering?afterCompletion?synchronization
2012-01-17?12:17:58,593?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCleanupAfterCompletion:314]?-?Releasing?JDBC?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?after?transaction
4、com.sinosig.carchannel.services.impl.NetRuleServiceImpl.saveRuleInfo
2012-01-17?12:17:58,593?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction:371]?-?Creating?new?transaction?with?name?[com.sinosig.carchannel.services.impl.NetRuleServiceImpl.saveRuleInfo]:?PROPAGATION_REQUIRED,ISOLATION_DEFAULT
2012-01-17?12:17:58,593?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:202]?-?Acquired?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?for?JDBC?transaction
2012-01-17?12:17:58,593?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:219]?-?Switching?JDBC?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?to?manual?commit
2012-01-17?12:17:58,593?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100013}?Connection
2012-01-17?12:17:58,593?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100013}?Preparing?Statement:?????select?SEQ_RULE.nextval?from?dual???
2012-01-17?12:17:58,593?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100014}?Executing?Statement:?????select?SEQ_RULE.nextval?from?dual???
2012-01-17?12:17:58,593?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100014}?Parameters:?[]
2012-01-17?12:17:58,593?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100014}?Types:?[]
2012-01-17?12:17:58,609?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100015}?ResultSet
2012-01-17?12:17:58,609?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100015}?Header:?[NEXTVAL]
2012-01-17?12:17:58,609?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{rset-100015}?Result:?[60910]
2012-01-17?12:17:58,609?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{conn-100013}?Preparing?Statement:???????insert?into?T_SE_RULE(ID,PK_T_INS_ID,MULTIRISKTYPE,???CUSTOMERLOYALTY,DAMAGEDFACTORGRADE,RUNAREACODE,RUNMILES,ADDONCOUNT,ParticularModel,DISCOUNT)???values(?,?,?,????,?,?,?,?,?,'1.0')??
2012-01-17?12:17:58,609?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100016}?Executing?Statement:???????insert?into?T_SE_RULE(ID,PK_T_INS_ID,MULTIRISKTYPE,???CUSTOMERLOYALTY,DAMAGEDFACTORGRADE,RUNAREACODE,RUNMILES,ADDONCOUNT,ParticularModel,DISCOUNT)???values(?,?,?,????,?,?,?,?,?,'1.0')??
2012-01-17?12:17:58,609?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100016}?Parameters:?[60910,?15081689,?1,?1,?1,?1,?1,?1,?0]
2012-01-17?12:17:58,609?DEBUG?[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]?-?{pstm-100016}?Types:?[java.lang.Long,?java.lang.Long,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String,?java.lang.String]
2012-01-17?12:17:58,609?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit:903]?-?Triggering?beforeCommit?synchronization
2012-01-17?12:17:58,609?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletion:916]?-?Triggering?beforeCompletion?synchronization
2012-01-17?12:17:58,625?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit:730]?-?Initiating?transaction?commit
2012-01-17?12:17:58,625?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit:259]?-?Committing?JDBC?transaction?on?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]
2012-01-17?12:17:58,625?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCommit:929]?-?Triggering?afterCommit?synchronization
2012-01-17?12:17:58,625?DEBUG?[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion:945]?-?Triggering?afterCompletion?synchronization
2012-01-17?12:17:58,625?DEBUG?[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCleanupAfterCompletion:314]?-?Releasing?JDBC?Connection?[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,?UserName=AUTOCREAT,?Oracle?JDBC?driver]?after?transaction
對數據庫無關的操作(如countToken)不再進行事務管理;
對讀取數據庫的操作(如查找熱門城市)也不再進行事務管理;
對寫數據庫的操作(如saveNetInfo、saveRuleInfo)仍進行可回滾的事務管理。
需要:1、整理現有的service層操作方法名
2、后續開發中規范service層操作方法命名。
本文轉自 斯然在天邊 51CTO博客,原文鏈接:http://blog.51cto.com/winters1224/805419,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的项目中spring事务管理配置分析与修改方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CC2640使用snv保存信息
- 下一篇: 显卡机器linux 6卡挖矿,显卡挖矿是