Jak spolehlivě zavěsit HTTP task na Dominu via xPages

Dnes se mi povedlo zavěsit HTTP task takovým způsobem, že si to vyžádalo restart domina. Dvakrát. Dvakrát proto, že poprvé jsem myslel, že jde o náhodu. Domino běželo, pošta chodila, všechno bylo v pořádku, jen u té jedné aplikace, ve které jsem dělal změny, neběžel přístup přes web. Normálně jsem do ní v Lotus Notes mohl, ale jakmile jsem zavolal jakoukoliv xPage, točily se hodiny a nic se nedělo.

V první chvíli jsem myslel, že je ten kontejner nakopnutý. Udělal jsem tedy repliku a zkusil původní kus smazat. Nešlo to, visela tam jak Jánošík na háku. Ani drop nepomohl. Restartoval jsem tedy přes konzoli server. Jenže ani to se nedokončilo. V logu psal stále dokola pěknou hlášku:

27.05.2012 19:45:23   HTTP Server: Waiting for session to finish: Session State [Processing Request] Session ID [44914] Thread ID [2565745520 (0x98ee2b70)] GET /dev/mojeApp.nsf/home.xs
p HTTP/1.1

Hodil jsem to do googlu a našel pár zdrojů. Tady nebo tady. Vypadá to na systémový problém domina verze 8 a vyšší. Pokud ustřelíte proces http na serveru, spadne to celé na NSD. Jediná možnost je vyvolat restart domina zvenku. Anebo rovnou restartovat celý stroj.

A v čem že byl ten problém? Normální neukončený cyklus. Při průchodu kolekcí dokumentů jsem zapomněl přidat řádek pro načtení dalšího dokumentu.

JavaScript
1
2
3
4
5
6
7
8
var ticketView:NotesView = database.getView('xTicketsUnprocessedByDate');
var idList = "";
var doc:NotesDocument = ticketView.getFirstDocument()
while(doc != null) {
if (doc.getItemValue('DocType')[0].contains('Memo'))
    idList = idList + doc.getNoteID() + ";";
}
return @Explode(idList, ";");

Taková blbost a sejme to server…

Komentování je uzavřeno.