+ All Categories
Home > Documents > IBM Performance Harness for XMS Message Service · IBM Performance Harness for XMS Message Service....

IBM Performance Harness for XMS Message Service · IBM Performance Harness for XMS Message Service....

Date post: 27-Apr-2018
Category:
Upload: lykiet
View: 221 times
Download: 2 times
Share this document with a friend
44
IBM Message Service Client for .NET IBM Performance Harness for XMS Message Service
Transcript

IBM Message Service Client for .NET

IBM Performance Harness for XMSMessage Service

���

IBM Message Service Client for .NET

IBM Performance Harness for XMSMessage Service

���

ii IBM Performance Harness for XMS Message Service

Contents

Figures . . . . . . . . . . . . . . . v

Tables . . . . . . . . . . . . . . . vii

Chapter 1. An Introduction to MessageService Client . . . . . . . . . . . . 1

Chapter 2. Overview of XMSPerformance Harness . . . . . . . . . 3

Chapter 3. Using Performance Harnessfor XMS . . . . . . . . . . . . . . . 5

Chapter 4. Getting Started . . . . . . . 7Using the built-in help . . . . . . . . . . . 7Selecting the XMS test class . . . . . . . . . 7Selecting from the available XMS provider classes . . 8Using JNDI administered objects . . . . . . . 8

JNDI parameters . . . . . . . . . . . . 9Using JNDI with WebSphere MQ . . . . . . 9

Using multiple JMS destinations . . . . . . . . 9

Chapter 5. Example Invocations . . . . 11Point-to-point using JNDI. . . . . . . . . . 11Point-to-point with WebSphere MQ . . . . . . 11Publish/subscribe . . . . . . . . . . . . 11

Chapter 6. Command-line Parameterreference. . . . . . . . . . . . . . 13AbstractJMSProvider . . . . . . . . . . . 13

BasicsStatistics . . . . . . . . . . . . . 14Config . . . . . . . . . . . . . . . . 14ControlThread . . . . . . . . . . . . . 15DefaultDestinationFactory . . . . . . . . . 15DefaultMessageFactory . . . . . . . . . . 16JNDI . . . . . . . . . . . . . . . . 16Log . . . . . . . . . . . . . . . . . 17Publisher . . . . . . . . . . . . . . . 17PutGet . . . . . . . . . . . . . . . . 17Receiver . . . . . . . . . . . . . . . 18Requestor . . . . . . . . . . . . . . . 18Responder . . . . . . . . . . . . . . . 18RollingavgStatistics . . . . . . . . . . . . 19Sender . . . . . . . . . . . . . . . . 19Statistics . . . . . . . . . . . . . . . 19Subscriber . . . . . . . . . . . . . . . 19WebSphere MQ . . . . . . . . . . . . . 19WebSphere, WebSphere Application Server . . . . 20WebsphereMQ, WMB . . . . . . . . . . . 20WorkerThread . . . . . . . . . . . . . 21

Chapter 7. Writing the input parameterfile . . . . . . . . . . . . . . . . 23

Chapter 8. Reading the output . . . . 25

Appendix.Notices . . . . . . . . . . 27Trademarks . . . . . . . . . . . . . . 29

Index . . . . . . . . . . . . . . . 31

© Copyright IBM Corp. 2010 iii

iv IBM Performance Harness for XMS Message Service

Figures

© Copyright IBM Corp. 2010 v

vi IBM Performance Harness for XMS Message Service

Tables

1. Terms used . . . . . . . . . . . . . 12. Parameters for using the build-in help . . . . 73. Parameters for selecting the XMS test cases 84. List of XMS provider classes . . . . . . . 85. JNDI parameters . . . . . . . . . . . 96. List of parameters . . . . . . . . . . 107. List of parameters of AbstractJMSProvider 138. List of parameters of BasicsStatistics . . . . 149. List of parameters of Config . . . . . . . 14

10. List of parameters of ControlThread . . . . 1511. List of parameters of

DefaultDestinationFactory. . . . . . . . 1512. List of Parameters of DefaultMessageFactory 1613. List of parameters for JNDI . . . . . . . 16

14. List of parameters of Log . . . . . . . . 1715. List of parameters of Publisher . . . . . . 1716. List of parameters for PutGet . . . . . . 1717. List of parameters of Receiver . . . . . . 1818. List of parameters for Requestor . . . . . 1819. List of parameters for Responder . . . . . 1820. List of parameters of RollingavgStatistics 1921. List of parameters of Statistics . . . . . . 1922. List of parameters of subscriber . . . . . . 1923. List of parameters of WebSphere MQ . . . . 2024. List of parameters of WebSphere MQ,

WebSphere Application Server . . . . . . 2025. List of parameters of WebSphereMQ, WMB 2126. List of parameters of WorkerThread . . . . 21

© Copyright IBM Corp. 2010 vii

viii IBM Performance Harness for XMS Message Service

Chapter 1. An Introduction to Message Service Client

XMS (IBM Message Service Client for .NET and CCPP) offers users an ApplicationProgramming Interface (API) that is consistent with the Java Message Service (JMS)API.

The IBM Message Service Client renders the Java Message Service (JMS) API in amanaged .NET environment and for C/C++ languages. Applications created in thisway can be used to exchange messages between other Message Service Clientapplications, JMS applications or native WebSphere MQ applications and can easilybe migrated between WebSphere MQ, WebSphere Business Integration MessageBrokers and WebSphere Application Server V6.0 messaging environments withlittle or no rework.

Terms used in this book

Table 1. Terms used

Term Description

XMS Message Service Client

API Application Programming Interface

JMS Java Message Service

JNDI Java Naming and Directory Interface

WAS Web Application Server

WMB Websphere Message Broker

© IBM Corporation 2010 © IBM 2010 1

2 IBM Performance Harness for XMS Message Service

Chapter 2. Overview of XMS Performance Harness

Performance Harness for Message Service Client (XMS) for .NET is a flexible andmodular package for performance testing only on .NET scenarios and providers.

It provides a complete set of XMS functionality, taking the capabilities andbringing the benefits of JMS. It is one of the many tools used by WebSphere MQ,WebSphere Message Broker, and WebSphere ESB performance teams for testsranging from a single client to more than 10,000 clients

There are many modules implementing point-to-point and publish/subscribemodes of operation, which can be explored through the documentation. Each ofthese modules, when selected, sends and/or receives messages from the selectedXMS provider as fast they can (unless a certain rate is specified). They share acommon command-line reporting mechanism and will print their currentthroughput rate on a user-selected periodic basis and also output summarystatistics at the end of a test. The help and documentation provided along with thisproduct provides detailed usage instructions and describe many further featuresand configuration parameters for investigation.

© Copyright IBM Corp. 2010 3

4 IBM Performance Harness for XMS Message Service

Chapter 3. Using Performance Harness for XMS

This tool has many uses depending on the goals of the user.

For best results, ensure the performance scenarios you choose to measure bearsome relation to the real world. Failure to do so inevitably leads to incorrect facts,figures, assumptions, and decisions. For instance, it is common to see competitiveproduct comparisons being "won conclusively" by using scenarios that meannothing in real customer environments. It is also worth remembering thatperformance is usually not the most important factor in any such comparison; it issimply the easiest to create charts from.

Requirementsv IBM Message Service Clients for .Net, V2.0.0.0.v WebSphere MQ Classes for .NET shipped with WebSphere MQ version 6.0.1.1 or

later.v The WBIMB module has now been renamed to WMB.

© IBM Corporation 2010 © IBM 2010 5

6 IBM Performance Harness for XMS Message Service

Chapter 4. Getting Started

This section gives a detailed description on how to run the XMS PerformanceHarness tool.

About this task

The various functionalities and capabilities required to run the XMS PerformanceHarness tool in the .NET environment are discussed in the following sections.v Using the built-in helpv “Selecting the XMS test class”v Selecting from the available XMS provider classesv Using JNDI administered objectsv Using multiple JMS destinations

Using the built-in helpSelect the modules via the command line for different modes of operation

About this task

Performance Harness for XMS is a modular tool and certain modules need to beselected via the command-line for different modes of operation.

Table 2. Parameters for using the build-in help

Parameter Description

-h Using -h will print help on the current context (i.e. the currently activemodules). It will not give help on modules that are not active.

-hf Same as -h, but prints additional details on parameters and includesother, seldom used, parameters.

-hm Gives the full help for a named module, regardless of whether it isactive or not. You do not need to pass the full classname, as the tool willsearch intelligently for the named class. Example: -hm WebSphere MQor –hm mqjava.Responder.

There are many more parameters besides those discussed here. You can use theparameter reference available in this document to see the additional capabilities.

Selecting the XMS test classThe tool's operation is defined by the test class being run and there are manyselections of test class.

About this task

Each of the following classes provides a few additional options to modify thebehavior.

© Copyright IBM Corp. 2010 7

Table 3. Parameters for selecting the XMS test cases

Parameter Description

-tc Sender Sends messages to a named queue destination

-tc Receiver Receives messages from a named queue destination. This can be usedin conjunction with the Sender class.

-tc PutGet Sends a message to queue and then retrieves the same message (usingCorrelationId). This is the default setting.

-tc Requestor Sends the message to a queue and then waits for a corresponding replyon a second queue.

-tc Responder Waits for a message on a queue, then replies to it on another queue.This can be used in conjunction with the Requestor class.

-tc Publisher Sends messages to a named topic destination.

-tc Subscriber Subscribes and receives messages from a named topic. This can be usedin conjunction with the Requestor class.

Note: All the above classes use XMS API which is JMS 1.1 API complaint.

Selecting from the available XMS provider classesThere are three JMS provider classes for doing command line operations.

About this task

The tool comes packaged with three XMS provider classes. These are selected withthe "-pc" parameter (which is case-specific). The three XMS provider classes andtheir descriptions are given below:

Table 4. List of XMS provider classes

Parameter Description

-pc WebSphereMQ

This allows simple command-line access to IBM WebSphere MQ JMSsettings. WebSphere MQ provides a full XMS implementation using anindustry-proven messaging engine with ten years of pedigree.

-pc WMB This allows simple command-line access to IBM WebSphere BusinessIntegrator Message Broker (and Event Broker) JMS settings. Apart fromthe transformation and routing capabilities, WMB builds upon the JMScapability of WebSphere MQ. It provides additional high-performancenon-persistent publish/subscribe, multicast networking andcontent-based-routing (above and beyond the capability of JMSselectors).

-pc JNDI This is the default setting. JNDI (Java Naming and Directory Interface)provides access to WMB and WebsphereMQ using JNDI lookup.

Using JNDI administered objectsJNDI, the default provider and the most flexible class, allows object lookup fromany JMS vendor.

About this task

The provider-specific fashion in which the JNDI objects are created before isdocumented by that vendor (although some products also provide auto-creationfacilities linked to JNDI lookup). To enable JNDI, specify the -cf property. You can

8 IBM Performance Harness for XMS Message Service

also enable JNDI with vendor-specific provider classes (most of the vendor-specificparameters provided by the modules are ignored).v JNDI Parametersv “Using JNDI with WebSphere MQ”

JNDI parametersThe JNDI specification provides several ways to pass parameters to an application.

JNDI parameters are specified from three sources and are evaluated in thefollowing order in the case of duplication.v The "-ii" and "-iu" parameters are passed directly to the InitialContext.

Note: Consult the client manuals for your product to enter these settings.

Table 5. JNDI parameters

Parameter Description

-ii initialContextFactory The class that specifies for the JNDIInitialContextFactory

-iu file://C:/JNDI/sample.props A URL that specifies the configuration to beused.

-cf myCF The name of the JNDI ConnectionFactoryobject.

v When using JNDI, the destinations you specify are the names of the JNDIobjects, not necessarily the same as the underlying queue or topic destinations.This is of importance when you mix usage of JNDI and non-JNDI providerclasses.

Using JNDI with WebSphere MQThe queue manager is used directly as a JNDI provider if you are using JNDI withWebSphere MQ.

About this task

If you are using JNDI with WebSphere MQ, SupportPac ME01 (WebSphere MQ -Initial Context Factory) allows the queue manager to be used directly as a JNDIprovider and avoids the requirement to predefine WebSphere MQ queues or topics.SupportPac ME01 pre-requires SupportPac MS0B (MQSeries Java classes for PCF).

Using multiple JMS destinationsXMS Performance Harness tool handles multiple destinations (publish/subscribetopics or point-to-point queues) with the right configuration parameters.

About this task

Handling multiple destinations with the right configuration allows you toconstruct more complicated scenarios across multiple instances of the tool. Thegeneral concept being applied is that an ordered set of destinations are created anddistributed evenly among the active threads.

Chapter 4. Getting Started 9

Table 6. List of parameters

Parameter Description

-d Destination prefix. The default is DEST.

-db First number in the range.

-dx Last number in the range.

-dn Number of destinations in the range (or the first destinationto use in a fixed range, see example XXX).

The module infers the set of destinations from the parameters being passed. Theinferences are explained by the examples given later in this section:

Example 1-d PARIS: Without specifying any other parameters, all threads uses asingle destination, PARIS.

Example 2:-d MYTOPIC -db 10: Specifying only a numeric base creates an open endedlist; each subsequent thread gets an incremented destination, MYTOPIC10.

Example 3-d MYTOPIC -db 4 -dn 5: Destinations are distributed round-robin in theorder MYTOPIC4.....MYTOPIC8.

Example 4-d MYTOPIC -dx 8 -dn 5: As above -d MYTOPIC -dx 4 -dx 8 As above -dMYTOPIC -dx 4 -dx 8 -dn 6. This is a special case, the range is from 4 to 8,above (4 to 8) but the sequence starts at 6.

Note:

v These parameters control the names given to the destinations. Specifying -dTOPIC does not, in itself, helps you to enable publish/subscribe (have a queuenamed TOPIC).

v In the JNDI mode, these become the names of the JNDI destinations.v Each single thread is assigned a single destination.v It is not considered invalid to specify more destinations than there are threads or

to create an uneven balance of destinations among threads.

10 IBM Performance Harness for XMS Message Service

Chapter 5. Example Invocations

The sample invocations of the functionality in this tool are discussed below indetail.

See the command-line reference for the meaning of any unknown parameters arediscussed in the section Chapter 6, “Command-line Parameter reference,” on page13.

The example invocations of the various functionalities are discussed an given indetail:v Point-to-point using JNDIv Point-to-point with WebSphere MQv Publish/subscribe

Point-to-point using JNDIThe example invocations for the point-to-point feature with Websphere MQ isdiscussed in detail.

Persistent, transacted point-to-point JMS in a send-receive loop (a very basicoperational test of queuing) on a single queue using 6 clients and JNDIadministered objects provided by WebSphere MQ SupportPac ME01.PerfHarness.exe -tc PutGet -nt 6 -pp -tx -pc JNDI –iiinitialContextFactory -iufile://C:/JNDI/sample.props-cf QM_RED -d QUEUE

Point-to-point with WebSphere MQThe example invocations for the point-to-point feature with Websphere MQ isdiscussed in detail.

Persistent transacted point-to-point with WebSphere MQ in local bindings using 10threads running on queues (QUEUE1..QUEUE10). A corresponding test with topicssimply requires different test class parameters.PerfHarness -tc Sender -nt 10 -pcWebSphereMQ -jb QM_RED -jt mqb -d QUEUE -db 1 -pp -txPerfHarness -tc Receiver -nt 10 -pcWebSphereMQ -jb QM_RED -jt mqb -d QUEUE -db 1 -pp –tx

