我使用Spring Security提供用户身份验证的功能,基本上我使用XA-datasource
执行数据操作。从性能的角度来看,使用数据源来执行用户身份验证是否合适?在用户身份验证中不会有分布式事务。
那么在性能观点中定义另一个non-XA-datasource
来执行此类操作会更好吗?现在,我的安全配置看起来像
<!-- The datasource is defined in a separate config file -->
<bean id="xaDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:jboss/datasources/xaCoreDS">
</bean>
<authentication-manager>
<authentication-provider>
<jdbc-user-service data-source-ref="xaDataSource"
users-by-username-query=
"select username,password, enabled from users where username=?"
authorities-by-username-query=
"select username, role from user_roles where username =? " />
</authentication-provider>
</authentication-manager>
答案 0 :(得分:0)
我认为XAdatasource在事务模式下的性能较差。但是身份验证管理器仅使用select请求,可能使用非事务性调用。因此,不会使用事务处理和两阶段提交。对我来说,没有必要定义non-XA-datasource