Показать сообщение отдельно
Старый 21.09.2007, 01:17   #38  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А обязательно вашу задачу решать через форму?

Например, такой джобик закеширует объекты АОТа из узла классов.

#AOT
static void glibs()
{
TreeNode treeNode;
TreeNodeIterator treeNodeIterator;
;

treeNode = TreeNode::findNode(#ClassesPath);
treeNodeIterator = treeNode.AOTiterator();
treeNode = treeNodeIterator.next();
while (treeNode)
{
treeNode.AOTload();
treeNode = treeNodeIterator.next();
}

}

Для других узлов его переделать несложно.

Только он память жрет прилично. Возможно, вам будет достаточно прогнать его без вызова treeNode.AOTload().

Я вот что заметил. После запуска джоба, остановки клиента и АОСа и последующего их запуска узел АОТа открывается быстро.

Посему я не уверен, но, возможно, при открытии узла АОТа анализируется не кэш АОСа, а читается какой-нибудь axapd.aoi (или что-то в этом роде) с диска. А после перезапуска АОСа файлы приложения живут в файловом кэше, и поэтому узел уже быстро открывается. Иначе пока я не знаю, как объяснить этот эффект.

Но джоб и в этом случае должен обеспечить кэширование файлов приложения.

Попробую проверить завтра. А то м.б. джоб нужно запускать время от времени в процессе работы, т.к. файловый кэш имеет свойство освобождаться.

А вообще, по-моему, надуманная проблема насчет того, что узел открывается неприемлемо долго. Это один раз происходит. После перезапуска сервера. И не так уж долго и терпеть приходится.
__________________
С уважением,
glibs®