<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>Connection</title>
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Connection";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../jakarta/jms/CompletionListener.html" title="interface in jakarta.jms"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/jms/Connection.html" target="_top">Frames</a></li>
<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">jakarta.jms</div>
<h2 title="Interface Connection" class="title">Interface Connection</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd>java.lang.AutoCloseable</dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../jakarta/jms/QueueConnection.html" title="interface in jakarta.jms">QueueConnection</a>, <a href="../../jakarta/jms/TopicConnection.html" title="interface in jakarta.jms">TopicConnection</a>, <a href="../../jakarta/jms/XAConnection.html" title="interface in jakarta.jms">XAConnection</a>, <a href="../../jakarta/jms/XAQueueConnection.html" title="interface in jakarta.jms">XAQueueConnection</a>, <a href="../../jakarta/jms/XATopicConnection.html" title="interface in jakarta.jms">XATopicConnection</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Connection</span>
extends java.lang.AutoCloseable</pre>
<div class="block">A <code>Connection</code> object is a client's active connection to its Jakarta Messaging provider. It typically allocates provider
 resources outside the Java virtual machine (JVM).

 <p>
 Connections support concurrent use.

 <p>
 A connection serves several purposes:

 <ul>
 <li>It encapsulates an open connection with a Jakarta Messaging provider. It typically represents an open TCP/IP socket between a
 client and the service provider software.
 <li>Its creation is where client authentication takes place.
 <li>It can specify a unique client identifier.
 <li>It provides a <code>ConnectionMetaData</code> object.
 <li>It supports an optional <code>ExceptionListener</code> object.
 </ul>

 <p>
 Because the creation of a connection involves setting up authentication and communication, a connection is a
 relatively heavyweight object. Most clients will do all their messaging with a single connection. Other more advanced
 applications may use several connections. The Jakarta Messaging API does not architect a reason for using multiple connections;
 however, there may be operational reasons for doing so.

 <p>
 A Jakarta Messaging client typically creates a connection, one or more sessions, and a number of message producers and consumers.
 When a connection is created, it is in stopped mode. That means that no messages are being delivered.

 <p>
 It is typical to leave the connection in stopped mode until setup is complete (that is, until all message consumers
 have been created). At that point, the client calls the connection's <code>start</code> method, and messages begin
 arriving at the connection's consumers. This setup convention minimizes any client confusion that may result from
 asynchronous message delivery while the client is still in the process of setting itself up.

 <p>
 A connection can be started immediately, and the setup can be done afterwards. Clients that do this must be prepared
 to handle asynchronous message delivery while they are still in the process of setting up.

 <p>
 A message producer can send messages while a connection is stopped.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JMS 1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/ConnectionFactory.html" title="interface in jakarta.jms"><code>ConnectionFactory</code></a>, 
<a href="../../jakarta/jms/QueueConnection.html" title="interface in jakarta.jms"><code>QueueConnection</code></a>, 
<a href="../../jakarta/jms/TopicConnection.html" title="interface in jakarta.jms"><code>TopicConnection</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#close--">close</a></span>()</code>
<div class="block">Closes the connection.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms">ConnectionConsumer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#createConnectionConsumer-jakarta.jms.Destination-java.lang.String-jakarta.jms.ServerSessionPool-int-">createConnectionConsumer</a></span>(<a href="../../jakarta/jms/Destination.html" title="interface in jakarta.jms">Destination</a>&nbsp;destination,
                        java.lang.String&nbsp;messageSelector,
                        <a href="../../jakarta/jms/ServerSessionPool.html" title="interface in jakarta.jms">ServerSessionPool</a>&nbsp;sessionPool,
                        int&nbsp;maxMessages)</code>
<div class="block">Creates a connection consumer for this connection (optional operation) on the specific destination.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms">ConnectionConsumer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#createDurableConnectionConsumer-jakarta.jms.Topic-java.lang.String-java.lang.String-jakarta.jms.ServerSessionPool-int-">createDurableConnectionConsumer</a></span>(<a href="../../jakarta/jms/Topic.html" title="interface in jakarta.jms">Topic</a>&nbsp;topic,
                               java.lang.String&nbsp;subscriptionName,
                               java.lang.String&nbsp;messageSelector,
                               <a href="../../jakarta/jms/ServerSessionPool.html" title="interface in jakarta.jms">ServerSessionPool</a>&nbsp;sessionPool,
                               int&nbsp;maxMessages)</code>
<div class="block">Creates a connection consumer for this connection (optional operation) on the specific topic using an unshared
 durable subscription with the specified name.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/jms/Session.html" title="interface in jakarta.jms">Session</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#createSession--">createSession</a></span>()</code>
<div class="block">Creates a <code>Session</code> object, specifying no arguments.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/jms/Session.html" title="interface in jakarta.jms">Session</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#createSession-boolean-int-">createSession</a></span>(boolean&nbsp;transacted,
             int&nbsp;acknowledgeMode)</code>
