분포식 사무atomikos

11847 단어
자세히 보기
전편에서 라이브러리 테이블 플러그인을 소개했지만 다중 라이브러리 작업은 분포식 사무 문제와 관련이 있다. 분포식 사무는 데이터베이스 XA 드라이브와 관련이 있다는 것을 모두가 알고 있다.oracle는 원래 지원했고 mysql은 5.6버전에서 이 속성을 지원했다.tomikos 플러그인은 이 특이한 중간부품을 봉했다.이제 아토믹스의 사용을 소개해 드리겠습니다.
우선jar 패키지 의존입니다. 마븐 설정은 다음과 같습니다.

	com.atomikos
	transactions
	4.0.4


	com.atomikos
	transactions-api
	4.0.4


	com.atomikos
	atomikos-util
	4.0.4


	com.atomikos
	transactions-jdbc-deprecated
	3.8.0


	com.atomikos
	transactions-jta
	4.0.4


	com.atomikos
	transactions-jdbc
	4.0.4

jta의 설정을 추가합니다. jta를 사용하여spring 업무를 관리합니다.

	javax.transaction
	jta
	1.1

그 다음에 srping 설정입니다. tomikos 데이터 원본을 사용해야 하기 때문에 이전 라이브러리 테이블 플러그인의 데이터 원본 설정을 수정했습니다.



	
	
		
		
		
		
			
				${jdbc.username}
				${jdbc.password}
				${jdbc.url}
			
		
		
		
		
	

	
	
		
		
		
		
			
				${jdbc.username}
				${jdbc.password}
				jdbc:mysql://127.0.0.1:3306/demodb00
			
		
		
		
		
	

	
	
		
		
		
		
			
				${jdbc.username}
				${jdbc.password}
				jdbc:mysql://127.0.0.1:3306/demodb01
			
		
		
		
		
	

	

	

	
		
			
				
			
		
	

	
		
		
		
			
				classpath:com/feng/mapper/user/*.xml
			
		
	

	
		
		
	

	
	
		
			true
		
	

	
		
	

	
		
			
		
		
			
		
		
	
	
		
			
			
			
			
			
			
			
			
			

			
		
	
 	
	
		
		
	

	
		
	

운행해 보니 아래 일지를 본 형제는 성공했다는 뜻이고 마음은 열광적이며 가슴도 꼿꼿해졌다.   
[DEBUG][2017-04-17 09:58:27,821][com.atomikos.icatch.imp.CompositeTransactionImp]addParticipant ( XAResourceTransaction: 636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D313439323339343330373730353030303035:636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D35 ) for transaction com.atomikos.spring.jdbc.tm149239430770500005
[DEBUG][2017-04-17 09:58:27,821][com.atomikos.datasource.xa.XAResourceTransaction]XAResource.start ( 636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D313439323339343330373730353030303035:636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D35 , XAResource.TMNOFLAGS ) on resource master1 represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4MysqlXAConnection@2c7e446d
[DEBUG][2017-04-17 09:58:27,840][com.atomikos.icatch.imp.CompositeTransactionImp]registerSynchronization ( com.atomikos.jdbc.AtomikosConnectionProxy$JdbcRequeueSynchronization@1f21ef16 ) for transaction com.atomikos.spring.jdbc.tm149239430770500005
[DEBUG][2017-04-17 09:58:27,841][com.atomikos.jdbc.AtomikosConnectionProxy]atomikos connection proxy for com.mysql.jdbc.jdbc2.optional.JDBC4ConnectionWrapper@2015fa5c: calling prepareStatement(INSERT INTO user_1 (id, name, age) VALUES (?, ?, ?),1003,1007,1)...
[DEBUG][2017-04-17 09:58:27,866][org.mybatis.spring.SqlSessionUtils]Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@ac88402]
[DEBUG][2017-04-17 09:58:27,866][org.mybatis.spring.SqlSessionUtils]Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@ac88402]
[DEBUG][2017-04-17 09:58:27,866][org.mybatis.spring.SqlSessionUtils]Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@ac88402]
[DEBUG][2017-04-17 09:58:27,866][org.springframework.jdbc.datasource.DataSourceUtils]Returning JDBC Connection to DataSource
[DEBUG][2017-04-17 09:58:27,866][com.atomikos.jdbc.AtomikosConnectionProxy]atomikos connection proxy for com.mysql.jdbc.jdbc2.optional.JDBC4ConnectionWrapper@2015fa5c: close()...
[DEBUG][2017-04-17 09:58:27,866][com.atomikos.datasource.xa.XAResourceTransaction]XAResource.end ( 636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D313439323339343330373730353030303035:636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D35 , XAResource.TMSUCCESS ) on resource master1 represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4MysqlXAConnection@2c7e446d
[DEBUG][2017-04-17 09:58:27,885][org.springframework.transaction.jta.JtaTransactionManager]Initiating transaction rollback
[DEBUG][2017-04-17 09:58:27,887][com.atomikos.datasource.xa.XAResourceTransaction]XAResource.rollback ( 636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D313439323339343330373730353030303035:636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D35 ) on resource master1 represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4MysqlXAConnection@2c7e446d
[DEBUG][2017-04-17 09:58:27,906][com.atomikos.icatch.imp.CompositeTransactionImp]rollback() done of transaction com.atomikos.spring.jdbc.tm149239430770500005
[DEBUG][2017-04-17 09:58:27,907][com.atomikos.icatch.imp.CompositeTransactionImp]rollback() done of transaction com.atomikos.spring.jdbc.tm149239430770500005

   
마지막으로 업무 관련 방법은 반드시 이상을 포착하지 말고 RunTime Exception을 던져도 안 된다. 그렇지 않으면 아토믹스가 굴러갈 수 없고 구체적인 원인이 불분명하다.

좋은 웹페이지 즐겨찾기