Non-persistent point-to-point with WebSphere MQ in local bindings: where youput a million 100-byte messages to a destination Queue and get them back again.PerfHarness -tc Sender -pc WebSphereMQ -jbQM_RED -jt mqb -d QUEUE -ms 100 -mg 1000000PerfHarness -tc Receiver -pc WebSphereMQ -jbQM_RED -jt mqb -d QUEUE

Publish/subscribeThe example invocations for the Publish/subscribe feature with Websphere MQand Websphere message Broker are discussed in detail.

© Copyright IBM Corp. 2010 11

Persistent, transacted publish/subscribe with WebSphere MQ over TCP/IP where 4publishers and 40 durable subscribers are spread evenly across 4 topics(TOPIC1..TOPIC4). Durable subscribers will use the same name (by setting -id) anddo not unsubscribe (un = false). This means the subscribing application can bestarted and stopped without message loss.PerfHarness.exe -tc Publisher -nt 4 -pc WebSphereMQ -jhserver1 -jb QM_RED -jt mqc -jp 1415 -d TOPIC -db 1 -dx 4

PerfHarness.exe -tc Subscriber -nt 40 -pc WebSphereMQ -jhserver1 -jb QM_RED -jt mqc -jp 1415 -d TOPIC -db 1 -dx 4 -du -id SUBS-un false

Non-persistent publish/subscribe with WebSphere Message Broker using thereal-time transport with 1 publisher and 1 subscriber using 1 topic. The real-timeflow on the broker is assumed to be configured to port 1506. Both are set to runfor 120 seconds, with the publisher sending 100 messages a second. It will sendJMSTextMessage objects using the contents of MyMessage.xml for the messagebody.PerfHarness.exe -tc Publisher -pc WMB -jh server1 -jp1506 -jt ip -d Topic/0000 -rt 100 -mt text -rl 120 -mf.\MyMessage.xmlPerfHarness.exe –tc Subscriber -pc WMB -jh server1 -jp1506 -jt ip -d Topic/0000 -rl 120

Non-persistent publish/subscribe with WebSphere Message Broker using theReliable Multicast transport for the subscriber. Topic "Topic/0000" must be definedas a Multicast topic (see product docs). This subscriber could be run in conjunctionwith the real-time publisher shown above. For 1 subscriber using 1 topic set to runfor 120 seconds, the subscriber's buffer size is set to 3,000 messages.PerfHarness.exe -tc Subscriber -pc WMB -jh server1 -jp1506 -jt ipmcr -d Topic/0000 -jz 3000 -rl 120

Non-persistent publish/subscribe with WebSphere Message Broker using theWebSphere MQ transport with 1 publisher and 1 subscriber using 1 topic. Both areset to run for 240 seconds, with the publisher sending 100 messages a second. Itwill send a 1024-byte JMSBytesMessage to a queue called PUBLISH on queuemanager QM_RED on port 1414.PerfHarness.exe -tc Publisher -pc WMB -d Topic/0000 -jhserver1 -jp 1414 -jt mqc -rl 240 -jb QM_RED -jq PUBLISH -ja 100 -rt100 -mt bytes -ms 1024PerfHarness -tc Subscriber -pc WMB -d Topic/0000 -jhserver1 -jp 1414 -jt mqc -rl 240 -jb QM_RED

12 IBM Performance Harness for XMS Message Service

Chapter 6. Command-line Parameter reference

Command line parameters are meant for giving inputs. It helps to override defaultvalues.

The system is self documenting through the command-line. Use -h, -hf, and -hm tolearn about the functionality.

The list of base classes are :v AbstractJMSProviderv Configv ControlThreadv BasicsStatisticsv DefaultDestinationFactoryv DefaultMessageFactoryv JNDIv Logv Publisherv PutGetv RollingavgStatisticsv Receiverv Requestorv Responderv Senderv Statisticsv Subscriberv Websphere MQv WebSphereMQ, WASv WebSphereMQ, WMBv WorkerThread

AbstractJMSProviderAbstractJMSProvider is the abstract superclass of all XMS providers supported bythis tool.

Table 7. List of parameters of AbstractJMSProvider

Parameter Default Description

pc JNDI Specifies the XMS provider class.

cc 1 Specifies the Commit count (transaction batching), that is,the number of operations done within a single transaction.This parameter applies to test classes that normally performa single operation (such as Sender or Subscriber).

ex 0 Defines the message expiration. 0 specifies the defaultexpiration (never expires).

© Copyright IBM Corp. 2010 13

Table 7. List of parameters of AbstractJMSProvider (continued)

Parameter Default Description

am 1 Defines the JMS acknowledgment mode where:

v 1 = auto acknowledge

v 2 = client acknowledgment (not currently supported)

v 3 = dups_ok acknowledgment

tx False Specifies the unit of work that can be transacted.Note: The operation is successful if the transaction iscommitted and a failure if the transaction is rolled back.

us nil User name to authenticate as.

pw nil Password to authenticate as.

pp false Use persistent messages.

to 5 Polling time out on synchronously receiving messages. Thethreads do not stop if this time out occurs. It refers to thepolling interval.