<div class="block">Creates a <code>Session</code> object, specifying <code>transacted</code> and <code>acknowledgeMode</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/jms/Session.html" title="interface in jakarta.jms">Session</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#createSession-int-">createSession</a></span>(int&nbsp;sessionMode)</code>
<div class="block">Creates a <code>Session</code> object, specifying <code>sessionMode</code>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms">ConnectionConsumer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#createSharedConnectionConsumer-jakarta.jms.Topic-java.lang.String-java.lang.String-jakarta.jms.ServerSessionPool-int-">createSharedConnectionConsumer</a></span>(<a href="../../jakarta/jms/Topic.html" title="interface in jakarta.jms">Topic</a>&nbsp;topic,
                              java.lang.String&nbsp;subscriptionName,
                              java.lang.String&nbsp;messageSelector,
                              <a href="../../jakarta/jms/ServerSessionPool.html" title="interface in jakarta.jms">ServerSessionPool</a>&nbsp;sessionPool,
                              int&nbsp;maxMessages)</code>
<div class="block">Creates a connection consumer for this connection (optional operation) on the specific topic using a shared
 non-durable subscription with the specified name.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms">ConnectionConsumer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#createSharedDurableConnectionConsumer-jakarta.jms.Topic-java.lang.String-java.lang.String-jakarta.jms.ServerSessionPool-int-">createSharedDurableConnectionConsumer</a></span>(<a href="../../jakarta/jms/Topic.html" title="interface in jakarta.jms">Topic</a>&nbsp;topic,
                                     java.lang.String&nbsp;subscriptionName,
                                     java.lang.String&nbsp;messageSelector,
                                     <a href="../../jakarta/jms/ServerSessionPool.html" title="interface in jakarta.jms">ServerSessionPool</a>&nbsp;sessionPool,
                                     int&nbsp;maxMessages)</code>
<div class="block">Creates a connection consumer for this connection (optional operation) on the specific topic using a shared durable
 subscription with the specified name.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#getClientID--">getClientID</a></span>()</code>
<div class="block">Gets the client identifier for this connection.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/jms/ExceptionListener.html" title="interface in jakarta.jms">ExceptionListener</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#getExceptionListener--">getExceptionListener</a></span>()</code>
<div class="block">Gets the <code>ExceptionListener</code> object for this connection.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/jms/ConnectionMetaData.html" title="interface in jakarta.jms">ConnectionMetaData</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#getMetaData--">getMetaData</a></span>()</code>
<div class="block">Gets the metadata for this connection.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#setClientID-java.lang.String-">setClientID</a></span>(java.lang.String&nbsp;clientID)</code>
<div class="block">Sets the client identifier for this connection.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#setExceptionListener-jakarta.jms.ExceptionListener-">setExceptionListener</a></span>(<a href="../../jakarta/jms/ExceptionListener.html" title="interface in jakarta.jms">ExceptionListener</a>&nbsp;listener)</code>
<div class="block">Sets an exception listener for this connection.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#start--">start</a></span>()</code>
<div class="block">Starts (or restarts) a connection's delivery of incoming messages.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/jms/Connection.html#stop--">stop</a></span>()</code>
<div class="block">Temporarily stops a connection's delivery of incoming messages.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="createSession-boolean-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSession</h4>
<pre><a href="../../jakarta/jms/Session.html" title="interface in jakarta.jms">Session</a>&nbsp;createSession(boolean&nbsp;transacted,
                      int&nbsp;acknowledgeMode)
               throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Creates a <code>Session</code> object, specifying <code>transacted</code> and <code>acknowledgeMode</code>.

 <p>
 This method has been superseded by the method <code>createSession(int sessionMode)</code> which specifies the same
 information using a single argument, and by the method <code>createSession()</code> which is for use in a Jakarta EE JTA
 transaction. Applications should consider using those methods instead of this one.

 <p>
 The effect of setting the <code>transacted</code> and <code>acknowledgeMode</code> arguments depends on whether this method is
 called in a Java SE environment, in the Jakarta EE application client container, or in the Jakarta EE web or EJB container.
 If this method is called in the Jakarta EE web or EJB container then the effect of setting the transacted} and
 <code>acknowledgeMode</code> arguments also depends on whether or not there is an active JTA transaction in progress.

 <p>
 In a <b>Java SE environment</b> or in <b>the Jakarta EE application client container</b>:
 <ul>
 <li>If <code>transacted</code> is set to <code>true</code> then the session will use a local transaction which may subsequently
 be committed or rolled back by calling the session's <code>commit</code> or <code>rollback</code> methods. The argument
 <code>acknowledgeMode</code> is ignored.
 <li>If <code>transacted</code> is set to <code>false</code> then the session will be non-transacted. In this case the argument
 <code>acknowledgeMode</code> is used to specify how messages received by this session will be acknowledged. The permitted
 values are <code>Session.CLIENT_ACKNOWLEDGE</code>, <code>Session.AUTO_ACKNOWLEDGE</code> and
 <code>Session.DUPS_OK_ACKNOWLEDGE</code>. For a definition of the meaning of these acknowledgement modes see the links
 below.
 </ul>

 <p>
 In a <b>Jakarta EE web or EJB container, when there is an active JTA transaction in progress</b>:
 <ul>
 <li>Both arguments <code>transacted</code> and <code>acknowledgeMode</code> are ignored. The session will participate in the
 JTA transaction and will be committed or rolled back when that transaction is committed or rolled back, not by
 calling the session's <code>commit</code> or <code>rollback</code> methods. Since both arguments are ignored, developers are
 recommended to use <code>createSession()</code>, which has no arguments, instead of this method.
 </ul>

 <p>
 In the <b>Jakarta EE web or EJB container, when there is no active JTA transaction in progress</b>:
 <ul>
 <li>If <code>transacted</code> is set to false and <code>acknowledgeMode</code> is set to <code>JMSContext.AUTO_ACKNOWLEDGE</code>
 or <code>Session.DUPS_OK_ACKNOWLEDGE</code> then the session will be non-transacted and messages will be acknowledged
 according to the value of <code>acknowledgeMode</code>.
 <li>If <code>transacted</code> is set to false and <code>acknowledgeMode</code> is set to <code>JMSContext.CLIENT_ACKNOWLEDGE</code>
 then the Jakarta Messaging provider is recommended to ignore the specified parameters and instead provide a non-transacted,
 auto-acknowledged session. However the Jakarta Messaging provider may alternatively provide a non-transacted session with client
 acknowledgement.
 <li>If <code>transacted</code> is set to true, then the Jakarta Messaging provider is recommended to ignore the specified parameters and
 instead provide a non-transacted, auto-acknowledged session. However the Jakarta Messaging provider may alternatively provide a
 local transacted session.
 <li>Applications are recommended to set <code>transacted</code> to false and <code>acknowledgeMode</code> to
 <code>JMSContext.AUTO_ACKNOWLEDGE</code> or <code>Session.DUPS_OK_ACKNOWLEDGE</code> since since applications which set
 <code>transacted</code> to false and set <code>acknowledgeMode</code> to <code>JMSContext.CLIENT_ACKNOWLEDGE</code>, or which set
 <code>transacted</code> to true, may not be portable.
 </ul>

 <p>
 Applications running in the Jakarta EE web and EJB containers must not attempt to create more than one active (not
 closed) <code>Session</code> object per connection. If this method is called in a Jakarta EE web or EJB container when an
 active <code>Session</code> object already exists for this connection then a <code>JMSException</code> may be thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transacted</code> - indicates whether the session will use a local transaction, except in the cases described above
 when this value is ignored..</dd>
