2010-07-15 7 views
7

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.¿Cómo mover la ubicación de los archivos tm.out y * .epoch de Atomikos?

documentación

El atomikos hace referencia a una propiedad:

com.atomikos.icatch.output_dir 

que parece exactamente lo que necesito, pero la forma de fijar de primavera sin un archivo de jta.properties? Aquí está mi administrador de transacciones config:

<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> 

Respuesta

11

La propiedad en cuestión se debe establecer en la instancia singleton de la transactionService - un objeto que normalmente se crea en la demanda por el administrador de transacciones de usuario:

<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 del 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> 
+0

+1 para preguntas y respuestas –

Cuestiones relacionadas