du false Specifies the durable subscriptions.

un true Set this parameter to "False" to leave the durablesubscriptions after the tool exits. Unsubscribe subscriberswhile closing the tool.

BasicsStatisticsBasicStatistics prints the instantaneous rate on a periodic basis. The final summaryis the /n average duration of the WorkerThreads and the total average rate theyachieved during that period.

Table 8. List of parameters of BasicsStatistics

Default Parameter Description

false mu Displays allocated managed memory inbytes. Obtained fromGC.GetTotalMemory(false).

ConfigConfig centralizes parsing, access, and reporting of configuration parameters.

Table 9. List of parameters of Config

Parameter Default Description

h False Displays basic help on current configuration.

hm Displays detailed help on a specific module ormodules. Specifies multiple modules asspace-separated tokens.

Example: -hm "WebSphere MQ WBIMB"

hf False Displays detailed help on current configuration.

hp nil Specifies Config properties file name.

14 IBM Performance Harness for XMS Message Service

ControlThreadControlThread manages the life cycle of the application and any WorkerThreads. Italso controls the aggregation and reporting of performance counters.

Table 10. List of parameters of ControlThread

Parameter DEfault Description

nt 1 No. of worker threads

rl 60 Run length in seconds. Setting this parameter to 0disables the timer and run forever.

id nil Process identifier. If set, this parameter is shown in thestatistics reporting. This parameter is of use if youmerge the output of more than one instance of the tool.

su true Displays final summary. This setting is independent ofthe periodic statistics reporting.

wi 1000 WorkerThread start interval (ms). This parametercontrols the pause between the starting multiplethreads.

wt 30 WorkerThread start time out(s). This parameter controlsthe time to wait for any worker thread to start.

wk 120 Shutdown wait(s). The time the application waits forWorkerThreads to shut down before exiting anyway.

ct ControlThread ControlThread instance to start in this application.

DefaultDestinationFactoryDefaultDestinationFactory defines the allocation of destinations among multipleWorkerThreads. These options control the *names* given to the destination, andthe names are interpreted as per the decision of the WorkerThread.

Table 11. List of parameters of DefaultDestinationFactory

Parameter Default Description

d dest Destination prefix.

db 0 Specifies the start of the destination range number.

dx 0 Specifies the end of the destination range number.

dn 0 In the absence of dx, this parameter specifies thenumber of destinations to be used starting fromdb.

In the presence of dx, the multi-destination rangestarts from the number specified by dn.

Example 1d=destdb=2dx=5nt=5

There are seven threads. The queues start at dest2 and end at dest5. The queuesused are dest2, dest3, dest4, dest5, and dest2. The queues are used in a roundrobin fashion.

Chapter 6. Command-line Parameter reference 15

Example 2d=destdb=5dn=3nt=7

The queues used are dest5, dest6, dest7, dest5, dest6, dest7, and dest5. The queuestarts from dest5 and uses three destinations. The round robin fashion starts fromdest6 as specified by the dn.

Example 3d=destdb=5dx=9dn=6nt=7

There are seven threads. Each thread uses a queue. The queues used are dest5,dest6, dest7, dest8, dest9, dest6, and dest7. The queues start from dest5 and end atdest9. Since there are seven queues, two queues (dest6 and dest7) use more thanone thread.

DefaultMessageFactoryDefaultMessageFactory creates random messages, or uses a designated file as themessage contents.

Table 12. List of Parameters of DefaultMessageFactory

Parameter Default Description

ms 1000 Message size in bytes.

mf External file to use as message contents.

mt Text Message type (text, bytes, stream, map, object,empty).

co False Uses correlation-id on requests.

cp True Uses provider-specific correlation-id if possible.

sm True Defines whether to use the same message forevery send.

JNDIJNDI is the provider-independent access to JMS resources. If using JNDI, all thedestination names are interpreted as the lookup name rather than the absolutename.

JNDI properties are set in several different ways (see Using JNDI administeredobjects, JNDI parameters, and JNDI with WebSphere MQ).

Table 13. List of parameters for JNDI

Parameter Default Description

cf – Specifies the JNDI name of the ConnectionFactory. Setting thisproperty informs the tool that you intend to use the JNDIlookups and that any specific settings can be ignored.

16 IBM Performance Harness for XMS Message Service

Table 13. List of parameters for JNDI (continued)

Parameter Default Description

ii – Specifies the JNDI initialContextFactory. You can also set it byusing the standard JNDI methods.

iu – Specifies the JNDI provider URL. You can also set thisparameter by using standard JNDI methods.

LogLog sets up the logging for the application.

Table 14. List of parameters of Log

Parameter Default Description

vo info Verbosity level for logging.

st true Prints full stack trace on error.

lc Console Describes how the log is displayed. Should be"console" or "file".

lf text Describes the format of the log. Should be "text" orXML.

lx CPTrace.log Name of the file to dump. Provide the full file name.

PublisherPublisher sends the messages to a topic.

Table 15. List of parameters of Publisher

Parameter Default Description

sl false Uses a message properties selector String for messageselection (default: false).

sn 10 Number of different message selectors (default 10).

PutGetPutGet sends and receives a message from the same queue.

