blob: a2893bb3633eb632f1fabb01fddbf633a407c023 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.axis2.transport.jms (Apache Axis2)</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="org.apache.axis2.transport.jms (Apache Axis2)";
}
}
catch(err) {
}
//-->
</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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></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="../../../../../org/apache/axis2/transport/java/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/apache/axis2/transport/jms/ctype/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/axis2/transport/jms/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.axis2.transport.jms</h1>
<div class="docSummary">
<div class="block">Transport implementation for JMS.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSConnectionFactory.html" title="class in org.apache.axis2.transport.jms">JMSConnectionFactory</a></td>
<td class="colLast">
<div class="block">Encapsulate a JMS Connection factory definition within an Axis2.xml
JMS Connection Factory definitions, allows JNDI properties as well as other service
level parameters to be defined, and re-used by each service that binds to it
When used for sending messages out, the JMSConnectionFactory'ies are able to cache
a Connection, Session or Producer</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSConnectionFactoryManager.html" title="class in org.apache.axis2.transport.jms">JMSConnectionFactoryManager</a></td>
<td class="colLast">
<div class="block">Class managing a set of <a href="../../../../../org/apache/axis2/transport/jms/JMSConnectionFactory.html" title="class in org.apache.axis2.transport.jms"><code>JMSConnectionFactory</code></a> objects.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSConstants.html" title="class in org.apache.axis2.transport.jms">JMSConstants</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSEndpoint.html" title="class in org.apache.axis2.transport.jms">JMSEndpoint</a></td>
<td class="colLast">
<div class="block">Class that links an Axis2 service to a JMS destination.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSListener.html" title="class in org.apache.axis2.transport.jms">JMSListener</a></td>
<td class="colLast">
<div class="block">The revamped JMS Transport listener implementation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSMessageReceiver.html" title="class in org.apache.axis2.transport.jms">JMSMessageReceiver</a></td>
<td class="colLast">
<div class="block">This is the JMS message receiver which is invoked when a message is received.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSMessageSender.html" title="class in org.apache.axis2.transport.jms">JMSMessageSender</a></td>
<td class="colLast">
<div class="block">Performs the actual sending of a JMS message, and the subsequent committing of a JTA transaction
(if requested) or the local session transaction, if used.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSOutTransportInfo.html" title="class in org.apache.axis2.transport.jms">JMSOutTransportInfo</a></td>
<td class="colLast">
<div class="block">The JMS OutTransportInfo is a holder of information to send an outgoing message
(e.g. a Response) to a JMS destination.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSSender.html" title="class in org.apache.axis2.transport.jms">JMSSender</a></td>
<td class="colLast">
<div class="block">The TransportSender for JMS</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/JMSUtils.html" title="class in org.apache.axis2.transport.jms">JMSUtils</a></td>
<td class="colLast">
<div class="block">Miscallaneous methods used for the JMS transport</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/ServiceTaskManager.html" title="class in org.apache.axis2.transport.jms">ServiceTaskManager</a></td>
<td class="colLast">
<div class="block">Each service will have one ServiceTaskManager instance that will create, manage and also destroy
idle tasks created for it, for message receipt.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/ServiceTaskManagerFactory.html" title="class in org.apache.axis2.transport.jms">ServiceTaskManagerFactory</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/axis2/transport/jms/AxisJMSException.html" title="class in org.apache.axis2.transport.jms">AxisJMSException</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!-- -->
</a>
<h2 title="Package org.apache.axis2.transport.jms Description">Package org.apache.axis2.transport.jms Description</h2>
<div class="block">Transport implementation for JMS.
<h2>JMS Listener Configuration (axis2.xml)</h2>
e.g:
<pre>
&lt;transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener"&gt;
&lt;parameter name="myTopicConnectionFactory"&gt;
&lt;parameter name="java.naming.factory.initial"&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name="java.naming.provider.url"&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&gt;TopicConnectionFactory&lt;/parameter&gt;
&lt;parameter name="transport.jms.ConnectionFactoryType"&gt;topic&lt;/parameter&gt;
&lt;parameter name="transport.jms.JMSSpecVersion"&gt;1.0.2b&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;parameter name="myQueueConnectionFactory"&gt;
&lt;parameter name="java.naming.factory.initial"&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name="java.naming.provider.url"&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&gt;QueueConnectionFactory&lt;/parameter&gt;
&lt;parameter name="transport.jms.ConnectionFactoryType"&gt;queue&lt;/parameter&gt;
&lt;parameter name="transport.jms.JMSSpecVersion"&gt;1.1&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;parameter name="default"&gt;
&lt;parameter name="java.naming.factory.initial"&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name="java.naming.provider.url"&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&gt;ConnectionFactory&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;/transportReceiver&gt;
&lt;transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"&gt;
&lt;parameter name="myTopicConnectionFactory"&gt;
&lt;parameter name="java.naming.factory.initial"&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name="java.naming.provider.url"&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&gt;TopicConnectionFactory&lt;/parameter&gt;
&lt;parameter name="transport.jms.JMSSpecVersion"&gt;1.0.2b&lt;/parameter&gt;
&lt;parameter name="transport.jms.CacheLevel"&gt;producer&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;parameter name="myQueueConnectionFactory"&gt;
&lt;parameter name="java.naming.factory.initial"&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name="java.naming.provider.url"&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&gt;QueueConnectionFactory&lt;/parameter&gt;
&lt;parameter name="transport.jms.JMSSpecVersion"&gt;1.0.2b&lt;/parameter&gt;
&lt;parameter name="transport.jms.CacheLevel"&gt;producer&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;parameter name="default"&gt;
&lt;parameter name="java.naming.factory.initial"&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/parameter&gt;
&lt;parameter name="java.naming.provider.url"&gt;tcp://localhost:61616&lt;/parameter&gt;
&lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&gt;ConnectionFactory&lt;/parameter&gt;
&lt;parameter name="transport.jms.CacheLevel"&gt;connection&lt;/parameter&gt;
&lt;/parameter&gt;
&lt;/transportSender&gt;
</pre>
<p>
The Transport Listener and Sender both allows the user to configure one or more logical JMS Connection
Factories, which are named definitions as shown above. Any remaining parameters maybe defined at the
service level via the services.xml. The applicable set of parameters for a service would be the
union of the properties from the services.xml and the corresponding logical connection factory.
</p>
<TABLE WIDTH="100%" BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
<COL WIDTH="10%">
<COL WIDTH="20%">
<COL WIDTH="60%">
<COL WIDTH="5%">
<COL WIDTH="5%">
<tr>
<td>Transport level</td>
<td><BR></td>
<td><BR></td>
<td>Listening</td>
<td>Sending</td>
</tr>
<tr>
<td>JNDI</td>
<td>java.naming.factory.initial</td>
<td>The JNDI InitialContext factory class</td>
<td>Required</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>java.naming.provider.url</td>
<td>JNDI Provider URL</td>
<td>Required</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>java.naming.security.principal</td>
<td>Username for JNDI access</td>
<td><BR></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>java.naming.security.credentials</td>
<td>Password for JNDI access</td>
<td><BR></td>
<td><BR></td>
</tr>
<tr>
<td>Transactions</td>
<td>transport.Transactionality</td>
<td>Desired transactionality. One of none / local / jta</td>
<td>Defaults to <B>none</B></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.UserTxnJNDIName</td>
<td>JNDI name to be used to obtain a UserTransaction</td>
<td>Defaults to &quot;java:comp/UserTransaction&quot;</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.CacheUserTxn</td>
<td>Generally its safe and more efficient to cache the
UserTransaction reference from JNDI. One of true/ false</td>
<td>Defaults to <B>true</B></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.SessionTransacted</td>
<td>Should the JMS Session be transacted. One of true/ false</td>
<td>Defaults to <B>true</B> when local transactions are used</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.SessionAcknowledgement</td>
<td>JMS Session acknowledgement mode to be used. One of AUTO_ACKNOWLEDGE | CLIENT_ACKNOWLEDGE | DUPS_OK_ACKNOWLEDGE | SESSION_TRANSACTED</td>
<td>Defaults to <B>AUTO_ACKNOWLEDGE</B></td>
<td><BR></td>
</tr>
<tr>
<td>Connection</td>
<td>transport.jms.ConnectionFactory</td>
<td>Name of the logical connection factory this service will use</td>
<td>Defaults to &quot;default&quot;</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.ConnectionFactoryJNDIName</td>
<td>The JNDI name of the JMS ConnectionFactory</td>
<td>Required</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.ConnectionFactoryType</td>
<td> Type of ConnectionFactory &ndash; queue / topic</td>
<td>Suggested to be specified</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.JMSSpecVersion</td>
<td>JMS API Version One of &quot;1.1&quot; or &quot;1.0.2b&quot;</td>
<td>Defaults to 1.1</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.UserName</td>
<td>The JMS connection username</td>
<td><BR></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.Password</td>
<td>The JMS connection password</td>
<td><BR></td>
<td><BR></td>
</tr>
<tr>
<td>Destinations</td>
<td>transport.jms.Destination</td>
<td>JNDI Name of the Destination </td>
<td>Defaults to Service name</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.DestinationType</td>
<td>Type of Destination &ndash; queue / topic</td>
<td>Defaults to a queue</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.DefaultReplyDestination</td>
<td>JNDI Name of the default reply Destination</td>
<td><BR></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.DefaultReplyDestinationType</td>
<td>Type of the reply Destination &ndash; queue / topic</td>
<td>Same type as of Destination</td>
<td><BR></td>
</tr>
<tr>
<td>Advanced</td>
<td>transport.jms.MessageSelector</td>
<td>Optional message selector to be applied</td>
<td><BR></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.SubscriptionDurable</td>
<td>Is the subscription durable? (For Topics) &ndash; true / false</td>
<td>Defaults to <B>false</B></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.DurableSubscriberName</td>
<td>Name to be used for the durable subscription</td>
<td>Required when subscription is durable</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.PubSubNoLocal</td>
<td>Should messages published by the same connection (for Topics)
be received? &ndash; true / false</td>
<td>Defaults to <B>false</B></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.CacheLevel</td>
<td>The JMS resource cache level. One of none / connection /
session / consumer / producer / auto</td>
<td>Defaults to <B>auto</B> </td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.ReceiveTimeout</td>
<td>Time to wait for a JMS message during polling. Negative means
wait forever, while 0 means do not wait at all. Anything else, is
a millisecond value for the poll</td>
<td>Defaults to 1000ms</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.ConcurrentConsumers</td>
<td>Number of concurrent consumer tasks (~threads) to be started to
poll for messages for this service. For Topics, this should be
always 1, to prevent the same message being processed multiple
times</td>
<td>Defaults to <B>1</B></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.MaxConcurrentConsumers</td>
<td>Will dynamically scale the number of concurrent consumer tasks
(~threads) until this value; as the load increases. Should always
be 1 for Topics.</td>
<td>Defaults to <B>1</B></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.IdleTaskLimit</td>
<td>The number of idle (i.e. poll without receipt of a message)
runs per task, before it dies &ndash; to recycle resources, and to
allow dynamic scale down.</td>
<td>Defaults to 10</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.MaxMessagesPerTask</td>
<td>The maximum number of successful message receipts to limit per
Task lifetime. </td>
<td>Defaults to <B>&ndash;1</B> which implies unlimited messages</td>
<td><BR></td>
</tr>
<tr>
<td>Reconnection</td>
<td>transport.jms.InitialReconnectDuration</td>
<td>Initial reconnection attempt duration</td>
<td>Defaults to 10,000ms</td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.ReconnectProgressFactor</td>
<td>Factor used to compute consecutive reconnection attempt
durations, in a geometric series</td>
<td>Defaults to <B>2 (i.e. exponential)</B></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.MaxReconnectDuration</td>
<td>Maximum limit for a reconnection duration</td>
<td>Defaults to <B>1 hour</B></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>transport.jms.PublishEPR</td>
<td>One or more JMS URL's to be showed as the JMS EPRs on the WSDL
for the service. Allows the specification of a custom EPR, and/or
hiding of internal properties from a public EPR (e.g.
credentials). Add one as LEGACY to retain auto generated EPR, when
adding new EPRs</td>
<td><BR></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td><BR></td>
<td><BR></td>
<td><BR></td>
<td><BR></td>
</tr>
<tr>
<td>Legacy Mode and Payload handling</td>
<td>Wrapper</td>
<td>Binary and Text payload wrapper element to be specified as &quot;{ns}name&quot; where ns refers to a namespace and name the name of the element</td>
<td>Default binary wrapper<ul><li>{http://ws.apache.org/commons/ns/payload}binary</li></ul>
Default text wrapper <ul><li>{http://ws.apache.org/commons/ns/payload}text</li></ul></td>
<td><BR></td>
</tr>
<tr>
<td><BR></td>
<td>Operation</td>
<td>operation name to be specified as &quot;{ns}name&quot; where ns refers to the namespace and name the name of the operation</td>
<td>Defaults to urn:mediate</td>
<td><BR></td>
</tr>
</TABLE></div>
</div>
<!-- ======= 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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></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="../../../../../org/apache/axis2/transport/java/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/apache/axis2/transport/jms/ctype/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/axis2/transport/jms/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>