org.apache.jmeter.protocol.jms.sampler

## Class SubscriberSampler

- java.lang.Object
- - org.apache.jmeter.testelement.AbstractTestElement
  - - org.apache.jmeter.samplers.AbstractSampler
    - - org.apache.jmeter.protocol.jms.sampler.BaseJMSSampler
      - - org.apache.jmeter.protocol.jms.sampler.SubscriberSampler

- All Implemented Interfaces:
    Serializable, Cloneable, ConfigMergabilityIndicator, Searchable, Interruptible, Sampler, TestElement, TestStateListener, ThreadListener

      public class SubscriberSampler
      extends BaseJMSSampler
      implements Interruptible, ThreadListener, TestStateListener

  This class implements the JMS Subscriber sampler. It supports both receive and onMessage strategies via the ReceiveSubscriber class.
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from interface org.apache.jmeter.testelement.TestElement

      `COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SubscriberSampler()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getClientChoice()` Return the client choice.
    `String` | `getClientId()`
    `String` | `getDurableSubscriptionId()`
    `String` | `getJmsSelector()`
    `String` | `getPauseBetweenErrors()`
    `long` | `getPauseBetweenErrorsAsLong()`
    `String` | `getSeparator()`
    `String` | `getTimeout()`
    `long` | `getTimeoutAsLong()`
    `boolean` | `interrupt()` Handle an interrupt of the test.
    `boolean` | `isStopBetweenSamples()`
    `SampleResult` | `sample()` sample method will check which client it should use and call the appropriate client specific sample method.
    `void` | `setClientChoice(String choice)` Set the client choice.
    `void` | `setClientID(String clientId)`
    `void` | `setDurableSubscriptionId(String durableSubscriptionId)`
    `void` | `setJmsSelector(String jmsSelector)`
    `void` | `setPauseBetweenErrors(String pause)`
    `void` | `setSeparator(String text)` Separator for sampler results
    `void` | `setStopBetweenSamples(boolean selected)`
    `void` | `setTimeout(String timeout)`
    `void` | `testEnded()` Called once for all threads after the end of a test.
    `void` | `testEnded(String host)` Called once for all threads after the end of a test.
    `void` | `testStarted()` Called just before the start of the test from the main engine thread.
    `void` | `testStarted(String host)` Called just before the start of the test from the main engine thread.
    `void` | `threadFinished()` Close subscriber.
    `void` | `threadFinished(boolean wts)`
    `void` | `threadStarted()` Initialise the thread-local variables.
    `void` | `threadStarted(boolean wts)`

    - ### Methods inherited from class org.apache.jmeter.protocol.jms.sampler.BaseJMSSampler

      `configureIsReconnectErrorCode, getConnectionFactory, getDestination, getIsReconnectErrorCode, getIterationCount, getIterations, getJNDIInitialContextFactory, getMessageHeaders, getPassword, getProviderUrl, getReadResponse, getReadResponseAsBoolean, getReconnectionErrorCodes, getUseJNDIProperties, getUseJNDIPropertiesAsBoolean, getUsername, isDestinationStatic, isUseAuth, sample, setConnectionFactory, setDestination, setDestinationStatic, setIterations, setJNDIIntialContextFactory, setPassword, setProviderUrl, setReadResponse, setReconnectionErrorCodes, setUseAuth, setUseJNDIProperties, setUsername`

    - ### Methods inherited from class org.apache.jmeter.samplers.AbstractSampler

      `applies`

    - ### Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement

      `addPropertiesValues, addProperty, addProperty, addTestElement, canRemove, clear, clearTemporary, clearTestElementChildren, clone, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.jmeter.testelement.TestElement

      `addTestElement, canRemove, clear, clearTestElementChildren, clone, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removed, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse`

- - ### Constructor Detail

    - #### SubscriberSampler

          public SubscriberSampler()

  - ### Method Detail

    - #### sample

          public SampleResult sample()

      sample method will check which client it should use and call the appropriate client specific sample method.
      Specified by:
        `sample` in class `BaseJMSSampler`
      Returns:
        the appropriate sample result

    - #### threadStarted

          public void threadStarted()

      Initialise the thread-local variables.
      Called for each thread before starting sampling. WARNING: this is called before any Config test elements are processed, so any properties they define will not have been merged in yet. See org.apache.jmeter.threads.JMeterThread#threadStarted()
      Specified by:
        `threadStarted` in interface `ThreadListener`

    - #### threadStarted

          public void threadStarted(boolean wts)

    - #### threadFinished

          public void threadFinished()

      Close subscriber.
      Called for each thread after all samples have been processed. See org.apache.jmeter.threads.JMeterThread#threadFinished(org.apache.jmeter.engine.event.LoopIterationListener)
      Specified by:
        `threadFinished` in interface `ThreadListener`

    - #### threadFinished

          public void threadFinished(boolean wts)

    - #### interrupt

          public boolean interrupt()

      Handle an interrupt of the test.
      Specified by:
        `interrupt` in interface `Interruptible`
      Returns:
        `true` if there was an operation to interrupt.

    - #### setClientChoice

          public void setClientChoice(String choice)

      Set the client choice. There are two options: ReceiveSusbscriber and OnMessageSubscriber.
      Parameters:
        `choice` - the client to use. One of `RECEIVE_RSC` or `ON_MESSAGE_RSC`

    - #### getClientChoice

          public String getClientChoice()

      Return the client choice.
      Returns:
        the client choice, either `RECEIVE_RSC` or `ON_MESSAGE_RSC`

    - #### getTimeout

          public String getTimeout()

    - #### getTimeoutAsLong

          public long getTimeoutAsLong()

    - #### setTimeout

          public void setTimeout(String timeout)

    - #### getDurableSubscriptionId

          public String getDurableSubscriptionId()

    - #### getClientId

          public String getClientId()

      Returns:
        JMS Client ID

    - #### getJmsSelector

          public String getJmsSelector()

      Returns:
        JMS selector

    - #### setDurableSubscriptionId

          public void setDurableSubscriptionId(String durableSubscriptionId)

    - #### setClientID

          public void setClientID(String clientId)

      Parameters:
        `clientId` - JMS CLient id

    - #### setJmsSelector

          public void setJmsSelector(String jmsSelector)

      Parameters:
        `jmsSelector` - JMS Selector

    - #### getSeparator

          public String getSeparator()

      Returns:
        Separator for sampler results

    - #### setSeparator

          public void setSeparator(String text)

      Separator for sampler results
      Parameters:
        `text` - separator to use for sampler results

    - #### isStopBetweenSamples

          public boolean isStopBetweenSamples()

    - #### setStopBetweenSamples

          public void setStopBetweenSamples(boolean selected)

    - #### setPauseBetweenErrors

          public void setPauseBetweenErrors(String pause)

    - #### getPauseBetweenErrors

          public String getPauseBetweenErrors()

    - #### getPauseBetweenErrorsAsLong

          public long getPauseBetweenErrorsAsLong()

    - #### testEnded

          public void testEnded()

      Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

      N.B. testStarted() and testEnded() are called from different threads.

      Specified by:
        `testEnded` in interface `TestStateListener`
      See Also:
        `StandardJMeterEngine.stopTest()`

    - #### testEnded

          public void testEnded(String host)

      Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

      N.B. testStarted() and testEnded() are called from different threads.

      Specified by:
        `testEnded` in interface `TestStateListener`
      Parameters:
        `host` - name of host
      See Also:
        `StandardJMeterEngine.stopTest()`

    - #### testStarted

          public void testStarted()

      Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

      N.B. testStarted() and testEnded() are called from different threads.

      Specified by:
        `testStarted` in interface `TestStateListener`
      See Also:
        `StandardJMeterEngine.run()`

    - #### testStarted

          public void testStarted(String host)

      Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

      N.B. testStarted() and testEnded() are called from different threads.

      Specified by:
        `testStarted` in interface `TestStateListener`
      Parameters:
        `host` - name of host
      See Also:
        `StandardJMeterEngine.run()`

Copyright © 1998-2021 Apache Software Foundation. All Rights Reserved.