Thread monitoring using shared memory
First Claim
Patent Images
1. A computer-implemented method, comprising:
- operating an application server instance having a plurality of worker nodes, including for each of the plurality of worker nodes,managing one or more worker threads by a thread manager of the worker node,executing at least one program on a Java virtual machine (“
JVM”
) of the worker node to service a respective work request received by the application server instance,assigning to a worker thread of the worker node a task of the respective work request,the assigned worker thread generating status information based on a performance of the task assigned to the worker thread, andthe assigned worker thread reporting the generated status information into a shared memory of the application server instance, the shared memory external to and shared by the plurality of worker nodes;
wherein a first work request of the work requests received by the application server instance requests a performance of a first task having a stack of multiple subtasks, each subtask of the task corresponding to a respective depth in the stack;
wherein a first worker thread in a first worker node of the plurality of worker nodes is assigned to the first task;
wherein the first worker thread is instantiated by the thread manager of the first worker node to perform both reporting tasks and the subtasks in an interleaved manner;
wherein the performing of reporting tasks includes the first worker thread reporting into the shared memory first status information generated based on a performance of one of the multiple subtasks, the reporting the first status information based on a selectable reporting depth and the corresponding depth in the stack of the one of the multiple subtasks; and
exchanging status information in the shared memory from the application server instance to a monitoring console for monitoring of the application server instance.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method to monitor worker threads within a Java virtual machine. At least one program is executed on the Java virtual machine to perform a task. A worker thread of the Java virtual machine is assigned to perform the task. Status information for the worker thread is generated and reported into memory external to the Java virtual machine to enable monitoring of the worker thread from external to the Java virtual machine.
-
Citations
16 Claims
-
1. A computer-implemented method, comprising:
-
operating an application server instance having a plurality of worker nodes, including for each of the plurality of worker nodes, managing one or more worker threads by a thread manager of the worker node, executing at least one program on a Java virtual machine (“
JVM”
) of the worker node to service a respective work request received by the application server instance,assigning to a worker thread of the worker node a task of the respective work request, the assigned worker thread generating status information based on a performance of the task assigned to the worker thread, and the assigned worker thread reporting the generated status information into a shared memory of the application server instance, the shared memory external to and shared by the plurality of worker nodes; wherein a first work request of the work requests received by the application server instance requests a performance of a first task having a stack of multiple subtasks, each subtask of the task corresponding to a respective depth in the stack; wherein a first worker thread in a first worker node of the plurality of worker nodes is assigned to the first task; wherein the first worker thread is instantiated by the thread manager of the first worker node to perform both reporting tasks and the subtasks in an interleaved manner; wherein the performing of reporting tasks includes the first worker thread reporting into the shared memory first status information generated based on a performance of one of the multiple subtasks, the reporting the first status information based on a selectable reporting depth and the corresponding depth in the stack of the one of the multiple subtasks; and exchanging status information in the shared memory from the application server instance to a monitoring console for monitoring of the application server instance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A machine-accessible medium that provides instructions that, if executed by a machine, will cause the machine to perform operations comprising:
-
operating an application server (“
AS”
) instance having a plurality of worker nodes, including for each of the plurality of worker nodes,managing one or more worker threads by a thread manager of the worker node, executing a program on a Java virtual machine (“
JYM”
) of the worker node to service a respective work request received by the AS instance,assigning to a worker thread of the worker node a task of the respective work request, the assigned worker thread generating status information based on a performance of the task assigned to the worker thread, and the assigned worker thread storing the generated status information into a shared memory external to and shared by the plurality of worker nodes; wherein a first work request of the work requests received by the AS instance requests a performance of a first task having a stack of multiple subtasks, each subtask of the task corresponding to a respective depth in the stack; wherein the first task is assigned to a first worker thread in a first worker node of the plurality of worker nodes; wherein the first worker thread is instantiated by the thread manager of the first worker node to perform both reporting tasks and the subtasks in an interleaved manner; wherein the performing of reporting tasks includes the first worker thread reporting into the shared memory first status information generated based on a performance of one of the multiple subtasks, the reporting the first status information based on a selectable reporting depth and the corresponding depth in the stack of the one of the multiple subtasks; and exchanging status information in the shared memory from the AS instance to a monitoring console for monitoring of the AS instance. - View Dependent Claims (10, 11, 12)
-
-
13. A system, comprising:
-
a server node to execute an application server (“
AS”
) instance having a plurality of worker nodes, the AS instance including logic executable by a processor of the server node to;for each of the plurality of worker nodes, manage one or more worker threads by a thread manager of the worker node, execute a program on a Java virtual machine (“
JVM”
) of the worker node to service a respective work request received by the AS instance;assign to a worker thread of the worker node a task of the respective work request, generate with the assigned worker thread status information based on a performance of the task assigned to the worker thread, and report the generated status information into a shared memory which is external to and shared by the plurality of worker nodes; wherein a first work request of the work requests received by the AS instance requests a performance of a first task having a stack of multiple subtasks, each subtask of the task corresponding to a respective depth in the stack; wherein the first task is assigned to a first worker thread in a first worker node of the plurality of worker nodes; wherein the first worker thread is instantiated by the thread manager of the first worker node to perform both reporting tasks and the subtasks in an interleaved manner; wherein the performing of reporting tasks includes the first worker thread reporting into the shared memory first status information generated based on a performance of one of the multiple subtasks, the reporting the first status information based on a selectable reporting depth and the corresponding depth in the stack of the one of the multiple subtasks; and exchange status information in the shared memory from the AS instance to a monitoring console for monitoring of the AS instance. - View Dependent Claims (14, 15, 16)
-
Specification