Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Использование методов для SOAP "съедают" память  [new]
Barboss
Member

Откуда:
Сообщений: 126
Добрый день!

После внедрения методов с использованием SOAP на MS SQL 2005 возникла проблема:
по истечении определенного времени заканчивается память. И вызов других внешних процедур, например CLR, вызывает ошибку - out of memory. И не только процедур. Также "отваливаются" linked-сервера типа оракла и прочее.

Данная проблема возникла именно после внедрения SOAP. На текущий момент для спокойного сна перезапускаю SQL-сервисы, в результате чего на день не возникает подобных проблем.

Может кто встречался с подобными проблемами с SOAP? Как избавить от утечки памяти?
19 мар 10, 20:09    [8507330]     Ответить | Цитировать Сообщить модератору
 Re: Использование методов для SOAP "съедают" память  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Вы про ENDPOINT говорите? Может поэтому этот функционал вырезается в следующих версиях?!
Версию сервера скажите. (все ли паки накатаны, например)
Какова нагрузка? Сколько пользователей, подключений?
Как вызываете? (дополнительные параметры запросов, заголовки)
19 мар 10, 20:38    [8507384]     Ответить | Цитировать Сообщить модератору
 Re: Использование методов для SOAP "съедают" память  [new]
Павел-П
Guest
Barboss,

Как я понимаю, у Вас использование SOAP реализовано через CLR. Возможно у вас в CLR-коде где-нибудь утечка памяти происходит. Проверьте, все ли объекты уничтожаются. Можно методы сборки нагрузить на локальной машине и посмотреть, что будет с памятью. Если memory leak - должно воспроизвестись.
20 мар 10, 00:10    [8507852]     Ответить | Цитировать Сообщить модератору
 Re: Использование методов для SOAP "съедают" память  [new]
Павел-П
Guest
http://stackoverflow.com/questions/191892/how-do-i-profile-a-sql-clr-application

Memory leaks are atypical for CLR applications, so that should be of little concern. But if I were to profile a SQL CLR function, I think I would create a stand-alone test application that calls the same DLL/methods outside of SQL Server and profile that. It seems to me that SQL's own resource use would swamp most performance affects of your own methods when run in that environment. But I have never tried such a thing myself.
20 мар 10, 00:30    [8507890]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Использование методов для SOAP "съедают" память  [new]
essbase.ru
Member

Откуда: http://essbase.ru/about
Сообщений: 1407
если использовать в CLR явное удаление оъектов , это решит проблему ?

--------
var myDisposable = new MyDisposable();
try 
{
    // something
}
finally 
{
    if(myDisposable != null)
        myDisposable.Dispose();
}
15 май 15, 17:02    [17646598]     Ответить | Цитировать Сообщить модератору
 Re: Использование методов для SOAP "съедают" память  [new]
essbase.ru
Member

Откуда: http://essbase.ru/about
Сообщений: 1407
для принудительной очистки кеша сделал выкрутас с двумя массивами. пока лучшего решения не нашел.

using System ;
-----

public partial class UserDefinedFunctions
{
    public static ArrayList XmlaResultCollectionGlobal = new ArrayList();
 ------
 
    }
 
    public static IEnumerable BuildXmlaRowValuesArray(string vTypeq, string vQueryBody)
    {
        
 
            ArrayList XmlaResultCollection = new ArrayList();
 
      --------      
            XmlaResultCollectionGlobal.Clear();
            XmlaResultCollectionGlobal.AddRange(XmlaResultCollection);
            XmlaResultCollection.Clear();

            return XmlaResultCollectionGlobal;

        }
 


    }


 
}
21 май 15, 18:44    [17673205]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить