|
|
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
В общем хотелка следующая, у меня есть ряд потоков, в которые хочется подсмотреть, чем они занимаются. В общем вытащить стек трейс не составляет большого труда, но еще хочется, чтобы на каждый StackTraceElement можно было узнать, что было в него передано в качестве параметров. Возможно ли такое? Подозреваю, что это JVM зависимое, меня интересует IBM J9VM, но если есть решение для HotSpot, то тоже интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2015, 15:16 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
Блин, я идиот, перенесите в топик Java плиз... Модератор: Тема перенесена из форума "Oracle". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2015, 15:16 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
Jpda, jvmti ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2015, 18:51 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
Эх, с наскоку в этом не разберешься... Видимо прийдется неспешно ковырять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 11:43 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
just_vladimir, Ну, можно проще, если инструментировать целевой код и через AOP все вызовы логировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 11:55 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
В режиме отладки (как ни странно) тоже можно узнать параметры вызова. Насчёт IBM J9VM невкурсе но должно быть на 99%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 12:11 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
mayton, а это интересная идея, попытаться запустить продакшен сервер под дебагом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 12:54 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
just_vladimirmayton, а это интересная идея, попытаться запустить продакшен сервер под дебагом :) Я не понял сарказма. Ты разработчик? Тогда требуй тестовую среду. Не дают - добавь логгирование, JMX. К чему хихикать и выдавать постфактумом ограничения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 13:14 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
mayton, без сарказма, действительно можно попытаться такое провернуть, забавно, что сам о таком очевидном варианте не подумал. Выпады про разработчика и тестовую среду непонятны, интересующие меня явления в тестовой среде не воспроизводятся, воссоздать в тесте адекватный профиль нагрузки не получается, в общем есть много нюансов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 13:42 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
just_vladimirбез сарказма, действительно можно попытаться такое провернуть, забавно, что сам о таком очевидном варианте не подумал. Ну, вы, блин, даёте. Реально тут никто не знает что такое JPDA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 13:45 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, к своему стыду не знаю, но видимо буду разбираться... врядли бы полез, да вот кажись прижимать стало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 13:57 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
just_vladimir, Я бы всётаки подумал над вариантом с AOP. Может оказаться что для получения отладочной инфы весь поток нужно останавливать. Если это активный продакшн, то инструментация кода единственный производительный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 14:00 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
just_vladimirmayton, без сарказма, действительно можно попытаться такое провернуть, забавно, что сам о таком очевидном варианте не подумал. Выпады про разработчика и тестовую среду непонятны, интересующие меня явления в тестовой среде не воспроизводятся, воссоздать в тесте адекватный профиль нагрузки не получается, в общем есть много нюансов. Да блин. Тыж девелопер. У тебя over 100500 методов ловить ошибку. Это у админов и владельцев системы иногда нет инструментария. Тыже упакован инструментами по самое немогу! Ну йомайо. К аспектам тоже плюсую но при аннотировании с RetentionPolicy.RUNTIME мы наблюдали некую просадку производительности так что тут надо посмотреть чтоб измерительный инструмент не внёс слишком много ошибок Шрёдингера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 14:07 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, можно подумать и над таким вариантом, но у меня есть кейсы, когда проблема где то в коде самого апп сервера. Например, апп сервер детектит долго исполняющиеся треды (привожу вершину, если просмотреть стек от и до, то в нем ни строчки прикладного кода): ThreadMonitor W WSVR0605W: Thread "WebContainer : 39" (0000007e) has been active for 616430 milliseconds and may be hung. There is/are 3 thread(s) in total in the server that may be hung. at java.net.Inet4AddressImpl.getHostByAddr(Native Method) at java.net.InetAddress$2.getHostByAddr(InetAddress.java:985) ... Посмотрев на все это начинаешь подозревать, что наверное где то DNS косячит, но при проверке видно, что он отрабатывает моментально. И я даже не понимаю откуда у этого чуда ноги растут, подозреваю, если бы я видел с каким именем он не может совладать, то возможно было бы понятней. Хотя конкретно здесь, то дождаться, выловить момент и собрать хип дамп, в нем расковырять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 14:49 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
Попробуй -Djava.net.preferIPv4Stack=true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 14:53 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
mayton, в свое время это было первое, что попробовали по данной проблеме... потом еще выкручивали время жизни dns кэша, все равно выплывает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 14:55 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
just_vladimir, Брр. Ну так бы и сказал что для анализа надо. Тут пишут что уже несколько лет как, при дампе кучи можно посмотреть все локальные переменные потоков. Сам не видел ещё такого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 15:05 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, я бы сказал, что в идеале хочется создать инструмент для админов, позволяющий провести первичный анализ возникающих ситуаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 15:24 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
just_vladimirmayton, в свое время это было первое, что попробовали по данной проблеме... потом еще выкручивали время жизни dns кэша, все равно выплывает... Я не большой спец по сетям и DNS но вы могли поставить IP адрес вместо DN и хотя-бы отбросить в сторону ложную версию о DNS-кешах. Пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 16:14 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
mayton, знать бы какое имя заменять, это может быть что угодно имя самого сервера, имена каких то смежных серверов, с которыми идет взаимодействие (LDAP каталог, БД, внешние SOAP сервисы и т.д.), а вот знание, что указано в переменной (=что он так долго не может разрезолвить) тут бы как раз помогло, было бы понятно, где стоит попытаться явно подставить ip'шник, вместо имени. Но в общем то это частная ситуация, инструмент нужен и для других ситуаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 16:32 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
Твои инструмент может не взлететь к пример если код был собран с опцией -g:none. Не будет отладочной инфы и не будут подсвечиваться local variables. Насчёт параметров стека вызова - я невкурсе. Надо попробовать потестить. Но вобщем если ты - админ то ничего особо ты не сделаешь. Довольствуйся стеком ошибок когда он рухнет в лог. Дальше уже - по обстановке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 16:42 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
mayton, ну как минимум мой прикладной код будет собран так, как мне надо. А стек ошибок не факт что вывалится, например, что-нибудь может просто тормозить, особенно классно, когда это что-нибудь смежное... а пока доказательную базу не подобьешь на тему, кто, где и как именно косячит, то все лучи добра от пользователей идут к нам :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 17:00 |
|
||
|
Можно ли узнать параметры с которыми вызваны методы?
|
|||
|---|---|---|---|
|
#18+
just_vladimirmayton, ну как минимум мой прикладной код будет собран так, как мне надо. А стек ошибок не факт что вывалится, например, что-нибудь может просто тормозить, особенно классно, когда это что-нибудь смежное... а пока доказательную базу не подобьешь на тему, кто, где и как именно косячит, то все лучи добра от пользователей идут к нам :) Будет тормозить - значит либо циклить либо проваливаться в рекурсию. Если ты девелопер то приблизительно проблемные места здаешь (DAO объекты, объекты бизнес процессинга). Добавляешь туда JMX счётчики и наблюдаешь их состояние через JMX консоль. Каков их будет физический смысл - неважно. Будь то количество прогонов цикла или транзакций или Get запрософ - пофиг. Ты сам определяешь семантику. Главное что живой счётчик сигнализирует о том что всё ОК. Неменяющийся - что-то плохо. Про исключения поиска DN, IO, Connection уже проговорили. Ждёшь пока не упадёт исключение. Ну как-то так вобщем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39122261&tid=2124580]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 498ms |

| 0 / 0 |
