项目中spring事务管理配置分析与修改方案
概要:
現(xiàn)有spring事務(wù)管理配置存在問題:對(duì)數(shù)據(jù)庫無關(guān)的service層方法,也會(huì)進(jìn)行事務(wù)管理(創(chuàng)建數(shù)據(jù)庫鏈接、提交(回滾)事務(wù)、釋放連接等),消耗資源。
修改方案:只對(duì)執(zhí)行數(shù)據(jù)庫寫操作的service層方法進(jìn)行事務(wù)管理,其它方法均不做配置。
需要做的工作:統(tǒng)計(jì)現(xiàn)有service層方法命名;修改事務(wù)管理配置文件;規(guī)范后續(xù)開發(fā)時(shí)的service層方法命名。
后續(xù)工作
1、確定事務(wù)管理機(jī)制
2、清理現(xiàn)有service層方法命名及功能
3、按確定的事務(wù)管理機(jī)制修改事務(wù)管理配置
4、規(guī)范以后的方法命名。
1、現(xiàn)有配置
配置如下:
<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
創(chuàng)建事務(wù)
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
執(zhí)行處理邏輯
2012-01-17?11:46:58,468?INFO?[com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken:44]?-?令牌基數(shù)是:100000,當(dāng)前令牌值是:1
commit預(yù)處理
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
提交事務(wù)
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
釋放數(shù)據(jù)庫鏈接
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
創(chuàng)建事務(wù)
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
創(chuàng)建數(shù)據(jù)庫鏈接
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
執(zhí)行邏輯
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:?[濟(jì)南市,?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,?川]
提交預(yù)操作
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
提交事務(wù)
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
問題:
與數(shù)據(jù)庫無關(guān)的service層操作也被納入了事務(wù)管理的范圍里。事務(wù)管理和數(shù)據(jù)庫操作都會(huì)占用系統(tǒng)資源。
方案一:對(duì)數(shù)據(jù)庫增/刪/改操作的操作進(jìn)行事務(wù)管理,其余均不做配置。
配置如下。
<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]?-?令牌基數(shù)是:100000,當(dāng)前令牌值是: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:?[濟(jì)南市,?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
對(duì)數(shù)據(jù)庫無關(guān)的操作(如countToken)不再進(jìn)行事務(wù)管理;
對(duì)讀取數(shù)據(jù)庫的操作(如查找熱門城市)也不再進(jìn)行事務(wù)管理;
對(duì)寫數(shù)據(jù)庫的操作(如saveNetInfo、saveRuleInfo)仍進(jìn)行可回滾的事務(wù)管理。
需要:1、整理現(xiàn)有的service層操作方法名
2、后續(xù)開發(fā)中規(guī)范service層操作方法命名。
本文轉(zhuǎn)自 斯然在天邊 51CTO博客,原文鏈接:http://blog.51cto.com/winters1224/805419,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的项目中spring事务管理配置分析与修改方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CC2640使用snv保存信息
- 下一篇: 长短记忆型递归神经网络LSTM