Огромное количество JAR-файлов в каталоге jboss / server / web / tmp / vfs-nested.tmp - PullRequest
15 голосов
/ 24 июня 2010

Иногда у нас есть огромное количество JAR-файлов в каталоге jboss / server / web / tmp / vfs-nested.tmp .
Например, сегодня этот каталог содержит более 350 тыс. Jar-файлов.
Но на других хостах в этом каталоге только 2 jar-файла.
Что может быть основной причиной этой проблемы?

Мы используем JBoss 5.1

ОБНОВЛЕНИЕ:
Я обнаружил следующую информацию в заметках о выпуске для JBoss 5.1.0.GA:

JBoss VFS предоставляет набор различных переключателей для управления его внутренним поведением.JBoss AS по умолчанию устанавливает jboss.vfs.forceCopy = true.Чтобы увидеть все предоставленные флаги VFS, проверьте код класса VFSUtils.java.

Так что я не понимаю, что я должен установить?
Должен ли я установить -Djboss.vfs.forceNoCopy = true или -Djboss.vfs.forceCopy = false ?
Или я должен установить их оба?

ОБНОВЛЕНИЕ 1:
Я прочитал всю ветку http://community.jboss.org/thread/2148?start=0&tstart=0 и теперь я не уверен, что мне следует изменить либо jboss.vfs.forceCopy, либо jboss.vfs.forceNoCopy.
В соответствии с этой веткой у меня будет ошибка OutOfMemory вместоогромное количество файлов в tmp dir.

Ответы [ 6 ]

3 голосов
/ 24 июня 2010

Отсюда: http://sourceforge.net/project/shownotes.php?release_id=575410

"Избыточные файлы nestedjarNNN.tmp в каталоге tmp. VFS разворачивает вложенные файлы jar, извлекая вложенный файл jar в файл tmp в каталоге java tmp.большое количество файлов, которые заполняют каталог tmp. Вы можете отключить это поведение, установив -Djboss.vfs.forceNoCopy = true в командной строке, используемой для запуска jboss. Это будет включено по умолчанию в следующем выпуске, JBAS-4389.«

1 голос
/ 28 ноября 2011

Мы решили эту проблему с помощью развернутого развертывания (работает для войны и ушей), как описано в документации jboss http://docs.jboss.org/jbossas/docs/Administration_And_Configuration_Guide/5/html/ch03s01.html

Таким образом, vfs не используется.

1 голос
/ 16 июня 2011

У меня была та же проблема, описанная выше в производстве, и она была решена с помощью следующего решения.

Добавлены опции Java

    -Djboss.vfs.cache=org.jboss.virtual.plugins.cache.IterableTimedVFSCache
    -Djboss.vfs.cache.TimedPolicyCaching.lifetime=1440

Моя установка также определяет дополнительные каталоги развертывания, поэтому мне нужно было добавить эти дополнительные каталоги в файл vfs.xml, расположенный в $JBOSS_SERVER_HOME/conf/bootstrap/, чтобы увидеть преимущества.

Настройка времени жизни, я думаю, указана в минутах, поэтому я установил его на день, так как у меня запланированный перезапуск сервера на ночь.

До нахождения этого решения я также пытался использовать -Djboss.vfs.forceNoCopy=true и -Djboss.vfs.forceCopy=false

Кажется, это работает, но я заметил, что приложение работает намного медленнее - возможно, потому что эти настройки отключают кэширование vfs.

Моя версия Jboss - jboss-5.1.0.GA. и мое приложение работает в кластере на производстве.

1 голос
/ 24 июня 2010

У jskaggz есть хороший ответ.Кроме того, у меня есть это в начале моего файла run.bat:

rmdir /s /q c:\apps\jboss-5.1.0.ga\server\default\tmp
rmdir /s /q c:\apps\jboss-5.1.0.ga\server\default\work
rmdir /s /q c:\apps\jboss-5.1.0.ga\server\default\log
mkdir       c:\apps\jboss-5.1.0.ga\server\default\tmp
mkdir       c:\apps\jboss-5.1.0.ga\server\default\work
mkdir       c:\apps\jboss-5.1.0.ga\server\default\log
echo --- Cleared temp folders ---

У меня были проблемы со старыми копиями классов, зависших вокруг, так что, похоже, это помогает.

0 голосов
/ 13 февраля 2014

Мы столкнулись с той же проблемой и смогли ее обойти, используя каталог фермы в качестве каталога развертывания.

После внедрения этого процесса мы столкнулись с еще одной проблемой, связанной с природой нашего DEVсреда (у нас кластерная среда, и у нас есть много разработчиков, развертывающих в общей среде DEV), что мы не получили согласованных результатов, пока мы таким образом развертывали EAR и WAR. Мы обошли проблему, убедившись, что EAR и JAR, которые находятся в процессеразвернуты TOUCHED (http://en.wikipedia.org/wiki/Touch_(Unix)) на серверах, чтобы избежать несоответствий.

0 голосов
/ 25 октября 2012

Найдено много других людей, имеющих такую ​​же проблему, работающих в кластерной (или фермерской) среде.https://issues.jboss.org/browse/JBAS-7126 описывает решение проблемы с использованием каталога фермы в качестве каталога развертывания.

У меня была такая же проблема при использовании второго каталога развертывания.Файлы jar из моих приложений, поступающие из этого второго каталога развертывания, копировались до тех пор, пока диск не был заполнен.

Попытка добавить второй каталог развертывания аналогично тому, как указано в https://issues.jboss.org/browse/JBAS-7126, описанном для каталога фермы.

Хорошо работает!

...