⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 package-summary.html

📁 j2ee api,很好的api。我这现在有
💻 HTML
📖 第 1 页 / 共 3 页
字号:
      of a full-featured messaging product</LI>
  <LI>JMS Clients - the Java language programs that send and receive 
      messages</LI>
  <LI>Messages - objects that are used to communicate information between the 
      clients of an application</LI>
  <LI>Administered Objects - provider-specific objects that clients look up
      and use to interact portably with a JMS provider</LI>
  <LI>Non-JMS Clients - clients that use a message system's native 
      client API instead of the JMS API. If the application predated the 
      availability of the JMS API, it is likely that it will include both JMS 
      clients and non-JMS clients.</LI>
</UL>

<H3>Administration</H3>

<P>JMS providers differ significantly in their implementations of 
underlying messaging technology. There are also major 
differences in how a JMS provider's system is installed and administered.</P>

<P>For JMS clients to be portable, they must be isolated from these 
proprietary aspects of a provider. This is done by defining JMS administered
objects that are created and customized by a provider's administrator and 
later used by clients. The client uses them through JMS interfaces that are 
portable. The administrator creates them using provider-specific facilities.</P>

<P>There are two types of JMS administered objects:</P>

<UL>
  <LI>ConnectionFactory - the object a client uses to create a 
      connection with a JMS provider</LI>
  <LI>Destination - the object a client uses to specify the 
      destination of messages it is sending and the source of messages 
      it receives</LI>
</UL>

<P>Administered objects are placed in a Java Naming and Directory 
Interface<SUP><FONT SIZE="-2">TM</FONT></SUP> (JNDI) namespace by an 
administrator. 
A JMS client typically notes in its documentation the JMS administered objects 
it requires and how the JNDI names of these objects should be provided to it.</P>

<H3>Two Messaging Styles</H3>

<P>The JMS specification defines two styles of messaging: the point-to-point
(PTP) or the publish-and-subscribe (Pub/Sub). These styles can be combined in a 
single application, or a given application can use just one of these styles.</P>

<P>The JMS API defines these two styles because they represent two of the
dominant approaches to messaging currently in use.  While the domains have many
similarities, they also have some differences. JMS provides a unified programming
interface to allow the client programmer to easily send and receive message using  
either domain, but the client programmer must also be aware of the differences
between the domains. The key differences relate to how message persistence is  
handled, and the meaning of certain message attributes. </P>

<H3>JMS Interfaces</H3>

When programming an application client, the programmer may either program using 
the domain specific interfaces, or may use the common interfaces. The key interfaces
are listed in the table below. The preferred model is to use the common interfaces. 
The advantage to using the common interfaces is that both point-to-point and
pub/sub tasks can be combined in one session, allowing transactions to operate
over both domains. 
 <P>In earlier versions of JMS, there were separate class hierarchies for
the pub/sub and point-to-point programming models that had to be used. 
These class hierarchies are retained to support backward compatibility with
earlier versions of the JMS API, but client developers are encouraged to use
the common interfaces.
<P>
<TABLE BORDER CELLPADDING="3" CELLSPACING="0">
<CAPTION>
<B>Relationship of PTP and Pub/Sub interfaces<B>
</CAPTION>
<TR>
<TH ALIGN="LEFT">JMS Common</TH>
<TH ALIGN="LEFT">PTP Domain</TH>
<TH ALIGN="LEFT">Pub/Sub Domain</TH>
</TR>
<TR>
<TD>ConnectionFactory</TD>
<TD>QueueConnectionFactory</TD>
<TD>TopicConnectionFactory</TD>
</TR>
<TR>
<TD>Connection</TD>
<TD>QueueConnection</TD>
<TD>TopicConnection</TD>
</TR>
<TR>
<TD>Destination</TD>
<TD>Queue</TD>
<TD>Topic</TD>
</TR>
<TR>
<TD>Session</TD>
<TD>QueueSession</TD>
<TD>TopicSession</TD>
</TR>
<TR>
<TD>MessageProducer</TD>
<TD>QueueSender</TD>
<TD>TopicPublisher</TD>
</TR>
<TR>
<TD>MessageConsumer</TD>
<TD>QueueReceiver</TD>
<TD>TopicSubscriber</TD>
</TR>
</TABLE>

<P>The following provides a brief definition of these JMS concepts. See the PTP 
and Pub/Sub chapters of the JMS specification for more information.</P>

<UL>
  <LI>ConnectionFactory - an administered object used by a client to create a 
      Connection</LI>
  <LI>Connection - an active connection to a JMS provider</LI>
  <LI>Destination - an administered object that encapsulates the identity of a 
      message destination</LI>
  <LI>Session - a single-threaded context for sending and receiving messages</LI>
  <LI>MessageProducer - an object created by a Session that is used for sending 
      messages to a destination</LI>
  <LI>MessageConsumer - an object created by a Session that is used for receiving 
      messages sent to a destination</LI>
</UL>

<P>The term <EM>consume</EM> is used in this document to mean the receipt of a 
message by a JMS client; that is, a JMS provider has received a message and has 
given it to its client. Since the JMS API supports both synchronous and asynchronous 
receipt of messages, the term <EM>consume</EM> is used when there is no need to 
make a distinction between them.</P>

<P>The term <EM>produce</EM> is used as the most general term for sending a 
message. It means giving a message to a JMS provider for delivery to a 
destination.</P>

<H3>Developing a JMS Application</H3>

<P>Broadly speaking, a JMS application is one or more JMS clients that exchange 
messages. The application may also involve non-JMS clients; however, these 
clients use the JMS provider's native API in place of the JMS API.</P>

<P>A JMS application can be architected and deployed as a unit. In many cases, 
JMS clients are added incrementally to an existing application.</P>

<P>The message definitions used by an application may originate with JMS, or they 
may have been defined by the non-JMS part of the application.</P>

<H3>Developing a JMS Client</H3>

<P>A typical JMS client executes the following setup procedure:</P>

<UL>
  <LI>Use JNDI to find a ConnectionFactory object</LI>
  <LI>Use JNDI to find one or more Destination objects</LI>
  <LI>Use the ConnectionFactory to create a JMS Connection. At this point,
      message delivery is inhibited</LI>
  <LI>Use the Connection to create one or more JMS Sessions</LI>
  <LI>Use a Session and the Destinations to create the MessageProducers and 
      MessageConsumers needed</LI>
  <LI>Start message delivery for the Connection. Messages will be delivered to 
      MessageConsumers</LI>
</UL>

<P>At this point a client has the basic setup needed to produce and consume 
messages.</P>

<H3>Package Specification</H3>

<BLOCKQUOTE>
  <A HREF="http://java.sun.com/products/jms/docs.html">Java Message Service 
   Specification - Version 1.1 </A>
</BLOCKQUOTE>

<H3>Related Documentation</H3>

<BLOCKQUOTE>
  <A HREF="http://java.sun.com/products/jms/tutorial/index.html">Java Message
   Service Tutorial</A>
</BLOCKQUOTE><P><P><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Ent. Ed. v1.4</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;<A HREF="../../javax/enterprise/deploy/spi/status/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;&nbsp;<A HREF="../../javax/mail/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;&nbsp;<SCRIPT type="text/javascript">  <!--  if(window==top) {    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');  }  //--></SCRIPT><NOSCRIPT>  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR><font size="-1"><a href="http://java.sun.com/webapps/bugreport">Submit a bug or feature</a> <p>Copyright 2003 Sun Microsystems, Inc. All rights reserved.</font></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -