Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 47672

Summary: Create shared memory buffer (loggers <-> monitors).
Product: z_Archived Reporter: Paul Slauenwhite <paulslau>
Component: TPTPAssignee: jkubasta
Status: CLOSED WONTFIX QA Contact:
Severity: enhancement    
Priority: P2 CC: knight, labadie
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard: housecleaned460 closed460

Description Paul Slauenwhite CLA 2003-11-27 15:53:29 EST
Problem:

When a user of the org.eclipse.hyades.logging.core.LoggingAgent writes log 
messages to a logger and attaches a client to monitor, some logged messages are 
lost.  The logger does capture/buffer all logged messages but when 
user code and the application exits (i.e. JVM exits) before any monitoring 
clients have the chance to attach or tell the logger to starting propagating 
logged messages to them, the messages are lost.  
Therefore, the monitoring clients do not have a handle to the exited JVM and 
thus logger.  


Solution:

Use a shared memory buffer between the logger (LoggingAgent) and any monitoring 
clients via the Hyades Data Collection Engine.  This solution 
will persist logged messages even when the logger/JVM exits.
Comment 1 Paul Slauenwhite CLA 2005-01-10 11:05:31 EST
This enhancement would require extensive changes to the agent monitoring 
architecture, to be able to attach and monitor data from an agent associated 
with a process that has already ended.  Currently, the Haydes Data Collection 
Engine creates the shared memory data channel only when a client attaches and 
starts monitoring the agent.   For this enhancement, a shared memory data 
channel would need to be created when the agent registers with the Haydes Data 
Collection Engine.  The enhancement would require changes to the Haydes Data 
Collection Engine process and agent handling code, to persist information about 
the process and its agents and their data channels, for a period of time after 
the process exits, if there is data in the data channels.

The majority of the changes are to the Haydes Data Collection Engine server and 
agent code but there may also be changes required to 
org.eclipse.hyades.execution.local and org.eclipse.hyades.execution.remote.

As such, transferring ownership to component owner.
Comment 2 Christine Knight CLA 2005-01-28 08:44:21 EST
Please change this to P1 for version 4.1 today so it can be considered in the 
4.1 plan. We require this feature now.
Comment 3 Sri Doddapaneni CLA 2005-03-30 18:00:13 EST
I have two questions regarding this feature request.

1. If the application/agent which collected the data has exited, how can any 
client/tool attach to it and receive the data even if it were in the shared 
memory buffer. The real requirement seems to me as "Agents can publish data to 
some entity, likely agent controller, that can be discovered and received by 
client even after the agent terminates."

2. In the case that agent does not terminate, it can and should buffer the 
data it collects until a client is ready to receive it.
Comment 4 Sri Doddapaneni CLA 2005-04-01 13:04:07 EST
This feature was discussed at the Data Collection and Communication subsystem 
meeting on 3/31/05. Summarized below are some suggested solutions using 
features targeted for TPTP 4.1.

Any agent that requires buffering and persistence of data beyond its life-
time, should consider implmenting a service agent to meet its needs. Agent 
controller in 4.1 release supports agent-to-agent communication. This provides 
the minimum support needed in the platform to create a data buffering service. 
If the agent requires a dedicated communication channel with service agent, it 
can negotiate that after hand-shake.

Please respond if this is a workable solution for you.
Comment 5 Paul Slauenwhite CLA 2005-04-07 08:40:33 EDT
(In reply to comment #3)
> I have two questions regarding this feature request.
> 1. If the application/agent which collected the data has exited, how can any 
> client/tool attach to it and receive the data even if it were in the shared 
> memory buffer. The real requirement seems to me as "Agents can publish data 
to 
> some entity, likely agent controller, that can be discovered and received by 
> client even after the agent terminates."
> 2. In the case that agent does not terminate, it can and should buffer the 
> data it collects until a client is ready to receive it.

1)  Yes, this is the requirement.  Maybe I am misunderstanding the current 
architecture.  As I see it, when the Agent Controller launches a Java 
application that is calling the LoggingAgent Java wrapper, this wrapper 
currently buffers all logged messages until a client is attached and 
monitoring.  If the Java application terminates or crashes, this buffer is 
terminated since it resides in the JVM's memory.  If the native side of the 
LoggingAgenet implemented shared memory, the LoggingAgent Java wrapper could 
pass-though all logged messages and let the native layer handle buffering until 
a client is attached and monitoring.  This way, is the Java application 
terminates or crashes, the logged messages are still persisted in the native 
layer for clients to retrieve for serviceability purposes.

