From a logical point of view, separate domains or the coexistence of several applications in the same domain are similar (you can configure HTTP ports, etc.).
The main difference is that in one case you have one JVM that runs all applications, and in the other case you have several JVMs. This can make a big difference. On one of our client sites, we initially deployed everything in one domain / JMV, but finally decided to split the deployment in multiple domains / JVM, because it gave better performance, especially garbage collection time. So yes, applications can intervene, but very indirectly.
In addition, Java EE applications cannot really be stopped or started, so the domain is the smallest unit you can turn on and off. In some cases, this is convenient.
Finally, there are things that are per-domain, like an app. server log levels, timer persistence, etc. If you need two applications with different settings for such things, you will need two domains.
source share