<dd><code>acknowledgeMode</code> - when transacted is false, indicates how messages received by the session will be acknowledged,
 except in the cases described above when this value is ignored.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a newly created session</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the <code>Connection</code> object fails to create a session due to
 <ul>
 <li>some internal error,
 <li>lack of support for the specific transaction and acknowledgement mode, or
 <li>because this method is being called in a Jakarta EE web or EJB application and an active session already exists for
 this connection.
 </ul></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JMS 1.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/Session.html#AUTO_ACKNOWLEDGE"><code>Session.AUTO_ACKNOWLEDGE</code></a>, 
<a href="../../jakarta/jms/Session.html#CLIENT_ACKNOWLEDGE"><code>Session.CLIENT_ACKNOWLEDGE</code></a>, 
<a href="../../jakarta/jms/Session.html#DUPS_OK_ACKNOWLEDGE"><code>Session.DUPS_OK_ACKNOWLEDGE</code></a>, 
<a href="../../jakarta/jms/Connection.html#createSession-int-"><code>createSession(int)</code></a>, 
<a href="../../jakarta/jms/Connection.html#createSession--"><code>createSession()</code></a></dd>
</dl>
</li>
</ul>
<a name="createSession-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSession</h4>
<pre><a href="../../jakarta/jms/Session.html" title="interface in jakarta.jms">Session</a>&nbsp;createSession(int&nbsp;sessionMode)
               throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Creates a <code>Session</code> object, specifying <code>sessionMode</code>.

 <p>
 The effect of setting the <code>sessionMode</code> argument depends on whether this method is called in a Java SE
 environment, in the Jakarta EE application client container, or in the Jakarta EE web or EJB container. If this method is
 called in the Jakarta EE web or EJB container then the effect of setting the <code>sessionMode</code> argument also depends
 on whether or not there is an active JTA transaction in progress.

 <p>
 In a <b>Java SE environment</b> or in <b>the Jakarta EE application client container</b>:
 <ul>
 <li>If <code>sessionMode</code> is set to <code>Session.SESSION_TRANSACTED</code> then the session will use a local transaction
 which may subsequently be committed or rolled back by calling the session's <code>commit</code> or <code>rollback</code>
 methods.
 <li>If <code>sessionMode</code> is set to any of <code>Session.CLIENT_ACKNOWLEDGE</code>, <code>Session.AUTO_ACKNOWLEDGE</code> or
 <code>Session.DUPS_OK_ACKNOWLEDGE</code>. then the session will be non-transacted and messages received by this session
 will be acknowledged according to the value of <code>sessionMode</code>. For a definition of the meaning of these
 acknowledgement modes see the links below.
 </ul>

 <p>
 In a <b>Jakarta EE web or EJB container, when there is an active JTA transaction in progress</b>:
 <ul>
 <li>The argument <code>sessionMode</code> is ignored. The session will participate in the JTA transaction and will be
 committed or rolled back when that transaction is committed or rolled back, not by calling the session's
 <code>commit</code> or <code>rollback</code> methods. Since the argument is ignored, developers are recommended to use
 <code>createSession()</code>, which has no arguments, instead of this method.
 </ul>

 <p>
 In the <b>Jakarta EE web or EJB container, when there is no active JTA transaction in progress</b>:
 <ul>
 <li>If <code>sessionMode</code> is set to <code>Session.AUTO_ACKNOWLEDGE</code> or <code>Session.DUPS_OK_ACKNOWLEDGE</code> then the
 session will be non-transacted and messages will be acknowledged according to the value of <code>sessionMode</code>.
 <li>If <code>sessionMode</code> is set to <code>Session.CLIENT_ACKNOWLEDGE</code> then the Jakarta Messaging provider is recommended to
 ignore the specified parameter and instead provide a non-transacted, auto-acknowledged session. However the JMS
 provider may alternatively provide a non-transacted session with client acknowledgement.
 <li>If <code>sessionMode</code> is set to <code>Session.SESSION_TRANSACTED</code>, then the Jakarta Messaging provider is recommended to
 ignore the specified parameter and instead provide a non-transacted, auto-acknowledged session. However the JMS
 provider may alternatively provide a local transacted session.
 <li>Applications are recommended to use only the values <code>Session.AUTO_ACKNOWLEDGE</code> and
 <code>Session.DUPS_OK_ACKNOWLEDGE</code> since applications which use <code>Session.CLIENT_ACKNOWLEDGE</code> or
 <code>Session.SESSION_TRANSACTED</code> may not be portable.
 </ul>

 <p>
 Applications running in the Jakarta EE web and EJB containers must not attempt to create more than one active (not
 closed) <code>Session</code> object per connection. If this method is called in a Jakarta EE web or EJB container when an
 active <code>Session</code> object already exists for this connection then a <code>JMSException</code> may be thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sessionMode</code> - specifies the session mode that will be used, except in the cases described above when this value
 is ignored. Legal values are <code>JMSContext.SESSION_TRANSACTED</code>, <code>JMSContext.CLIENT_ACKNOWLEDGE</code>,
 <code>JMSContext.AUTO_ACKNOWLEDGE</code> and <code>JMSContext.DUPS_OK_ACKNOWLEDGE</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a newly created session</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the <code>Connection</code> object fails to create a session due to
 <ul>
 <li>some internal error,
 <li>lack of support for the specific transaction and acknowledgement mode, or
 <li>because this method is being called in a Jakarta EE web or EJB application and an active session already exists for
 this connection.
 </ul></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JMS 2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/Session.html#SESSION_TRANSACTED"><code>Session.SESSION_TRANSACTED</code></a>, 
