If someone wants to deploy an EAP cluster in EC2 and has a deployment which uses clustered EJBs, there is some extra configuration required if remote EJB clients are going to be used.
EC2 instances have separate private and public IPs and we can expect that the remote EJB clients will connect to EAP by connecting to its public IP address. When they do, the Remoting subsystem handles the connection and returns its cluster view to the client, so that it can connect to other cluster members in case some members go down. This cluster view, however, contains the private IP addresses of the cluster members (because those are the addresses that the nodes are bound to), so the client won't be able to connect to them and will throw an exception when it attempts to do so.
This can be solved by configuring client-mappings for the Remoting socket binding (in EAP 7, Remoting uses the http socket binding by default):
/socket-binding-group=standard-sockets/socket-binding=http:write-attribute(name=client-mappings,value=[{ "destination-address" => "NODE_PUBLIC_ADDRESS", "destination-port" => "8080" }])
The problem is similar to problems with messaging and webservices subsystems which are already documented.
Let me know in case you have questions.
- is cloned by
-
JBEAP-6782 [7.1] Documentation: EC2 guide - special HA Remoting configuration needed
- Closed
- relates to
-
JBEAP-6318 Documentation: Azure Guide - extra configuration needed for a few subsystems
- Closed