Logo Search packages:      
Sourcecode: visualvm version File versions  Download package

org::netbeans::lib::profiler::server::ProfilerServer Class Reference

Inheritance diagram for org::netbeans::lib::profiler::server::ProfilerServer:

org::netbeans::lib::profiler::global::CommonConstants

List of all members.


Detailed Description

This class contains functionality for starting (attaching to) the Target Application (TA), and for communication between the profiling back end and the tool (server and client).

Author:
Tomas Hurka

Misha Dmitriev

Ian Formanek

Definition at line 71 of file ProfilerServer.java.


Public Member Functions

boolean getAndCheckLastResponse ()
ObjectOutputStream getSocketOutputStream ()
boolean isRemoteProfiling ()
void run ()
void sendClassLoaderUnloadingCommand ()
synchronized void sendComplexCmdToClient (Command cmd)
synchronized void sendComplexResponseToClient (Response resp)
boolean sendEventBufferDumpedCommand (int length, boolean waitForResponse)
synchronized void sendSimpleCmdToClient (int cmdType)
synchronized void sendSimpleResponseToClient (boolean val, String errorMessage)

Static Public Member Functions

static void activate (String fullJFluidPath, int portNo, final int activateCode, int timeOut)
static void activate (String fullJFluidPath, int portNo, final int activateCode)
static synchronized Response getLastResponse ()
static Thread getMainThread ()
static ProfilingSessionStatus getProfilingSessionStatus ()
static boolean isTargetAppMainThreadComplete ()
static void main (String[] args)
static void notifyClientOnResultsAvailability ()
static void requestClientResetResults ()
static void requestClientTakeSnapshot ()

Static Public Attributes

