Журнал ISA 2006 Анализатор

В отсутствии альтернатив я попробовал грязный взлом: замена java и javac сценариями оболочки, которые гарантируют, что надлежащие аргументы передаются и позволяют мне видеть точный список параметров. Начиная с этого в уже попытке очень определенного решения и не части вопроса, я feld как помещение его в ответ.

Я искал все происшествия java в моей файловой системе. Был путь ко многим, потому что у меня есть несколько JREs и JDKs на моей машине. Даже после удаления всех кроме одной версии, были все еще многие из них. Я использовал find / -name "java" |xargs file узнать, который является реальным. Это сказало мне:

/var/lib/dpkg/alternatives/java:               ASCII text
/etc/alternatives/java:                        symbolic link to `/usr/lib/jvm/java-6-sun/jre/bin/java'
/usr/share/java:                               directory
/usr/lib/jvm/java-6-sun-1.6.0.16/bin/java:     symbolic link to `../jre/bin/java'
/usr/lib/jvm/java-6-sun-1.6.0.16/jre/bin/java: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.4.0, not stripped
/usr/bin/java:                                 symbolic link to `/etc/alternatives/java'

Таким образом, я знал это /usr/lib/jvm/java-6-sun-1.6.0.16/jre/bin/java был исполняемый файл. Я переименовал его к javaexec и помещенный сценарий оболочки в он - старое местоположение:

mv /usr/lib/jvm/java-6-sun-1.6.0.16/jre/bin/java /usr/lib/jvm/java-6-sun-1.6.0.16/jre/bin/javaexec
nano /usr/lib/jvm/java-6-sun-1.6.0.16/jre/bin/java
   (see below for file contents)
chmod +x #!/bin/bash -e

Это гарантирует что каждый вызов к java в конечных точках к моему сценарию, который назовет исполняемый файл с правильными параметрами. После этого я сделал подобные ужасные вещи к javac. Содержание моего сценария:

#!/bin/bash -e
line=""
for i in $*
do
  if [[ "$i" == *Xmx* ]]; then
    echo "Seen -Xmx and removed"
  elif [[ "$i" == *MaxPerm* ]]; then
    echo "Seen -XX:MaxPermSize and removed"
  else
    line="$line $i"
  fi
done
exec="/usr/lib/jvm/java-6-sun-1.6.0.16/jre/bin/javaexec -Xms10m -Xmx100m $line"
echo Now executing $exec
$exec

Это удаляет каждый параметр из командной строки, которая включает -Xmx или что-то как -XX:MaxPermSize и вставляет его собственный-Xms и пределы-Xmx.

Когда я теперь запускаю Tomcat, он все еще перестал работать, но наконец, JVM запускает, делает что-то и затем выходит со значимым сообщением. Никакой успех барабана, но это оставляет меня намного более удовлетворенным, с тех пор оттуда на, я знаю, что сделать. В то время как Tomcat все еще не работает, он имеет хороший побочный эффект:

Теперь я могу наконец звонить java или javac на командной строке или из сценария, и они не отказывают, который прежде не был возможен вообще! Они просто работают! Эй, я чувствую себя подобно королю слова, я наконец заставил Java работать на машине с 44 ГБ Ram без complaing о недостаточно памяти. Это - великий день в истории вычислений, действительно!

0
задан 11 March 2011 в 14:55
1 ответ

Просто в стороне: аналитические инструменты Журнала, которые не понимают Сервер ISA, будут иметь тенденцию запрашивать с пользователей чрезмерную цену, особенно потому что они не включают/исключают количества данных на основе объектных исходных значений журнала.

Если Вы соглашаетесь с моделью ISP (имейте кэш, обвините многих людей за загрузки даже с кэша, прибыли!) затем это не могло бы быть недостатком :)

1
ответ дан 4 December 2019 в 22:35

Теги

Похожие вопросы