<a href="../../jakarta/jms/Session.html#AUTO_ACKNOWLEDGE"><code>Session.AUTO_ACKNOWLEDGE</code></a>, 
<a href="../../jakarta/jms/Session.html#CLIENT_ACKNOWLEDGE"><code>Session.CLIENT_ACKNOWLEDGE</code></a>, 
<a href="../../jakarta/jms/Session.html#DUPS_OK_ACKNOWLEDGE"><code>Session.DUPS_OK_ACKNOWLEDGE</code></a>, 
<a href="../../jakarta/jms/Connection.html#createSession-boolean-int-"><code>createSession(boolean, int)</code></a>, 
<a href="../../jakarta/jms/Connection.html#createSession--"><code>createSession()</code></a></dd>
</dl>
</li>
</ul>
<a name="createSession--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSession</h4>
<pre><a href="../../jakarta/jms/Session.html" title="interface in jakarta.jms">Session</a>&nbsp;createSession()
               throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Creates a <code>Session</code> object, specifying no arguments.

 <p>
 The behaviour of the session that is created depends on whether this method is called in a Java SE environment, in
 the Jakarta EE application client container, or in the Jakarta EE web or EJB container. If this method is called in the
 Jakarta EE web or EJB container then the behaviour of the session also depends on whether or not there is an active JTA
 transaction in progress.

 <p>
 In a <b>Java SE environment</b> or in <b>the Jakarta EE application client container</b>:
 <ul>
 <li>The session will be non-transacted and received messages will be acknowledged automatically using an
 acknowledgement mode of <code>Session.AUTO_ACKNOWLEDGE</code> For a definition of the meaning of this acknowledgement mode
 see the link below.
 </ul>

 <p>
 In a <b>Jakarta EE web or EJB container, when there is an active JTA transaction in progress</b>:
 <ul>
 <li>The session will participate in the JTA transaction and will be committed or rolled back when that transaction is
 committed or rolled back, not by calling the session's <code>commit</code> or <code>rollback</code> methods.
 </ul>
 <p>
 In the <b>Jakarta EE web or EJB container, when there is no active JTA transaction in progress</b>:
 <ul>
 <li>The session will be non-transacted and received messages will be acknowledged automatically using an
 acknowledgement mode of <code>Session.AUTO_ACKNOWLEDGE</code> For a definition of the meaning of this acknowledgement mode
 see the link below.
 </ul>

 <p>
 Applications running in the Jakarta EE web and EJB containers must not attempt to create more than one active (not
 closed) <code>Session</code> object per connection. If this method is called in a Jakarta EE web or EJB container when an
 active <code>Session</code> object already exists for this connection then a <code>JMSException</code> may be thrown.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a newly created session</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the <code>Connection</code> object fails to create a session due to
 <ul>
 <li>some internal error or
 <li>because this method is being called in a Jakarta EE web or EJB application and an active session already exists for
 this connection.
 </ul></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JMS 2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/Session.html#AUTO_ACKNOWLEDGE"><code>Session.AUTO_ACKNOWLEDGE</code></a>, 