Table 16. List of parameters for PutGet

Parameter Default Description

sl False Uses a message properties selector string formessage selection (default: false).

Chapter 6. Command-line Parameter reference 17

ReceiverReceiver receives the messages from a queue. Currently this base class, althoughJMS 1.1 compliant, is only coded to accept Queue-domain messages. Use theSubscriber class for topic-domain messages.

Table 17. List of parameters of Receiver

Parameter Default Description

as fault Uses asynchronous (onMessage) receiving mode.

RequestorRequestor puts a message to a queue and then waits for a reply on another queue.The same correlation identifier is used for every request. This request is muchfaster for JMS applications.

Table 18. List of parameters for Requestor

Parameter Default Description

iq Request Queue to place requests on.

oq Reply Queue to place replies on. Setting this value to ""implies the use of temporary queues for each reply.Correlation identifiers are not used in this mode.

ResponderResponder takes messages off the request queue and places the same message onthe reply queue. If correlation identifiers are enabled (-co=true), the responsecopies the incoming messageID to that field, else it uses that of the receivedmessage.

Table 19. List of parameters for Responder

Parameter Default Description

iq Request Queue to place requests on.

oq Reply Queue to place replies on. Setting this value to ""implies the use of temporary queues for each reply.Correlation-identifiers are not used in this mode.

cr True Copies request message to response. If true, theMessageFactory settings are ignored for replies.

18 IBM Performance Harness for XMS Message Service

RollingavgStatisticsRollingavgStatistics prints the average of the performance over the last 30 secondson a periodic basis. The final summary is the average duration of theWorkerThreads and the maximum rolling average achieved during that period.

Table 20. List of parameters of RollingavgStatistics

Parameter Default Description

sr 30 Rolling average period (seconds). The performanceis sampled every second. The number reported isthe average over the last rolling average period.During the first period, the figure reported is theaverage over the actual number of seconds elapsed.

SenderSender sends the messages to a queue.

StatisticsStatistics controls the aggregation and reporting of performance counters, andallows multiple implementations to process and render statistics differently.

Table 21. List of parameters of Statistics

Parameter Default Description

ss 10 Specifies the statistics reporting period. Setting thisparameter to 0 disables periodic reporting entirely.

sp False Displays per-thread iteration counts. The informationgiven per thread is the number of iterations (not arate/sec) in the reporting period.

sw 0 Statistical discard period (seconds). The givenwarm-up period is excluded from the calculations ofthe final summary.

sc RollingAvgStats Statistics module to be used.

SubscriberSubscriber subscribes to topic-domain messages.

Table 22. List of parameters of subscriber

Header Header Header

as False Uses asynchronous onMessage method.

sl False Uses the message properties selector string for messageselection. Either "auto" or "manual".

sn 10 Number of different message selector IDs.

sm 0 Manually enter message selector ID.

se 1 Number of selectors each subscriber would match.

WebSphere MQWebSphere MQ is the settings for direct connection to a WebSphere MQ broker.

Chapter 6. Command-line Parameter reference 19

Websphere MQ allows the tool to be run directly against this provider without theneed for JNDI.

Note: This module inherits from the JNDI module and hence those parameters ofJNDI are still applicable. But all the parameters of this module are ignored if youuse JNDI.

Table 23. List of parameters of WebSphere MQ

Parameter Default Description

jg False Communicates with non-JMS application(targetClient=1). Setting this parameter to "True" causesthe JMS client to send or receive messages withoutRFH2 headers. This parameter is primarily forcommunication with MQI applications. Certain JMSfunctionalities are unavailable.

jf False Uses Fire and Forget/Streaming on the messagesends/publishes. Forces the producer to use streamingregardless of the values on the underlying MQQueue orMQTopic.

jy False Uses Read Ahead Buffering when receiving/subscribingmessages. Forces the consumer to use readaheadbuffering regardless of the values on the underlyingMQQueue or topic.

jv V7 Specifies the version of QueueManager (v6, v7).

jm False If multiplexing is enabled (shared conv).

jb qm WebSphere MQ queue manager to connect to.

jc SYSTEM.DEF.SVRCONNWebSphere MQ Channel to connect to.

WebSphere, WebSphere Application ServerWebSphere MQ, WebSphere Application Server is the settings for the directconnection to a WebSphere Application Server broker.

This base class lets the tool to be run directly against this provider without theneed for JNDI.

Note: This module inherits from the JNDI module and hence those parameters ofJNDI are still applicable. But all parameters of this module must be ignored if youuse JNDI.

Table 24. List of parameters of WebSphere MQ, WebSphere Application Server

Parameter Default Description

jp 1414 Port of provider host machine.

jh local host DNS/IP of provider host machine.

WebsphereMQ, WMBWebsphere MQ WMB is the settings for direct connection to a WebSphereMessage/Event Broker.

This base class allows the tool to be run directly against this provider without theneed for JNDI.

20 IBM Performance Harness for XMS Message Service

Note: This module inherits WebSphere MQ modules, so those parameters are stillapplicable with all the parameters.

Table 25. List of parameters of WebSphereMQ, WMB

Parameter Default Description

jt mqc WMQ transport (mqb, mqc)