static final byte ADJUST_TIME = 5
static final int AGENT_ID_ANY = -1
static final int AGENT_STATE_CONNECTED = 3
static final int AGENT_STATE_DIFFERENT_ID = 4
static final int AGENT_STATE_NOT_RUNNING = 0
static final int AGENT_STATE_OTHER_SESSION_IN_PROGRESS = 5
static final int AGENT_STATE_READY_DIRECT = 2
static final int AGENT_STATE_READY_DYNAMIC = 1
static final int AGENT_VERSION_10_M10 = 2
static final int AGENT_VERSION_10_M9 = 1
static final int AGENT_VERSION_60_BETA1 = 8
static final int AGENT_VERSION_60_M10 = 7
static final int AGENT_VERSION_60_M5 = 3
static final int AGENT_VERSION_60_M6 = 4
static final int AGENT_VERSION_60_M7 = 5
static final int AGENT_VERSION_60_M8 = 6
static final int ARCH_32 = 32
static final int ARCH_64 = 64
static final int ATTACH_DIRECT = 1
static final int ATTACH_DYNAMIC = 0
static final byte BUFFEREVENT_PROFILEPOINT_HIT = 26
static final String CALIBRATION_PSEUDO_CLASS_NAME = "____Profiler+Calibration+Run____"
static final byte COMPACT_EVENT_FORMAT_BYTE_MASK = (byte) 0x80
static final char COMPACT_EVENT_METHOD_ID_MASK = 0x3FFF
static final int CPU_INSTR_FULL = 0
static final int CPU_INSTR_SAMPLED = 1
static final int CURRENT_AGENT_VERSION = AGENT_VERSION_60_BETA1
static final String ENGINE_WARNING = "*** Profiler engine warning: "
static final int EVENT_BUFFER_SIZE_IN_BYTES = 1200000
static final int FILTER_CONTAINS = 20
static final int FILTER_ENDS_WITH = 30
static final int FILTER_EQUALS = 40
static final int FILTER_NONE = 0
static final int FILTER_REGEXP = 50
static final int FILTER_STARTS_WITH = 10
static final int INJ_CODE_REGION = 8
static final int INJ_MAXNUMBER = 11
static final int INJ_OBJECT_ALLOCATIONS = 9
static final int INJ_OBJECT_LIVENESS = 10
static final int INJ_RECURSIVE_MARKER_METHOD = 2
static final int INJ_RECURSIVE_NORMAL_METHOD = 0
static final int INJ_RECURSIVE_ROOT_METHOD = 1
static final int INJ_RECURSIVE_SAMPLED_MARKER_METHOD = 5
static final int INJ_RECURSIVE_SAMPLED_NORMAL_METHOD = 3
static final int INJ_RECURSIVE_SAMPLED_ROOT_METHOD = 4
static final int INJ_REFLECT_METHOD_INVOKE = 6
static final int INJ_SERVLET_DO_METHOD = 7
static final int INSTR_CODE_REGION = 1
static final int INSTR_MAXNUMBER = 6
static final int INSTR_MEMORY_BASE = 4
static final int INSTR_NONE = 0
static final int INSTR_OBJECT_ALLOCATIONS = 4
static final int INSTR_OBJECT_LIVENESS = 5
static final int INSTR_RECURSIVE_FULL = 2
static final int INSTR_RECURSIVE_SAMPLED = 3
static final int INSTRSCHEME_EAGER = 2
static final int INSTRSCHEME_LAZY = 1
static final int INSTRSCHEME_TOTAL = 3
static final String INVOKE_METHOD_NAME = "invoke"
static final String INVOKE_METHOD_SIGNATURE = "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;"
static final String JAVA_LANG_REFLECT_METHOD_DOTTED_CLASS_NAME = "java.lang.reflect.Method"
static final String JAVA_LANG_REFLECT_METHOD_SLASHED_CLASS_NAME = "java/lang/reflect/Method"
static final int JDK_15 = 2
static final String JDK_15_STRING = "jdk15"
static final int JDK_16 = 3
static final String JDK_16_STRING = "jdk16"
static final int JDK_17 = 4
static final String JDK_17_STRING = "jdk17"
static final int JDK_UNSUPPORTED = -1
static final String JDK_UNSUPPORTED_STRING = "UNSUPPORTED_JDK"
static final byte MARKER_ENTRY = 3
static final byte MARKER_ENTRY_UNSTAMPED = 18
static final byte MARKER_EXIT = 4
static final byte MARKER_EXIT_UNSTAMPED = 19
static final char MAX_METHOD_ID_FOR_COMPACT_FORMAT = 0x3FFF
static final byte METHOD_ENTRY = 6
static final byte METHOD_ENTRY_COMPACT_BYTE_MASK = (byte) 0x80
static final char METHOD_ENTRY_COMPACT_MASK = 0x8000
static final byte METHOD_ENTRY_MONITOR = 22
static final byte METHOD_ENTRY_SLEEP = 24
static final byte METHOD_ENTRY_UNSTAMPED = 16
static final byte METHOD_ENTRY_WAIT = 20
static final byte METHOD_EXIT = 7
static final byte METHOD_EXIT_COMPACT_BYTE_MASK = (byte) 0xC0
static final char METHOD_EXIT_COMPACT_MASK = 0xC000
static final byte METHOD_EXIT_MONITOR = 23
static final byte METHOD_EXIT_SLEEP = 25
static final byte METHOD_EXIT_UNSTAMPED = 17
static final byte METHOD_EXIT_WAIT = 21
static final byte NEW_THREAD = 11
static final String NO_CLASS_NAME = "*NO_CLASS_NAME*"
static final String NO_METHOD_NAME = "*NO_METHOD_NAME*"
static final String NO_METHOD_SIGNATURE = "*NO_METHOD_SIGNATURE*"
static final byte OBJ_ALLOC_STACK_TRACE = 12
static final byte OBJ_GC_HAPPENED = 15
static final byte OBJ_LIVENESS_STACK_TRACE = 14
static final String PLEASE_REPORT_PROBLEM = "*** Please report this problem to feedback@profiler.netbeans.org"
static final String PROFILER_DOTTED_CLASS_PREFIX = "org.netbeans.lib.profiler."
static final String PROFILER_SEPARATE_EXEC_THREAD_NAME = "*** JFluid Separate Command Execution Thread"
static final String PROFILER_SERVER_SLASHED_CLASS_PREFIX = "org/netbeans/lib/profiler/server/"
static final String PROFILER_SERVER_THREAD_NAME = "*** Profiler Agent Communication Thread"
static final String PROFILER_SPECIAL_EXEC_THREAD_NAME = "*** Profiler Agent Special Execution Thread"
static final byte RESET_COLLECTORS = 10
static final byte ROOT_ENTRY = 1
static final byte ROOT_EXIT = 2
static final byte SERVLET_DO_METHOD = 27
static final byte SET_FOLLOWING_EVENTS_THREAD = 13
static final int SORTING_COLUMN_DEFAULT = -1
static final byte THREAD_STATUS_MONITOR = 3
static final java.awt.Color THREAD_STATUS_MONITOR_COLOR = new java.awt.Color(255, 114, 102)
static final String THREAD_STATUS_MONITOR_STRING = messages.getString("CommonConstants_ThreadStatusMonitorString")
static final byte THREAD_STATUS_RUNNING = 1
static final java.awt.Color THREAD_STATUS_RUNNING_COLOR = new java.awt.Color(58, 228, 103)
static final String THREAD_STATUS_RUNNING_STRING = messages.getString("CommonConstants_ThreadStatusRunningString")
static final byte THREAD_STATUS_SLEEPING = 2
static final java.awt.Color THREAD_STATUS_SLEEPING_COLOR = new java.awt.Color(155, 134, 221)
static final String THREAD_STATUS_SLEEPING_STRING = messages.getString("CommonConstants_ThreadStatusSleepingString")
static final byte THREAD_STATUS_UNKNOWN = -1
static final java.awt.Color THREAD_STATUS_UNKNOWN_COLOR = java.awt.Color.LIGHT_GRAY
static final String THREAD_STATUS_UNKNOWN_STRING = messages.getString("CommonConstants_ThreadStatusUnknownString")
static final byte THREAD_STATUS_WAIT = 4
static final java.awt.Color THREAD_STATUS_WAIT_COLOR = new java.awt.Color(255, 228, 90)
static final String THREAD_STATUS_WAIT_STRING = messages.getString("CommonConstants_ThreadStatusWaitString")
static final byte THREAD_STATUS_ZOMBIE = 0
static final java.awt.Color THREAD_STATUS_ZOMBIE_COLOR = java.awt.Color.BLACK
static final String THREAD_STATUS_ZOMBIE_STRING = messages.getString("CommonConstants_ThreadStatusZombieString")
static final byte THREADS_RESUMED = 9
static final byte THREADS_SUSPENDED = 8
static final byte TWO_TIMESTAMP_EVENTS = 6

