W pracy okazało się, że w niektórych przypadkach (szczególnie tych powolnych) mamy inne zachowanie, nabyte przy ponownym uruchomieniu komputera.Czy możemy wyświetlić obiekty w pamięci JVM?
Domyślamy się, że pamięć podręczna nie została poprawnie zainicjalizowana lub może problem z współbieżnością ... W każdym razie nie można jej odtworzyć w żadnym innym środowisku niż w przypadku produkcji.
My faktycznie nie mają rejestratory aby aktywować ... to stary komponent ...
Dlatego chciałbym wiedzieć, czy istnieją narzędzia, które mogą pomóc nam zobaczyć różne objets obecne w pamięć JVM, aby sprawdzić zawartość pamięci podręcznej ...
Dziękujemy!
Edit:
nie mam dostępu do serwerów produkcyjnych bezpośrednio, nasz serwer aplikacji jest WebLogic 10, nie mam wskaźnik do obiektu, ale wiem, że typ obiektu cache .. .
Edit2:
Nasze serwery są uruchomione na JRE 1.5, możliwe jest użycie jmap? nie można go znaleźć w jdk5 :( Również zdalne debugowanie może być ładne, ale nie możemy ze względów bezpieczeństwa ...
Edit3:
Właściwie jhat + VisualVM jest ok dla mnie, znalazłem mój obiekt w dump, ale nie jestem w stanie odczytać hashmap (obiekt zawierający około 60000 elementów) prawidłowo ... Czy istnieje narzędzie do czytania concurrenthashmap w przyjazny sposób? Muszę znaleźć wartość klucza (lub jego istnienie na mapie) bez ręcznego przeglądania rekordów 60 000. Właściwie czytam na forum Eclipse MAT, że nie jest to również możliwe z tym ...
Edit4: Po pewnych doświadczeniach bardzo lubię narzędzia takie jak VisualVM. Używał również YourKit. Istnieje kilka przydatnych funkcji, takich jak OQL, aby znaleźć odpowiednie instancje, na które należy spojrzeć ...
Nie wiem, w jaki sposób uzyskać dostęp do obiektu bez odniesienia do wskaźnika/zmiennej. – aperkins