<a href="../../jakarta/jms/Connection.html#createSession-boolean-int-"><code>createSession(boolean, int)</code></a>, 
<a href="../../jakarta/jms/Connection.html#createSession-int-"><code>createSession(int)</code></a></dd>
</dl>
</li>
</ul>
<a name="getClientID--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClientID</h4>
<pre>java.lang.String&nbsp;getClientID()
                      throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Gets the client identifier for this connection.

 <p>
 This value is specific to the Jakarta Messaging provider. It is either preconfigured by an administrator in a
 <code>ConnectionFactory</code> object or assigned dynamically by the application by calling the <code>setClientID</code>
 method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the unique client identifier</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the Jakarta Messaging provider fails to return the client ID for this connection due to some internal
 error.</dd>
</dl>
</li>
</ul>
<a name="setClientID-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setClientID</h4>
<pre>void&nbsp;setClientID(java.lang.String&nbsp;clientID)
          throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Sets the client identifier for this connection.

 <p>
 The preferred way to assign a Jakarta Messaging client's client identifier is for it to be configured in a client-specific
 <code>ConnectionFactory</code> object and transparently assigned to the <code>Connection</code> object it creates.

 <p>
 Alternatively, a client can set a connection's client identifier using a provider-specific value. The facility to set
 a connection's client identifier explicitly is not a mechanism for overriding the identifier that has been
 administratively configured. It is provided for the case where no administratively specified identifier exists. If
 one does exist, an attempt to change it by setting it must throw an <code>IllegalStateException</code>. If a client sets
 the client identifier explicitly, it must do so immediately after it creates the connection and before any other
 action on the connection is taken. After this point, setting the client identifier is a programming error that should
 throw an <code>IllegalStateException</code>.

 <p>
 The purpose of the client identifier is to associate a connection and its objects with a state maintained on behalf
 of the client by a provider. The only such state identified by the Jakarta Messaging API is that required to support durable
 subscriptions.

 <p>
 If another connection with the same <code>clientID</code> is already running when this method is called, the Jakarta Messaging provider
 should detect the duplicate ID and throw an <code>InvalidClientIDException</code>.
 <p>
 This method must not be used in a Jakarta EE web or EJB application. Doing so may cause a <code>JMSException</code> to be
 thrown though this is not guaranteed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clientID</code> - the unique client identifier</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the Jakarta Messaging provider fails to set the client ID for the the connection for one of the
 following reasons:
 <ul>
 <li>an internal error has occurred or
 <li>this method has been called in a Jakarta EE web or EJB application (though it is not guaranteed that an exception is
 thrown in this case)
 </ul></dd>
<dd><code><a href="../../jakarta/jms/InvalidClientIDException.html" title="class in jakarta.jms">InvalidClientIDException</a></code> - if the Jakarta Messaging client specifies an invalid or duplicate client ID.</dd>
<dd><code><a href="../../jakarta/jms/IllegalStateException.html" title="class in jakarta.jms">IllegalStateException</a></code> - if the Jakarta Messaging client attempts to set a connection's client ID at the wrong time or when
 it has been administratively configured.</dd>
</dl>
</li>
</ul>
<a name="getMetaData--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMetaData</h4>
<pre><a href="../../jakarta/jms/ConnectionMetaData.html" title="interface in jakarta.jms">ConnectionMetaData</a>&nbsp;getMetaData()
                        throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Gets the metadata for this connection.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the connection metadata</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the Jakarta Messaging provider fails to get the connection metadata for this connection.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/ConnectionMetaData.html" title="interface in jakarta.jms"><code>ConnectionMetaData</code></a></dd>
</dl>
</li>
</ul>
<a name="getExceptionListener--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExceptionListener</h4>
<pre><a href="../../jakarta/jms/ExceptionListener.html" title="interface in jakarta.jms">ExceptionListener</a>&nbsp;getExceptionListener()
                                throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Gets the <code>ExceptionListener</code> object for this connection. Not every <code>Connection</code> has an
 <code>ExceptionListener</code> associated with it.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>ExceptionListener</code> for this connection, or null. if no <code>ExceptionListener</code> is associated
 with this connection.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the Jakarta Messaging provider fails to get the <code>ExceptionListener</code> for this connection.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/Connection.html#setExceptionListener-jakarta.jms.ExceptionListener-"><code>setExceptionListener(jakarta.jms.ExceptionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="setExceptionListener-jakarta.jms.ExceptionListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExceptionListener</h4>
<pre>void&nbsp;setExceptionListener(<a href="../../jakarta/jms/ExceptionListener.html" title="interface in jakarta.jms">ExceptionListener</a>&nbsp;listener)
                   throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Sets an exception listener for this connection.

 <p>
 If a Jakarta Messaging provider detects a serious problem with a connection, it informs the connection's <code>ExceptionListener</code>,
 if one has been registered. It does this by calling the listener's <code>onException</code> method, passing it a
 <code>JMSException</code> object describing the problem.

 <p>
 An exception listener allows a client to be notified of a problem asynchronously. Some connections only consume
 messages, so they would have no other way to learn their connection has failed.

 <p>
 A connection serializes execution of its <code>ExceptionListener</code>.

 <p>
 A Jakarta Messaging provider should attempt to resolve connection problems itself before it notifies the client of them.
 <p>
 This method must not be used in a Jakarta EE web or EJB application. Doing so may cause a <code>JMSException</code> to be
 thrown though this is not guaranteed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the exception listener</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the Jakarta Messaging provider fails to set the exception listener for one of the following reasons:
 <ul>
 <li>an internal error has occurred or
 <li>this method has been called in a Jakarta EE web or EJB application (though it is not guaranteed that an exception is
 thrown in this case)
 </ul></dd>
