Skonfiguruj Tomcat, aby używał innego katalogu tymczasowego do przesyłania plików

14

Moja instancja Tomcat siedzi na dysku, na którym pozostało niewiele miejsca. Aplikacja, którą uruchamiam, przenosi przesyłanie plików z serwera na serwer NAS. Jednak podczas przesyłania Tomcat przechowuje ten plik lokalnie, prawdopodobnie w katalogu / temp.

Mój serwer ma drugi dysk danych z dużą ilością miejsca, do którego chciałbym przenieść ten katalog tymczasowy. Jak mogę skonfigurować Tomcat, aby korzystał z katalogu tymczasowego na tym drugim dysku, tj. jak mogę przenieść ten katalog?

Edycja: Korzystam z systemu Windows Server 2k3. Próbowałem ustawić zmienną CATALINA_TMPDIR env var, ale Tomcat najwyraźniej to zignorował.

Rozwiązanie: Korzystam z aplikacji „Monitor Tomcat”, która przechodzi

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

do JVM. To zastępowało ustawioną przeze mnie zmienną środowiskową. Możesz go znaleźć w Java > Opcje Java

Zmiana tego rozwiązała mój problem.

rcampbell
źródło

Odpowiedzi:

20

W java.io.tmpdirTomcat jest ustawiony na $CATALINA_BASE/temp. Możesz to zmienić, ustawiając $CATALINA_TMPDIRzmienną środowiskową przed uruchomieniem startup.shdla Tomcat.

Od catalina.sh:

#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#                   the JVM should use (java.io.tmpdir).  Defaults to
#                   $CATALINA_BASE/temp.
CoverosGene
źródło
Wydaje się, że działa to tylko w systemach * nix, ponieważ kiedy próbowałem ustawić CATALINA_TMPDIR env var w Windows 2k3 i uruchomiłem Tomcat, kontynuowałem korzystanie z domyślnego folderu tymczasowego.
rcampbell
Jeśli ustawisz systemową zmienną środowiskową w systemie Windows, konieczne może być ponowne uruchomienie komputera, zanim zacznie obowiązywać.
CoverosGene
W Ubuntu możesz ustawić katalog tymczasowy w/etc/default/tomcat7
beldaz
3

W systemie Windows, jeśli używasz Tomcat jako usługi, prawdopodobnie masz podobny klucz

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

Ustaw wartość ciągu options(kliknij dwukrotnie, aby otworzyć) na końcu istniejącego jako:

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

To zadziałało dla mnie.

Ken Smith
źródło
1

Jeśli korzystasz z systemu UNIX / Linux, możesz po prostu dowiązać katalog tymczasowy na pierwszym dysku do odpowiedniego katalogu na drugim dysku. Może nie jest to najbardziej eleganckie rozwiązanie, ale kiedyś mi się udało.

Slava I.
źródło