Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Tomcat: a probable memory leak

Есть вопросы по котяре. При остановкке/перезагрузке выдает:
Nov 15, 2015 4:19:20 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap] (value [org.apache.log4j.helpers.ThreadLocalMap@b35e23]) and a value of type [java.util.Hashtable] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Nov 15, 2015 4:19:20 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap] (value [org.apache.log4j.helpers.ThreadLocalMap@b35e23]) and a value of type [java.util.Hashtable] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Nov 15, 2015 4:19:20 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap] (value [org.apache.log4j.helpers.ThreadLocalMap@b35e23]) and a value of type [java.util.Hashtable] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Nov 15, 2015 4:19:20 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap] (value [org.apache.log4j.helpers.ThreadLocalMap@b35e23]) and a value of type [java.util.Hashtable] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Nov 15, 2015 4:19:20 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap] (value [org.apache.log4j.helpers.ThreadLocalMap@b35e23]) and a value of type [java.util.Hashtable] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Nov 15, 2015 4:19:20 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap] (value [org.apache.log4j.helpers.ThreadLocalMap@b35e23]) and a value of type [java.util.Hashtable] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

Разве перезагрузка\остановка не означает, что все будет остановлено? Тогда почему томкет ругается и неможет сам тихо позакрывать все ненужное?
Как программно позакрывать эти треды?
Ответ:
rema174
SEVERE: The web application [] created a ThreadLocal with key of type [org.apache.log4j.helpers.ThreadLocalMap]
(value [org.apache.log4j.helpers.ThreadLocalMap@b35e23]) and a value of type [java.util.Hashtable] (value [{}])
but failed to remove it when the web application was stopped.
Threads are going to be renewed over time to try and avoid a probable memory leak.

Разве перезагрузка\остановка не означает, что все будет остановлено?
Нет, это означает, что закрыто-остановлено будет то, что находится под управлением контейнера.
Потоки, которые создаёт log4j контейнером не управляются, т.к. библиотека не запросила ресурсы у контейнера, а самостоятельно создала их.
Тогда почему томкет ругается и неможет сам тихо позакрывать все ненужное?
Контейнер даёт приложению некоторое время на "убрать за собой" и ругается, если по истечении этого времени "что-то осталось".
Как программно позакрывать эти треды?
Никак.
log4j - библиотека, которую лучше использовать глобально и поместить в системный загрузчик классов, заодно настроив контейнер на использование log4j вместо j.u.l.

P.S. Исправил src на fixed и "сложил" длинную строку.
Вопрос: Core vs Forms ?

Привет.

Какова теперь судьба ASpNet MVC и Forms, после выхода Asp Net Core ?

Как я понимаю, Core, фактически, является преемником от Asp Net Mvc 5. А вот что с Forms'ами станет ? Разработчикам придется перечиватся на MVC ?
Ответ:
skyANA
Алексей К
пропущено...
Ну а смысл тогда тянуть в проект Core, если можно делать всё на одной платформе: полноценный .Net + MVC5 + WebAPI2 + и т. п.

Дак прямым текстом же пишут, что хочешь (есть необходимость) использовать полноценный .NET Framework, используй наздоровье.
Конечно используем пока полноценный .NET Framework, для этого их благословление не требуется. Хочется понять, зачем придуман Core и чем он мне может быть полезен.
Вопрос: Обработка изображений в ASP.NET Core возможна ?

Добрый день! Хочется сделать на новом ASP.NET Core проекте то, что работает в старом MVC targetFramework="4.5" , а именно обработку изображений: т.е. перерезать размеры , наложить свои надписи на картинки(Watermark) и др. Ранее я все это делал с помощью установки через NuGet пакета ImageProcessor, но теперь в новый проект он не ставиться! Блуждание по интернету в поисках решения опять же ведут меня к ImageProcessor(но тогда не пойму я как его использовать в новом типе проекта) или люди пишут что пока решения нету! Прошу подскажите есть возможность в новом получить функционал для решения старых задач ?
Ответ: AspUser,

.. есть еще вот эта библиотека


..я ее сам не пробовал, но использовал для работы с PDF портированную библиотеку iTextSharp.LGPLv2.Core, где эта библиотека CoreCompat.System.Drawing стоит в депенденсях, и все работает в проекте .net core 1.0 на Линуксе .... так что, попробовать можно ...
Вопрос: dxImageSlider выдает out of memory

