Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Всё о задаче AdminP. Часть вторая   Во второй части мы завершаем рассмотрение AdminP. В ней рассмотрены запросы междоменного администрирования и способы управления функциями AdminP с помощью настроек документа сервера, команд консоли сервера, файла Notes.ini и интервалов очистки базы данных. В этой статье предполагается, что вы опытный администратор Domino и прочитали первую часть
О Notes Читать статью
 
Всё о задаче AdminP. Proxy-действия в R5 и Domino 6   Приложение к статье об административном процессе
О Notes Читать статью
 
Всё о задаче AdminP. Часть первая   Перевод классической статьи 2003-его года о задаче административного процесса (AdminP). Очень полезна для понимания работы механизма этой задачи. В первой части статьи описаны компоненты задачи AdminP, как они работают, и как их использование помогает сделать работу администратора Domino проще. Задача AdminP (сакращённо от Administration Process, Административный процесс) работает с базой административных запросов (Administration Requests, admin4.nsf)
О Notes Читать статью
 


О Notes

Главная   Библиотека   О Notes

Как определить причину падения сервера Lotus Domino. Часть третья

Николай Норкин,
Вятские Информационные Технологии
Часть первая >>>
Часть вторая >>>
Часть четвёртая. >>>
Ещё один совет. Попробуйте выполнить поиск по наименованию функций, упоминаемых в стеке сбойного потока, на сайте developerWorks (http://www-128.ibm.com/developerworks/). Порой подобный поиск может принести информацию, способную пролить свет на решение проблемы

Пример 5. Падение клиента Lotus Notes версии 6.x при открытии новой базы данных (добавлении иконки в рабочую область)
Периодически автору доводится сталкиваться с ситуацией падения клиента при открытии новой базы данных. Как временное решение проблемы помогает вариант выполнения сжатия рабочей области перед открытием нужной базы. К сожалению, это именно временная мера - в следующий раз открытие очередной базы данных вновь заканчивается падением клиента
Журнал обработки ошибки содержит следующее описание сбойного потока:
############################################################
### FATAL THREAD 1/9 [ NLNOTES:05e4:  328]
### FP=0x0012cec0, PC=0x6018eb23, SP=0x0012c548, stksize=2424
### EAX=0x0148088c, EBX=0x00000000, ECX=0x00fd0000, EDX=0x00fd0000
### ESI=0x0012ced8, EDI=0x00005814, CS=0x0000001b, SS=0x00000023
### DS=0x00000023, ES=0x00000023, FS=0x0000003b, GS=0x00000000 Flags=0x00010202
Exception code: c0000005 (ACCESS_VIOLATION)
############################################################
@[ 1] 0x6018eb23 nnotes._Panic@4+483 (120013,1,3fa07ea,1)
@[ 2] 0x60004072 nnotes._OSVBlockAddr@8+114 (61bf6cf0,58140000,0,1)
@[ 3] 0x6155f772 nnotesws._IsFilenameOnDesktopNoSync@8+162 (1,12d550,12e61e,12e114)
@[ 4] 0x6155ed01 nnotesws._AddNotefileToDesktop@24+97 (49,12d980,0,0)
@[ 5] 0x615f6a83 nnotesws.CBrowseFileDialog::OnOK+611 (12e114,111,2a024a,80000018)
@[ 6] 0x6120bdff nnotesws.CDialog::COurMsg+319 (12e114,2a024a,111,80000018)
@[ 7] 0x6120bcb4 nnotesws.CDialog::COurProc+36 (2a024a,111,80000018,19023a)
 [ 8] 0x77e12ca8 USER32.GetSysColor+1092 (6120bc90,2a024a,111,80000018)
 [ 9] 0x77e152e6 USER32.ShowScrollBar+89 (6120bc90,2a024a,111,80000018)
 [10] 0x77e16487 USER32.CallWindowProcW+25 (6120bc90,2a024a,111,80000018)
@[11] 0x611b681c nnotesws.DlgCallDefWndProc+364 (2a024a,1,0,111)
@[12] 0x611b6527 nnotesws.CommonDlgProc+2375 (1,111,80000018,19023a)
@[13] 0x611b68ac nnotesws._MainDlgProc@16+28 (2a024a,111,80000018,19023a)
 [14] 0x77e12ca8 USER32.GetSysColor+1092 (611b6890,2a024a,111,80000018)
 [15] 0x77e189b9 USER32.DrawFrameControl+944 (2a024a,111,80000018,19023a)
 [16] 0x77e1451e USER32.ReleaseDC+711 (744220,111,80000018,19023a)
 [17] 0x77e153a1 USER32.SendMessageA+59 (2a024a,111,80000018,19023a)
@[18] 0x611e32f0 nnotesws._SkinButtonWndProc@16+1712 (17a0b14,202,0,80028)
 [19] 0x77e12ca8 USER32.GetSysColor+1092 (611e2c40,19023a,202,0)
 [20] 0x77e12dc5 USER32.GetSysColor+1377 (12de28,0,77e17baf,12de28)
 [21] 0x77e12f0f USER32.DispatchMessageW+11 (2a024a,72dc38,100c0,1)
 [22] 0x77e1cbd9 USER32.CreateDialogParamA+654 (2a024a,100c0,10,1)
 [23] 0x77e1ca62 USER32.CreateDialogParamA+279 (61180000,59e0494,0,611b6890)
 [24] 0x77e1cd18 USER32.DialogBoxIndirectParamAorW+51 (61180000,59e0494,100c0,611b6890)
 [25] 0x77e386a5 USER32.DialogBoxIndirectParamW+25 (61180000,59e0494,100c0,611b6890)
@[26] 0x611ae4f2 nnotesws._FontAdjustDialogBox@20+914 (61180000,80aea,100c0,0)
@[27] 0x6118462e nnotesws.NEMDialogBoxCore+94 (61180000,aea,6120bc90,0)
@[28] 0x6118458a nnotesws._NEMDialogBoxParam@16+26 (61180000,aea,6120bc90,12e114)
@[29] 0x6120b896 nnotesws.CDialog::ShowAndExecuteDialog+38 (12e114,aea,0,0)
@[30] 0x615f543e nnotesws._DeskFileBrowse@12+350 (0,0,0,0)
@[31] 0x615b651f nnotesws.CSession::AddDB+31 (1796514,12f320,1796514,0)
@[32] 0x615b38da nnotesws.CSession::Command+122 (1796514,12f320,40020002,0)
@[33] 0x6119110b nnotesws.CSelectionManager::ProcessCommand+1179 (1,40020002,0,0)
@[34] 0x6119099e nnotesws._ProcessWMCommand@8+174 (40020002,0,12f7c0,12f7c8)
@[35] 0x611b122c nnotesws._MainWndProc@16+4300 (100c0,111,40020002,0)
 [36] 0x77e12ca8 USER32.GetSysColor+1092 (611b0160,100c0,111,40020002)
 [37] 0x77e12dc5 USER32.GetSysColor+1377 (12f7c0,0,611960d3,12f7c0)
 [38] 0x77e12f0f USER32.DispatchMessageW+11 (401000,1307a8,133f2c,0)
@[39] 0x0040156d NLNOTES._WinMain@16+1389 (400000,0,133f2c,1)
@[40] 0x00401dfa NLNOTES._WinMainCRTStartup+308 (1307a8,6,7ffdf000,200)
 [41] 0x793a87f5 KERNEL32.DosDateTimeToFileTime+3172 (401cc6,0,c8,100)
Поисковый запрос по фразам IsFilenameOnDesktopNoSync и AddNotefileToDesktop помог найти следующий документ (reference #1113002):
Long Workspace Page Name Causes Notes 6.x to Crash when Opening a Database >>>
В результате разбора этого примера сформулирована рекомендация: не использовать в наименованиях листов рабочей области длинные (более 11 русских букв) названия
Примечание. Ещё один интересный документ, найденный позже по фразе IsFilenameOnDesktopNoSync - Reference #: 1177969 "Lotus Notes client crashes occur randomly several times a day" >>> возвращает к хорошо подзабытой со времён R4 проблеме с большим количеством шрифтов, установленных в операционной системе
Структура nsd-журнала
Итак, что же такое nsd?
NSD (Notes System Diagnostic) - задача, которая используется для сбора сведений о состоянии программного обеспечения и операционной системы для анализа и поиска проблем в функционировании продуктов IBM Lotus, таких как Lotus Notes/Domino, QuickPlace, Domino.Doc, Domino.Workflow и Sametime
NSD может использоваться на всех платформах, на которых работают продукты IBM Lotus, за исключением Macintosh
Помимо работы программы как части обработки аварийной ситуации, связанной с крушением программного обеспечения, возможен и запуск программы в ручном режиме, о чём речь пойдёт несколько ниже
Сейчас же детальнее рассмотрим структуру формируемого в результате работы журнала (nsd-лога)
Он состоит из четырёх основных разделов:

  • Process Information (Call Stacks)
  • Memcheck (Domino Memory Objects)
  • System Information
  • Environment Information
Следует оговориться, правда, что журнал, формируемый на платформе iSeries, имеет несколько другую структуру, включая следующие разделы:
  • Call stacks
  • Environment Info
  • Job Log of current jobs
  • Status of current jobs
  • Thread/Mutex info
  • Notes.ini
  • Last 100 lines of Console log
И всё-таки в контексте нашего рассмотрения постараемся придерживаться описания более распространённых платформ
В первом разделе (Process Information) размещается список всех работающих в системе в момент создания журнала процессах, включая список всех задач сервера/клиента Lotus Notes/Domino. Далее, и на этой части следует наиболее всего останавливаться при анализе журнала, размещается список всех вызванных процедур (Call Stacks) всех потоков задач Lotus Notes/Domino. Именно эта информация считается наиболее ценной для нахождения причин аварии программного обеспечения. Именно этой информацией автор оперировал выше при разборе примеров анализа журнала
Во втором блоке (Memcheck) размещается информация о состоянии областей памяти, отведённых операционной системой под процессы Domino (как приватных областей, так и общих). Этот блок включает несколько более мелких разделов, содержащих данные об использовании памяти, и список всех открытых ресурсов, как то открытые базы данных, представления, документы, работающие с сервером пользователи. Понятно, что эта часть информации меньше поддаётся анализу, хотя содержит достаточно подробную информацию о том, что происходило в системе на момент падения сервера
Системная информация, собираемая в третьем блоке журнала, включает информацию о версии операционной системы, её конфигурации, информации о дисковом пространстве, сетевых интерфейсах и активных сетевых подключениях
В последнем блоке собрана информация о настройках Lotus Notes/Domino (файл notes.ini), список имеющихся в программном каталоге Domino и каталоге данных файлов. Эта информация может скорее помочь привлекаемому эксперту ознакомиться с системой, чем установить причину возникновения аварийной ситуации. Хотя - чем чёрт не шутит, откровенные оплошности могут быть найдены и при беглом изучении содержимого этого раздела

Содержимое стека вызова процедур (Call stack)
Данный блок nsd-журнала содержит информацию из программных стеков процессов Notes/Domino по состоянию на момент падения. Эти регистры используются системой для хранения значений, аргументов вызванных функций и адресов возврата вызовов
Представление содержимого стека в блоке nsd-журнала разнится в зависимости от платформы, на которой работает сервер Domino
Для платформы Windows описание стека процесса выглядит следующим образом:
############################################################
### thread 1/69: [ nSERVER:0740:067c]
### FP=0006f760, PC=77f8915e, SP=0006f744, stkbase=00030000, stksize=28672
############################################################
 [ 1] 0x77f8915e ntdll.RtlFreeSid+8 (1388,0,600a1afd,1388)
 [ 2] 0x7c4fac79 KERNEL32.GetCommandLineW+1743 (1388,60000,1000126b,60000)
@[ 3] 0x100018c0 nserverl._ServerPoller@0+32 (1,b83b4c,6fed4,2)
@[ 4] 0x10001223 nserverl._ServerMain@8+483 (1,b83b4c,0,0)
@[ 5] 0x00401261 nSERVER._WinMain@16+609 (400000,0,2,a)
@[ 6] 0x00402048 nSERVER._WinMainCRTStartup+224 (0,0,7ffdf000,0)
 [ 7] 0x7c4e87f5 KERNEL32.GetModuleFileNameA+489 (401f68,0,c8,100)
Как читать эту информацию?
На фрагменте представлен стек - первого из 69-ти потоков задач сервера Domino, работавших на момент формирования журнала
Поток был открыт задачей nServer, далее идут идентификатор процесса (Process ID, PID) - 0740, и идентификатор потока (ThreadID, TID) - 067c
Снизу вверх идёт вызов процедур (вверху - хронологически и логически последняя вызванная). Префикс @ указывает, что данная процедура - из ядра Domino
В строке процедуры - имя модуля (dll, выделено зелёным), из которого вызвана процедура, имя класса (тёмно-красным) и имя процедуры (синим):
@[ 5] 0x00401261 nSERVER._WinMain@16+609 (400000,0,2,a)
@[ 6] 0x6120bdff nnotesws.CDialog::COurMsg+319 (12e114,2a024a,111,80000018)

Стек, в котором произошёл аварийный сбой, представляется более подробной информацией. В первой части никаких радикальных отличий нет, кроме замечательного термина FATAL, который значительно облегчает чтение журнала:
############################################################
### FATAL THREAD 2/69 [ nSERVER:0740:0690]
### FP=0x02f5ff70, PC=0x606e8d61, SP=0x02f5ef28, stksize=4168
### EAX=0x00000000, EBX=0xe805f205, ECX=0x00000910, EDX=0x00000000
### ESI=0x00000000, EDI=0x00000000, CS=0x0000001b, SS=0x00000023
### DS=0x00000023, ES=0x00000023, FS=0x00000038, GS=0x00000000 Flags=0x00010246
Exception code: c0000005 (ACCESS_VIOLATION)
############################################################
@[ 1] 0x606e8d61 nnotes._UAFGetAccessGroupsExtend@8+1585 (0,17,3,c325712d)
@[ 2] 0x608c3558 nnotes._NAMELookupThread@4+744 (0,c325712d,0,3dc147)
@[ 3] 0x60115334 nnotes._ThreadWrapper@4+212 (0,3dc147,c325712d,0)
 [ 4] 0x7c4e987c KERNEL32.FileTimeToDosDateTime+248 (60115260,0,0,c8)
Впрочем, как видите, указан и код ошибки (исключительной ситуации). Жаль, что в большинстве случаев он не несёт никакой информации, ибо один и тот же
Вторая часть описания "фатального" потока - содержимое стека процедур, представляющего собой область памяти для хранения локальных переменных, аргументов и т.п.
Каждая процедура (из описанных в первой части) представляется содержимым своей области памяти. На фрагменте журнала ниже представлены содержимое головного стека и стека одной из процедур - GDI32.CreateICA. Справа - колонка, представляющая информацию в коде ASCII:
############################################################
### PASS 2 : FATAL THREAD with STACK FRAMES 1/8 [ NLNOTES:04c0:05f0]
### FP=0013adec, PC=05481fd0, SP=0013acd0, stksize=284
Exception code: c0000005 (ACCESS_VIOLATION)
############################################################
# ---------- Top of the Stack ----------
# 0013acd0  001ead90 001ead88 0013b6a4 575c3a43  |............C:\W|
# 0013ace0  4f444e49 535c5357 65747379 5c32336d  |INDOWS\System32\|
# 0013acf0  6f6f7073 52445c6c 52455649 33575c53  |spool\DRIVERS\W3|
# 0013ad00  36385832 505c335c 30313231 6664642e  |2X86\3\P1210.ddf|
# 0013ad10  0013ad00 7c919a9c 05480000 0013ad82  |.......|..H.....|
# 0013ad20  0013ad7c 0013ad7c 0013ad82 7c919b3f  ||...|.......?..||
# 0013ad30  7c97c0d8 7c919aeb 77f112a4 001a7488  |...|...|...w.t..|
# 0013ad40  0000ffff 7ffdf000 002546d8 77e7c5bc  |.........F%....w|
# 0013ad50  054933a0 0013adec 002546e8 0013ae2c  |.3I......F%.,...|
# 0013ad60  05480000 0013ad70 0013ad80 0013ad80  |..H.p...........|
# 0013ad70  00000000 0000009c 00254608 05481ebc  |.........F%...H.|
# 0013ad80  72440000 616e4576 44656c62 65766972  |..DrvEnableDrive|
# 0013ad90  77e70072 0013af54 72fc3ea8 0013b19c  |r..wT....>.r....|
# 0013ada0  0013b180 77ef36cf 00000002 00000000  |.....6.w........|
# 0013adb0  77ef36a8 72fc4b68 00161d34 00000000  |.6.whK.r4.......|
# 0013adc0  00005194 0013ad38 00201338 0013c0bc  |.Q..8...8. .....|
# 0013add0  7c90ee18 7c919af0 00000000 001ead88  |...|...|........|
# 0013ade0  000001b0 00201710 00201338 0013ae44  |...... .8. .D...|

.....
[ 6] 0x77f1cf30 GDI32.CreateICA+24 (13bbe0,13b7dc,13bae0,0)

# 0013b7c0  0013bce0 6134b85d 0013bbe0 0013b7dc  |....].4a........|
# 0013b7d0  0013bae0 00000000 00000001 30315c5c  |............\\10|
# 0013b7e0  2e36332e 322e3031 7265785c 615f786f  |.36.10.2\xerox_a|
# 0013b7f0  696c616e 7c90007a 7c9105d4 000000cb  |naliz..|...|....|
# 0013b800  0013b810 7c809392 000000cb c0000023  |.......|....#...|
# 0013b810  0013b848 7c81493c c0000100 61b08910  |H...<I.|.......a|
# 0013b820  0013bbdc 000000ff 00120011 0013b968  |............h...|
# 0013b830  00000000 00000000 0013bbdc 000000ff  |................|
# 0013b840  01fe0011 00169280 0013ba68 6001554f  |........h...OU.`|
# 0013b850  c0000100 0013b868 00000100 61b08910  |....h..........a|
# 0013b860  0013bbdc 000000ff 77d60467 77d38830  |........g..w0..w|
# 0013b870  ffffffff 77d3882a 77d3c63f 00000000  |....*..w?..w....|
# 0013b880  611cfb90 000102c6 0000000f 00000000  |...a............|
# 0013b890  00000000 00000000 00000000 0000000f  |................|
# 0013b8a0  00000000 0013b8c4 77d3c665 611cfb90  |........e..w...a|
# 0013b8b0  000102c6 0000000f 00000000 00000000  |................|
# 0013b8c0  00000000 0013b8fc 611e37d1 611cfb90  |.........7.a...a|
# 0013b8d0  000102c6 0000000f 00000000 611e3660  |............`6.a|
# 0013b8e0  746f4e5b 465d7365 43746e6f 53726168  |[Notes]FontCharS|
# 0013b8f0  ff007465 00000001 611cfb90 0013b928  |et.........a(...|
# 0013b900  77d38734 000102c6 0000000f 00000000  |4..w............|
# 0013b910  00000000 611e3660 dcbaabcd 00000000  |....`6.a........|
# 0013b920  0013b964 611e3660 0013b990 77d38816  |d...`6.a.......w|
# 0013b930  7ffdf000 0013b990 77d3885a 0013b950  |........Z..wP...|
# 0013b940  77d3882a 00000000 000102c6 000102c6  |*..w............|
# 0013b950  00000014 00000001 00000000 00000000  |................|
# 0013b960  00000010 00000000 65746f4e 6f465f73  |........Notes_Fo|
# 0013b970  6843746e 65537261 00130074 60001216  |ntCharSet......`|
# 0013b980  0013b9d4 77d60467 77d38830 ffffffff  |....g..w0..w....|
# 0013b990  77d3882a 77d3b4c0 00000000 611e3660  |*..w...w....`6.a|
# 0013b9a0  000102c6 0000000f 00000000 00000000  |................|
# 0013b9b0  008a703c 77d3b4cb 051b7110 0000000a  |<p.....w.q......|
# 0013b9c0  000102c6 0013baf8 00000000 0013b9b8  |................|
# 0013b9d0  0013bcd0 0013bcec 77d60467 77d3b4d0  |........g..w...w|
# 0013b9e0  ffffffff 77d3b4cb 77d3b50c 008a7028  |.......w...w(p..|
# 0013b9f0  0000000f 00000000 77d3b51c 00000000  |...........w....|
# 0013ba00  00000000 00000000 00000000 0013ba44  |............D...|
# 0013ba10  7c90eae3 60001102 6000113f 012006c5  |...|...`?..`.. .|
# 0013ba20  012006b1 012006c5 b7a0ba38 00120013  |.. ... .8.......|
# 0013ba30  012006c5 00000001 0013ba4c 0013ba64  |.. .....L...d...|
# 0013ba40  600159d4 2d000404 61b08910 0013bbdc  |.Y.`...-...a....|
# 0013ba50  00000100 01200004 61b08910 0013bbdc  |...... ....a....|
# 0013ba60  00000100 0013bac8 600154df 60b95240  |.........T.`@R.`|
# 0013ba70  61b08910 0013bbdc 00000100 0013bea5  |...a............|
# 0013ba80  00000001 00000001 65746f4e 6f465f73  |........Notes_Fo|
# 0013ba90  6843746e 65537261 00000074 00000074  |ntCharSet...t...|
# 0013baa0  00000001 6000127b 01140c88 0114088c  |....{..`........|
# 0013bab0  0013bb10 60009332 01140c88 00000000  |....2..`........|
# 0013bac0  00000000 00000000 0013bcdc 6005956e  |............n..`|
# 0013bad0  61b08910 0013bbdc 000000ff 6000113f  |...a........?..`|
# 0013bae0  3030654e 0348003a 03487499 60001216  |Ne00:.H..tH....`|
# 0013baf0  6000127b 03487499 03487499 0013bb10  |{..`.tH..tH.....|
# 0013bb00  6000134f 034874dd 00000074 00000074  |O..`.tH.t...t...|
# 0013bb10  0013be54 60042615 03487497 00000001  |T....&.`.tH.....|
# 0013bb20  01458614 00000000 00000000 0013bb48  |..E.........H...|
# 0013bb30  62396824 0013bb64 0013bda4 00000001  |$h9bd...........|
# 0013bb40  0013bda4 0013bba0 0013bb80 6238ba62  |............b.8b|
# 0013bb50  0013bb64 0013bda4 60c1b6fb 60a01cb8  |d..........`...`|
# 0013bb60  00000000 6201001c 0013bba0 60c1b6fc  |.......b.......`|
# 0013bb70  60c1b6fe 00000000 00000000 00000000  |...`............|
# 0013bb80  0013bda8 6236b227 0013bba0 0013bdb4  |....'.6b........|
# 0013bb90  60c1b6fe 0013bda4 0143c018 0013bba0  |...`......C.....|
# 0013bba0  00000000 00000000 00000000 00000000  |................|
# 0013bbb0  00000000 0000000f 00000101 fe000000  |................|
# 0013bbc0  00000000 00000000 00000000 00000000  |................|
# 0013bbd0  00000000 00000000 00000000 00000000  |................|
# 0013bbe0  736e6977 6c6f6f70 00000000 00000000  |winspool........|
# 0013bbf0  00000000 00000000 00000000 00000000  |................|


Часть первая >>>
Часть вторая >>>
Часть четвёртая. Описание блока Call Stacks на UNIX-платформах >>>
 
  Опубликовано — 03/31/2006 |    



Добавить комментарий
Имя * :
e-mail
Комментарий * :
Код подтверждения * :

Мероприятия
Пресс-релизы
Биржа труда
Последнее на форуме
 
А так же:
Как удалить профиль?
16.04.2016 00:08:51
Скопировать в буфер поле документа
24.05.2015 08:55:52
Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
16.04.2015 16:49:58
 
© LOGOSPHERE.RU