Configurare Tomcat per utilizzare una directory temporanea diversa per i caricamenti di file


14

La mia istanza Tomcat si trova su un'unità con poco spazio rimanente. L'applicazione in esecuzione sposta i caricamenti di file dal server e in un NAS. Durante il caricamento, tuttavia, Tomcat mantiene questo file localmente, presumibilmente nella directory / temp.

Il mio server ha una seconda unità dati con molto spazio in cui vorrei spostare questa directory temporanea. Come posso configurare Tomcat in modo che utilizzi una directory temporanea su quest'altra unità, ad es. come posso spostare questa directory?

Modifica: sto eseguendo Windows Server 2k3. Ho provato a impostare CATALINA_TMPDIR env var, ma Tomcat sembrava ignorarlo.

Soluzione: sto utilizzando l'applicazione "Monitor Tomcat" che passa

-Djava.io.tmpdir = C: \ alcuni \ directory \ default

alla JVM. Ciò stava scavalcando la variabile ambientale che stavo impostando. Puoi trovarlo in Java > Opzioni Java

La modifica di questo ha risolto il mio problema.

Risposte:


20

Il java.io.tmpdirin Tomcat è impostato $CATALINA_BASE/temp. È possibile modificarlo impostando la $CATALINA_TMPDIRvariabile di ambiente prima di eseguire startup.shTomcat.

Da catalina.sh:

#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#                   the JVM should use (java.io.tmpdir).  Defaults to
#                   $CATALINA_BASE/temp.

Questo sembra funzionare solo per i sistemi * nix, perché quando ho provato a impostare CATALINA_TMPDIR env var in Windows 2k3 e ho avviato Tomcat, ha continuato a utilizzare la cartella temporanea predefinita.
rcampbell,

Se si imposta una variabile di ambiente di sistema in Windows, potrebbe essere necessario riavviare prima che abbia effetto.
CoverosGene,

Su Ubuntu puoi impostare la directory temp in/etc/default/tomcat7
beldaz

3

Su Windows, se stai eseguendo Tomcat come servizio, probabilmente hai una chiave simile a

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

Imposta il valore della stringa options(fai doppio clic per aprire) alla fine dell'esistente come:

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

Questo ha funzionato per me.


1

Se utilizzi UNIX / Linux, puoi semplicemente collegare in modo simbolico la tua directory temporanea su una prima unità alla directory corrispondente su una seconda unità. Forse non è una soluzione molto elegante ma a volte ha funzionato per me.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.