</dl>
</li>
</ul>
<a name="start--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>void&nbsp;start()
    throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Starts (or restarts) a connection's delivery of incoming messages. A call to <code>start</code> on a connection that has
 already been started is ignored.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the Jakarta Messaging provider fails to start message delivery due to some internal error.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/Connection.html#stop--"><code>stop()</code></a></dd>
</dl>
</li>
</ul>
<a name="stop--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>void&nbsp;stop()
   throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Temporarily stops a connection's delivery of incoming messages. Delivery can be restarted using the connection's
 <code>start</code> method. When the connection is stopped, delivery to all the connection's message consumers is
 inhibited: synchronous receives block, and messages are not delivered to message listeners.

 <p>
 Stopping a connection has no effect on its ability to send messages. A call to <code>stop</code> on a connection that has
 already been stopped is ignored.

 <p>
 A call to <code>stop</code> must not return until delivery of messages has paused. This means that a client can rely on
 the fact that none of its message listeners will be called and that all threads of control waiting for
 <code>receive</code> calls to return will not return with a message until the connection is restarted. The receive timers
 for a stopped connection continue to advance, so receives may time out while the connection is stopped.

 <p>
 If message listeners are running when <code>stop</code> is invoked, the <code>stop</code> call must wait until all of them have
 returned before it may return. While these message listeners are completing, they must have the full services of the
 connection available to them.
 <p>
 However if the <code>stop</code> method is called from a message listener on its own connection, then it will either fail
 and throw a <code>jakarta.jms.IllegalStateException</code>, or it will succeed and stop the connection, blocking until all
 other message listeners that may have been running have returned.
 <p>
 Since two alternative behaviors are permitted in this case, applications should avoid calling <code>stop</code> from a
 message listener on its own Connection because this is not portable.
 <p>
 For the avoidance of doubt, if an exception listener for this connection is running when <code>stop</code> is invoked,
 there is no requirement for the <code>stop</code> call to wait until the exception listener has returned before it may
 return.
 <p>
 This method must not be used in a Jakarta EE web or EJB application. Doing so may cause a <code>JMSException</code> to be
 thrown though this is not guaranteed.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/IllegalStateException.html" title="class in jakarta.jms">IllegalStateException</a></code> - this method has been called by a <tt>MessageListener</tt> on its own
 <tt>Connection</tt></dd>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the Jakarta Messaging provider fails to stop message delivery for one of the following reasons:
 <ul>
 <li>an internal error has occurred or
 <li>this method has been called in a Jakarta EE web or EJB application (though it is not guaranteed that an exception is
 thrown in this case)
 </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/Connection.html#start--"><code>start()</code></a></dd>
</dl>
</li>
</ul>
<a name="close--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()
    throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Closes the connection.

 <p>
 Since a provider typically allocates significant resources outside the JVM on behalf of a connection, clients should
 close these resources when they are not needed. Relying on garbage collection to eventually reclaim these resources
 may not be timely enough.

 <p>
 There is no need to close the sessions, producers, and consumers of a closed connection.

 <p>
 Closing a connection causes all temporary destinations to be deleted.

 <p>
 When this method is invoked, it should not return until message processing has been shut down in an orderly fashion.
 This means that all message listeners that may have been running have returned, and that all pending receives have
 returned.

 <p>
 However if the close method is called from a message listener on its own connection, then it will either fail and
 throw a <code>jakarta.jms.IllegalStateException</code>, or it will succeed and close the connection, blocking until all
 other message listeners that may have been running have returned, and all pending receive calls have completed. If
 close succeeds and the acknowledge mode of the session is set to <code>AUTO_ACKNOWLEDGE</code>, the current message will
 still be acknowledged automatically when the <code>onMessage</code> call completes. Since two alternative behaviors are
 permitted in this case, applications should avoid calling close from a message listener on its own connection because
 this is not portable.

 <p>
 A close terminates all pending message receives on the connection's sessions' consumers. The receives may return with
 a message or with null, depending on whether there was a message available at the time of the close. If one or more
 of the connection's sessions' message listeners is processing a message at the time when connection <code>close</code> is
 invoked, all the facilities of the connection and its sessions must remain available to those listeners until they
 return control to the Jakarta Messaging provider.

 <p>
 This method must not return until any incomplete asynchronous send operations for this <tt>Connection</tt> have been
 completed and any <tt>CompletionListener</tt> callbacks have returned. Incomplete sends should be allowed to complete
 normally unless an error occurs.

 <p>
 For the avoidance of doubt, if an exception listener for this connection is running when <code>close</code> is invoked,
 there is no requirement for the <code>close</code> call to wait until the exception listener has returned before it may
 return.

 <p>
 Closing a connection causes any of its sessions' transactions in progress to be rolled back. In the case where a
 session's work is coordinated by an external transaction manager, a session's <code>commit</code> and <code>rollback</code>
 methods are not used and the result of a closed session's work is determined later by the transaction manager.
 Closing a connection does NOT force an acknowledgment of client-acknowledged sessions.

 <p>
 A <tt>CompletionListener</tt> callback method must not call <tt>close</tt> on its own <tt>Connection</tt>. Doing so
 will cause an <tt>IllegalStateException</tt> to be thrown.
 <p>
 Invoking the <code>acknowledge</code> method of a received message from a closed connection's session must throw an
 <code>IllegalStateException</code>. Closing a closed connection must NOT throw an exception.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/IllegalStateException.html" title="class in jakarta.jms">IllegalStateException</a></code> - <ul>
 <li>this method has been called by a <tt>MessageListener
                </tt> on its own <tt>Connection</tt></li>
 <li>this method has been called by a <tt>CompletionListener</tt> callback method on its own <tt>Connection</tt></li>
 </ul></dd>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the Jakarta Messaging provider fails to close the connection due to some internal error. For example, a
 failure to release resources or to close a socket connection can cause this exception to be thrown.</dd>