Есть связка TdxImageSlider + TcxImageCollection

загрузка фотографий
....
    cxImageCollection.Items.Clear;
    GetImageCollection(sPhoto + ID, cxImageCollection);
....


////////////////////////////////
GetImageCollection живёт в отдельноммодуле
Procedure GetImageCollection(Dir: String; cxImageCollection: TcxImageCollection);
Var
 SearchRec: TSearchRec;
begin
 try
   if Dir <> '' then Dir := IncludeTrailingPathDelimiter(Dir);
   if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
     repeat
       if (SearchRec.name='.') or
          (SearchRec.name='..') or
          (AnsiUpperCase(SearchRec.name) = AnsiUpperCase(sThumbnailFileName)) or
          (SearchRec.Name = '') then continue;
       if ((SearchRec.Attr and faDirectory) <> 0) then
         GetImageCollection(Dir + SearchRec.name, cxImageCollection) //we found Directory: "Dir+SearchRec.name"
       else
          begin
            if AnsiUpperCase(SearchRec.name) = const_thumbs_db then continue;

            if ExtInImageExtentions(ExtractFileExt(SearchRec.name)) then//если тип файла в списке разрешенных
            begin
              cxImageCollection.Items.Add;
              cxImageCollection.Items[(cxImageCollection.Items.Count - 1)].Picture.LoadFromFile(dir + SearchRec.name);

            end;//if ExtInImageExtentions(
          end;// else
     until FindNext(SearchRec) <> 0;
 finally
   FindClose(SearchRec);
 end;
end; 


В папке около 10 файлов общим весом 39 Мб.
Грузится сравнительно долго, секунд 5. Хотя SSD + Core i7 + RAM 16Gb
Ответ: 54 метра, это шутка такая ?
Вопрос: WCF service ошибка Memory gates checking failed because the free memory

Здравствуйте! Делаю большое web приложение(сайт) на Silverlight. В качестве сервиса для доспупа данных использую обычный WCF service(.svc). C БД работаю при помощи обычного DateReader.

