Мне нужен способ однозначно и надолго идентифицировать экземпляр JVM из кода Java, запущенного в этой JVM.Возможно ли получить уникальный уникальный идентификатор для конкретного экземпляра JVM?
То есть, если у меня есть два JVM, работающих одновременно на одной машине, каждая из них различима. Он также отличается от запуска JVM на других машинах и от будущих исполнений на одной машине, даже если идентификатор процесса повторно используется.
Я полагаю, что я мог бы реализовать что-то вроде этого, идентифицируя время начала, MAC-адрес машины и идентификатор процесса и каким-то образом сочетая их. Мне интересно, есть ли какой-то стандартный способ достичь этого.
Обновление: Я вижу, что все рекомендовали UUID для всего сеанса. Это кажется хорошей идеей, хотя, возможно, слишком тяжелым. Вот моя проблема: я хочу использовать JVM id для создания нескольких уникальных идентификаторов в каждом исполнении JVM, которые каким-то образом включают экземпляр JVM.
Я понимаю, что вы не должны смешивать другие числа с UUID, потому что уникальность больше не гарантируется. Альтернативой является включение UUID в цепочку и ее цепочку, но затем она становится слишком длинной. Есть идеи по преодолению этого?
Я понимаю, что вы хотите уникально идентифицировать экземпляр JVM, но какова основная проблема, которую вы должны решить с помощью этой информации? –
@Thorbjorn: У меня есть распределенная система, и мне нужно: 1) Уникально идентифицировать исходящие пакеты.2) Поддерживайте это «удобочитаемый человек», поэтому в файлах журналов и информации об отладке я могу быстро определить пакеты, которые поступают из одного и того же экземпляра. – Uri