JBoss Interview Questions and Answers
Freshers / Beginner level questions & answers
Ques 1. What is JBoss?
JBoss is a popular open source application server based on Java EE technology. Being Java EE based, the JBoss supports cross-platform java applications. It was embedded with Apache Tomcat web server. It runs under any JVM of 1.3 or later versions. JBoss supports JNDI, Servlet/JSP (Tomcat or Jetty), EJB, JTS/JTA, JCA, JMS, Clustering (JavaGroups), Web Services (Axis), and IIOP integration (JacORB).
Ques 2. What are needed to set-up a cluster with JBoss?
Basically starting JBoss with the 'all' configuration contains everything needed for clustering:
It has all the libraries for clustering:
- JGroups.jar, jboss-cache.jar
- Clustered beans (cluster-service.xml)
- HA-JNDI
- HTTP session replications (tc5-cluster-service.xml)
- Farming
- HA-JMS
Ques 3. Can I run Seam with JDK 1.4 and earlier?
No, Seam only works on JDK 5.0 and above. It uses annotations and other JDK 5.0 features.
Intermediate / 1 to 5 years experienced level questions & answers
Ques 4. How do you monitor JBoss and detect the bottleneck of an application?
The first step is to measure the different components of your app to see where the degradation is. Is it an external resource (database, message server, etc.) or internal? Where is the app spending all its time?
Experienced / Expert level questions & answers
Ques 5. How to build clusters in JBoss?
Here is a nutshell summary from the example given for quick start:
Execute from your jboss bin directory:
$ ./run.sh -c all -g DocsPartition -u 239.255.100.100 -b 192.168.0.101 -Djboss.messaging.ServerPeerID=1
- ./run.sh = the executable
- -c all = use server in jboss_home/server/all directory
- -g DocsPartition = this is the partition name, use whatever but should be the same across nodes
- -u 239.255.100.100 = this is the multicast address, ususally just pick anything in the 239.255.x.y range and you should be ok
- -b 192.168.0.101 = this is the ip of the machine the node is on
- -Djboss.messaging.ServerPeerID=1 = this is the peerid, it must be unique for each node.
Ques 6. What's JBoss cache in short?
JBossCache enables easy distribution of datasets across your computing environments. It is based on JGroups and enables clustering and high availability of that data. You may choose to distribute the data with JBoss Messaging to move it where it is needed for computation or event-based programming.
Ques 7. Which component handles cluster communication in JBoss?
The JGroups framework provides services to enable peer-to-peer communications between nodes in a cluster. It is built on top a stack of network communication protocols that provide transport, discovery, reliability and failure detection, and cluster membership management services.
Ques 8. Is it possible to put a JBoss server instance into multiple cluster at the same time?
It is technically possible to put a JBoss server instance into multiple clusters at the same time, this practice is generally not recommended, as it increases the management complexity.
Ques 9. What's JBoss JBPM?
JBoss JBPM is a platform for process languages. At the base there is a java library to define and execute graphs. The actual process constructs like e.g. send email, user task and update database are defined on top of this. Every process language is made up of a set of such process constructs. And that is what is pluggable in this base library. On top of the JBoss jBPM base library, there are implemented several process languages as a set of process constructs: jPDL, BPEL and SEAM pageflow:
- jPDL is a process language with a clean interface to Java and very sophisticated task management capabilities. There is no standard for Java process languages, so it is proprietary.
- BPEL is a service orchestration language. As said before, in BPEL, you can write new services as a function of other services. This is typically a component of an Enterprise Service Bus (ESB).
- SEAM pageflow is a language that allows for the graphically define the navigation between pages in a SEAM web application.
Ques 10. What is about Seam?
- Built on the standards JavaServer Faces and EJB 3.0, JBoss Seam unifies component and programming models and delivers a consistent and powerful framework for rapid creation of web applications with Java EE 5.0.
- Seam simplifies web application development and enables new functionality that was difficult to implement by hand before, such as stateful conversations, multi-window operation, and handling concurrent fine-grained AJAX requests.
- Seam also unifies and integrates popular open source technologies like Facelets, Hibernate, iText, and Lucene.
Ques 11. Does Seam run on other application servers besides JBoss?
Seam runs beautifully on other application servers - just like everything else the Hibernate team does, this is not a JBoss-only thing.
Ques 12. What version of JBoss AS do I need to run Seam?
- For Seam 1.3: Seam was developed against JBoss 4.2. Seam can still be run against JBoss 4.0. The seam documentation contains instructions for configuring JBoss 4.0.
- rnFor Seam 1.2: Since Seam requires the latest edition of EJB3, you need to install JBoss AS from the latest JEMS installer. Make sure that you select the "ejb3" or "ejb3+clustering" profile to include EJB3 support. Also, the jboss-seam.jar library file from the Seam distribution must be included in each Seam application you deploy. Refer to examples in Seam distribution (inside the examples directory) to see how to build and package Seam applications.
Ques 13. Can I run Seam outside of JBoss AS?
Yes, you can run Seam applications in plain Tomcat 5.5+ or in the Sun GlassFish application server.
Ques 14. Can I run Seam in a J2EE environment?
Yes, as of Seam 1.1, you can use Seam in any J2EE application server, with one caveat: you will not be able to use EJB 3.0 session beans. However, you can use either Hibernate or JPA for persistence, and you can use Seam JavaBean components instead of session beans.
Most helpful rated by users:
- What are needed to set-up a cluster with JBoss?
- Which component handles cluster communication in JBoss?
- Is it possible to put a JBoss server instance into multiple cluster at the same time?
- What is JBoss?
- How to build clusters in JBoss?