NetworkServerMBean
class NetworkServerMBeanImpl extends java.lang.Object implements NetworkServerMBean
This is an implementation of the
org.apache.derby.mbeans.drda.NetworkServerMBean
,
providing management and monitoring capabilities related to the Network
Server through JMX.
This bean uses callbacks to the NetworkServerControlImpl class instead of invoking NetworkServerControl, as it is the impl class that contains most of the information we want to expose via JMX.
NetworkServerMBean
Modifier and Type | Field | Description |
---|---|---|
private static SystemPermission |
CONTROL |
|
private long |
lastReceiveBytes |
|
private long |
lastReceiveTime |
|
private long |
lastSentBytes |
|
private long |
lastSentTime |
|
private static SystemPermission |
MONITOR |
|
private int |
receiveResult |
|
private int |
sentResult |
|
private NetworkServerControlImpl |
server |
|
private long |
startTime |
Constructor | Description |
---|---|
NetworkServerMBeanImpl(NetworkServerControlImpl nsc) |
Modifier and Type | Method | Description |
---|---|---|
private static void |
checkControl() |
Ensure the caller has permission to control the network server.
|
private static void |
checkMonitor() |
Ensure the caller has permission to monitor the network server.
|
private static void |
checkPermission(SystemPermission permission) |
|
int |
getAccumulatedConnectionCount() |
Gets the accumulated number of connections.
|
int |
getActiveConnectionCount() |
Gets the number of currently active connections.
|
long |
getBytesReceived() |
Gets the total number of bytes read by the server since it was started.
|
int |
getBytesReceivedPerSecond() |
Gets the number of bytes received per second by the Network
Server.
|
long |
getBytesSent() |
Gets the total number of bytes written by the server since it was
started.
|
int |
getBytesSentPerSecond() |
Gets the number of bytes sent per second by the Network Server.
|
int |
getConnectionCount() |
Gets the total number of current connections (waiting or active) to the
Network Server.
|
int |
getConnectionThreadPoolSize() |
Get the size of the connection thread pool.
|
java.lang.String |
getDrdaHost() |
Gets the network interface address on which the Network Server is
listening.
|
boolean |
getDrdaKeepAlive() |
Reports whether or not the Derby Network Server will send keep-alive
probes and attempt to clean up connections for disconnected clients (the
value of the
derby.drda.keepAlive property). |
int |
getDrdaMaxThreads() |
Reports the maximum number of client connection threads the Network
Server will allocate at any given time.
|
int |
getDrdaPortNumber() |
Gets the port number on which the Network Server is listening for client
connections.
|
java.lang.String |
getDrdaSecurityMechanism() |
The Derby security mechanism required by the Network Server for all
client connections.
|
java.lang.String |
getDrdaSslMode() |
Reports whether client connections must be encrypted using Secure
Sockets Layer (SSL), and whether certificate based peer authentication
is enabled.
|
int |
getDrdaStreamOutBufferSize() |
The size of the buffer used for streaming BLOB and CLOB from server to
client.
|
int |
getDrdaTimeSlice() |
If the server property
derby.drda.maxThreads is set to a
non-zero value, this is the number of milliseconds that each client
connection will actively use in the Network Server before yielding to
another connection. |
boolean |
getDrdaTraceAll() |
Whether server-side tracing is enabled for all client connections
(sessions).
|
java.lang.String |
getDrdaTraceDirectory() |
Indicates the location of tracing files on the server host, if server
tracing has been enabled.
|
private java.lang.String |
getServerProperty(java.lang.String property) |
Gets the value of a specific network server setting (property).
|
long |
getStartTime() |
Return start time.
|
long |
getUptime() |
Return time server has been running.
|
int |
getWaitingConnectionCount() |
Gets the number of currently waiting connections.
|
void |
ping() |
Pings the Network Server.
|
private NetworkServerControlImpl server
private final long startTime
private static final SystemPermission CONTROL
private static final SystemPermission MONITOR
private long lastReceiveTime
private long lastReceiveBytes
private int receiveResult
private long lastSentTime
private long lastSentBytes
private int sentResult
NetworkServerMBeanImpl(NetworkServerControlImpl nsc)
private static void checkControl()
private static void checkMonitor()
private static void checkPermission(SystemPermission permission)
public java.lang.String getDrdaHost()
NetworkServerMBean
Gets the network interface address on which the Network Server is
listening. This corresponds to the value of the
derby.drda.host
property.
For example, the value "localhost
" means that the
Network Server is listening on the local loopback interface only.
The special value "0.0.0.0
" (IPv4 environments only)
represents the "unspecified address" - also known as the anylocal or
wildcard address. In this context this means that the server is
listening on all network interfaces (and may thus be able to see
connections from both the local host as well as remote hosts, depending
on which network interfaces are available).
Requires SystemPermission("server", "control")
if a security
manager is installed.
getDrdaHost
in interface NetworkServerMBean
derby.drda.host
)public boolean getDrdaKeepAlive()
NetworkServerMBean
Reports whether or not the Derby Network Server will send keep-alive
probes and attempt to clean up connections for disconnected clients (the
value of the derby.drda.keepAlive
property).
If true
, a keep-alive probe is sent to the client if a "long
time" (by default, more than two hours) passes with no other data being
sent or received. This will detect and clean up connections for clients
on powered-off machines or clients that have disconnected unexpectedly.
If false
, Derby will not attempt to clean up connections from
disconnected clients, and will not send keep-alive probes.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
See also the documentation for the property derby.drda.keepAlive
in the Derby Server and Administration Guide, section
Managing the Derby Network Server, subsection Setting
Network Server Properties, subsubsection derby.drda.keepAlive
property.
getDrdaKeepAlive
in interface NetworkServerMBean
true
if Derby Network Server will send keep-alive
probes and attempt to clean up connections for disconnected
clients (derby.drda.keepAlive
)public int getDrdaMaxThreads()
NetworkServerMBean
Reports the maximum number of client connection threads the Network
Server will allocate at any given time. This corresponds to the
derby.drda.maxThreads
property.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getDrdaMaxThreads
in interface NetworkServerMBean
derby.drda.maxThreads
)public int getDrdaPortNumber()
NetworkServerMBean
Gets the port number on which the Network Server is listening for client
connections. This corresponds to the value of the
derby.drda.portNumber
Network Server setting.
Requires SystemPermission("server", "control")
if a security
manager is installed.
getDrdaPortNumber
in interface NetworkServerMBean
public java.lang.String getDrdaSecurityMechanism()
NetworkServerMBean
The Derby security mechanism required by the Network Server for all
client connections. This corresponds to the value of the
derby.drda.securityMechanism
property on the server.
If not set, the empty String will be returned, which means that the Network Server accepts any connection which uses a valid security mechanism.
For a list of valid security mechanisms, refer to the
documentation for the derby.drda.securityMechanism
property
in the Derby Server and Administration Guide.
Requires SystemPermission("server", "control")
if a security
manager is installed.
getDrdaSecurityMechanism
in interface NetworkServerMBean
derby.drda.securityMechanism
)public java.lang.String getDrdaSslMode()
NetworkServerMBean
Reports whether client connections must be encrypted using Secure
Sockets Layer (SSL), and whether certificate based peer authentication
is enabled. Refers to the derby.drda.sslMode
property.
Peer authentication means that the other side of the SSL connection is authenticated based on a trusted certificate installed locally.
The value returned is one of "off
" (no SSL encryption),
"basic
" (SSL encryption, no peer authentication) and
"peerAuthentication
" (SSL encryption and peer
authentication). Refer to the Derby Server and Administration
Guide for more details.
Requires SystemPermission("server", "control")
if a security
manager is installed.
getDrdaSslMode
in interface NetworkServerMBean
derby.drda.sslMode
)public int getDrdaStreamOutBufferSize()
NetworkServerMBean
The size of the buffer used for streaming BLOB and CLOB from server to
client. Refers to the derby.drda.streamOutBufferSize
property.
This setting may improve streaming performance when the default sizes of packets being sent are significantly smaller than the maximum allowed packet size in the network.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getDrdaStreamOutBufferSize
in interface NetworkServerMBean
derby.drda.streamOutBufferSize
)public int getDrdaTimeSlice()
NetworkServerMBean
If the server property derby.drda.maxThreads
is set to a
non-zero value, this is the number of milliseconds that each client
connection will actively use in the Network Server before yielding to
another connection. If this value is 0, a waiting connection will become
active once a currently active connection is closed.
Refers to the derby.drda.timeSlice
server property.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getDrdaTimeSlice
in interface NetworkServerMBean
derby.drda.timeSlice
)NetworkServerMBean.getDrdaMaxThreads()
public boolean getDrdaTraceAll()
NetworkServerMBean
Whether server-side tracing is enabled for all client connections
(sessions). Refers to the derby.drda.traceAll
server
property.
Tracing may for example be useful when providing technical support information. The Network Server also supports tracing for individual connections (sessions), see the Derby Server and Administration Guide ("Controlling tracing by using the trace facility") for details.
When tracing is enabled, tracing information from each client connection will be written to a separate trace file.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getDrdaTraceAll
in interface NetworkServerMBean
derby.drda.traceAll
)NetworkServerMBean.getDrdaTraceDirectory()
public java.lang.String getDrdaTraceDirectory()
NetworkServerMBean
Indicates the location of tracing files on the server host, if server tracing has been enabled.
If the server setting derby.drda.traceDirectory
is set,
its value will be returned. Otherwise, the Network Server's default
values will be taken into account when producing the result.
Requires SystemPermission("server", "control")
if a security
manager is installed.
getDrdaTraceDirectory
in interface NetworkServerMBean
NetworkServerMBean.getDrdaTraceAll()
public int getConnectionCount()
NetworkServerMBean
Gets the total number of current connections (waiting or active) to the Network Server.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getConnectionCount
in interface NetworkServerMBean
NetworkServerMBean.getActiveConnectionCount()
,
NetworkServerMBean.getWaitingConnectionCount()
public int getActiveConnectionCount()
NetworkServerMBean
Gets the number of currently active connections. All connections are
active if the DrdaMaxThreads attribute (derby.drda.maxThreads
property) is 0.
If DrdaMaxThreads is > 0 and DrdaTimeSlice is 0, connections remain active until they are closed. If there are more than DrdaMaxThreads connections, inactive connections will be waiting for some active connection to close. The connection request will return when the connection becomes active.
If DrdaMaxThreads is > 0 and DrdaTimeSlice > 0, connections will be alternating beetween active and waiting according to Derby's time slicing algorithm.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getActiveConnectionCount
in interface NetworkServerMBean
NetworkServerMBean.getDrdaMaxThreads()
,
NetworkServerMBean.getDrdaTimeSlice()
,
NetworkServerMBean.getWaitingConnectionCount()
public int getWaitingConnectionCount()
NetworkServerMBean
Gets the number of currently waiting connections. This number will always be 0 if DrdaMaxThreads is 0. Otherwise, if the total number of connections is less than or equal to DrdaMaxThreads, then no connections are waiting.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getWaitingConnectionCount
in interface NetworkServerMBean
NetworkServerMBean.getActiveConnectionCount()
,
NetworkServerMBean.getDrdaMaxThreads()
,
NetworkServerMBean.getDrdaTimeSlice()
public int getConnectionThreadPoolSize()
NetworkServerMBean
Get the size of the connection thread pool. If DrdaMaxThreads
(derby.drda.maxThreads
) is set to a non-zero value, the size
of the thread pool will not exceed this value.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getConnectionThreadPoolSize
in interface NetworkServerMBean
NetworkServerMBean.getDrdaMaxThreads()
public int getAccumulatedConnectionCount()
NetworkServerMBean
Gets the accumulated number of connections. This includes all active and waiting connections since the Network Server was started. This number will not decrease as long as the Network Server is running.
Require SystemPermission("server", "monitor")
if a security
manager is installed.
getAccumulatedConnectionCount
in interface NetworkServerMBean
public long getBytesReceived()
NetworkServerMBean
Gets the total number of bytes read by the server since it was started.
Require SystemPermission("server", "monitor")
if a security
manager is installed.
getBytesReceived
in interface NetworkServerMBean
public long getBytesSent()
NetworkServerMBean
Gets the total number of bytes written by the server since it was started.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getBytesSent
in interface NetworkServerMBean
public int getBytesReceivedPerSecond()
NetworkServerMBean
Gets the number of bytes received per second by the Network Server. This number is calculated by taking into account the number of bytes received since the last calculation (or since MBean startup if it is the first time this attibute is being read).
The shortest interval measured is 1 second. This means that a new value will not be calculated unless there has been at least 1 second since the last calculation.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getBytesReceivedPerSecond
in interface NetworkServerMBean
public int getBytesSentPerSecond()
NetworkServerMBean
Gets the number of bytes sent per second by the Network Server. This number is calculated by taking into account the number of bytes sent since the last calculation (or since MBean startup if it is the first time this attibute is being read).
The shortest interval measured is 1 second. This means that a new value will not be calculated unless there has been at least 1 second since the last calculation.
Requires SystemPermission("server", "monitor")
if a security
manager is installed.
getBytesSentPerSecond
in interface NetworkServerMBean
public long getStartTime()
getStartTime
in interface NetworkServerMBean
System.currentTimeMillis()
public long getUptime()
getUptime
in interface NetworkServerMBean
NetworkServerMBean.getStartTime()
public void ping() throws java.lang.Exception
ping
in interface NetworkServerMBean
java.lang.Exception
- if the ping fails.NetworkServerMBean.ping()
private java.lang.String getServerProperty(java.lang.String property)
derby.drda.
and may be found in the
org.apache.derby.iapi.reference.Property class.property
- the name of the server propertyProperty
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.