What is JMS?
JMS is an acronym used for Java Messaging Service. It is Java's answer to creating software using asynchronous messaging. It is one of the official specifications of the J2EE technologies and is a key technology.
How JMS is different from RPC?
In RPC the method invoker waits for the method to finish execution and return the control back to the invoker. Thus it is completely synchronous in nature. While in JMS the message sender just sends the message to the destination and continues it's own processing. The sender does not wait for the receiver to respond. This is asynchronous behavior.
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.
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.
What is the use of ObjectMessage?
ObjectMessage contains a Serializable java object as it's payload. Thus it allows exchange of Java objects between applications. This in itself mandates that both the applications be Java applications. The consumer of the message must typecast the object received to it's appropriate type. Thus the consumer should before hand know the actual type of the object sent by the sender. Wrong type casting would result in ClassCastException. Moreover the class definition of the object set in the payload should be available on both the machine, the sender as well as the consumer. If the class definition is not available in the consumer machine, an attempt to type cast would result in ClassNotFoundException. Some of the MOMs might support dynamic loading of the desired class over the network, but the JMS specification does not mandate this behavior and would be a value added service if provided by your vendor. And relying on any such vendor specific functionality would hamper the portability of your application. Most of the time the class need to be put in the classpath of both, the sender and the consumer, manually by the developer.
What is the use of MapMessage?
A MapMessage carries name-value pair as it's payload. Thus it's payload is similar to the java.util.Properties object of Java. The values can be Java primitives or their wrappers.
What is the difference between BytesMessage and StreamMessage??
BytesMessage stores the primitive data types by converting them to their byte representation. Thus the message is one contiguous stream of bytes. While the StreamMessage 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. BytesMessage 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 StreamMessage. It maintains the type information of the data being stored and enforces strict conversion rules on the data being read.
Search Your Question
Thursday, April 17, 2008
JMS Interview Questions
Subscribe to:
Post Comments (Atom)
Archives
-
▼
2008
(992)
-
▼
April
(208)
- Can you name different software development life c...
- What is Microsoft Analysis Service?
- Explain what is “AutoPostBack” feature in ASP.NET ?
- Can you explain what is DCOM ?
- What do you understand by Data mining and Data War...
- How can we find out what the garbage collector is ...
- How can we stop our code being reverse-engineered ...
- How do you stop a running thread?
- How does an AppDomain get created?
- How is method overriding different from method ove...
- Is COM+ dead? Is COM+ is not needed anymore?
- Is DCOM dead? not needed anymore?
- Should you use ReaderWriterLock instead of Monitor...
- What are different types of caching in ASP.Net?
- What are the validation controls?
- What are user controls and custom controls?
- What does aspnet_regiis -i do ?
- What is Regression Testing?
- What is the difference between an event and a dele...
- What is view state and use of it?
- What's a bubbled event?
- Why do we get errors when we try to serialize a Ha...
- Why is XmlSerializer so slow?
- How can I load the icons provided by .NET dynamica...
- In windows forms what class does Icon derive from?
- How's anchoring different from docking in windows ...
- Why is it not a good idea to insert code into Init...
- Why is it not a good idea to insert code into Init...
- What is ErrorProvider control? When would you use it?
- Can you debug a Windows Service? How ?
- How can a win service developed in .NET be install...
- What is a Windows Service and how does its lifecyc...
- What does AspCompat="true" mean and when should it...
- Is it possible to prevent a browser from caching a...
- Is it possible to prevent a browser from caching a...
- What technology enables out-of-proc communication ...
- What are some of the responsibilities of the CLR?
- What are some features of the CLR?
- What are some features of the CLR?
- What are namespaces used for in .NET?
- How do class property members work in C#?
- What does a binding define in a WSDL document? Wha...
- What are the main similarities and differences bet...
- What information do you need to know in order to a...
- True false questions - Set 1
- True false questions - Set 2
- True false questions - Set 3
- What are CAO's i.e. Client Activated Objects ?
- Can you configure a .NET Remoting object via XML f...
- What does a Port define? What does the PortType de...
- What makes web services usable in almost any devel...
- When should a struct be used instead of a class?
- How does the switch statement in C# differ from th...
- What are some similarities and differences between...
- What is the main Difference between Managed code a...
- In Dot Net What are different type of JIT ?
- Is versioning applicable to private assemblies?
- What is .Net Remoting
- What was .net Framework 3.0 earlier known as?
- What are the changes to the version of the .NET Fr...
- Can DotNet Framework 3 be installed over Framework 2?
- What is the version of C# In .net Framework 3.0?
- What Operating system are supported by Framework 3.0?
- What are the 4 basic new technologies included in ...
- What is a workflow? How does Windows workflow foun...
- What are the components found in Windows workflow ...
- What tool is available for creating workflows in d...
- What Improvements does WCF offers over its earlier...
- What contemporary computing problems WCS solves?
- What are WCF features and what communication probl...
- What is High assurance certificate?
- What contemporary computing problems WPF solves?
- What is XAML ?
- What is XBAP?
- What is a service contract ( In WCF) ?
- In terms of WCF, What is a message?
- In terms of WCF, What is a service?
- In terms of WCF, What is an endpoint?
- In terms of WCF, What is an application endpoint?
- In terms of WCF, What is an infrastructure endpoint?
- In terms of WCF, What is an address?
- In terms of WCF, What is binding?
- What is a message contract?
- IN WCF, what do you understand by metadata of a se...
- What are activities in Windows Workflow Foundation?
- What do you mean by Code Refactoring?
- What is ASP.Net Web Matrix?
- What do you mean by shipping in terms of sql server ?
- What is 'Write-ahead log' in Sql Server 2000 ?
- What is DOM?
- What is XPATH?
- What is the difference between abstract class and ...
- What is a Satellite Assembly ?
- What is late binding ?
- What do you understand by the term "immutable"?
- enforce a call from an inherited constructor to an...
- How do you make sure that your code runs when the ...
- Why does code get a security exception when its ru...
- Can you use the Win32 API from a .NET Framework pr...
- How do in-process and cross-process communication ...
-
▼
April
(208)
No comments:
Post a Comment