[
https://issues.jboss.org/browse/REMJMX-105?page=com.atlassian.jira.plugin...
]
Andy G updated REMJMX-105:
--------------------------
Description:
We see the memory leak with the RemoteConnectionChannel.java when we try to use the JBOSS
mbean server connection in web application.
We initialize the JMX connection factory as below
{code:borderStyle=solid}
try {
this.jmxConnector = JMXConnectorFactory.connect(serviceURL, auth);
if (this.jmxConnector != null) {
MBeanServerConnection mbs = this.jmxConnector.getMBeanServerConnection();
if (mbs != null) {
this.mbs = mbs;
}
}
} catch (IOException e) {
connected = false;
}
{code}
Then use mbean server connection after scheduled interval say 60 secs to read the mbeans
from above mbean server connection.
{code:borderStyle=solid}
private Map<String, Object> getAttributesForMBean(ObjectName objectName,
List<String> attributeNames) {
HashMap<String, Object> attributeMap = new HashMap<String,
Object>();
for (String attributeName : attributeNames) {
Object attributeValue = null;
if (this.hasAttribute(objectName, attributeName)) {
try {
attributeValue = this.mbs.getAttribute(objectName, attributeName);
} catch (Exception e) {
logger.warn("In getAttributes(), for " + objectName +
": " , e);
}
}
attributeMap.put(attributeName, attributeValue);
}
return attributeMap;
}
{code}
We see that RemoteConnectionChannel keeps accumulating XnioWorkerTaskPool and leads to
memory leak.
was:
We see the memory leak with the RemoteConnectionChannel.java when we try to use the JBOSS
mbean server connection in web application.
We initialize the JMX connection factory as below
{code:title=Bar.java|borderStyle=solid}
try {
this.jmxConnector = JMXConnectorFactory.connect(serviceURL, auth);
if (this.jmxConnector != null) {
MBeanServerConnection mbs = this.jmxConnector.getMBeanServerConnection();
if (mbs != null) {
this.mbs = mbs;
}
}
} catch (IOException e) {
connected = false;
}
{code}
Then use mbean server connection after scheduled interval say 60 secs to read the mbeans
from above mbean server connection.
private Map<String, Object> getAttributesForMBean(ObjectName objectName,
List<String> attributeNames) {
HashMap<String, Object> attributeMap = new HashMap<String,
Object>();
for (String attributeName : attributeNames) {
Object attributeValue = null;
if (this.hasAttribute(objectName, attributeName)) {
try {
attributeValue = this.mbs.getAttribute(objectName, attributeName);
} catch (Exception e) {
logger.warn("In getAttributes(), for " + objectName +
": " , e);
}
}
attributeMap.put(attributeName, attributeValue);
}
return attributeMap;
}
We see that RemoteConnectionChannel keeps accumulating XnioWorkerTaskPool and leads to
memory leak.
Memory leak with http remoting jmx
----------------------------------
Key: REMJMX-105
URL:
https://issues.jboss.org/browse/REMJMX-105
Project: Remoting JMX
Issue Type: Bug
Components: Connection
Affects Versions: 2.0.1.Final
Reporter: Andy G
Assignee: Darran Lofthouse
Attachments: screenshot-1.png
We see the memory leak with the RemoteConnectionChannel.java when we try to use the JBOSS
mbean server connection in web application.
We initialize the JMX connection factory as below
{code:borderStyle=solid}
try {
this.jmxConnector = JMXConnectorFactory.connect(serviceURL, auth);
if (this.jmxConnector != null) {
MBeanServerConnection mbs =
this.jmxConnector.getMBeanServerConnection();
if (mbs != null) {
this.mbs = mbs;
}
}
} catch (IOException e) {
connected = false;
}
{code}
Then use mbean server connection after scheduled interval say 60 secs to read the mbeans
from above mbean server connection.
{code:borderStyle=solid}
private Map<String, Object> getAttributesForMBean(ObjectName objectName,
List<String> attributeNames) {
HashMap<String, Object> attributeMap = new HashMap<String,
Object>();
for (String attributeName : attributeNames) {
Object attributeValue = null;
if (this.hasAttribute(objectName, attributeName)) {
try {
attributeValue = this.mbs.getAttribute(objectName, attributeName);
} catch (Exception e) {
logger.warn("In getAttributes(), for " + objectName +
": " , e);
}
}
attributeMap.put(attributeName, attributeValue);
}
return attributeMap;
}
{code}
We see that RemoteConnectionChannel keeps accumulating XnioWorkerTaskPool and leads to
memory leak.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)