Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> java.lang.OutOfMemoryError, Tomcat memory... 
:(
    Опции темы
rrrookie
Дата 20.12.2006, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.6.2006
Где: Rīga

Репутация: нет
Всего: нет



Привет!

Работаю с Веб Севисами на Аксис2. 

Когда запускаю метод сервисов который считывает много инофрмации из БД, вылетает

ЕТО -> Exception in thread main java.lang.OutOfMemoryError

С Аксисом работаю через Томкат6.

ЕстЬ решение тут -> http://forum.java.sun.com/thread.jspa?thre...ssageID=3773026

Но как то не оченЬ работает....

Кто нитЬ может конкретно пояснитЬ: КАК УВЕЛИЧИТЬ памятЬ JAVA ?

JAVA -X - там всё описано, но не работает...

Спасибо
PM MAIL   Вверх
kkorsakoff
Дата 20.12.2006, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: 6
Всего: 14



Различными -X параметрами. Скажи на какой конфигурации у тебя сейчас работает сервер. И с какими параметрами запускаешь томкат. Точнее виртуальную машину. 
Кстати java.lang.OutOfMemoryError они ведь тоже разные бывают.
PM MAIL WWW ICQ   Вверх
rrrookie
Дата 20.12.2006, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.6.2006
Где: Rīga

Репутация: нет
Всего: нет



Чтыо значит :"на какой конфигурации у тебя сейчас работает сервер"

Томкат 5.5.17

Добавляю параметр -Xmx512Mв переменную окружения JAVA_OPTS 

и запускаю startup.bat
PM MAIL   Вверх
w1nd
Дата 20.12.2006, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 7
Всего: 54



Цитата(rrrookie @  20.12.2006,  18:34 Найти цитируемый пост)
Добавляю параметр -Xmx512Mв переменную окружения JAVA_OPTS 

Добавьте к нему "-XX:PermSize=96m -XX:MaxPermSize=128m". Что получится?


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
kkorsakoff
Дата 21.12.2006, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: 6
Всего: 14



Я имел ввиду сколько оперативки доступно вообще, чтоб  не забить всю память томкатом
PM MAIL WWW ICQ   Вверх
rrrookie
Дата 21.12.2006, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.6.2006
Где: Rīga

Репутация: нет
Всего: нет



Привет!

Допустим что количество памяти не ограничено...
На сервере 2Гб RAMa...

И JAVA_OPTS = -Xmx512M -XX:PermSize=96m -XX:MaxPermSize=128m

Тоже не помогло... 
Не получается увеличитЬ JVM heap size...


PM MAIL   Вверх
kkorsakoff
Дата 21.12.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: 6
Всего: 14



Откуда ты понимаешь, что не получается увеличить хип? Каким образом берешь эту информацию?
При вылете jvm должна создавать файл hs_err_pid<process id>.log
Туда же пишется состояние памяти. Может туда глянем?
PM MAIL WWW ICQ   Вверх
rrrookie
Дата 22.12.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.6.2006
Где: Rīga

Репутация: нет
Всего: нет



OK, спасибо за помощ ;) 

УдалосЬ решитЬ проблему
PM MAIL   Вверх
KostenkoSergey
Дата 28.12.2006, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Цитата(w1nd @  20.12.2006,  22:51 Найти цитируемый пост)
XX:PermSize=96m -XX:MaxPermSize=128m
 а как это должно помочь ?

как решил проблему - интересно.

PM ICQ   Вверх
tmp13
Дата 20.2.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.11.2006

Репутация: нет
Всего: нет



всего у меня 512 оперативки!!

-Xmx512M указал такое в опциях Jdevelopera
Код

         StringBuffer isbuf=new StringBuffer();
         int minimumCapacity = 28000000;
         isbuf.ensureCapacity(minimumCapacity);
         MemoryMXBean memorymbean = ManagementFactory.getMemoryMXBean();
         System.out.println(memorymbean.getHeapMemoryUsage());
         System.out.println(memorymbean.getNonHeapMemoryUsage());


(это часть кода... там всё сложнее сервлет процессы... и т.д... на запись 14 мегабайт в StringBuffer его хватает 16 всё облом...)
java.lang.OutOfMemoryError выдавать перестал... но толку мало доходит до второй строчки... съедается 1.30 гига оперативки соответственно уже с диска тоже... и всё диск трещит неумолимо минут 10 ждал пришлось завершить процесс..((... с чем это связанно?? т.е. есть шанс что через час что-то изменится?? или это уже без вариантов будет висеть?


Это сообщение отредактировал(а) tmp13 - 20.2.2007, 13:11
PM MAIL   Вверх
tux
Дата 20.2.2007, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(tmp13 @  20.2.2007,  13:09 Найти цитируемый пост)
т.е. есть шанс что через час что-то изменится?? или это уже без вариантов будет висеть?

Наверное есть если операционка прочихается. 

А для чего нужен такой большой буфер? С точки зрения разработки выделение такого размера памяти в корне неправильно в большинстве случаев. 
PM MAIL Skype GTalk Jabber YIM   Вверх
Tony
Дата 20.2.2007, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Увели4ение памяти это не решение проблеми. Всего лишь кастыль. Нужно данные подгружать по кускам. Как это реализовать это другой вопрос.


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
tmp13
Дата 20.2.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.11.2006

Репутация: нет
Всего: нет



дело в том что с инета скачивается файл в формате zip потом раззиповывается следующим образом:
Код

        ZipInputStream zis = new ZipInputStream(urlCon.getInputStream());
        byte[] buffer = new byte[512];
        while(zis.available()>0)
        {
         zis.getNextEntry();
         StringBuffer isbuf=new StringBuffer();
         int minimumCapacity = 28000000;
         isbuf.ensureCapacity(minimumCapacity);
         MemoryMXBean memorymbean = ManagementFactory.getMemoryMXBean();
         System.out.println(memorymbean.getHeapMemoryUsage());
         System.out.println(memorymbean.getNonHeapMemoryUsage());
         int lenzip;
         while ((lenzip = zis.read(buffer))!=-1) {
           isbuf.append(new String(buffer, 0,lenzip));
         }
         zis.closeEntry();
         zis.close();



и всё это дело должно происходить в памяти:\

по кускам... нет даже не знаю как это реализовать в данном случае...((

Это сообщение отредактировал(а) tmp13 - 20.2.2007, 13:35
PM MAIL   Вверх
tux
Дата 20.2.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(tmp13 @  20.2.2007,  13:33 Найти цитируемый пост)
и всё это дело должно происходить в памяти:\

А почему его во временный файл не сохранить раззиповывать после того, как он целиком загружен? Вообще способов тьма и делать это в памяти - пожалуй самый худший.
PM MAIL Skype GTalk Jabber YIM   Вверх
tmp13
Дата 20.2.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.11.2006

Репутация: нет
Всего: нет



потому что всё это дело вполне может быть будет крутиться на разных OracleAS конечно думаю можно для каждой системы свой путь... а какие ещё способы есть?)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1121 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.