Static Package Functions

static ResourceBundle getProfilerServerResourceBundle ()
static void initLocalizedResources ()
static void loadNativeLibrary (String fullJFluidPath, boolean fullPathToLibSpecified)
static boolean startProfilingPointsActive ()

Static Package Attributes

static Object execInSeparateThreadLock
static int execInSeparateThreadOpCode

Private Member Functions

synchronized void closeConnection ()
boolean connectToClient ()
void createInfoFile ()
void executeInSeparateThread (int opCode)
int getAgentId ()
void handleClientCommand (Command cmd)
void handleIOExceptionOnSend (IOException ex)
void initSeparateCmdExecutionThread ()
void listenToClient ()
 ProfilerServer (int port, boolean dynamic, int timeout)
void removeInfoFile ()
void stopSeparateCmdExecutionThread ()

Static Private Member Functions

static void cleanupOnShutdown ()
static void delay (int ms)
static void doActivate (int activateCode)
static void forcedShutdown ()
static File getInfoFile (int port) throws IOException
static String getLocalizedJFluidServerJar (String jfluidServerDir)
static String getLocalizedJFluidServerJarInDir (String jfluidServerLocaleDir)
static ResourceBundle getProfilerServerResourceBundle (String jfluidPath)
static void initInternals ()
static void initSupportingFunctionality (boolean inAttachedMode, boolean remoteProfiling)
static void internalError (String message, boolean exit)
static void internalError (String message)
static void pressEnterToShutDown ()
static void runTargetApp (String mainClassName, String[] mainArgs)
static void setLastResponse (Response r)
static void setShutdownOK ()
static void waitForShutdownOK ()

