2010-07-15 2 views
7

Я запускаю приложение J2SE, которое использует Atomikos, который выгружает многочисленные файлы журнала в текущий каталог. Я хотел бы переместить расположение этих файлов в «/ tmp», но я не могу найти свойство конфигурации, которое я могу установить из моего конфигурационного файла Spring XML.Как перенести расположение файлов Atomicos tm.out и * .epoch?

Atomikos документации ссылается свойство:

com.atomikos.icatch.output_dir 

который, кажется, именно то, что мне нужно, но как установить с весны его без файла через jta.properties? Вот мой менеджер транзакций конфигурация:

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> 
    <property name="transactionManager" ref="atomikosTransactionManager" /> 
    <property name="userTransaction" ref="atomikosUserTransaction" /> 
</bean> 

<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" 
    init-method="init" destroy-method="close"> 
    <!-- When close is called, should we force transactions to terminate? --> 
    <property name="forceShutdown" value="false" /> 
</bean> 

<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"> 
    <!-- Number of seconds before transaction timesout. --> 
    <property name="transactionTimeout" value="30" /> 
</bean> 

ответ

11

Указанного имущество должно быть установлено на одноплодном экземпляре transactionService - объект, который обычно создается по требованию менеджера транзакций пользователя:

<bean id="userTransactionService" class="com.atomikos.icatch.config.UserTransactionServiceImp" 
    init-method="init" destroy-method="shutdownForce"> 
    <constructor-arg> 
     <!-- IMPORTANT: specify all Atomikos properties here --> 
     <props> 
      <prop key="com.atomikos.icatch.service">com.atomikos.icatch.standalone.UserTransactionServiceFactory</prop> 
      <prop key="com.atomikos.icatch.output_dir">target/</prop> 
      <prop key="com.atomikos.icatch.log_base_dir">target/</prop> 
     </props> 
    </constructor-arg> 
</bean> 

Теперь свойство установлено. Но для того, чтобы убедиться, что у вас нет двух транзакций, вы также должны изменить компонент управления транзакциями пользователя следующим образом:

<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" 
    init-method="init" destroy-method="close" depends-on="userTransactionService"> 
    <!-- When close is called, should we force transactions to terminate? --> 
    <property name="forceShutdown" value="false" /> 
    <!-- Do not create a transaction service as we have specified the bean in this file --> 
    <property name="startupTransactionService" value="false" /> 
</bean> 
+0

+1 для обоих вопросов и ответов –