我目前正在尝试通过 spring 在 3 台机器上配置休眠搜索,以使用 JMS 分布式索引。由于我们部署软件的方式,我必须在所有三台机器上使用相同的配置,但我需要一种方法将其中一台设置为 JMS Master。
目前正在使用以下 bean 声明通过 Spring 配置休眠:
<bean class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
id="productSessionFactory">
<property name="dataSource">
<ref local="productDataSource"/>
</property>
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<property name="entityInterceptor" ref="builderInterceptor"/>
<property name="eventListeners">
<map key-type="java.lang.String" value-type="java.lang.Object">
<entry key="save" value-ref="saveEventListener"/>
</map>
</property>
</bean>
在三台机器中的一台上,我需要将属性 hibernate.search.default.directory_provider 设置为 filesystem-master,而在另外两台机器上,我需要将其设置为 filesystem-slave。
我有能力在单台机器上设置标志来识别哪台机器应该是主机,但由于所有配置都是 XML,我没有任何添加逻辑来正确设置参数的能力。
有没有办法以编程方式设置此参数,同时保留其余配置?
谢谢!