Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8305187
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 8, 20262026-06-08T18:01:51+00:00 2026-06-08T18:01:51+00:00

Is there any possibility to set unique ID for a thread? In distributed system

  • 0

Is there any possibility to set unique ID for a thread? In distributed system where threads are created on many different machines (e.g. by RMI)?

I need it to create log messages. From my research I know that it can be done using log4j mdc/ndc, but only in single thread. My problem is that ID has to be set when thread is created (to use the same ID for threads on different JVM but for the same request)

I am new to distributed systems.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-08T18:01:55+00:00Added an answer on June 8, 2026 at 6:01 pm

    If you want to have a globally unique request id, you can use the prcoessAndName (see below) with a counter and pass this with your message/request and use this to set the thread name.

    public void processRequest(String uniqueRequestId, args) {
        Thread t = Thread.currrentThread();
        String tName = t.getName();
        try {
            t.setName("Processing " + uniqueRequestId);
            // preform process request
        } finally {
            t.setName(tName);
        }
    }
    

    This way the thread’s name will contain the request id regardless of which thread/machine it is run in. If you include the thread’s name in the logs, it will be included.


    You can set the name of your thread using

    String processAndHost = ManagementFactory.getRuntimeMXBean().getName()
    

    You can append to this a descriptive name or counter.

    This way all your thread names will be unique.

    You can assume this name is globally unique provided, a) you have a unique hostname b) the process is not restarted so often there is a significant risk of two clients (at different times) with the same process id on the same host being a problem.

    This can be combined with a locally unique id, to get a distributed unique id.

    ExecutorService service = Executors.newCachedThreadPool(new ThreadFactory() {
        final String processName = ManagementFactory.getRuntimeMXBean().getName();
        final AtomicLong counter = new AtomicLong();
        @Override
        public Thread newThread(Runnable r) {
            String name = processName+"-"+counter.getAndIncrement();
            return new Thread(r, name);
        }
    });
    for(int i=0;i<10;i++)
        service.submit(new Runnable() {
            @Override
            public void run() {
                System.out.println("["+Thread.currentThread().getName()+"] - Hello World.");
                Thread.yield();
            }
        });
    service.shutdown();
    

    prints

    [9480@myhost-0] - Hello World.
    [9480@myhost-3] - Hello World.
    [9480@myhost-2] - Hello World.
    [9480@myhost-1] - Hello World.
    [9480@myhost-5] - Hello World.
    [9480@myhost-4] - Hello World.
    [9480@myhost-6] - Hello World.
    [9480@myhost-7] - Hello World.
    [9480@myhost-0] - Hello World.
    [9480@myhost-7] - Hello World.
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Are there any possibility to set up the number of tasks uploaded from redmine
Is there any possibility to set an onTouchListener on the background which was set
is there any possibility to set background image dynamically?! I try to explain what
Is there any possibility to change the text-color of some parts in a textarea
Is there any possibility of giving variable name to hex/rgb numbers in .qss file
Is there any possibility to split classes for a two files like in C++?
Is there any possibility to get the versionCode of an App without the getPackageManager?
Is there any possibility to select a option field by default in a g:select
Is there any possibility to extract globalize2 translation for specified locale without setting I18n.locale
Is there any possibility of changing the MySQL DB table's field name or adding

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.