Проблема в том, что после загрузке портала на хостинг через минут 40-60 данные на сайт перестают поступать и сервис выдаёт такую ошибку:
 Memory gates checking failed because the free memory (485363712 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InsufficientMemoryException: Memory gates checking failed because the free memory (485363712 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[InsufficientMemoryException: Memory gates checking failed because the free memory (485363712 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.]
   System.ServiceModel.Activation.ServiceMemoryGates.Check(Int32 minFreeMemoryPercentage, Boolean throwOnLowMemory, UInt64& availableMemoryBytes) +58980
   System.ServiceModel.HostingManager.CheckMemoryCloseIdleServices(EventTraceActivity eventTraceActivity) +95
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +584

[ServiceActivationException: The service '/MainService.svc' cannot be activated due to an exception during compilation.  The exception message is: Memory gates checking failed because the free memory (485363712 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element..]
   System.Runtime.AsyncResult.End(IAsyncResult result) +495736
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +178
   System.ServiceModel.Activation.ServiceHttpModule.EndProcessRequest(IAsyncResult ar) +348782
   System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +9663393


Я понимаю что где-то идёт утечка памяти, подскажите как избавиться от этой проблеммы?

методы которые я использую для работы с БД в сервисе выглядят вот так:

public List<GetAllUser> GetAllUsers(int id)
        {
            using (SqlConnection sqConn = new SqlConnection(ConfigurationManager.ConnectionStrings["VSMconnection"].ConnectionString))
            {
                List<GetAllUser> Data = new List<GetAllUser>();
                sqConn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = sqConn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "[Web].[GetAllPersons]";
                cmd.Parameters.AddWithValue("@Id", id);
                SqlDataReader sdr = null;
                sdr = cmd.ExecuteReader();

                while (sdr.Read())
                {
                    var GetData = new GetAllUser
                    {
                        UserLog = sdr["Email"].ToString(),
                        UserAllName = sdr["Name"].ToString()
                    };
                    Data.Add(GetData);
                }
                sdr.Close();
                sqConn.Close();
                return Data;
            } 
Ответ: yardie,

Для WCF в веб-конфиге можно выставить
<system.serviceModel> 
    <serviceHostingEnvironment minFreeMemoryPercentageToActivateService="0" />
</system.serviceModel> 

Сервис будет падать чуть позже, но это скорее всего не решит вашей проблемы.
Вопрос: VB6: Out Of Memory при компиляции - я достиг края земли?

В проекте порядка 160 форм и 170 юзерконтролов, ну и некоторая россыпь классов, модулей и т.п.,

При компиляции стало возникать Out of memory. Иногда ошибка в конкретной форме, в логе формы "не удалось загрузить контрол", зачастую опять же сопровождаемая последующим Out of memory.

Физической памяти с запасом (гиг еще свободен), место на диске есть. На всякий случай увеличил лимит GDI-объектов на процесс - не помогло.

Удалил четыре старых неиспользуемые формы - скомпилировалось.


Кто нить работал с проектами такого размера на VB6? поделитесь опытом, сталкивались ли с подобными проблемами, как решали?
Ответ:
Андрей159
использовал много контролов на одной из форм
ну это я прошел еще под Win98, там вообще с утечками ресурсов было пожестче.
На мой взгляд, если контролов на форме слишком много, это требует рефакторинга интерфейса, ибо что-то здесь не так.
Вопрос: Помочь запустить TypeScript в Asp Net Core проекте VS2015.

Изучаю Angular2. Прикручиваю TypeScript. Не взлетает. Прошу помочь.
(сразу вопрос. Я в правильной ветке форума задаю ? Может лучше в JS ветке ?)

1. Делаю по одному из учебных материалов. В package.json добавил такие штуки (везде указал самые последние версии библиотек)

"dependencies": {
    "@angular/common": "2.4.4",
    "@angular/compiler": "2.4.4",
    "@angular/core": "2.4.4",
    "@angular/http": "2.4.4",
    "@angular/platform-browser": "2.4.4",
    "@angular/platform-browser-dynamic": "2.4.4",
    "@angular/upgrade": "2.4.4",
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.9",
    "rxjs": "5.0.3",
    "systemjs": "^0.19.42",
    "typings": "^2.1.0",
    "zone.js": "^0.7.6"
  },
  "devDependencies": {
    "gulp": "^3.9.1",
    "gulp-clean": "^0.3.2",
    "gulp-concat": "^2.6.1",
    "gulp-sourcemaps": "^2.4.0",
    "gulp-typescript": "^2.13.6",
    "gulp-uglify": "^2.0.0",
    "typescript": "^2.1.5"
  },

"scripts": {
    "postinstall": "typings install dt~core-js --global"
  }


Сама скачка d.ts проходит успешно. И затем на экран выводится следующее:

> typings install dt~core-js --global

core-js
`-- (No dependencies)


2. затем я добавляю первый компонентик

app.component.ts

3. И теперь я пробую скомпилировать код, но вылетают ошибки:

 WebApplication1/src/WebApplication1/node_modules/rxjs/Observable.d.ts(29,33): error TS1138: Parameter declaration expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Observable.d.ts(29,37): error TS1005: ',' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Observable.d.ts(29,49): error TS1005: '=' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Observable.d.ts(29,52): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Observable.d.ts(29,81): error TS1144: '{' or ';' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Observable.d.ts(29,97): error TS1005: ';' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,28): error TS1005: ')' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,36): error TS1005: '=' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,39): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,52): error TS1005: ';' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,55): error TS1131: Property or signature expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,59): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,67): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,83): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,86): error TS1005: ';' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(5,87): error TS1128: Declaration or statement expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(6,1): error TS1128: Declaration or statement expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,28): error TS1005: ')' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,36): error TS1005: '=' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,39): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,52): error TS1144: '{' or ';' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,55): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,59): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,67): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,83): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,86): error TS1005: ';' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(53,87): error TS1128: Declaration or statement expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/Scheduler.d.ts(54,1): error TS1128: Declaration or statement expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(18,50): error TS1005: ')' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(18,58): error TS1005: '=' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(18,61): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(18,74): error TS1144: '{' or ';' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(18,77): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(18,81): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(29,20): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(29,31): error TS1109: Expression expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(29,40): error TS1005: ';' expected.
 WebApplication1/src/WebApplication1/node_modules/rxjs/scheduler/Action.d.ts(30,1): error TS1128: Declaration or statement expected.


Не понятно почему ошибка возникает в компоненте rxjs, если я скачивал d.ts для core-js.
Я думаю, что проблема может быть с разными версиями. Например то, что я устанавливаю "typescript": "^2.1.5" а d.ts для rxjs были созданы для другой версии TS. Помогите понять ошибку и как исправить.
Ответ: Можете дать порекомендовать как починить ?
Вопрос: Out of memory при попытке переслать изображение с клиента на сервер DataSnap

Пересылаю картинку на сервер, и там сохраняю в файл

клиент

Код Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    procedure TForm1.BApplyClick(Sender: TObject);
    var        MemStream: TMemoryStream;
                            SM: TServerMethods1Client;
                              id: integer;
                               s: string;
 
 
    SM := TServerMethods1Client.Create(DataModule2.SQLConnection1.DBXConnection);
    MemStream := TMemoryStream.Create;
    MemStream.LoadFromFile(FileFoto);
    SM.GetFile(id,MemStream);
    SM.Free;
 
   
сервер

Код Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   procedure TServerMethods1.GetFile(key: integer; filename: TStream);
   Var    my_stream: TMemoryStream;
               s: string;
      
    begin
 
    my_stream := TMemoryStream.Create;
    my_stream.LoadFromStream(filename);
 
    s:='Фото сотрудника №  ' + IntToStr(key);
    my_stream.SaveToFile('C:\BIT\BASE\FOTO EMPLOYES\'+s+'.jpg');
 
     my_stream.Free;
 
     end;
 
   
Вопрос: Когда картинки "маленькие" < 50-60 килобайт - все нормально

вернее сначала выкидывало ошибку Out of memory


заглянул в свойство SQLConnection1.Driver.BufferKBSize там по дефолту 32 к изменил на 64 к

ошибка пропала - картинки пересылаются, но дальше когда мне нужно переслать изображение например
500 к начались проблемы как я не выкручивал BufferKBSize у SQLConnection1 и
BufferKBSize у DSTCPServerTransport1 на сервере (там ограничение в 1000 к но мне бы
хватило) - ничего не выходит все что больше 60 к не пересылается как будто
где то еще узкое место есть но вот где ?
Ответ: нафига ж ты картинку в мемористрим грузишь ?
грузи в файлстрим, тогда она сразу в дисковый файл будет записана и вероятность Out of memory именно по этой причине будет сведена к минимуму
Вопрос: Fastreport out of memory

Добрый день!

Может кто подсказать:
Delphi XE3
Fastreport 4.14
По кнопке открываю отчет таким вот образом:

frxReport1.LoadFromFile('C:\fr3\1.fr3',true);
frxReport1.PrepareReport(true);
frxReport1.ShowPreparedReport;


В самом отчете простейший select из БД (Firebird 2.5), без параметров.
Если отчет много раз открыть-закрыть, то в один прекрасный момент программа вылетает в out of memory (конечно есть отчеты разные, большие и маленькие, кто-то вылетает раньше, кто-то позже).
Каким образом заставить отдавать память при закрытии отчета? Или не потреблять ее при повторном его открытии?
М.б. какое-то свойство? Испробованы все обычные close, clear, stopreport и т.п.
Попытки создавать динамически frxReport, оборачивать в try/finally и в finally делать ему Free не дают результата.
Наверное дело в запросе к БД, т.к. если открывать таким же образом отчет со статическим текстом, то память при закрытии отчет отдает обратно.

Такое ощущение, что упускаю что-то простейшее, иначе проблема была бы массовой, а я не нахожу ничего в инете по теме.
Простите за тупость, натолкните на мысль, пожалуйста!!

сам отчет
MDIChild=false
Modal=true  
Ответ:
khrysh
Действительно, дело в XE3 и утечке памяти в IBX, проверила в другой версии Delphi - все ок.

Что там такое сделали, что появились утечки?
Ibx простая, как топор, библиотека.
Вопрос: Как бороться с ошибкой Out of Memory

Господа. Как бороться с ошибкой Out of Memory? Программа выполняет процесс поиска слов в документах Word. Открывает ищет и закрывает порядком 70 000 документов.
Ответ:
77987
Maxim Rusov

Только вот эта функция никакого мусора не вычищает...

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

Она не освобождает, сколько было выделено памяти, столько и осталось.
А тебе совет, не запускай диспетчер задач, все равно ты не понимаешь.