|
JMS Interview Questions and Answers
What is Byte Message ?
Byte Messages contains a Stream of uninterrupted bytes.
Byte Message contains an array of primitive bytes in
it's payload. Thus it can be used for transfer of data
between two applications in their native format which
may not be compatible with other Message types. It is
also useful where JMS is used purely as a transport
between two systems and the message payload is opaque to
the JMS client.
What is the difference between Byte Message and Stream
Message?
Bytes Message stores data in bytes. Thus the message is
one contiguous stream of bytes. While the Stream Message
maintains a boundary between the different data types
stored because it also stores the type information along
with the value of the primitive being stored. Bytes
Message allows data to be read using any type. Thus even
if your payload contains a long value, you can invoke a
method to read a short and it will return you something.
It will not give you a semantically correct data but the
call will succeed in reading the first two bytes of
data. This is strictly prohibited in the Stream Message.
It maintains the type information of the data being
stored and enforces strict conversion rules on the data
being read.
What are the advantages of JMS?
JMS is asynchronous in nature. Thus not all the pieces
need to be up all the time for the application to
function as a whole. Even if the receiver is down the
MOM will store the messages on it's behalf and will send
them once it comes back up. Thus at least a part of
application can still function as there is no blocking.
Are you aware of any major JMS products available in the
market?
IBM's MQ Series is one of the most popular product used
as Message Oriented Middleware. Some of the other
products are SonicMQ, iBus etc. Weblogic application
server also comes with built in support for JMS
messaging.
What are the different types of messages available in
the JMS API?
Message, TextMessage, BytesMessage, StreamMessage,
ObjectMessage, MapMessage are the different messages
available in the JMS API.
What are the different messaging paradigms JMS supports?
Publish and Subscribe i.e. pub/suc and Point to Point
i.e. p2p.
What is the difference between topic and queue?
A topic is typically used for one to many messaging i.e.
it supports publish subscribe model of messaging. While
queue is used for one-to-one messaging i.e. it supports
Point to Point Messaging.
How Does the JMS API Work with the J2EE Platform?
When the JMS API was introduced in 1998, its most
important purpose was to allow Java applications to
access existing messaging-oriented middleware (MOM)
systems, such as MQSeries from IBM. Since that time,
many vendors have adopted and implemented the JMS API,
so that a JMS product can now provide a complete
messaging capability for an enterprise.
Since the 1.3 release of the J2EE platform ("the J2EE
1.3 platform"), the JMS API has been an integral part of
the platform, and application developers can use
messaging with components using J2EE APIs ("J2EE
components").
The JMS API in the J2EE platform has the following
features.
* Application clients, Enterprise JavaBeans (EJB)
components, and Web components can send or synchronously
receive a JMS message. Application clients can in
addition receive JMS messages asynchronously. (Applets,
however, are not required to support the JMS API.)
* Message-driven beans, which are a kind of enterprise
bean, enable the asynchronous consumption of messages. A
JMS provider may optionally implement concurrent
processing of messages by message-driven beans.
* Message sends and receives can participate in
distributed transactions.
The JMS API enhances the J2EE platform by simplifying
enterprise development, allowing loosely coupled,
reliable, asynchronous interactions among J2EE
components and legacy systems capable of messaging. A
developer can easily add new behavior to a J2EE
application with existing business events by adding a
new message-driven bean to operate on specific business
events. The J2EE platform's EJB container architecture,
moreover, enhances the JMS API by providing support for
distributed transactions and allowing for the concurrent
consumption of messages.
Another J2EE platform technology, the J2EE Connector
Architecture, provides tight integration between J2EE
applications and existing Enterprise Information (EIS)
systems. The JMS API, on the other hand, allows for a
very loosely coupled interaction between J2EE
applications and existing EIS systems.
At the 1.4 release of the J2EE platform, the JMS
provider may be integrated with the application server
using the J2EE Connector Architecture. You access the
JMS provider through a resource adapter. For more
information, see the Enterprise JavaBeans Specification,
v2.1, and the J2EE Connector Architecture Specification,
v1.5.
What is the role of JMS in enterprise solution
development?
JMS is typically used in the following scenarios
1. Enterprise Application Integration: - Where a legacy
application is integrated with a new application via
messaging.
2. B2B or Business to Business: - Businesses can
interact with each other via messaging because JMS
allows organizations to cooperate without tightly
coupling their business systems.
3. Geographically dispersed units: - JMS can ensure safe
exchange of data amongst the geographically dispersed
units of an organization.
4. One to many applications: - The applications that
have to push data in packet to huge number of clients in
a one-to-many fashion are good candidates for the use
JMS. Typical such applications are Auction Sites, Stock
Quote Services etc.
What is the use of Message object?
Message is a light weight message having only header and
properties and no payload. Thus if the received are to
be notified abt an event, and no data needs to be
exchanged then using Message can be very efficient.
What is the basic difference between Publish Subscribe
model and P2P model?
Publish Subscribe model is typically used in one-to-many
situation. It is unreliable but very fast. P2P model is
used in one-to-one situation. It is highly reliable.
What is the use of BytesMessage?
BytesMessage contains an array of primitive bytes in
it's payload. Thus it can be used for transfer of data
between two applications in their native format which
may not be compatible with other Message types. It is
also useful where JMS is used purely as a transport
between two systems and the message payload is opaque to
the JMS client. Whenever you store any primitive type,
it is converted into it's byte representation and then
stored in the payload. There is no boundary line between
the different data types stored. Thus you can even read
a long as short. This would result in erroneous data and
hence it is advisable that the payload be read in the
same order and using the same type in which it was
created by the sender.
What is the use of StreamMessage?
StreamMessage carries a stream of Java primitive types
as it's payload. It contains some conveient methods for
reading the data stored in the payload. However
StreamMessage prevents reading a long value as short,
something that is allwed in case of BytesMessage. This
is so because the StreamMessage also writes the type
information alonwgith the value of the primitive type
and enforces a set of strict conversion rules which
actually prevents reading of one primitive type as
another.
What is the use of TextMessage?
TextMessage contains instance of java.lang.String as
it's payload. Thus it is very useful for exchanging
textual data. It can also be used for exchanging complex
character data such as an XML document.
Page Numbers : 1
2
3
4
5
6
Have a Question ?
post your questions here. It
will be answered as soon as possible.
Check
Java Interview
Questions for more Java Interview Questions with answers
Check
Structs Interview
Questions for more Structs Interview Questions with answers
Check
Servlet Interview
Questions for more Servlet Interview Questions with answers
|