Skip to content

Commit 70d5c8a

Browse files
committed
JAVA-613: Added support for host, port, and local port to JMX connection pool mbean
1 parent c9d8910 commit 70d5c8a

File tree

4 files changed

+31
-3
lines changed

4 files changed

+31
-3
lines changed

src/main/com/mongodb/DBPort.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,10 @@ OutMessage getOutMessageBeingProcessed() {
269269
return _activeOutMessage;
270270
}
271271

272+
int getLocalPort() {
273+
return _socket != null ? _socket.getLocalPort() : -1;
274+
}
275+
272276
/**
273277
* closes the underlying connection and streams
274278
*/

src/main/com/mongodb/DBPortPool.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,28 @@ public MongoConnection[] getInUseConnections() {
4040
if (!_avail.contains(port)) {
4141
OutMessage curOutMessage = port.getOutMessageBeingProcessed();
4242
if (curOutMessage != null) {
43-
connectionList.add(new MongoConnection(curOutMessage.getNamespace(),
43+
connectionList.add(new MongoConnection(port.getLocalPort(), curOutMessage.getNamespace(),
4444
curOutMessage.getOpCode(),
4545
curOutMessage.getQuery() != null ? curOutMessage.getQuery().toString() : null));
46+
} else {
47+
connectionList.add(new MongoConnection(port.getLocalPort()));
4648
}
4749
}
4850
}
4951
}
5052
return connectionList.toArray(new MongoConnection[connectionList.size()]);
5153
}
5254

55+
@Override
56+
public String getHost() {
57+
return _addr.getHost();
58+
}
59+
60+
@Override
61+
public int getPort() {
62+
return _addr.getPort();
63+
}
64+
5365
static class Holder {
5466

5567
Holder( MongoOptions options ){

src/main/com/mongodb/MongoConnection.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,17 @@
1717

1818
public class MongoConnection {
1919

20-
public MongoConnection(final String namespace, final OutMessage.OpCode opCode, final String query) {
20+
public MongoConnection(final int localPort, final String namespace, final OutMessage.OpCode opCode, final String query) {
21+
this.localPort = localPort;
2122
this.namespace = namespace;
2223
this.opCode = opCode;
2324
this.query = query;
2425
}
2526

27+
public MongoConnection(final int localPort) {
28+
this(localPort, null, null, null);
29+
}
30+
2631
public String getNamespace() {
2732
return namespace;
2833
}
@@ -35,8 +40,13 @@ public String getQuery() {
3540
return query;
3641
}
3742

43+
public int getLocalPort() {
44+
return localPort;
45+
}
46+
47+
3848
private final String namespace;
3949
private final OutMessage.OpCode opCode;
4050
private final String query;
41-
51+
private final int localPort;
4252
}

src/main/com/mongodb/MongoConnectionPoolMXBean.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,6 @@
2020

2121
public interface MongoConnectionPoolMXBean extends SimplePoolMXBean {
2222
public MongoConnection[] getInUseConnections();
23+
public String getHost();
24+
public int getPort();
2325
}

0 commit comments

Comments
 (0)