WorkerThreadWorkerThread is the Base class for all varieties of test. This class implements ageneral Pacing algorithm for those tests that would use it. The performance of thisbase class is minimal.

Table 26. List of parameters of WorkerThread

Parameter Default Description

tc PutGet Specifies the test definition class. This parameterdefines the actual type of WorkerThreads that arestarted. The selections listed are those packaged withthis tool. There might be others on the class path thatare shown here.

Example: PutGet, Sender, Receiver, Requestor,Responder, Publisher, Subscriber

rt 0 Specifies the desired rate (operations/sec). If this rateis greater than the maximum achievable, the behavioris such that it runs as fast as possible.

v A value of 0 means it always runs as fast aspossible.

v Rates of <1 op/sec are not currently possible.

rp 0 Specifies the time period(s) to ramp up to the full rate(Time in seconds)

mg 0 Fixed number of iterations to run.

yd 0 Frequency to call Thread.yield(). This parameter mightbe of use if the WorkerThreads are not being evenlyscheduled.Note: Enforcing fairness affect the overallperformance.

df 0 Destination factory implementation. Currently, there isonly one option – DefaultDestinationFactory.

ln false Use a logarithmic distribution to "randomize" a fixedrate.

Chapter 6. Command-line Parameter reference 21

22 IBM Performance Harness for XMS Message Service

Chapter 7. Writing the input parameter file

You can write the input parameters file with various base classes.

About this task

Sender applications with WebSphere MQ as the service provider on the local hostusing queue manager, QM_em64t in bindings mode. The application uses onethread and uses the queue by name of dest1. fire and forget and multiplexing areenabled. It sends messages of type bytes and of size 30. The application runs for 40secs and uses basic Statistics for computing the results.tc=Senderpc=WebSphereMQjh=localhostjb=QM_em64tjt=mqbd=destdb=1nt=1jf=truejy=truerl=40ms=30mt=bytesvo=WARNINGsc=BasicStats

© Copyright IBM Corp. 2010 23

24 IBM Performance Harness for XMS Message Service

Chapter 8. Reading the output

You can use the performance harness tool and read the desired output.

Example of the output for Basicstatsticstotal=58426 period=10031 rate=5824, threads=3total=60128 period=10000 rate=6013, threads=3total=67554 period=10000 rate=6755, threads=3Raw totalIterations(msgs)=247410, avgDuration(sec)=40, totalRate(msgs/sec)=6185Trimmed totalIterations(msgs)=188984, avgDuration(sec)=30, totalRate(msgs/sec)=6296

In the above output, total represents the total number of messages sent by thethree threads. If you need to know the number of messages sent by each thread,enable the option 'sp'.

period is the amount in seconds if time taken by three threads to complete theiroperations.

rate is the operations per second. In this case it is the number of messages sent persecond by three threads.

The raw output is the cumulative results calculated over the time period (theaverage duration in sec) specified by the parameter "rl".

The total Rate is the average number of operations (n this case number ofmessages sent per second) done in the time specified by rl.

The trimmed output is the result with the default warmup period excluded, whichis 10 secs. This value can be changed using the option "sw".

Example of the output for RollingAvgStatsrateR(msgs/sec)=7993.000,threads=3rateR(msgs/sec)=6967.000,threads=3rateR(msgs/sec)=7266.000,threads=3rateR(msgs/sec)=6789.000,threads=3Trimmed totalIterations(msgs)=203715, avgDuration(sec)=30, totalRate(msgs/sec)=6790Raw totalIterations(msgs)=283663, avgDuration(sec)=40, totalRate(msgs/sec)=7092Max rate totalIterations(msgs)=203715,avgDuration(sec)=30,totalRate(msgs/sec)=7311

© Copyright IBM Corp. 2010 25

26 IBM Performance Harness for XMS Message Service

Appendix.Notices

This information was developed for products and services offered in the U.S.A.IBM may not offer the products, services, or features discussed in this document inother countries. Consult your local IBM representative for information on theproducts and services currently available in your area. Any reference to an IBMproduct, program, or service is not intended to state or imply that only that IBMproduct, program, or service may be used. Any functionally equivalent product,program, or service that does not infringe any IBM intellectual property right maybe used instead. However, it is the user's responsibility to evaluate and verify theoperation of any non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject matterdescribed in this document. The furnishing of this document does not grant youany license to these patents. You can send license inquiries, in writing, to:

IBM Director of LicensingIBM Corporation

North Castle DriveArmonk, NY 10504-1785U.S.A.

For license inquiries regarding double-byte character set (DBCS) information,contact the IBM Intellectual Property Department in your country or sendinquiries, in writing, to:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan Ltd.1623-14, Shimotsuruma, Yamato-shiKanagawa 242-8502 Japan

The following paragraph does not apply to the United Kingdom or any othercountry where such provisions are inconsistent with local law: INTERNATIONALBUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS"WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFNON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULARPURPOSE. Some states do not allow disclaimer of express or implied warranties incertain transactions, therefore, this statement may not apply to you.

This information could include technical inaccuracies or typographical errors.Changes are periodically made to the information herein; these changes will beincorporated in new editions of the publication. IBM may make improvementsand/or changes in the product(s) and/or the program(s) described in thispublication at any time without notice.

