blob: f089e7e325edf0df2f04ebca1cca2e836cfb353b [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>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/stream/jms11/JmsStreamer.html" />
<!-- Generated by javadoc (1.8.0_261) on Wed Dec 09 14:33:10 MSK 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JmsStreamer (Ignite 2.9.1)</title>
<meta name="date" content="2020-12-09">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="JmsStreamer (Ignite 2.9.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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="class-use/JmsStreamer.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>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/ignite/stream/jms11/MessageTransformer.html" title="interface in org.apache.ignite.stream.jms11"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/stream/jms11/JmsStreamer.html" target="_top">Frames</a></li>
<li><a href="JmsStreamer.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><a href="#fields.inherited.from.class.org.apache.ignite.stream.StreamAdapter">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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">org.apache.ignite.stream.jms11</div>
<h2 title="Class JmsStreamer" class="title">Class JmsStreamer<span class='angle_bracket'>&lt;</span>T extends javax.jms.Message,K,V<span class='angle_bracket'>&gt;</span></h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/ignite/stream/StreamAdapter.html" title="class in org.apache.ignite.stream">org.apache.ignite.stream.StreamAdapter</a><span class='angle_bracket'>&lt;</span>T,K,V<span class='angle_bracket'>&gt;</span></li>
<li>
<ul class="inheritance">
<li>org.apache.ignite.stream.jms11.JmsStreamer<span class='angle_bracket'>&lt;</span>T,K,V<span class='angle_bracket'>&gt;</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">JmsStreamer<span class='angle_bracket'>&lt;</span>T extends javax.jms.Message,K,V<span class='angle_bracket'>&gt;</span></span>
extends <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html" title="class in org.apache.ignite.stream">StreamAdapter</a><span class='angle_bracket'>&lt;</span>T,K,V<span class='angle_bracket'>&gt;</span></pre>
<div class="block">Streamer that consumes from a JMS destination and feeds key-value pairs into an <a href="../../../../../org/apache/ignite/IgniteDataStreamer.html" title="interface in org.apache.ignite"><code>IgniteDataStreamer</code></a> instance.
<p>
This Streamer uses purely JMS semantics and it is not coupled with any JMS implementation. It uses <code>MessageListener</code> to receive messages. You must provide your broker's <code>ConnectionFactory</code> when
creating a <a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html" title="class in org.apache.ignite.stream.jms11"><code>JmsStreamer</code></a>.
<p>
You must also provide a <a href="../../../../../org/apache/ignite/stream/jms11/MessageTransformer.html" title="interface in org.apache.ignite.stream.jms11"><code>MessageTransformer</code></a> to convert the incoming message into cache entries.
<p>
This Streamer has many features:
<ul>
<li>Consumes from queues or topics.</li>
<li>For topics, it supports durable subscriptions.</li>
<li>Concurrent consumers are supported via the <tt>threads</tt> parameter. When consuming from queues,
this component will start as many <code>Session</code> objects with separate <code>MessageListener</code> instances each,
therefore achieving <i>native</i> concurrency (in terms of the JMS standard).<br>
When consuming from topics, obviously we cannot start multiple threads as that would lead us to consume
duplicate messages. Therefore, we achieve concurrency in a <i>virtualized</i> manner through an internal
thread pool.</li>
<li>Transacted sessions are supported through the <tt>transacted</tt> parameter.</li>
<li>Batched consumption is possible via the <tt>batched</tt> parameter. Depending on the broker, this
technique can provide a higher throughput as it decreases the amount of message acknowledgement round trips
that are necessary, albeit at the expense possible duplicate messages (especially if an incident
occurs in the middle of a transaction).<br>
Batches are committed when the <tt>batchClosureMillis</tt> time has elapsed, or when a Session has received
at least <tt>batchClosureSize</tt> messages. Time-based closure fires with the specified frequency and applies to
all <code>Session</code>s in parallel. Size-based closure applies individually to each <tt>Session</tt> (as transactions
are <tt>Session-bound</tt> in JMS, so it will fire when that <code>Session</code> has processed that many messages.
Both options are compatible with each other, or you can disable either (see setter documentation),
but not both.</li>
<li>Can specify the destination with implementation-specific <code>Destination</code> objects or with names.</li>
</ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.ignite.stream.StreamAdapter">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.ignite.stream.<a href="../../../../../org/apache/ignite/stream/StreamAdapter.html" title="class in org.apache.ignite.stream">StreamAdapter</a></h3>
<code><a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#ignite">ignite</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#JmsStreamer--">JmsStreamer</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setBatchClosureMillis-long-">setBatchClosureMillis</a></span>(long&nbsp;batchClosureMillis)</code>
<div class="block">When using batched consumption, sets the time in milliseconds that will elapse before a batch is committed.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setBatchClosureSize-int-">setBatchClosureSize</a></span>(int&nbsp;batchClosureSize)</code>
<div class="block">When using batched consumption, sets the amount of messages that will be received before a batch is committed.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setBatched-boolean-">setBatched</a></span>(boolean&nbsp;batched)</code>
<div class="block">Batch consumption leverages JMS Transactions to minimise round trips to the broker.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setClientId-java.lang.String-">setClientId</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;clientId)</code>
<div class="block">Sets the client ID of the JMS <code>Connection</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setConnectionFactory-javax.jms.ConnectionFactory-">setConnectionFactory</a></span>(javax.jms.ConnectionFactory&nbsp;connectionFactory)</code>
<div class="block">Sets the JMS <code>ConnectionFactory</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setDestination-javax.jms.Destination-">setDestination</a></span>(javax.jms.Destination&nbsp;destination)</code>
<div class="block">Sets the JMS <code>Destination</code> explicitly.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setDestinationName-java.lang.String-">setDestinationName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;destinationName)</code>
<div class="block">Sets the name of the JMS destination to consume from.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setDestinationType-java.lang.Class-">setDestinationType</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><span class='angle_bracket'>&lt;</span>? extends javax.jms.Destination<span class='angle_bracket'>&gt;</span>&nbsp;destinationType)</code>
<div class="block">Sets the type of the destination to create, when used in combination with <a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setDestinationName-java.lang.String-"><code>setDestinationName(String)</code></a>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setDurableSubscription-boolean-">setDurableSubscription</a></span>(boolean&nbsp;durableSubscription)</code>
<div class="block">A <tt>true</tt> value is only accepted in combination with topic consumption.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setDurableSubscriptionName-java.lang.String-">setDurableSubscriptionName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;durableSubscriptionName)</code>
<div class="block">When using Durable Subscribers, sets the name of the durable subscriber.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setExceptionListener-javax.jms.ExceptionListener-">setExceptionListener</a></span>(javax.jms.ExceptionListener&nbsp;exceptionListener)</code>
<div class="block">Exception listener for queue/topic failures.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setThreads-int-">setThreads</a></span>(int&nbsp;threads)</code>
<div class="block">Sets the number of threads to concurrently consume JMS messages.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setTransacted-boolean-">setTransacted</a></span>(boolean&nbsp;transacted)</code>
<div class="block">Instructs the streamer whether to use local JMS transactions or not.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setTransformer-org.apache.ignite.stream.jms11.MessageTransformer-">setTransformer</a></span>(<a href="../../../../../org/apache/ignite/stream/jms11/MessageTransformer.html" title="interface in org.apache.ignite.stream.jms11">MessageTransformer</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html" title="type parameter in JmsStreamer">T</a>,<a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html" title="type parameter in JmsStreamer">K</a>,<a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html" title="type parameter in JmsStreamer">V</a><span class='angle_bracket'>&gt;</span>&nbsp;transformer)</code>
<div class="block"><i>Compulsory.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#start--">start</a></span>()</code>
<div class="block">Starts streamer.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#stop--">stop</a></span>()</code>
<div class="block">Stops streamer.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.ignite.stream.StreamAdapter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.ignite.stream.<a href="../../../../../org/apache/ignite/stream/StreamAdapter.html" title="class in org.apache.ignite.stream">StreamAdapter</a></h3>
<code><a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#addMessage-T-">addMessage</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#getIgnite--">getIgnite</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#getMultipleTupleExtractor--">getMultipleTupleExtractor</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#getSingleTupleExtractor--">getSingleTupleExtractor</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#getStreamer--">getStreamer</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#getTupleExtractor--">getTupleExtractor</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#setIgnite-org.apache.ignite.Ignite-">setIgnite</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#setMultipleTupleExtractor-org.apache.ignite.stream.StreamMultipleTupleExtractor-">setMultipleTupleExtractor</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#setSingleTupleExtractor-org.apache.ignite.stream.StreamSingleTupleExtractor-">setSingleTupleExtractor</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#setStreamer-org.apache.ignite.IgniteDataStreamer-">setStreamer</a>, <a href="../../../../../org/apache/ignite/stream/StreamAdapter.html#setTupleExtractor-org.apache.ignite.stream.StreamTupleExtractor-">setTupleExtractor</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="JmsStreamer--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JmsStreamer</h4>
<pre>public&nbsp;JmsStreamer()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;void&nbsp;start()
throws <a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></pre>
<div class="block">Starts streamer.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If failed.</dd>
</dl>
</li>
</ul>
<a name="stop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;void&nbsp;stop()
throws <a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></pre>
<div class="block">Stops streamer.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code></dd>
</dl>
</li>
</ul>
<a name="setConnectionFactory-javax.jms.ConnectionFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConnectionFactory</h4>
<pre>public&nbsp;void&nbsp;setConnectionFactory(javax.jms.ConnectionFactory&nbsp;connectionFactory)</pre>
<div class="block">Sets the JMS <code>ConnectionFactory</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>connectionFactory</code> - JMS <code>ConnectionFactory</code> for this streamer to use.</dd>
</dl>
</li>
</ul>
<a name="setTransformer-org.apache.ignite.stream.jms11.MessageTransformer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTransformer</h4>
<pre>public&nbsp;void&nbsp;setTransformer(<a href="../../../../../org/apache/ignite/stream/jms11/MessageTransformer.html" title="interface in org.apache.ignite.stream.jms11">MessageTransformer</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html" title="type parameter in JmsStreamer">T</a>,<a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html" title="type parameter in JmsStreamer">K</a>,<a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html" title="type parameter in JmsStreamer">V</a><span class='angle_bracket'>&gt;</span>&nbsp;transformer)</pre>
<div class="block"><i>Compulsory.</i> The <a href="../../../../../org/apache/ignite/stream/jms11/MessageTransformer.html" title="interface in org.apache.ignite.stream.jms11"><code>MessageTransformer</code></a> that converts an incoming JMS <code>Message</code> (or subclass)
into one or multiple cache entries.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transformer</code> - The implementation of the MessageTransformer to use.</dd>
</dl>
</li>
</ul>
<a name="setDestination-javax.jms.Destination-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDestination</h4>
<pre>public&nbsp;void&nbsp;setDestination(javax.jms.Destination&nbsp;destination)</pre>
<div class="block">Sets the JMS <code>Destination</code> explicitly. Takes precedence over destinationName if both are set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>destination</code> - JMS <code>Destination</code> if setting it explicitly.</dd>
</dl>
</li>
</ul>
<a name="setDestinationName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDestinationName</h4>
<pre>public&nbsp;void&nbsp;setDestinationName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;destinationName)</pre>
<div class="block">Sets the name of the JMS destination to consume from.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>destinationName</code> - The name of the destination; will be passed on directly to the broker.</dd>
</dl>
</li>
</ul>
<a name="setDestinationType-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDestinationType</h4>
<pre>public&nbsp;void&nbsp;setDestinationType(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><span class='angle_bracket'>&lt;</span>? extends javax.jms.Destination<span class='angle_bracket'>&gt;</span>&nbsp;destinationType)</pre>
<div class="block">Sets the type of the destination to create, when used in combination with <a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setDestinationName-java.lang.String-"><code>setDestinationName(String)</code></a>. It
can be an interface or the implementation class specific to the broker.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>destinationType</code> - The class representing the destination type. Suggested values: <code>Queue</code> or <code>Topic</code>. <i>Compulsory</i> if using <a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#destinationName"><code>destinationName</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Queue</code>,
<code>Topic</code></dd>
</dl>
</li>
</ul>
<a name="setThreads-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setThreads</h4>
<pre>public&nbsp;void&nbsp;setThreads(int&nbsp;threads)</pre>
<div class="block">Sets the number of threads to concurrently consume JMS messages. <p> When working with queues, we will start as
many <code>Session</code> objects as indicated by this field, i.e. you will get native concurrency. <p> On
the other hand, when consuming from a topic, for obvious reason we will only start 1 message consumer but we will
distribute the processing of received messages to as many concurrent threads as indicated.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>threads</code> - Number of threads to use. Default: <tt>1</tt>.</dd>
</dl>
</li>
</ul>
<a name="setClientId-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setClientId</h4>
<pre>public&nbsp;void&nbsp;setClientId(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;clientId)</pre>
<div class="block">Sets the client ID of the JMS <code>Connection</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clientId</code> - Client ID in case we're using durable subscribers. Default: none.</dd>
</dl>
</li>
</ul>
<a name="setDurableSubscription-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDurableSubscription</h4>
<pre>public&nbsp;void&nbsp;setDurableSubscription(boolean&nbsp;durableSubscription)</pre>
<div class="block">A <tt>true</tt> value is only accepted in combination with topic consumption.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>durableSubscription</code> - Whether or not to use durable subscriptions. Default: <tt>false</tt>.</dd>
</dl>
</li>
</ul>
<a name="setTransacted-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTransacted</h4>
<pre>public&nbsp;void&nbsp;setTransacted(boolean&nbsp;transacted)</pre>
<div class="block">Instructs the streamer whether to use local JMS transactions or not.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>transacted</code> - Whether to consume or not in a transacted manner. Default: <tt>false</tt>.</dd>
</dl>
</li>
</ul>
<a name="setBatched-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBatched</h4>
<pre>public&nbsp;void&nbsp;setBatched(boolean&nbsp;batched)</pre>
<div class="block">Batch consumption leverages JMS Transactions to minimise round trips to the broker. <p> Rather than ACKing every
single message received, they will be received in the context of a JMS transaction which will be committed once
the indicated batch closure size or batch closure time has elapsed. <p> Warning: May lead to duplicate
consumption.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>batched</code> - Whether to consume messages in batches. Value <tt>true</tt> implies <tt>transacted = true</tt>.
Default: <tt>false</tt>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setBatchClosureMillis-long-"><code>setBatchClosureMillis(long)</code></a>,
<a href="../../../../../org/apache/ignite/stream/jms11/JmsStreamer.html#setBatchClosureSize-int-"><code>setBatchClosureSize(int)</code></a></dd>
</dl>
</li>
</ul>
<a name="setBatchClosureSize-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBatchClosureSize</h4>
<pre>public&nbsp;void&nbsp;setBatchClosureSize(int&nbsp;batchClosureSize)</pre>
<div class="block">When using batched consumption, sets the amount of messages that will be received before a batch is committed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>batchClosureSize</code> - The amount of messages processed before a batch is committed. Default: <tt>50</tt>.</dd>
</dl>
</li>
</ul>
<a name="setBatchClosureMillis-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBatchClosureMillis</h4>
<pre>public&nbsp;void&nbsp;setBatchClosureMillis(long&nbsp;batchClosureMillis)</pre>
<div class="block">When using batched consumption, sets the time in milliseconds that will elapse before a batch is committed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>batchClosureMillis</code> - Milliseconds before a batch is committed. Default: <tt>1000ms</tt>.</dd>
</dl>
</li>
</ul>
<a name="setDurableSubscriptionName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDurableSubscriptionName</h4>
<pre>public&nbsp;void&nbsp;setDurableSubscriptionName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;durableSubscriptionName)</pre>
<div class="block">When using Durable Subscribers, sets the name of the durable subscriber. It is compulsory.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>durableSubscriptionName</code> - Name of the durable subscriber. Default: none.</dd>
</dl>
</li>
</ul>
<a name="setExceptionListener-javax.jms.ExceptionListener-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setExceptionListener</h4>
<pre>public&nbsp;void&nbsp;setExceptionListener(javax.jms.ExceptionListener&nbsp;exceptionListener)</pre>
<div class="block">Exception listener for queue/topic failures.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exceptionListener</code> - ExceptionListener interface implementation.</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="class-use/JmsStreamer.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>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/ignite/stream/jms11/MessageTransformer.html" title="interface in org.apache.ignite.stream.jms11"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/stream/jms11/JmsStreamer.html" target="_top">Frames</a></li>
<li><a href="JmsStreamer.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><a href="#fields.inherited.from.class.org.apache.ignite.stream.StreamAdapter">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2020 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.9.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 9 2020 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>