matheusmessora / javamelody

Automatically exported from code.google.com/p/javamelody
0 stars 0 forks source link

Missing support for IBM Liberty Profile #411

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run JavaMelody 1.50.0 on IBM Liberty Profile <=8.5.5.2

What is the expected output? What do you see instead?
-We expect JDBC-monitoring, but JavaMelody does not pick up the JNDI/data 
source of the Liberty Profile container.
-We expect less exceptions because of already closed stream when call to 
flushBuffer().

What version of the product are you using? On what application server, JDK,
operating system?
JavaMelody 1.50.0, IBM Liberty Profile 8.5.5.2, IBM JDK 7_21 (same version of 
oracle aswell)

Please provide any additional information below.
We have edited the source files of JavaMelody 1.50.0 with the changes in the 
attachment. Only a few methods edited so easy to diff with original source.

We hope this is enough information for the issue to be accepted.

Sincerely
John

Original issue reported on code.google.com by jahes...@gmail.com on 27 May 2014 at 12:22

Attachments:

GoogleCodeExporter commented 9 years ago
I will answer first about the exceptions in flushBuffer(), and that part was 
also reported in the users' group at:
https://groups.google.com/d/topic/javamelody/kX31sRTFrHE/discussion

As I said in the group for the exceptions in flushBuffer():
I think that it is either an issue in IBM Liberty Profile or an issue in Apache 
CXF. Note that it is reproduced only in IBM Liberty Profile, and not in other 
app servers and not even in IBM Full Profile 8.5.0.
The issue is that L.P. does not accept that flush is called on an already 
closed stream, but Apache CXF closes stream and flushes response.
I suggest that you contact your IBM support.

For information:
1) an important part of your stack-trace is
Caused by: java.io.IOException: Stream is closed
       at com.ibm.wsspi.http.HttpOutputStream.validate(HttpOutputStream.java:187) ~[na:na]
       at com.ibm.wsspi.http.HttpOutputStream.flush(HttpOutputStream.java:555) ~[na:na]
       at com.ibm.ws.webcontainer.osgi.response.WCOutputStream.flush(WCOutputStream.java:213) ~[na:na]
       at net.bull.javamelody.FilterServletOutputStream.flush(FilterServletOutputStream.java:52) ~[na:1.47.0]
       at net.bull.javamelody.FilterServletResponseWrapper.flushBuffer(FilterServletResponseWrapper.java:146) ~[na:1.47.0]
       at org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.close(AbstractHTTPDestination.java:729) ~[na:2.7.6]

2) See the CXF v2.7.10 code at
http://grepcode.com/file/repo1.maven.org/maven2/org.apache.cxf/cxf-rt-transports
-http/2.7.10/org/apache/cxf/transport/http/AbstractHTTPDestination.java#Abstract
HTTPDestination.WrappedOutputStream.close%28%29

Original comment by evernat@free.fr on 7 Jun 2014 at 9:07

GoogleCodeExporter commented 9 years ago
For the HtmlJavaInformationsReport change, in writeServerInfoAndContextPath, 
you have added:
    if (serverInfo.contains("SMF WebContainer")) {
        serverInfo = "Websphere Liberty Profile";
        applicationServerIconName = "ibm.png";
    }

It's not the goal of javamelody to change the name (server info) of the 
application server from "SMF WebContainer" to "Websphere Liberty Profile" and 
to say that this comes from IBM.
It should be the goal of IBM to know how they have named the application server 
and to spell it correctly.
You can again contact your IBM support.

That part will not be merged.

Original comment by evernat@free.fr on 7 Jun 2014 at 10:31

GoogleCodeExporter commented 9 years ago
The files which you have given in this issue are not diff files and are for a 
previous version of javamelody.
Not stopping at that, I think that I have successfully merged your patch in my 
IDE. So I have extracted a patch as a diff file (attached) for the current 
version of javamelody. This patch includes changes for JDBC monitoring and for 
exceptions because of closed stream.

And I have also added 3 TODO comments about probably unnecessary changes. I 
suggest that you read this TODO comments and test new javamelody changes in 
your liberty profile server. Then please send a new patch/diff file, if my TODO 
comments are right.

Original comment by evernat@free.fr on 9 Jun 2014 at 10:51

Attachments:

GoogleCodeExporter commented 9 years ago
Given that:
- the exceptions on closed stream is an IBM liberty profile issue, which should 
be fixed by IBM (we don't want to swallow exceptions just because of them), and 
merging the JDBC monitoring changes from the patch is useless if IBM does not 
fix exceptions first,
- the server info is also an IBM liberty profile issue,
- and there are TODO comments in the patch, unanswered at the moment,
then the patch can't be merged for now. So changing priority of the issue to 
"low".

While waiting for IBM fixes and for your new patch answering TODO comments, 
other users can use the attached "issue411_v0.1.patch" file to merge locally 
with sources and recompile javamelody 
(https://code.google.com/p/javamelody/wiki/DevGuide). The result is of course 
not supported here, because of TODO comments.

Original comment by evernat@free.fr on 9 Jun 2014 at 11:07