Jboss Interview Questions And Answers Pdf
1. What Is Jta?
Answer: Java Transaction API (JTA) specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system: the resource manager, the application server, and the transactional applications.
The Javaâ„¢ Transaction API (JTA) allows applications to perform distributed transactions, that is, transactions that access and update data on two or more networked computer resources.
The Java Transaction API consists of three elements: a high-level application transaction demarcation interface, a high-level transaction manager interface intended for an application server, and a standard Java mapping of the X/Open XA protocol intended for a transactional resource manager.
2. What Are The Differences Between Ejb 3.0 And Ejb 2.0?
Answer: EJBs are now plain old Java objects (POJO) that expose regular business interfaces (POJI), and there is no requirement for home interfaces.
Use of metadata annotations, an extensible, metadata-driven, attribute-oriented framework that is used to generate Java code or XML deployment descriptors.
Removal of the requirement for specific interfaces and deployment descriptors (deployment descriptor information can be replaced by annotations).
Interceptor facility to invoke user methods at the invocation of business methods or at life cycle events.
Default values are used whenever possible.
Reduction in the requirements for usage of checked exception.
A complete new persistence model (based on the JPA standard), that supersedes EJB 2.x entity beans
3. What Version Of Jboss As Do do I need To Run Seam?
Answer:
For Seam 1.3: Seam was developed against JBoss 4.2. The seam can still be run against JBoss 4.0. The seam documentation contains instructions for configuring JBoss 4.0.
For 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.
4. Can I Run Seam Outside Of Jboss As?
Answer: Yes, you can run Seam applications in plain Tomcat 5.5+ or in the Sun GlassFish application server. To run Seam application in Tomcat, you need a number of additional library files and a few configuration files to bootstrap the JBoss EJB3 inside Tomcat.
5. Can I Run Seam In A J2ee Environment?
Answer: 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.
6. Where Can I Find Seam Examples And Documentation?
Answer: The source code and build script of all Seam example applications are included in the examples directory of the Seam distribution.
7. Is It True That Seam Only Works With Jsf?
Answer: Seam only supports JSF as a view framework at this time. We plan to support other web frameworks in the future. We like JSF because it is a component-based UI framework, which fits really well with Seam’s component-based approach to business objects and persistence objects. Seam made a major improvement to JSF by eliminating almost all XML configuration for backing beans — you can now define back beans from POJOs or EJB3 components using simple annotations.
We recommend you use Facelets, instead of JSP, with JSF. Facelets provide a powerful templating framework, better application performance, and allows us to write much simpler JSF pages. Please see the Seam booking example application for an example of how to use Facelets.
8. Can I Use Ajax With Seam?
Answer: Yes, Seam provides excellent support for AJAX. First, Seam supports the ICEfaces and Ajax4JSF Ajax component libraries for JSF. If you prefer a more “old fashioned” approach, Seam provides a complete JavaScript remoting framework which lets you call Seam components and subscribe to JMS topics directly from the client.
9. What are the different types of log levels that are used in logging services in JBoss?
Answer:
There are four different types of log levels that are used to show the services that are present inside the logging in JBoss. The log levels are as follows:
1. Debug: In this level, the file gets debugged for possible errors. This can either be automatic or manual as it doesn’t affect the file in any way.
2. Info: At this level, the complete detail information is provided about the process that is running in the background. It consists of details like name of the process, CPU usage, etc.
3. Warn: At this level, the warning that has come in the file that might hinder the performance on some systems are given and it is displayed with some critical signs to aware the user to see the warning and take necessary actions if required.
4. Error: At this level during the compilation of the error there are some errors shown that can be a syntactical error or logical errors. These errors have to be fixed before completing the compilation process.
10. What is meant by logging threshold in JBoss?
Answer: The logging threshold is given as INFO as it is a level on which all the informational messages, warning messages and error messages on the console are produced and shown, but not the debug messages. It is managed through the file as there is no threshold set for the server.log file. The generated logging messages will be stored in that section to provide all the information from one place. The log files are always checked in case of any errors that are produced due to some information on the debug messages that can help in tracking down the problem. The logging threshold allows the debug messages to be displayed with the complete information about the log files. The logging limits are set for individual categories.
11. What are the main directories provided in JBoss?
Answer:
The main directories that are provided in the JBoss directory structure are as follows:
1. bin – It consists of system executable and normal files that are for execution purpose. It consists of binary files for every program that is installed on the system.
2. client – It consists of all the configuration files that are stored and jar files that can be required by the Java client application.
3. docs – It consists of the XML documents with the DTDs for the reference. These documents provide the basic specification related to the installation and deployment of JBoss.
4. lib – This consists of jar files that are required to run the JBoss microkernel. This is directory is not for any user as it consists of the kernel and system libraries.
5. server – This consists of different server configuration files. The files are in the script format.
12. Write a program to show the security domain feature to cover the application in JBoss?
Answer: The security domain provides features through which the server can be protected. This is done using the file jboss-web.xml this can be used to deploy in jmx-console.war/WEB-INF/ directory. JBoss uses JAAS services to provide the pluggable authorization modules and the code that is given below explains it as well:
This links to the security domain where the web application can be connected and security policies can be applied to it. URLs are trying to protect the server configuration that is allowed to configure the web.xml file in the same directory and the security constraints are put together to provide the user name and password as well.
13. What Is The Difference Between Jax–ws And Jax-RPC?
Answer: Java API for XML-Based RPC (JAX-RPC) is a Legacy Web Services Java API, it uses SOAP and HTTP to do RPCs over the network and enables the building of Web services and Web applications based on the SOAP 1.1 specification, Java SE 1.4 or lower.JAX-WS 2.0 is the successor to JAX-RPC 1.1. JAX-WS still supports SOAP 1.1 over HTTP 1.1, so interoperability will not be affected. However, there are lots of differences:
JAX-WS maps to Java 5.0 and relies on many of the features new in Java 5.0 like Web Service annotations.
JAX-RPC has its own data mapping model, JAX-WS’s data mapping model is JAXB. JAXB promises mappings for all XML schemas.
JAX-WS introduces message-oriented functionality, dynamic asynchronous functionality which is missing in JAX-RPC.
JAX-WS also add support, via JAXB, for MTOM, the new attachment specification. (Online Training Institute)
14. What’s The Difference Between A Tar File And A War File?
Answer: TAR – derived from tape archive is a file format to archive bitstreams and name of a program to handle such files. It is commonly used to collect many files into one large file for distributing or archiving while preserving the filesystem info.
WAR – web application archive is a jar file used to distribute a collection of JavaServer Pages, Java Servlets, Java classes, xml files, tag libraries, static web pages (HTML & others) and others resources that constitute a web application.
15. How Do You Enable/disable A Hot Deployment?
Answer:
To enable, put file HD scanner-jboss-beans.xml in JBOSS_HOME/server//deploy
To disable hot deployment, remove the HD scanner-jboss-beans. xml from the deploy folder or rename it to HD scanner-JBoss MBeans. xml.bak (.bak files are ignored).
16. What must be done to access the Admin Console?
Answer: The user must be created under “ManagementRealm” to have console operational. To create the user, you can go to the bin folder and execute add-user.sh script.
17. Write a program to show the security constraints that show the role of the user and the admin in using the server?
Answer: The security constraints that have restrictive access to the HTML JMX console and it allows few users with specified roles to be the JBossAdmin. The modification in the roles can be done and the file can be edited to modify the security domain element to enable the secured feature of the services.
18. How Do You Deploy An Application To Jboss?
Answer:
Choose the server profile to which you want to deploy the application
Copy your application (for example: .war or .ear or a .jar file) to JBOSS_HOME/server//deploy folder.
Start the server: (./run.sh)
JBoss will deploy your application when it boots up.
19. Explain with an example of the implementation of source queue for MDB?
Answer: The implementation of the source queue for MDB is used to be the container-specific file that consists of information regarding the queue like queue name for MDB that resides in jboss.xml and the source file that is used with it remains in the queue till the message is not being transferred by the server. The server executes the file and keeps a log file to maintain all the information. The modification can be done by using the source queue. If any additional information, be required using the source queue then message-driven beans to allow the use of extra parameters like destination, name, etc. to describe the objects.
20. What is the directory structure in JBoss?
Answer:
The following directories are available after JBoss is installed.
- modules
- bundles
- domain
- standalone
- app client
- bin
- docs
21. Can you use Environment variables in your configuration?
Answer:
Yes, that’s actually possible. You can do it in two ways:
1) The Java way, bypassing it as an argument to the startup script:
./standalone.sh -Dvariable=$variable
And then reference it as System Property in your configuration.
2) Using the env expression in your Bean Shell expression. Example:
In the above example, if jboss.bind.address is not set, the environment variable HOST will be used. If none is set, it will fall back to 127.0.0.1
22. Which Hibernate object wraps the JDBC Connection?
Answer: The Session interface wraps a JDBC Connection. This interface is a single-threaded object which represents a single unit of work with application and persistent database. It’s retrieved by the SessionFactory’s openSession() method.
23. What is an L1 cache and when I am allowed to use it?
Answer: When running in the distributed mode it is possible to configure a special kind of cache named “L1” cache which temporarily holds entries of the cache. When an L1 cache is available, that is consulted locally before checking caches on remote servers. L1 entries are invalidated when the entry is changed elsewhere in the cluster so you are sure you don’t have stale entries cached in L1.
24. What’s the difference between JAX-WS and JAX-RPC?
Answer: Java API for XML-Based RPC (JAX-RPC) is a Legacy Web Services Java API, it uses SOAP and HTTP to do RPCs over the network and enables the building of Web services and Web applications based on the SOAP 1.1 specification, Java SE 1.4 or lower.JAX-WS 2.0 is the successor to JAX-RPC 1.1. JAX-WS still supports SOAP 1.1 over HTTP 1.1, so interoperability will not be affected. However, there are lots of differences:
JAX-WS maps to Java 5.0 and relies on many of the features new in Java 5.0 like Web Service annotations.
JAX-RPC has its own data mapping model, JAX-WS’s data mapping model is JAXB. JAXB promises mappings for all XML schemas.
JAX-WS introduces message-oriented functionality, dynamic asynchronous functionality which is missing in JAX-RPC.
JAX-WS also add support, via JAXB, for MTOM, the new attachment specification.
25. Write a program to show how to set the username and password using the security domain in JBoss?
Answer: The username and password are required for the security purpose to produce at the logging time. The user name and passwords get stored in the JMX console security domain that manages the application. The configuration file can be provided using the login-config.xml. The program that is being written in which the modification can be done is shown below:
This is the configuration file that uses a simple file-based security policy and found in the config directory. It consists of the server configuration and the properties that are required to assign the user about the files.
26. What’s the difference between Standalone mode and Domain mode?
Answer: When configured in Standalone mode each distribution starts a single JVM process with its own configuration, management instruments, and deployments. When configured in Domain mode, multiple servers are managed from a centralized point called Domain Controller which maintain the configuration and provisions applications for deployment on the single nodes which are part of the Domain..
27. What if I remove the examples default Datasource?
Answer: If you remove the default Datasource you will not prevent the server to start, however, you might find some errors due to the fact that the ee subsystem contains a reference to the Default Datasource, which is the ExampleDS Datasource.
context-service=”java:jboss/ee/concurrency/context/default”
datasource=”java:jboss/data sources/examples”
28. Do you need Domain mode in order to run a Cluster of JBoss EAP / WildFly nodes?
Answer: No, a cluster can be both configured in Standalone mode and in Domain mode with no difference in terms of Profile configuration. The advantage of configuring a Cluster in Domain mode is that you don’t need to manually synchronize the configuration on all your Servers as you would need in a cluster of Standalone Servers. The same stands for provisioning applications: in a Domain running a-ha (or full-ha) profile you can provision your applications on a whole Server group with a single Operation. In standalone mode, you have to deploy applications on each Server.
29. Multiple Domains in the same cluster and Multiple clusters in the same Domain: which one of these configurations is possible?
Answer:
Both! Let’s see each of them:
Multiple Domains in the same clusters can be achieved by starting two Domains in the same network which are sharing the same multicast address and port. This is a quite rare scenario, however, it’s technically possible.
Multiple clusters in the same Domain can be achieved by defining a different multicast address on each Server Group or even at Server Level. This way, your Servers, even if in the same Domain, will communicate through different multicast addresses so they will make up separate clusters.
30. Ok, is the Session Factory Thread-safe?
Answer: Yes: that is many threads can access it concurrently and request for sessions. It holds cached data that has been read in one unit of work and maybe reused in a future unit of work. A good practice is to create it when the application is initialized.
31. What is the difference between load and get in Hibernate?
Answer: The main difference between load() and get() methods is that load() throws an Exception if there is no entry for the given id while getting () method returns null. The other difference is that the load() method creates a placeholder object-also called proxy”-.In other words, hibernate will hit the database only when the proxy object is actually used.
32. How can I persist the cache of my Stateful EJBs in a Database?
Answer: You can use a JDBC cache store, which persists data in a relational database using a JDBC driver. There are three implementations of the JDBC cache store: JdbcBinaryCacheStore, JbcStringBasedCacheStore, JdbcMixedCacheStore which can be used depending on the type of key to be stored in the cache.
33. What happens if there’s concurrent access to an Entity in a clustered application?
Answer: It depends on the isolation level defined in the “hibernate” Cache. The default isolation level for the hibernate cache is READ_COMMITTED which means that the non-repeatable reads phenomenon can occur in this isolation level. It is, however, the default in most databases like Oracle or PostgreSQL. It would make sense to configure REPEATABLE_READ in case the application evicts/clears entities from the Hibernate Session and then expects to repeatably reread them in the same transaction.
34. Why you should never put just the IP address in a network interface definition?
Answer:
If you configure your network interfaces as in the following example:
Then you won’t be able to use startup options to change the IP Address/hostname. In this case, the options -b or -Djboss.bind.address will not be used at startup. So never remove the alias jboss.bind.address from the Beanshell expression.
35. What is the difference between a JTA data source and an XA Datasource?
Answer:
Let’s take this example:
When JTA is true, the JCA connection pool manager knows to enlist the connection into the JTA transaction. This means that, if the Driver and the database support it, you can use JTA transaction for a single resource.
@PersistenceContext(unit name = “unit01”)
private EntityManager entityManager;
public void addMovie(Movie movie) throws Exception {
entityManager.persist(movie);
In practice this means that if you try to manage a JDBC transaction by yourself when JTA is set to true an exception will be raised:
12:11:17,145 SEVERE [com.sample.Bean] (https-/127.0.0.1:8080-1) null: java.sql.SQLException: You cannot set autocommit during a managed transaction!
at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.setJdbcAutoCommit(BaseWrapperManagedConnection.java:961)
at org.jboss.jca.adapters.jdbc.WrappedConnection.setAutoCommit(WrappedConnection.java:716)
On the other hand, an XA transaction is usually referred to as a “global transaction”, that is a set of two or more related transactions that must be managed in a coordinated way. The transactions that constitute a distributed transaction might be in the same database, but more typically are in different databases and often in different locations. Each individual transaction of a distributed transaction is referred to as a transaction branch.
For example, a distributed transaction might consist of money being transferred from an account in one bank to an account in another bank. You would not want either transaction committed without assurance that both will complete successfully.may span multiple resources. A non-XA transaction always involves just one resource.
36. Which Jdk Is Needed To Run Seam?
Answer:
Seam only works on JDK 5.0 and above. It uses annotations and other JDK 5.0 features.
37. What is the purpose of JMS and Message-Driven Beans in JBoss?
Answer: JMS is used for messaging system and it also consists of message-driven beans that are used in JBoss. This consists of the MDB concepts that are used in the jboss-build.xml file. This JSM (Java message service) provides a middleware orientation to send message between two or more clients. JMS is a part of the Java Platform that is used to develop the application that is under the java platform. This also allows the application components to be based on the Java Enterprise Edition (JEE). It handles the creation, sending, receiving, and reading the messages. It also allows the communication between many different components that are distributed in many parts and are loosely coupled, reliable and asynchronous message passing.
38. Can you create a cluster in standalone mode?
Answer:
Yes, clustering is possible in standalone mode. However, an application must be deployed on each server/JVM in standalone mode.
39. Can I run Seam with JDK 1.4 and earlier?
Answer:
No, Seam only works on JDK 5.0 and above. It uses annotations and other JDK 5.0 features.
40. What Do You Need To Set-up A Cluster With Jobs?
Answer:
Basically starting JBoss with the 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.
41. What marker file type is required to instruct JBoss to deploy?
Answer: do deploy file suffix is needed for JBoss to deploy or redeploy an application.
42. What are the file types you can deploy in JBoss?
Answer:
You can deploy almost any kind of Java/J2EE application, and it supports the following file format.
WAR – Web application archive
SAR – Service archive
JAR – Java Archive
EAR – Enterprise application archive
43. What module needed to integrate Apache with JBoss?
Answer:
There are two modules you can use to connect JBoss with Apache.
mod_proxy
mod_jk
44. How can you configure the time for the hot deployer?
Answer:
“scan period” in HD scanner-jboss-beans.xml
45. How do you set up a JBoss cluster?
Answer: Getting started with JBoss clustering is very simple. If two JBoss server instances using all configuration are started on the same network, those servers will detect each other and automatically form a cluster.
Two application servers running on the same network detect each other auto and form cluster.
46. What are the logging levels available?
Answer:
There are five possible levels:
- FATAL
- ERROR
- WARN
- INFO
- DEBUG
47. What’s the difference between Hibernate and EJB 3? Don’t you think EJB 3 is just a clone of Hibernate?
Answer: The perception of EJB3 as being a simple clone of Hibernate is primarily based on developer familiarity with Hibernate and similarity of naming, as well as common purpose, and that Hibernate is morphing itself into an EJB3 implementation based on the work going into the specification, not the other way around.
EJBs are supposed to be components, in the sense that they’re not just one class, but a set of classes, descriptors and usage, and management contracts. All of this in order to allow a container (JBoss,
Weblogic, etc.) to provide services to those components and to be able to reuse and distribute this component. These services are, among others, transactions, concurrent access control, security, instance pooling, etcetera.
Hibernate is “just” an ORM (Object/Relational Mapping) tool. Quick and dirty, this means you can store an object tree belonging to a class hierarchy in a relational DB without writing a single SQL query. Quite cool, IMO. But no transaction control, no instance pooling, no concurrency control, and certainly no security.
48. What is the process of compiling and packaging the MDB files?
Answer: To compile the files of MDB (Message drove beans) first there needs to be a compilation process that will take place invoking the compile-mdb that targets the simple message directory. It produces the targets to be made archives for the bean and the client uses the file that is in the JAR directory. The commands that are used to compile the files are as follows:
ant -f jboss-build.xml package-mdb
ant -f jboss-build.xml package-mdb-client
ant -f jboss-build.xml assemble-mdb
These files that are used and made by the command gets combined in the directory and that directory will be called as the package. It consists of the deployment descriptors that are used in the jar directory containing all the archives that are produced by the build of the MDB files.
Note: Browse latest Jboss interview questions and jboss tutorial. Here you can check Jboss Training details and jboss training videos for self learning. Contact +91 988 502 2027 for more information.