Start & Stop Issues
Unable to start Petals: "Cannot bind to URL [rmi://xx.yy.zz.tt:7700/jmxRmiConnector]"
This following error message can occurs in different use case:
sample-0 2013/04/18 09:34:07,473 GMT+0200 SEVERE [Petals.Communication.RMIConnector] : Failed to start JMX RMI connector service
java.io.IOException: Cannot bind to URL [rmi://localhost:7700/jmxRmiConnector]
The known use cases for which the problem can occurs are:
- a topology containing only one node,
- a topology containing several nodes
Topology with only one node
Operating system: All
Symptoms:
- You have configured your topology with only one Petals node declared as master,
- You try to start your Petals node for the first time and you get the following error message:
___ ____ __ ___ __ ____ ____ ____ ___ / _ \ / __// /_ / _ | / / / __/ / __// __// _ ) / ___// _/ / __// __ | / /__ _\ \ / _/ _\ \ / _ | /_/ /___/ \__//_/ |_|/____//___/ /___//___//____/ Initializing server ... Starting server ... sample-0 2013/04/18 09:34:07,473 GMT+0200 SEVERE [Petals.Communication.RMIConnector] : Failed to start JMX RMI connector service java.io.IOException: Cannot bind to URL [rmi://localhost:7700/jmxRmiConnector]: javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: java.net.SocketTimeoutException: Read timed out] at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:818) at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:431) at org.ow2.petals.microkernel.communication.jmx.rmi.RMIConnector.start(RMIConnector.java:138) at org.ow2.petals.microkernel.communication.jmx.rmi.RMIConnector.startFc(RMIConnector.java) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcContentState(BasicControllerMixin.java:8128) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcStarted(BasicControllerMixin.java:8068) at org.objectweb.fractal.julia.generated.C18c4c884_0.setFcStarted(INTERFACE[LifeCycleCoordinator]) at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc$$0(BasicControllerMixin.java:4097) at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc(BasicControllerMixin.java:5095) at org.objectweb.fractal.julia.generated.C18c4c884_0.startFc(INTERFACE[LifeCycleCoordinator]) at org.ow2.petals.microkernel.api.server.FractalHelper.startComponent(FractalHelper.java:341) at org.ow2.petals.microkernel.server.PetalsServerImpl.startPetalsComposite(PetalsServerImpl.java:380) at org.ow2.petals.microkernel.server.PetalsServerImpl.start(PetalsServerImpl.java:183) at org.ow2.petals.launcher.PetalsLauncher.launchPetalsServer(PetalsLauncher.java:157) at org.ow2.petals.launcher.PetalsLauncher.main(PetalsLauncher.java:396)
Solutions/Explanations:
The name of the machine on which Petals ESB runs cannot be correctly determined. The main error source is an invalid entry in your DNS configuration or in your file etc/hosts. The name of your machine is not associated to the correct IP address. Setting the right IP address to your machine name should solve the problem.
Topology with several nodes
Operating system: All
Symptoms:
- You have configured your topology with several Petals nodes declared as slave,
- Your Petals node declared as master starts correctly,
- You try to start your Petals slave for the first time with this distributed topology,
- You get the following error message:
0 2013/02/18 10:53:09,502 GMT+0100 SEVERE [Petals.Communication.RMIConnector] : Failed to start JMX RMI connector service java.io.IOException: Cannot bind to URL [rmi://10.10.124.57:7700/jmxRmiConnector]: javax.naming.NoPermissionException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.AccessException: Registry.Registry.bind disallowed; origin /10.10.124.47 is non-local host] at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:804) at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:417) at org.ow2.petals.communication.jmx.rmi.RMIConnector.start(RMIConnector.java:148) at org.ow2.petals.communication.jmx.rmi.RMIConnector.startFc(RMIConnector.java) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcContentState(BasicControllerMixin.java:8128) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcStarted(BasicControllerMixin.java:8068) at org.objectweb.fractal.julia.generated.C18c4c884_0.setFcStarted(INTERFACE[LifeCycleCoordinator]) at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc$$0(BasicControllerMixin.java:4097) at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc(BasicControllerMixin.java:5095) at org.objectweb.fractal.julia.generated.C18c4c884_0.startFc(INTERFACE[LifeCycleCoordinator]) at org.ow2.petals.kernel.server.FractalHelper.startComponent(FractalHelper.java:354) at org.ow2.petals.kernel.server.PetalsServerImpl.startPetalsComposite(PetalsServerImpl.java:459) at org.ow2.petals.kernel.server.PetalsServerImpl.start(PetalsServerImpl.java:176) at org.ow2.petals.launcher.AbstractLauncher.start(AbstractLauncher.java:190) at org.ow2.petals.launcher.AbstractLauncher.launch(AbstractLauncher.java:147) at org.ow2.petals.distribution.platform.Main.main(Main.java:42)
Solutions/Explanations:
You forgot to configure the Petals container name in your $PETALS_HOME/conf/server.properties. The default Petals container name '0' is used and it is associated to Petals ESB master node that is configured in your topology with a different IP address. This address is not local to your Petals slave node.