Configure Tomcat para usar un directorio temporal diferente para cargar archivos

14

Mi instancia de Tomcat está sentada en una unidad con poco espacio restante. La aplicación que estoy ejecutando mueve las cargas de archivos del servidor a un NAS. Sin embargo, durante la carga, Tomcat mantiene este archivo localmente, presumiblemente en el directorio / temp.

Mi servidor tiene una segunda unidad de datos con mucho espacio donde me gustaría reubicar este directorio temporal. ¿Cómo puedo configurar Tomcat para que use un directorio temporal en esta otra unidad, es decir? ¿Cómo puedo reubicar este directorio?

Editar: estoy ejecutando el servidor de Windows 2k3. Intenté configurar el CATALINA_TMPDIR env var, pero Tomcat pareció ignorarlo.

Solución: estoy usando la aplicación "Monitor Tomcat" que pasa

-Djava.io.tmpdir = directorio C: \ some \ default \

a la JVM. Esto anulaba la variable ambiental que estaba estableciendo. Puede encontrarlo en Java > Opciones de Java

Cambiar esto ha solucionado mi problema.

rcampbell
fuente

Respuestas:

20

El java.io.tmpdiren Tomcat está establecido en $CATALINA_BASE/temp. Puede cambiarlo configurando la $CATALINA_TMPDIRvariable de entorno antes de ejecutar startup.shTomcat.

De catalina.sh:

#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#                   the JVM should use (java.io.tmpdir).  Defaults to
#                   $CATALINA_BASE/temp.
CoverosGene
fuente
Parece que esto solo funciona para los sistemas * nix, porque cuando intenté configurar CATALINA_TMPDIR env var en Windows 2k3 y arranqué Tomcat, continuó usando la carpeta temporal predeterminada.
rcampbell
Si configura una variable de entorno del sistema en Windows, es posible que deba reiniciar antes de que surta efecto.
CoverosGene
En Ubuntu puede configurar el directorio temporal en/etc/default/tomcat7
beldaz
3

En Windows, si está ejecutando Tomcat como servicio, es probable que tenga una clave similar a

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\myApplication\Parameters\Java

Establezca el valor de cadena options(doble clic para abrir) al final de existente como:

-Djava.io.tmpdir=c:\{yourDir}

Esto funcionó para mí.

Ken Smith
fuente
1

Si está en UNIX / Linux, puede simplemente vincular su directorio temporal en una primera unidad al directorio correspondiente en una segunda unidad. Quizás no sea la solución más elegante, pero me funcionó alguna vez.

Slava I.
fuente