2) Yes.  Actually, buffering takes place for both scenarios when the Java 
application is executing and terminated.  This would presume some sort of 
expiration on buffered logged messages.
Comment 6 Paul Slauenwhite CLA 2005-04-07 08:45:04 EDT
(In reply to comment #4)
> This feature was discussed at the Data Collection and Communication subsystem 
> meeting on 3/31/05. Summarized below are some suggested solutions using 
> features targeted for TPTP 4.1.
> Any agent that requires buffering and persistence of data beyond its life-
> time, should consider implmenting a service agent to meet its needs. Agent 
> controller in 4.1 release supports agent-to-agent communication. This 
provides 
> the minimum support needed in the platform to create a data buffering 
service. 
> If the agent requires a dedicated communication channel with service agent, 
it 
> can negotiate that after hand-shake.
> Please respond if this is a workable solution for you.

This solution appears to be viable.  What is the performance/memory impact of 
have in effect two agents instead of one?  Would the client attach/monitor the 
service agent?
Comment 7 Sri Doddapaneni CLA 2005-04-28 13:40:31 EDT
Overall, memory and CPU usage shuold be better considering that it give 
control to managing buffer sizes to the service agent. Since majority of 
agents will not need this feature, the agent controller will be able to 
optimize for this.

Of course, there is an additional process and shared memory buffer.

I will close this for now. If the suggested solution is not acceptable, reopen 
it.

 
Comment 8 Paul Slauenwhite CLA 2005-05-24 08:52:16 EDT
I am still not complete sure of your proposed solution.  Is the client 
workbench actually attaching to the service agent?  Also, does the C impl of 
the Logging Agent or the Java wrapper implement the service agent.  I guess I 
need some documentation on your solution to determine if it is viable.
Comment 9 Ruth Lee CLA 2005-07-12 10:55:56 EDT
Deferring from 4.1 as per the official 4.1 enhancement plan.
http://eclipse.org/tptp/home/project_info/featureplans/features.php?source=All&project=All&release=4.1&file=TPTPFeatures_4.1.xml
Comment 10 Sri Doddapaneni CLA 2005-09-14 14:04:09 EDT
To be considered for 4.2 plan
Comment 11 Karla Callaghan CLA 2006-02-07 16:46:24 EST
Not containable in 4.2, reset target to future.
Comment 12 Paul Slauenwhite CLA 2006-05-01 14:43:54 EDT
Is there any status update on this feature?  This enhancement is:

1) A P1 priority required by consuming products.
2) Has been opened for 2 1/2 years.
3) Required for features schedule for release as a TPTP V4.2.0 Technology Preview.  

Please ensure that this feature is considered in the planning process for TPTP V4.3.0.
Comment 13 Karla Callaghan CLA 2007-02-05 13:45:19 EST
Transferring general agent controller enhancement requests to new project lead (Joanna) for consideration in future releases.
Comment 14 Kathy Chan CLA 2009-02-23 13:38:00 EST
Mass update of P1 enhancements and defects targetted to future to P2.
Comment 15 Paul Slauenwhite CLA 2009-06-30 06:33:42 EDT
As of TPTP 4.6.0, TPTP is in maintenance mode and focusing on improving quality by resolving relevant defects and increasing test coverage through test creation, automation, Build Verification Tests (BVTs), and expanded run-time execution. As such, TPTP is not delivering enhancements. As part of the TPTP Bugzilla housecleaning process (see http://wiki.eclipse.org/Bugzilla_Housecleaning_Processes), this enhancement is resolved as WONTFIX. For this enhancement to be considered, please re-open with an attached patch including the Description Document (see http://www.eclipse.org/tptp/home/documents/process/development/description_documents.html), code (see http://www.eclipse.org/tptp/home/documents/resources/TPTPDevGuide.htm), and test cases (see http://www.eclipse.org/tptp/home/documents/process/TPTP_Testing_Strategy.html).
Comment 16 Paul Slauenwhite CLA 2009-06-30 06:36:41 EDT
As of TPTP 4.6.0, TPTP is in maintenance mode and focusing on improving quality by resolving relevant defects and increasing test coverage through test creation, automation, Build Verification Tests (BVTs), and expanded run-time execution. As such, TPTP is not delivering enhancements. As part of the TPTP Bugzilla housecleaning process (see http://wiki.eclipse.org/Bugzilla_Housecleaning_Processes), this enhancement is resolved as WONTFIX. For this enhancement to be considered, please re-open with an attached patch including the Description Document (see http://www.eclipse.org/tptp/home/documents/process/development/description_documents.html), code (see http://www.eclipse.org/tptp/home/documents/resources/TPTPDevGuide.htm), and test cases (see http://www.eclipse.org/tptp/home/documents/process/TPTP_Testing_Strategy.html).
Comment 17 Paul Slauenwhite CLA 2009-06-30 12:13:04 EDT
As of TPTP 4.6.0, TPTP is in maintenance mode and focusing on improving quality by resolving relevant enhancements/defects and increasing test coverage through test creation, automation, Build Verification Tests (BVTs), and expanded run-time execution. As part of the TPTP Bugzilla housecleaning process (see http://wiki.eclipse.org/Bugzilla_Housecleaning_Processes), this enhancement/defect is verified/closed by the Project Lead since this enhancement/defect has been resolved and unverified for more than 1 year and considered to be fixed. If this enhancement/defect is still unresolved and reproducible in the latest TPTP release (http://www.eclipse.org/tptp/home/downloads/), please re-open.