[id='enabling-jmx-port_{context}']
= Enabling JMX remote ports
Provide unique remote JMX ports to expose {brandname} MBeans through connections in JMXServiceURL format.

//Server Guide
ifdef::remote_caches[]
[NOTE]
====
{brandname} Server does not expose JMX remotely via the single port endpoint.
If you want to remotely access {brandname} Server via JMX you must enable a remote port.
====
endif::remote_caches[]

You can enable remote JMX ports using one of the following approaches:

* Enable remote JMX ports that require authentication to one of the {brandname} Server security realms.
* Enable remote JMX ports manually using the standard Java management configuration options.

.Prerequisites
* For remote JMX with authentication, define JMX specific user roles using the default security realm.
Users must have `controlRole` with read/write access or the `monitorRole` with read-only access to access any JMX resources.
{brandname} automatically maps global `ADMIN` and `MONITOR` permissions to the JMX `controlRole` and `monitorRole` roles.

.Procedure
Start {brandname} Server with a remote JMX port enabled using one of the following ways:

* Enable remote JMX through port `9999`.
+
[source,options="nowrap",subs=attributes+]
----
bin/server.sh --jmx 9999
----
+
[WARNING]
====
Using remote JMX with SSL disabled is not intended for production environments.
====

* Pass the following system properties to {brandname} Server at startup.
+
[source,options="nowrap",subs=attributes+]
----
bin/server.sh -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
----
+
[WARNING]
====
Enabling remote JMX with no authentication or SSL is not secure and not recommended in any environment.
Disabling authentication and SSL allows unauthorized users to connect to your server and access the data hosted there.
====

[role="_additional-resources"]
.Additional resources
* link:{server_docs}#creating-security-realms_security-realms[Creating security realms]
