code: public synchronized void start() throws SocketException {
          if (!isRunning()) {
              DeviceFinder.getInstance().addLifecycleListener(lifecycleListener);
              DeviceFinder.getInstance().addDeviceAnnouncementListener(announcementListener);
              DeviceFinder.getInstance().start();
              for (DeviceAnnouncement device: DeviceFinder.getInstance().getCurrentDevices()) {
                  requestPlayerDBServerPort(device);
              }
  
              new Thread(null, new Runnable() {
                  @Override
                  public void run() {
                      while (isRunning()) {
                          try {
                              Thread.sleep(500);
                          } catch (InterruptedException e) {
                              logger.warn("Interrupted sleeping to close idle dbserver clients");
                          }
                          closeIdleClients();
                      }
                      logger.info("Idle dbserver client closer shutting down.");
                  }
              }, "Idle dbserver client closer").start();
  
              running.set(true);
              deliverLifecycleAnnouncement(logger, true);
          }
      }
docs: Start offering shared dbserver sessions.
  
  @throws SocketException if there is a problem opening connections