Skip to main content
Jump to: navigation, search



  • July 24, 2008


  • Eugene Chan
  • Bing Xu
  • Jonathan West
  • Asaf Yaffe
  • Kristine Heaton


  • To understand and discuss on the requirement of the environment variable for command line startup of profiler, work on a solution to remove the need of them to ease the usability of the profiler. This is an area that user is having problem to setup a profiling session on machines with limitation on setup privilege.
  • 226572 Remove requirement on environment variables setup
  • 227779 Linux: Attempt to record fails with message that attempt to write serviceconfig.xml failed.


  • Go through each of the environment variable requirement:
    • it is used by Agent to locate the serviceconfig.xml file for the following values:
      • a. logging level
        • info is the default, value is mostly changed for debug and support purpose.
        • Suggestion: how about an optional variable and honor only when available for debug and support purpose?
      • b. shared memory for data channels and name pipes values.
        • values are not changeable by any UI unless user manually change the serviceconfig.xml.
        • we do not see any need to change this value in the current setup and in long term.
        • can we assume the default value always? Yes.
    • Summary: Remove TPTP_AC_HOME and introduce an optional TPTP_AC_CONFIG_HOME for debug/support purpose and point to the new configuration location ie. workspace (see 227779). TPTP_AC_CONFIG_HOME is honor when available, default value otherwise.
    • AI: Eugene to contact Igor to confirm the usage of the variable and make sure there is nothing missing here on the usage of the TPTP_AC_HOME
    • AI: Eugene to create sub defect (241982), Talk with Chris and Joanna for resource.
    • History: to allow us to use multiple Martini runtimes on the same machine.
    • History: jpibootloader: a thin loader to read the variable and locate the martini runtime.
    • This dependency can be removed as all required libraries are located under the same directory.
    • To make sure we are backward compatible, make this variable an optional variable and honor if it exists on the machine. Assume same libraries under same folder otherwise.
    • Asaf: estimate effort: easy, 1 day.
    • Summary: make this an optional variable and honor if exists.
    • AI: Eugene to create sub defect (241984), and talk to Chirs and Joanna for resource.
    • They must point to JPIBootLoader and AC/bin for JPIBootLoader, ACCollector and AC libraries to load.
    • Main reason was to streamline the standalone and command line variables.
    • JPIBootLoader statically load other dll and their dependencies on the system path.
    • To load the ACCollector and it use AC sdk and lib files to link with AC dlls.
      • baseAgent.dll and tptputil.dll, they need to be in system path for the OS to load.
      • perhaps locate and load the AC dll dynamically instead of statically.
    • Can we use "-agentpath" to pass a fully qualify JPIBootLoader.dll for JVM? yes, but only when server=standalone
    • For server=enabled/controlled, it loads ACCollector and its dependencies that require OS to load with PATH value.
    • If ACCollector and its dependencies are dynamically lookup in JPIBootLoader there is no need for PATH value to include them i.e AC/bin folder
    • "-agentpath" vm argument can then be used on local profile to locate JPIBootLoader without the need of a PATH value.
    • For remote profile on server use case, we still need PATH setup on remote machine because client does not have remote AC location, but PATH now only points to jvmti.runtime/javaprofiler folder and no more AC/bin is required for AC sdk and libraries loading.
    • Standalone should work find with the propose changes. ie. no variables is needed to setup if agentpath is used.
    • Summary: update JPIBootLoader to locate and load ACCollector and AC libraries dynamically.
    • Will track this change under existing bug 226572.
    • Eugene: Why are the libraries packaged under lib on Linux and bin on Windows? We should make it consistent across all platforms.
    • AI: Eugene to open defect to review the packaging (242016).


  • Remove TPTP_AC_HOME and make TPTP_AC_CONFIG_HOME optional for debug and support purpose.
  • Reference JPI libraries under the same folder and make JAVA_PROFILER_HOME optional for backward compatibility.
  • JPIBootLoader to dynamically locate and load AC libraries, remove AC/bin in PATH
  • PATH/LD_LIBRARY_PATH is still needed but only points to JPIBootLoader folder.
  • if "-agentpath" is used then PATH is not needed.

Action Item

  • Eugene to open defects and target after talk to Chris and Joanna.

Back to the top