The "DSEBuiltin::ExceptionResourceUnavailable" is a generic startup error when a JVM or platform port-conflict, lack of memory, or permissions problem occurs. To find the specific error, open the file:
{node}/logs/bootstrap/*.errand other
bootstrap/ folder log files in a text editor. The '{
node}' is the node directory created by '
epadmin install node'. The most common cause is a TCP port conflict, but other causes are possible. This article discusses how to resolve port conflicts. Please search other references for other causes.
Port Conflicts
If the issue is an inability to acquire a required port, this is most often caused when starting multiple nodes on the same system with similar configuration files and one node has acquired a TCP port that a node started later also needs. In the event that created the above error, an explicitly specified TCP port was the same for both nodes and was owned by the first node started.
Ports conflicts for ports defined in the
StreamBaseEngine HOCON result in this error. For example, you may see this configuration for JMX:
jvmArgs =
[
"-Dcom.sun.management.jmxremote.port=9999"
"-Dcom.sun.management.jmxremote.ssl=false"
"-Dcom.sun.management.jmxremote.authenticate=false"
]
In this case when port 9999 is already in use node startup fails with this error.
Ports defined in the
NodeDeploy HOCON result in a "bind" error during installation and not this exception at startup. Ports defined in adapter settings or configuration results in adapter errors and not this exception.
You may parameterize port values to avoid a conflict by using a substitution as so:
"-Dcom.sun.management.jmxremote.port=${JMX_PORT:-9999}"
Install each application instance using the substitution (example):
epadmin --hostname={host} --adminport={port} install node --substitutions="JMX_PORT=9991"