czemu system sie zawiesza? czemu aplikacja, ktora normalnie dziala, po kilqnastu dniach na serverze nagle przestaje funkcjonowac jak nalezy? czemu dany kompnent przestal odpowiadac? przewaznie wystarcza restart kompa – z jakis wzgledow, ktorys z komponentow zaleznych zostal przekonfigurowany/zastrzymany i w gaszczu powiazan pomiedzy bibliotekami nie jest sie w stanie dojsc czemu i jak. tak powstaje niedeterminizm. i dla tego najprostrza recepta jest restart – a na serwerze czesto nie mozna go wykonac az do weekendu.
a gdyby tak wszystkie biblioteki implementowaly cos aka DLL-ICMP ? tak, zeby mozna bylo wylasc polecenie commandlineowe do pliq uruchomieniowego a ten zaczyna wysylac pingi do bibliotek zaleznych tworzac mape powiazan. dzieki temu moznaby zlokalizowac komponent, ktory nieodpowiada i go zresetowac.
warunek – musialyby to implementowac *wszystkie* biblioteki.

byc moze ktos napisze, ze z podobnych narzedzi sie korzysta… te co widzialem byly 4developers only, a output jaki z siebie wypluwaly byl ciezki do zrozumienia nawet dla tworcy aplikacji. ale i tak swoja droga jestem ciekaw sie buduje mapy powiazan miedzy libami i chetnie sprawdzilbym jak to wyglada w ponoc uporzadkowanej vista…

-o((:: sprEad the l0ve ::))o-

Comments (2)

  1. mwd

    Odpowiedz

    Może i fajne by to było, tylko kompletnie nie da się tego zrobić. DLLki w windozie są tak porąbane, że nie da się określić mapy wywołań kolejnych bibliotek. Czemu? – Bo wywołania mogą się zapętlać; bo może istnieć kilka wersji jednej biblioteki; bo jedne są „managed” a inne nie; bo niektóre robią takie cyrki, że nawet napalony byś na to nie wpadł.

    Utopia po prostu. W naszym świecie nie do osiągnięcia.

    A jak mi tu ktoś wyjedzie z tekstem o DLLkach .Net które mogą być remedium na to, to niech się dwa razy zastanowi, bo jest taka masa „legacy code” w środowisku, i taka masa wrapperów na wrappery, że coś takiego jak „managed code” będzie miało rację bytu chyba tylko w innej rzeczywistości.

  2. peki

    Odpowiedz

    Prostą mapę zależności dla jednej aplikacji da się zrobić – służy do tego Dependency walker znajdujący się w Visual C++.
    Co do .Net-a to każda aplikacja jest instalowana ze swoimi własnymi dll-kami, i w odróżnieniu od Win32 te dll-ki są trzymane w folderze aplikacji.

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload CAPTCHA.