</dl>
</li>
</ul>
<a name="createConnectionConsumer-jakarta.jms.Destination-java.lang.String-jakarta.jms.ServerSessionPool-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createConnectionConsumer</h4>
<pre><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms">ConnectionConsumer</a>&nbsp;createConnectionConsumer(<a href="../../jakarta/jms/Destination.html" title="interface in jakarta.jms">Destination</a>&nbsp;destination,
                                            java.lang.String&nbsp;messageSelector,
                                            <a href="../../jakarta/jms/ServerSessionPool.html" title="interface in jakarta.jms">ServerSessionPool</a>&nbsp;sessionPool,
                                            int&nbsp;maxMessages)
                                     throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Creates a connection consumer for this connection (optional operation) on the specific destination.

 <p>
 This is an expert facility not used by ordinary Jakarta Messaging clients.

 <p>
 This method must not be used in a Jakarta EE web or Enterprise Bean application. Doing so may cause a <code>JMSException</code> to be
 thrown though this is not guaranteed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>destination</code> - the destination to access</dd>
<dd><code>messageSelector</code> - only messages with properties matching the message selector expression are delivered. A value
 of null or an empty string indicates that there is no message selector for the message consumer.</dd>
<dd><code>sessionPool</code> - the server session pool to associate with this connection consumer</dd>
<dd><code>maxMessages</code> - the maximum number of messages that can be assigned to a server session at one time</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the connection consumer</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/InvalidDestinationException.html" title="class in jakarta.jms">InvalidDestinationException</a></code> - if an invalid destination is specified.</dd>
<dd><code><a href="../../jakarta/jms/InvalidSelectorException.html" title="class in jakarta.jms">InvalidSelectorException</a></code> - if the message selector is invalid.</dd>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the <code>Connection</code> object fails to create a connection consumer for one of the
 following reasons:
 <ul>
 <li>an internal error has occurred
 <li>invalid arguments for <code>sessionPool</code> and <code>messageSelector</code> or
 <li>this method has been called in a Jakarta EE web or EJB application (though it is not guaranteed that an exception is
 thrown in this case)
 </ul></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JMS 1.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms"><code>ConnectionConsumer</code></a></dd>
</dl>
</li>
</ul>
<a name="createSharedConnectionConsumer-jakarta.jms.Topic-java.lang.String-java.lang.String-jakarta.jms.ServerSessionPool-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSharedConnectionConsumer</h4>
<pre><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms">ConnectionConsumer</a>&nbsp;createSharedConnectionConsumer(<a href="../../jakarta/jms/Topic.html" title="interface in jakarta.jms">Topic</a>&nbsp;topic,
                                                  java.lang.String&nbsp;subscriptionName,
                                                  java.lang.String&nbsp;messageSelector,
                                                  <a href="../../jakarta/jms/ServerSessionPool.html" title="interface in jakarta.jms">ServerSessionPool</a>&nbsp;sessionPool,
                                                  int&nbsp;maxMessages)
                                           throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Creates a connection consumer for this connection (optional operation) on the specific topic using a shared
 non-durable subscription with the specified name.

 <p>
 This is an expert facility not used by ordinary Jakarta Messaging clients.

 <p>
 This method must not be used in a Jakarta EE web or EJB application. Doing so may cause a <code>JMSException</code> to be
 thrown though this is not guaranteed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topic</code> - the topic to access</dd>
<dd><code>subscriptionName</code> - the name used to identify the shared non-durable subscription</dd>
<dd><code>messageSelector</code> - only messages with properties matching the message selector expression are delivered. A value
 of null or an empty string indicates that there is no message selector for the message consumer.</dd>
<dd><code>sessionPool</code> - the server session pool to associate with this connection consumer</dd>
<dd><code>maxMessages</code> - the maximum number of messages that can be assigned to a server session at one time</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the connection consumer</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/IllegalStateException.html" title="class in jakarta.jms">IllegalStateException</a></code> - if called on a <code>QueueConnection</code></dd>
<dd><code><a href="../../jakarta/jms/InvalidDestinationException.html" title="class in jakarta.jms">InvalidDestinationException</a></code> - if an invalid destination is specified.</dd>
<dd><code><a href="../../jakarta/jms/InvalidSelectorException.html" title="class in jakarta.jms">InvalidSelectorException</a></code> - if the message selector is invalid.</dd>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the <code>Connection</code> object fails to create a connection consumer for one of the
 following reasons:
 <ul>
 <li>an internal error has occurred
 <li>invalid arguments for <code>sessionPool</code> and <code>messageSelector</code> or
 <li>this method has been called in a Jakarta EE web or EJB application (though it is not guaranteed that an exception is
 thrown in this case)
 </ul></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JMS 2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms"><code>ConnectionConsumer</code></a></dd>
