spring - ¿Cómo mover la ubicación de los archivos tm.out y*.epoch de Atomikos?
configuration logging (1)
Estoy ejecutando una aplicación J2SE que usa Atomikos que descarga numerosos archivos de registro en el directorio actual. Me gustaría mover la ubicación de estos archivos a "/ tmp", pero no puedo encontrar una propiedad de configuración que pueda establecer desde mi archivo de configuración Spring XML.
La documentación de Atomikos hace referencia a una propiedad:
com.atomikos.icatch.output_dir
¿Qué parece exactamente lo que necesito, pero cómo configurarlo sin un archivo jta.properties? Aquí está mi configuración del administrador de transacciones:
<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>
La propiedad en cuestión debe establecerse en la instancia singleton de transactionService, un objeto que normalmente crea el administrador de transacciones del usuario a pedido:
<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>
Ahora la propiedad está configurada. Pero para asegurarse de que no tiene dos servicios de transacción en ejecución, también debe modificar el bean administrador de transacciones del usuario de la siguiente manera:
<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>