Private Attributes

int agentId = -1
Socket clientSocket
boolean dynamic
int serverPort
ServerSocket serverSocket
int serverTimeout = 0
ObjectInputStream socketIn
ObjectOutputStream socketOut
WireIO wireIO

Static Private Attributes

static int _activateCode
static String _fullJFluidPath
static int _portNo
static int _timeOut = 0
static String AGENT_ERROR_MSG = "Profiler Agent Error: {0}"
static String COMMAND_EXCEPTION_MSG = "Profiler Agent Error: Exception when handling command from client:\n{0}"
static String CONNECTION_CLOSED_MSG = "Profiler Agent: Connection with agent closed"
static String CONNECTION_EXCEPTION_MSG = "Profiler Agent Error: Exception when trying to establish connection with client:\n{0}"
static String CONNECTION_INTERRUPTED_MSG = "Profiler Agent Error: Connection with client interrupted"
static String CONNECTION_TIMEOUT_MSG = "Profiler Agent Error: Timed out trying to establish connection with client"
static volatile boolean connectionFailed
static volatile boolean connectionOpen
static volatile boolean detachCommandReceived
static String ELAPSED_TIME_MSG = "Main application thread elapsed time: {0} ms."
static String ENTER_TO_SHUTDOWN_MSG = "Press ENTER to shut down the target JVM..."
static String INCORRECT_AGENT_ID_MSG = "Profiler Agent Warning: Wrong agentId specified: {0}"
static String INCORRECT_MAIN_MODIFIERS_MSG = "Method {0}.main(String args[]) has incorrect modifiers"
static Response lastResponse
static String LOCAL_CONNECTION_MSG = "Profiler Agent: Established local connection with the tool"
static String MAIN_CLASS_NOT_PUBLIC_MSG = "Main class {0} is not public.\nProfiler can not start it"
static Thread mainThread
static ResourceBundle messages
static boolean preemptExit = true
static volatile boolean profilerInterfaceInitialized
static ProfilerServer profilerServer
static String REMOTE_CONNECTION_MSG = "Profiler Agent: Established remote connection with the tool"
static boolean resourcesInitialized = false
static String RESPONSE_EXCEPTION_MSG = "Profiler Agent Error: Exception when trying to send response or command to client:\n{0}"
static Object responseLock = new Object()
static boolean resultsNotified = false
static final Object resultsNotifiedLock = new Object()
static SeparateCmdExecutionThread separateCmdExecutionThread
static final Object shutdownLock = new Object()
static boolean shutdownOK = false
static ShutdownWaitThread shutdownWaitThread
static volatile boolean startTargetApp
static volatile Exception startupException
static ProfilingSessionStatus status
static volatile boolean targetAppMainThreadComplete
static Object targetAppRunningLock
static String THREAD_EXCEPTION_MSG = "Profiler Agent Error: Exception in executeInSeparateThread()"
static String THREAD_WAIT_EXCEPTION_MSG = "Profiler Agent Error: Exception in wait in SeparateCmdExecutionThread"
static String UNEXPECTED_EXCEPTION_MSG = "Target application threw an unexpected exception: {0}"
static String WAITING_ON_PORT_MSG = "Profiler Agent: Waiting for connection on port {0} (Protocol version: {1})"
static String WAITING_ON_PORT_TIMEOUT_MSG = "Profiler Agent: Waiting for connection on port {0}, timeout {1} seconds (Protocol version: {2})"

Classes

class  AttachDynamicThread
class  LocaleIterator
class  SeparateCmdExecutionThread
class  ShutdownWaitThread

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index