</dl>
</li>
</ul>
<a name="createDurableConnectionConsumer-jakarta.jms.Topic-java.lang.String-java.lang.String-jakarta.jms.ServerSessionPool-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDurableConnectionConsumer</h4>
<pre><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms">ConnectionConsumer</a>&nbsp;createDurableConnectionConsumer(<a href="../../jakarta/jms/Topic.html" title="interface in jakarta.jms">Topic</a>&nbsp;topic,
                                                   java.lang.String&nbsp;subscriptionName,
                                                   java.lang.String&nbsp;messageSelector,
                                                   <a href="../../jakarta/jms/ServerSessionPool.html" title="interface in jakarta.jms">ServerSessionPool</a>&nbsp;sessionPool,
                                                   int&nbsp;maxMessages)
                                            throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Creates a connection consumer for this connection (optional operation) on the specific topic using an unshared
 durable subscription with the specified name.

 <p>
 This is an expert facility not used by ordinary Jakarta Messaging clients.

 <p>
 This method must not be used in a Jakarta EE web or EJB application. Doing so may cause a <code>JMSException</code> to be
 thrown though this is not guaranteed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topic</code> - topic to access</dd>
<dd><code>subscriptionName</code> - the name used to identify the unshared durable subscription</dd>
<dd><code>messageSelector</code> - only messages with properties matching the message selector expression are delivered. A value
 of null or an empty string indicates that there is no message selector for the message consumer.</dd>
<dd><code>sessionPool</code> - the server session pool to associate with this durable connection consumer</dd>
<dd><code>maxMessages</code> - the maximum number of messages that can be assigned to a server session at one time</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the durable connection consumer</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/IllegalStateException.html" title="class in jakarta.jms">IllegalStateException</a></code> - if called on a <code>QueueConnection</code></dd>
<dd><code><a href="../../jakarta/jms/InvalidDestinationException.html" title="class in jakarta.jms">InvalidDestinationException</a></code> - if an invalid destination is specified.</dd>
<dd><code><a href="../../jakarta/jms/InvalidSelectorException.html" title="class in jakarta.jms">InvalidSelectorException</a></code> - if the message selector is invalid.</dd>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the <code>Connection</code> object fails to create a connection consumer for one of the
 following reasons:
 <ul>
 <li>an internal error has occurred
 <li>invalid arguments for <code>sessionPool</code> and <code>messageSelector</code> or
 <li>this method has been called in a Jakarta EE web or EJB application (though it is not guaranteed that an exception is
 thrown in this case)
 </ul></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JMS 1.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms"><code>ConnectionConsumer</code></a></dd>
</dl>
</li>
</ul>
<a name="createSharedDurableConnectionConsumer-jakarta.jms.Topic-java.lang.String-java.lang.String-jakarta.jms.ServerSessionPool-int-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createSharedDurableConnectionConsumer</h4>
<pre><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms">ConnectionConsumer</a>&nbsp;createSharedDurableConnectionConsumer(<a href="../../jakarta/jms/Topic.html" title="interface in jakarta.jms">Topic</a>&nbsp;topic,
                                                         java.lang.String&nbsp;subscriptionName,
                                                         java.lang.String&nbsp;messageSelector,
                                                         <a href="../../jakarta/jms/ServerSessionPool.html" title="interface in jakarta.jms">ServerSessionPool</a>&nbsp;sessionPool,
                                                         int&nbsp;maxMessages)
                                                  throws <a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></pre>
<div class="block">Creates a connection consumer for this connection (optional operation) on the specific topic using a shared durable
 subscription with the specified name.

 <p>
 This is an expert facility not used by ordinary Jakarta Messaging clients.

 <p>
 This method must not be used in a Jakarta EE web or EJB application. Doing so may cause a <code>JMSException</code> to be
 thrown though this is not guaranteed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topic</code> - topic to access</dd>
<dd><code>subscriptionName</code> - the name used to identify the shared durable subscription</dd>
<dd><code>messageSelector</code> - only messages with properties matching the message selector expression are delivered. A value
 of null or an empty string indicates that there is no message selector for the message consumer.</dd>
<dd><code>sessionPool</code> - the server session pool to associate with this durable connection consumer</dd>
<dd><code>maxMessages</code> - the maximum number of messages that can be assigned to a server session at one time</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the durable connection consumer</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/jms/IllegalStateException.html" title="class in jakarta.jms">IllegalStateException</a></code> - if called on a <code>QueueConnection</code></dd>
<dd><code><a href="../../jakarta/jms/InvalidDestinationException.html" title="class in jakarta.jms">InvalidDestinationException</a></code> - if an invalid destination is specified.</dd>
<dd><code><a href="../../jakarta/jms/InvalidSelectorException.html" title="class in jakarta.jms">InvalidSelectorException</a></code> - if the message selector is invalid.</dd>
<dd><code><a href="../../jakarta/jms/JMSException.html" title="class in jakarta.jms">JMSException</a></code> - if the <code>Connection</code> object fails to create a connection consumer for one of the
 following reasons:
 <ul>
 <li>an internal error has occurred
 <li>invalid arguments for <code>sessionPool</code> and <code>messageSelector</code> or
 <li>this method has been called in a Jakarta EE web or EJB application (though it is not guaranteed that an exception is
 thrown in this case)
 </ul></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JMS 2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms"><code>ConnectionConsumer</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../jakarta/jms/CompletionListener.html" title="interface in jakarta.jms"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/jms/ConnectionConsumer.html" title="interface in jakarta.jms"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/jms/Connection.html" target="_top">Frames</a></li>
<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
