下载
开发软件
账户
下载
开发软件
登录
我忘记用户名和密码了
创建帐户
语言
帮助
语言
帮助
×
登录
登录名
密码
×
我忘记用户名和密码了
简体中文翻译状态
类别:
软件
用户
PersonalForge
Magazine
Wiki
搜索
OSDN
>
浏览软件
>
System
>
TERASOLUNA Framework
>
论坛
>
公开讨论
>
【バッチFW】データソース複数定義について
TERASOLUNA Framework
描述
项目概述
开发人员仪表板
项目的网页
开发人员
Image Gallery
List of RSS Feeds
Activity
统计
历史
下载
List of Releases
统计
源代码
Code Repository list
Subversion
查看仓库
任务单
Ticket List
里程碑列表
Type List
组件列表
List of frequently used tickets/RSS
Submit New Ticket
文档
Wiki
FrontPage
Title index
Recent changes
Doc Mgr
列表文档
沟通
论坛
List of Forums
公开讨论 (1277)
Mailing Lists
list of ML
terasoluna-information
新闻
论坛:
公开讨论
(Thread #21895)
Return to Thread list
RSS
【バッチFW】データソース複数定義について (2009-03-03 19:38 by
匿名
#42287)
回复
Create ticket
お世話になります。
以前、データソースの複数使用に際しての各種ファイルの設定等アドバイスいただいた者です。
その際には参照・更新用と参照専用のデータベースを前提にしたご説明でしたが、
両データベースともに「参照・更新用」として使用したい場合に、具体的に設定が必要なファイルとその内容をお教え願えないでしょうか?
素のフレームワークでは分散トランザクションに対応していない為、フレームワークの拡張になるかとは思いますが・・・。
以上、よろしくお願いします。
回复到 #42287
×
主体
Body
Reply To Message #42287 > お世話になります。 > 以前、データソースの複数使用に際しての各種ファイルの設定等アドバイスいただいた者です。 > その際には参照・更新用と参照専用のデータベースを前提にしたご説明でしたが、 > 両データベースともに「参照・更新用」として使用したい場合に、具体的に設定が必要なファイルとその内容をお教え願えないでしょうか? > 素のフレームワークでは分散トランザクションに対応していない為、フレームワークの拡張になるかとは思いますが・・・。 > > 以上、よろしくお願いします。 >
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
登录
Nickname
预览
Post
取消
RE: 【バッチFW】データソース複数定義について (2009-03-11 16:57 by
kuramotoki
#42496)
回复
Create ticket
分散トランザクションについてですが、当方にて簡単な検証を行い、動作することを確認しましたので
ご参考にしていただければと思います。
(正常系、ERROR_ENDや例外発生といったAP異常をいくつか試しました。)
# JTA実装はJOTM<
http://jotm.objectweb.org/>
を利用しています。
なお、動作を保証できるわけではないのでその点をご了承ください。
設定はdataAccessContext-batch.xmlに以下のように設定しました。
=== dataAccessContext-batch.xmlの設定例 ===
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="
http://www.springframework.org/schema/beans"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="
http://www.springframework.org/schema/util"
xsi:schemaLocation=
"
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd">
<!-- プレースホルダ -->
<import resource="classpath:common/PlaceHolderConfig.xml" />
<!-- xapoolのXADataSource DB:Oracle-->
<bean id="xaDataSource" class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
<property name="transactionManager"><ref bean="jotm"/></property>
<property name="driverName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- xapoolのXADataSource DB:PostgreSQL-->
<bean id="xaDataSource2" class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
<property name="transactionManager"><ref bean="jotm"/></property>
<property name="driverName" value="${jdbc.driverClassName2}" />
<property name="url" value="${jdbc.url2}" />
<property name="user" value="${jdbc.username2}" />
<property name="password" value="${jdbc.password2}" />
</bean>
<!-- JOTM(UserTransaction AND TransactionManager)Create FactoryBean -->
<bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean">
<property name="defaultTimeout" value="86400"/>
</bean>
<!-- xapoolのコネクションプーリング DB:Oracle -->
<bean id="dataSourceSample" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
<property name="dataSource"><ref local="xaDataSource"/></property>
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- xapoolのコネクションプーリング DB:PostgreSQL -->
<bean id="dataSourceSample2" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
<property name="dataSource"><ref local="xaDataSource2"/></property>
<property name="user" value="${jdbc.username2}" />
<property name="password" value="${jdbc.password2}" />
</bean>
<!-- iBATIS データベース層のためのSQlMapの設定 DB:Oracle -->
<bean id="sqlMapClientSample" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSourceSample" />
<property name="configLocation" ref="sqlMapConfigFileName" />
</bean>
<!-- iBATIS データベース層のためのSQlMapの設定 DB:PostgreSQL -->
<bean id="sqlMapClientSample2" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSourceSample2" />
<property name="configLocation" ref="sqlMapConfigFileName" />
</bean>
<!-- SpringのTransactionManager -->
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction"><ref local="jotm"/></property>
<property name="defaultTimeout" value="86400"/>
</bean>
<!-- ===================== DAO定義: IBATIS実装 DB:Oracle ===================== -->
<!-- 照会系のDAO -->
<bean id="xqueryDAO" class="jp.terasoluna.fw.dao.ibatis.QueryDAOiBatisImpl">
<property name="sqlMapClient" ref="sqlMapClientSample" />
</bean>
<!-- 更新系のDAO -->
<bean id="xupdateDAO" class="jp.terasoluna.fw.dao.ibatis.UpdateDAOiBatisImpl">
<property name="sqlMapClient" ref="sqlMapClientSample" />
</bean>
<!-- ストアドプロシジャ用のDAO -->
<bean id="xspDAO" class="jp.terasoluna.fw.dao.ibatis.StoredProcedureDAOiBatisImpl">
<property name="sqlMapClient" ref="sqlMapClientSample" />
</bean>
<!-- ===================== DAO定義: IBATIS実装 DB:PostgreSQL ===================== -->
<!-- 照会系のDAO -->
<bean id="queryDAO" class="jp.terasoluna.fw.dao.ibatis.QueryDAOiBatisImpl">
<property name="sqlMapClient" ref="sqlMapClientSample2" />
</bean>
<!-- 更新系のDAO -->
<bean id="updateDAO" class="jp.terasoluna.fw.dao.ibatis.UpdateDAOiBatisImpl">
<property name="sqlMapClient" ref="sqlMapClientSample2" />
</bean>
<!-- ストアドプロシジャ用のDAO -->
<bean id="xspDAO2" class="jp.terasoluna.fw.dao.ibatis.StoredProcedureDAOiBatisImpl">
<property name="sqlMapClient" ref="sqlMapClientSample2" />
</bean>
</beans>
===
上記の設定を行ったうえで、それぞれのDAOをビジネスロジックにDIして参照/更新を行います。
業務要件を考慮したうえで、利用しているの環境にて検証をお願いします。
また、DB異常が発生した場合は確認を行っていないので、環境面の異常発生時の検証をする必要はあると思います。
仮にFWに手を加える必要が生じた際には、jp.terasoluna.fw.batch.springsupport.transactionパッケージ配下の
クラスを拡張していただくことになるかと思います。
以上、よろしくお願いいたします。
回复到
#42287
回复到 #42496
×
主体
Body
Reply To Message #42496 > 分散トランザクションについてですが、当方にて簡単な検証を行い、動作することを確認しましたので > ご参考にしていただければと思います。 > (正常系、ERROR_ENDや例外発生といったAP異常をいくつか試しました。) > # JTA実装はJOTM<http://jotm.objectweb.org/>を利用しています。 > > なお、動作を保証できるわけではないのでその点をご了承ください。 > > 設定はdataAccessContext-batch.xmlに以下のように設定しました。 > === dataAccessContext-batch.xmlの設定例 === > <?xml version="1.0" encoding="UTF-8"?> > > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:util="http://www.springframework.org/schema/util" > xsi:schemaLocation= > "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> > > <!-- プレースホルダ --> > <import resource="classpath:common/PlaceHolderConfig.xml" /> > > <!-- xapoolのXADataSource DB:Oracle--> > <bean id="xaDataSource" class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> > <property name="transactionManager"><ref bean="jotm"/></property> > <property name="driverName" value="${jdbc.driverClassName}" /> > <property name="url" value="${jdbc.url}" /> > <property name="user" value="${jdbc.username}" /> > <property name="password" value="${jdbc.password}" /> > </bean> > > <!-- xapoolのXADataSource DB:PostgreSQL--> > <bean id="xaDataSource2" class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> > <property name="transactionManager"><ref bean="jotm"/></property> > <property name="driverName" value="${jdbc.driverClassName2}" /> > <property name="url" value="${jdbc.url2}" /> > <property name="user" value="${jdbc.username2}" /> > <property name="password" value="${jdbc.password2}" /> > </bean> > > <!-- JOTM(UserTransaction AND TransactionManager)Create FactoryBean --> > <bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"> > <property name="defaultTimeout" value="86400"/> > </bean> > > <!-- xapoolのコネクションプーリング DB:Oracle --> > <bean id="dataSourceSample" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> > <property name="dataSource"><ref local="xaDataSource"/></property> > <property name="user" value="${jdbc.username}" /> > <property name="password" value="${jdbc.password}" /> > </bean> > > <!-- xapoolのコネクションプーリング DB:PostgreSQL --> > <bean id="dataSourceSample2" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> > <property name="dataSource"><ref local="xaDataSource2"/></property> > <property name="user" value="${jdbc.username2}" /> > <property name="password" value="${jdbc.password2}" /> > </bean> > > <!-- iBATIS データベース層のためのSQlMapの設定 DB:Oracle --> > <bean id="sqlMapClientSample" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> > <property name="dataSource" ref="dataSourceSample" /> > <property name="configLocation" ref="sqlMapConfigFileName" /> > </bean> > > <!-- iBATIS データベース層のためのSQlMapの設定 DB:PostgreSQL --> > <bean id="sqlMapClientSample2" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> > <property name="dataSource" ref="dataSourceSample2" /> > <property name="configLocation" ref="sqlMapConfigFileName" /> > </bean> > > <!-- SpringのTransactionManager --> > <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> > <property name="userTransaction"><ref local="jotm"/></property> > <property name="defaultTimeout" value="86400"/> > </bean> > > <!-- ===================== DAO定義: IBATIS実装 DB:Oracle ===================== --> > <!-- 照会系のDAO --> > <bean id="xqueryDAO" class="jp.terasoluna.fw.dao.ibatis.QueryDAOiBatisImpl"> > <property name="sqlMapClient" ref="sqlMapClientSample" /> > </bean> > > <!-- 更新系のDAO --> > <bean id="xupdateDAO" class="jp.terasoluna.fw.dao.ibatis.UpdateDAOiBatisImpl"> > <property name="sqlMapClient" ref="sqlMapClientSample" /> > </bean> > > <!-- ストアドプロシジャ用のDAO --> > <bean id="xspDAO" class="jp.terasoluna.fw.dao.ibatis.StoredProcedureDAOiBatisImpl"> > <property name="sqlMapClient" ref="sqlMapClientSample" /> > </bean> > > <!-- ===================== DAO定義: IBATIS実装 DB:PostgreSQL ===================== --> > <!-- 照会系のDAO --> > <bean id="queryDAO" class="jp.terasoluna.fw.dao.ibatis.QueryDAOiBatisImpl"> > <property name="sqlMapClient" ref="sqlMapClientSample2" /> > </bean> > > <!-- 更新系のDAO --> > <bean id="updateDAO" class="jp.terasoluna.fw.dao.ibatis.UpdateDAOiBatisImpl"> > <property name="sqlMapClient" ref="sqlMapClientSample2" /> > </bean> > > <!-- ストアドプロシジャ用のDAO --> > <bean id="xspDAO2" class="jp.terasoluna.fw.dao.ibatis.StoredProcedureDAOiBatisImpl"> > <property name="sqlMapClient" ref="sqlMapClientSample2" /> > </bean> > > > </beans> > === > > 上記の設定を行ったうえで、それぞれのDAOをビジネスロジックにDIして参照/更新を行います。 > > 業務要件を考慮したうえで、利用しているの環境にて検証をお願いします。 > また、DB異常が発生した場合は確認を行っていないので、環境面の異常発生時の検証をする必要はあると思います。 > > 仮にFWに手を加える必要が生じた際には、jp.terasoluna.fw.batch.springsupport.transactionパッケージ配下の > クラスを拡張していただくことになるかと思います。 > > 以上、よろしくお願いいたします。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
登录
Nickname
预览
Post
取消