Any references in this information to non-IBM Web sites are provided forconvenience only and do not in any manner serve as an endorsement of those Websites. The materials at those Web sites are not part of the materials for this IBMproduct and use of those Web sites is at your own risk.

© Copyright IBM Corp. 2010 27

IBM may use or distribute any of the information you supply in any way itbelieves appropriate without incurring any obligation to you.

Licensees of this program who wish to have information about it for the purposeof enabling: (i) the exchange of information between independently createdprograms and other programs (including this one) and (ii) the mutual use of theinformation which has been exchanged, should contact:

IBM United Kingdom Laboratories,Mail Point 151,151, Hursley Park,Winchester,Hampshire,EnglandSO21 2JN

Such information may be available, subject to appropriate terms and conditions,including in some cases, payment of a fee.

The licensed program described in this document and all licensed materialavailable for it are provided by IBM under terms of the IBM Customer Agreement,IBM International Program License Agreement or any equivalent agreementbetween us.

Any performance data contained herein was determined in a controlledenvironment. Therefore, the results obtained in other operating environments mayvary significantly. Some measurements may have been made on development-levelsystems and there is no guarantee that these measurements will be the same ongenerally available systems. Furthermore, some measurements may have beenestimated through extrapolation. Actual results may vary. Users of this documentshould verify the applicable data for their specific environment.

Information concerning non-IBM products was obtained from the suppliers ofthose products, their published announcements or other publicly available sources.IBM has not tested those products and cannot confirm the accuracy ofperformance, compatibility or any other claims related to non-IBM products.Questions on the capabilities of non-IBM products should be addressed to thesuppliers of those products.

COPYRIGHT LICENSE:

This information contains sample application programs in source language, whichillustrate programming techniques on various operating platforms. You may copy,modify, and distribute these sample programs in any form without payment toIBM, for the purposes of developing, using, marketing or distributing applicationprograms conforming to the application programming interface for the operatingplatform for which the sample programs are written. These examples have notbeen thoroughly tested under all conditions. IBM, therefore, cannot guarantee orimply reliability, serviceability, or function of these programs. The sampleprograms are provided "AS IS", without warranty of any kind. IBM shall not beliable for any damages arising out of your use of the sample programs.

28 IBM Performance Harness for XMS Message Service

TrademarksIBM, the IBM logo, and ibm.com are trademarks or registered trademarks ofInternational Business Machines Corporation in the United States, other countries,or both. If these and other IBM trademarked terms are marked on their firstoccurrence in this information with a trademark symbol (® or ™), these symbolsindicate U.S. registered or common law trademarks owned by IBM at the time thisinformation was published. Such trademarks may also be registered or commonlaw trademarks in other countries. A current list of IBM trademarks is available onthe Web at Copyright and trademark information at www.ibm.com/legal/copytrade.shtml.

Intel is a trademark of Intel Corporation in the United States, other countries, orboth.

Linux is a registered trademark of Linus Torvalds in the United States, othercountries, or both.

Microsoft and Windows are trademarks of Microsoft Corporation in the UnitedStates, other countries, or both.

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in theUnited States, other countries, or both.

Other company, product, or service names may be trademarks or service marks ofothers.

Appendix.Notices 29

30 IBM Performance Harness for XMS Message Service

Index

Special characters-d 9-d MYTOPIC 9-d PARIS 9-d TOPIC 9-db 9-dn 9-dx 9-h 7-hf 7-hm 7-pc JNDI 8-pc WebSphere MQ 8-pc WMB 8-tc Publisher 7-tc PutGet 7-tc Receiver 7-tc Requestor 7-tc Responder 7-tc Sender 7-tc Subscriber 7

AAbstractJMSProvider 13asynchronous 19asynchronous (onMessage) 18

BBasicsStatistics 13, 14

Ccommand line 7Config 14console 17ControlThread 13, 15CPTrace.log 17

DDefaultDestinationFactory 13, 15DefaultMessageFactory 13, 16

Eexample invocations 11

IIBM Message Service Client for .NET and

CCPP 1info 17input parameter file 23

JJMS API 1JMS test cases 7JNDI 11, 16JNDI administered objects 8JNDI parameters 9JNDI provider 9

Llog 17

MMessage Selectors 17multi-destination 15multiple destination 9

Nnon-persistent 12

OonMessage 19output 25

PPerformance Harness tool for XMS 3Performance scenarios 5persistent 12point to point using JNDI 11point to point using Websphere MQ 11point-to-point 11publish/subscribe 11, 12Publisher 13, 17PutGet 17

QQueueManager 20

RRead Ahead 20Receiver 13, 18Receiving/Subscribing 20reply 18request 18Requestor 18responder 18RollingavgStatistics 13, 19

Ssender 19shared conv 20Statistical discard period 19Statistics 13, 19subscriber 19

Tthreads 15

WWebsphere Application Server 20Websphere Message Broker 12Websphere MQ 11, 12, 13, 20WebSphere MQ 20WebSphereMQ, WAS 13WebsphereMQ, WMB 20WebSphereMQ, WMB 13WorkerThread 13, 21

XXMS 5XMS Performance Harness tool 7XMS provider class 8

© Copyright IBM Corp. 2010 31

32 IBM Performance Harness for XMS Message Service

����

Printed in USA


Recommended