JMS Performance

          Hi All,
          i read the BEA WebLogicTM JMS Performance Guide (July 31, 2003) and have some
          questioon:
          http://dev2dev.bea.com/products/wlserver/whitepapers/WL_JMS_Perform_GD.jsp
          The only thing that indicates performance in the whole document is page 60 with
          the 3 examples.
          the problem there is that the arithmetic just doesn't work.
          All examples use a 100 Mbit link at 80% efficiency, which gives 10 mbyte/sec.
          Example 1: Messages of length 1Mbyte, 2 operations: (Calculating in IN Kbytes)
          10000/(1000*2) = 5. Bravo !!!
          Example 2: Message length 50kbyte, 10 operations : 10000/(50*10) = 20. (Am i wrong
          ? not 160 as the document says). Out of each 10 operations, 1 is write (send)
          and 9 are receive (read) , so each subscriber gets 2 messages per second, and
          not 18 as the document says.
          Example 3: Message size 50kByte, 2 Operations (because of the Multicast). 10000/(50*2)
          = 100 , and not 800. each subscriber gets 50 per second, and not 89.
          The arithmetic is simple, you can do it on your fingers - no need for excel.
          Can you, Please
          1. Explain the calculations
          2. Supply real life, Measured statistics that DO take into consideration server
          power, Memory constraints and other trivial, but necessary, facts of life...
          Thanks yuval
          

Well, I must admit I was the primary author, so you will have
          trouble getting additional info. But, heck, I'm game:
          (1) We have literally had dozens of customers not
          realize that the network can be a bottleneck, thus the
          network calculations. Congrats on being one of the majority
          that didn't need this bit of guidance, but please don't look
          down on those that do - they are pretty bright people in
          their own right.
          (2) Memory usage is a function of number of messages,
          usage of queues or topics, and message size. Assuming
          paging is enabled, I think it is fair to be conservative
          and estimate for queues:
          number of messages * .5K = memory used
          This assumes .5K overhead per message - as the guide
          states, WL JMS does not page out message-headers, so
          messages have overhead even when they are paged out.
          (3) This is a performance guide, not a capacity guide, the
          guide was not intended to address capacity.
          As the paper states, there is a reason for this.
          Hard performance statistics are VERY application and
          hardware dependent. To get anything even close to the statistics
          that map to a particular app, run the app. That said, the performance
          book referenced in the guide DOES contain statistics, pretty
          graphs, and even a tool. Keep in mind that the first edition of the
          book never tests using multiple producers - which limits
          scalability, and kind of limits the applicability of some
          of the graphs - but the authors realize this, and are addressing
          the issue in the next addition.
          Tom
          Yuval Avni wrote:
          > Hi All,
          >
          > i read the BEA WebLogicTM JMS Performance Guide (July 31, 2003) and have some
          > questioon:
          > http://dev2dev.bea.com/products/wlserver/whitepapers/WL_JMS_Perform_GD.jsp
          > The only thing that indicates performance in the whole document is page 60 with
          > the 3 examples.
          > the problem there is that the arithmetic just doesn't work.
          >
          > All examples use a 100 Mbit link at 80% efficiency, which gives 10 mbyte/sec.
          >
          > Example 1: Messages of length 1Mbyte, 2 operations: (Calculating in IN Kbytes)
          > 10000/(1000*2) = 5. Bravo !!!
          >
          > Example 2: Message length 50kbyte, 10 operations : 10000/(50*10) = 20. (Am i wrong
          > ? not 160 as the document says). Out of each 10 operations, 1 is write (send)
          > and 9 are receive (read) , so each subscriber gets 2 messages per second, and
          > not 18 as the document says.
          >
          > Example 3: Message size 50kByte, 2 Operations (because of the Multicast). 10000/(50*2)
          > = 100 , and not 800. each subscriber gets 50 per second, and not 89.
          >
          > The arithmetic is simple, you can do it on your fingers - no need for excel.
          >
          > Can you, Please
          >
          > 1. Explain the calculations
          > 2. Supply real life, Measured statistics that DO take into consideration server
          > power, Memory constraints and other trivial, but necessary, facts of life...
          >
          > Thanks yuval
          

Similar Messages

  • WEBLOGIC JMS performance ?

    hi ,
              I tried to find some numbers , about how much messages (in the diffrerent
              categories - ptp or pub/sub) can a weblogic server
              can stand - messages / sec , or some benchmarks,
              but i didn't find any on the web ..
              any one has any idea / link for such benchmark / performance test ???
              I would appriciate any answer !
              thanks!
              

    1) Start with the "WebLogic JMS Performance Guide" white-paper
              on dev2dev.bea.com. This guide has no numbers, but
              it has general guidelines. Performance is not just
              numbers...
              2) General note:
              In 7.0+ JMS file stores, BEA provides 3 disk write policies.
              The default is "cache-flush", as that is transactionally safe
              in all cases. The policy may have a dramatic effect
              on performance. (WL JMS defaults to "cache-flush", IBM MQ
              always uses "direct" - as far as I know, and many smaller
              JMS players default to "disabled".)
              3) The book
              "J2EE Performance Testing with BEA WebLogic Server"
              by Peter Zadrozny, Philip Aston, Ted Osborne
              contains JMS numbers, and a benchmark tool. Keep
              in mind that the numbers here are all "producer
              limited". All the benchmarks are run with
              a single producer, so the numbers often show little
              scaling. (Most apps increase producer counts
              as they scale.)
              Tom, BEA
              Amir Ben-Amots wrote:
              > hi ,
              >
              > I tried to find some numbers , about how much messages (in the diffrerent
              > categories - ptp or pub/sub) can a weblogic server
              > can stand - messages / sec , or some benchmarks,
              >
              > but i didn't find any on the web ..
              >
              > any one has any idea / link for such benchmark / performance test ???
              >
              > I would appriciate any answer !
              >
              > thanks!
              >
              >
              

  • Slow JMS Performance

              Hi,
              I'm using WL7.1 SP2 for a JMS based application. The database is SQLServer 2000,
              and the JMS queues are persistent on this DB.
              A client outside the Weblogic Server connects and fires lots of JMS messages to
              the application. These messages are consumed by a pool of MDB's.
              I don't think it's performing as well as it could.
              For example, if I un-deploy my application, and fire 80,000 JMS messages at the
              server, it takes around 10 minutes to persist these messages to the queues. All
              good so far.
              However, with the application deployed, the same number of messages take around
              3 hours. The messages are consumed and processed as fast as they can be persisted
              to the JMS queue. It's almost as if the messages are being synchronysly put on
              the queue, ie. control is not returned to the client until the message is consumed
              and processed. Unless I'm misunderstanding this, as soon as the messages is successfully
              persisted to the JMS queue, control should be passed back to the client.
              What I'd expect to happen is that the client would take around the same time post
              the messages to the JMS Queue, ie. about 10 minutes - and the Pending Message
              count to increase on the WL Server. Once all 80,000 messages were on the queue,
              the Pending Message count would gradually go down as the messages were processed.
              If I'm misunderstanding the way this works, please let me know. If you need any
              further info, please ask and I'll post the answers.
              Thanks,
              Richard Kenyon
              EDS - UK
              

    No problem.
              Performance is one of my hot-buttons, so I can't help but
              noting that when it comes to queueing, or even asynchronous
              invokes in general, slowing down the requester is often
              goodness. It helps put "back-pressure" on the requesting
              application, and so helps prevent a permanently growing
              request backlog that the slower request handling
              applications could never dig their way out of.
              Tom
              P.S. An updated version of the JMS performance
              guide will be released in the next few weeks. It has
              corrections, adds information about 8.1 features, and
              expands information in a number of areas. I'll post
              a link in the newsgroup when it comes out.
              Richard Kenyon wrote:
              > Thanks Tom,
              >
              > I suspected (and hoped!) that this would be the answer. I just needed
              > clarification that I wasn't being stupid :-)
              >
              > I'll have a look at the Performance guide you mentioned.
              >
              > Thanks,
              > Richard Kenyon
              > EDS - UK
              >
              > "Tom Barnes" <[email protected]> wrote in message
              > news:[email protected]...
              >
              >>When the application is active, it is forcing the server to do
              >>other work as well. In effect you are sharing a limited
              >>resource. Transactions (if applicable), your
              >>application code, your application receives, etc.
              >>In effect, the sender is slowed down because it
              >>is competing with the MDB application for resources.
              >>I suggest you read the JMS Performance
              >>Guide white-paper on dev2dev.bea.com.
              >>
              >>Tom
              >>
              >>Richard Kenyon wrote:
              >>
              >>>Hi,
              >>>
              >>>I'm using WL7.1 SP2 for a JMS based application. The database is
              >>
              > SQLServer 2000,
              >
              >>>and the JMS queues are persistent on this DB.
              >>>
              >>>A client outside the Weblogic Server connects and fires lots of JMS
              >>
              > messages to
              >
              >>>the application. These messages are consumed by a pool of MDB's.
              >>>
              >>>I don't think it's performing as well as it could.
              >>>
              >>>For example, if I un-deploy my application, and fire 80,000 JMS messages
              >>
              > at the
              >
              >>>server, it takes around 10 minutes to persist these messages to the
              >>
              > queues. All
              >
              >>>good so far.
              >>>
              >>>However, with the application deployed, the same number of messages take
              >>
              > around
              >
              >>>3 hours. The messages are consumed and processed as fast as they can be
              >>
              > persisted
              >
              >>>to the JMS queue. It's almost as if the messages are being synchronysly
              >>
              > put on
              >
              >>>the queue, ie. control is not returned to the client until the message
              >>
              > is consumed
              >
              >>>and processed. Unless I'm misunderstanding this, as soon as the messages
              >>
              > is successfully
              >
              >>>persisted to the JMS queue, control should be passed back to the client.
              >>>
              >>>What I'd expect to happen is that the client would take around the same
              >>
              > time post
              >
              >>>the messages to the JMS Queue, ie. about 10 minutes - and the Pending
              >>
              > Message
              >
              >>>count to increase on the WL Server. Once all 80,000 messages were on the
              >>
              > queue,
              >
              >>>the Pending Message count would gradually go down as the messages were
              >>
              > processed.
              >
              >>>If I'm misunderstanding the way this works, please let me know. If you
              >>
              > need any
              >
              >>>further info, please ask and I'll post the answers.
              >>>
              >>>Thanks,
              >>>Richard Kenyon
              >>>EDS - UK
              >>>
              >>
              >
              >
              

  • B2B/JMS Performance Tuning

    Hello All,
    We have a use-case in which an SOAP message will be received by OSB proxy service. The 3 step process is described below:
    1. OSB will extract EDIFACT message from request and write it to the SOA JMS queue IE012_IN_Queue.
    2. B2B listeneing channel is configured to listen to IE012_IN_Queue and translate the EDIFACT to XML and send the translated message to another JMS queue IE012_Out_Queue.
    3. BPEL process reads XML message from IE012_Out_Queue and processes it further.
    Under load, we observe that this 3 step process is causing delay and processing is taking more time at one of the 3 points. We are unable to exactly say which one of the 3 steps is taking more time. Can anyone help me in this area ?
    Regards
    Aparna

    Hi Aparna,
    You may refer -
    http://docs.oracle.com/cd/E23943_01/core.1111/e10108/b2b.htm#BGBGHAHF
    Few basic recommendations -
    1. Domain must be running in production mode
    2. Both server and component level logging should be set to error/warning to avoid excessive logging
    3. Monitor DB and make sure that SQL's are performing good (You will need AWR and ASH reports of DB for this. You may take help from any DBA in your org)
    4. SOA must be running in a cluster and all the servers of the cluster must be up and running
    5. Monitor the data-sources (specially SOA datasource) and make sure that enough connections are available to handle the load
    6. Make sure that JTA timeout and XA transaction timeout (set in data-source) are set to a proper value (Weblogic JTA timeout< DataSource XA Transaction Timeout < DB distributed_lock_timeout)
    7. It is recommended to use Exalogic and Oracle RAC DB for high volume production deployments
    I believe that if all above points are taken care of then B2B should be able to process small messages (like 6KB in your case) within few milliseconds. If still you hit a performance issue then better log a SR with support and after screening your system, they may suggest more fine tuning at pain points. Remember that each and every production deployment may be unique because of the requirements and resources available so generic recommendations may not solve the issue completely and hence screening of the specific system will be required to find the pain-points.
    Regards,
    Anuj

  • WL 8.1 JMS Performance has improved

    Hello,
                   Just wanted to let everyone know that we've re-run our JMS stress tests
              against WL 8.1 and there was drastic improvement in performance. WL 7.0
              had serious performance problems in the stress tests we ran earlier this
              year, and was often the lowest in the pack, especially with large
              message sizes. However, WL 8.1 is now performing near the top out of the
              box.
                   Thought others may find this interesting. I can't publish any of the
              tests, etc, since this is against the BEA development license, so I
              can't show the data to back up my statement, but I promise I don't work
              for BEA!
              Thanks
              

    Thanks for the post. Just wait for 9.0!
              P.S. In case you don't already know, there
              are a number of JMS tuning notes here:
              http://dev2dev.bea.com/products/wlserver/whitepapers/WL_JMS_Perform_GD.jsp
              (Recently updated for 8.1.)
              Steven Ostrowski wrote:
              > Hello,
              >
              > Just wanted to let everyone know that we've re-run our JMS stress
              > tests against WL 8.1 and there was drastic improvement in performance.
              > WL 7.0 had serious performance problems in the stress tests we ran
              > earlier this year, and was often the lowest in the pack, especially with
              > large message sizes. However, WL 8.1 is now performing near the top out
              > of the box.
              > Thought others may find this interesting. I can't publish any of the
              > tests, etc, since this is against the BEA development license, so I
              > can't show the data to back up my statement, but I promise I don't work
              > for BEA!
              >
              > Thanks
              >
              

  • JMS Performance/Design

    Hi,
    I am new to JMS and J2ee and I need some guidance, if anyone can help me plz.
    I am building a new application where I might have a very large number of clients (hundred of thousands possibly) exchanging messages with a server and between them.
    I was using sockets and serialization to handle that but it was ok for small number of users only.
    so First I need a robust server that can handle a large number of users, since I have a limited budget I was thinking to use JBoss since it's open sourse and free, is this a good choice or is it better to get weblogic or websphere, etc..?
    Every client who logs in can communicate to the server and exchange messages or (objects).
    When a client wants to talk to another client, he does that through the server too of course.
    I am thinking to use JMS (message beans) to exchange messages between the server and clients, or between the clients themselves (synchronously/asynchronously). I need to find what is the best implementation/design that will have the better performance and to avoid bottleneck on the server ?
    should I create a message bean for each client on the server when he logs in to handle the communication between this client and the server and keep it until he logs out?
    or should all clients subscribe to the same message bean (or service) on the server?
    if the client starts a communication with another client, should I open a session for only the 2 of them? or the same bean they are subscribed to will handle that?
    I was thinking to use publisher/subscriber but if there is a huge amount of trafic going on between these clients, how can the server handle all these requests quickly?

    Hi,
    Thank you for the reply.
    I know that the system is not that easy, that's why I am looking for help :)
    The software itself consists of client application and server side application, the comuunication part is similar to yahoo messenger, but a user can be behind a local server/firewall (mainly if it's a company) or use the public server .
    the requirements are the following:
    -The client side application is downloaded from the web-site of our company.
    -The application communicates to our company's server for updates and other services (same way as window updates itself by contacting microsoft server).
    -a corporate might decide to buy/download our server application in order to establish a local secure server rather than being on our public server.
    -The client might be member of the local server of his company (behind a firewall of course) but he also still can communicate to our public server for updates.
    (same way if you have a windows client part of a local server and he still can contact Microsoft for updates)
    -A Client can search the local server or our server for other clients/users and add them to his friends list (like yahoo)
    -The user will be notified (if he likes) when a friend goes online or offline
    -The user can send/receive data from his friends. (the data is not big maybe maximum a couple hundred KB , the worse case is maybe 1/2 MB)
    They told ma about JXTA and I am looking at it, any better ideas ?
    Regards
    George

  • Jms performance wl 6.0 sp2

     

    Our goal is for the numbers to be the same or better in 7.0.
              We did not achieve that goal for the 7.0 beta but we have
              improved things since then.
              Some tests will do significantly better in 7.0 over 6.X.
              "Larry Presswood" <[email protected]> wrote in message
              news:[email protected]...
              > We are using JMS queues with the following test cases
              >
              > Test Case 1
              > JMS with DBMS Backing Store
              > For this we get about 300 ms per transaction - Average JTA time
              >
              > JMS with File Store
              > For this we get about 150 ms per transaction - Average JTA time
              >
              > JMS - No persistent store
              > For this we get about 30 ms per transaction - Average JTA time
              >
              > In our transaction we do the following
              >
              > utx.begin
              > Get Dbms Connection
              > Call Stored Proc
              > Send to queue
              > utx.commit
              >
              > This is using sybase 12.x as a backing store and our dba's have
              > tried to tune JMSStore/JMSState.
              >
              > Is the degradation in performance along the lines with what you
              > have seen from other folks and in your own testing??
              >
              > Will 6.1 or 7.0 significantly improve these times or leave them
              > unchagned
              > hopefully not worse.
              >
              > Any ideas??
              >
              >
              > Our test case is 20 clients sending at a rate of 1 msg/second
              > These clients are also receiving as fast as possible.
              >
              > Test is exactly the same in all three configurations.
              >
              >
              >
              >
              >
              

  • JMS Performance in Weblogic 10 ?

    Hi
              In our Production Environment (weblogic 10 MP1).we have 4 managed servers ( App1, App2, app3, App4 )on 4 different physical machines, but we have only 1 JMS server on App2. The JMS Modules is connected to whole cluster and there is 4 single queues "NO DISTRIBUTED QUEUES" & one connection Factory. I know it will be the best if we have 4 managed server with 4 JMS server. But do Distributed Queue configuration will affect the performance? if yes How?
              Also please give any other suggestions as well..
              Thanks in Advnance.

    Hi,
              A DQ would improve performance for two reasons:
              (1) The queueing engine's work would be equally divided between four machines rather than only one machine.
              (2) There would be less network overhead - perhaps even none depending on your design. Applications running on App1, App3, and App4 would no longer to make remote requests to "App2" in order to send or receive messages. Instead, they would simply invoke JMS locally. Network overhead can sometimes be the dominant bottleneck in a performance benchmark - so removing the network can potentially be a huge win.
              A DQ also improves high availablity - if App2 is down, messages can still be processes on App1, 3, and 4.
              Tom
              Edited by barnes at 06/12/2008 4:21 PM

  • BPEL process failing in many instances due to JMS performance issue...

    Hi All,
    We are using a JMS adapter as partner link in a BPEL process to produce messages to JMS Queue.
    We are getting an error while producing a message to a JMS Queue.
    The error comes for 1 or 2 instances among 5 to10 intsances. (all these instances ran with in 1 or 2 seconds).
    We are using Oracle 10G SOA suite.
    This error is getting in the Production environment.
    The error is as follows (took error from server log).
    Failed to handle dispatch message ... exception ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is: faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{summary=file:/sw/appaia/product/SOA/bpel/domains/default/tmp/.bpel_CurrencyExchangeListEbizJMSProducer_1.0_4ec528ec93a8a6ff0278fab9701dcc71.tmp/CurrencyExchangeListEbizJMSProducerV1.wsdl [ Produce_Message_ptt::Produce_Message(OutputParameters) ] - WSIF JCA Execute of operation 'Produce_Message' failed due to: Adapter Framework unable to create outbound JCA connection.
    file:/sw/appaia/product/SOA/bpel/domains/default/tmp/.bpel_CurrencyExchangeListEbizJMSProducer_1.0_4ec528ec93a8a6ff0278fab9701dcc71.tmp/CurrencyExchangeListEbizJMSProducerV1.wsdl [ Produce_Message_ptt::Produce_Message(OutputParameters) ] - : The Adapter Framework was unable to establish an outbound JCA connection due to the following issue: oracle.j2ee.connector.proxy.ProxyInterceptException: javax.resource.ResourceException: RollbackException: Transaction has been marked for rollback: null [Caused by: RollbackException: Transaction has been marked for rollback: null]
    ; nested exception is:
    ORABPEL-12511
    Adapter Framework unable to create outbound JCA connection.
    I tried the below JMS tunings with differnt combination, but no improvem
    Please let me know if any other logs or any other information is required.
    Thanks,
    Pershad

    One of the values in the oc4j-ra.xml has the below values:
    <connector-factory location="OracleASjms/MyXAQCF" connector-name="OracleASjms">
              <config-property name="jndiLocation" value="jms/XAQueueConnectionFactory"/>
              <config-property name="autoCloseSession" value="false"/>
              <connection-pooling use="private">
                   <property name="waitTimeout" value="300" />
                   <property name="scheme" value="fixed_wait" />
                   <property name="maxConnections" value="50" />
                   <property name="minConnections" value="0" />
              </connection-pooling>
              <security-config use="principal-mapping-entries">
                   <principal-mapping-entries>
                        <principal-mapping-entry>
                             <initiating-user>servletuser</initiating-user>
                             <res-user>jmsuser</res-user>
                             <res-password>-&gt;jmsuser</res-password>
                        </principal-mapping-entry>
                   </principal-mapping-entries>
              </security-config>
              <connectionfactory-interface>javax.jms.XAQueueConnectionFactory</connectionfactory-interface>
         </connector-factory>
    Where do we need to change ?
    Please suggest .
    Thanks

  • WLAS 6.0 JMS performance

    We have the following situation:
    We want to pump 50 msg/sec to each of our WLAS 6.0 which works fine
    however
    on the a Solaris 220 - 2CPU 450MHZ I think.
    We simulate pumping the messages with a test client reading a 30MB file
    and pacing
    itslef to 50 msgs/sec. Now this process consumes roughly 18% of the cpu
    without any other clients attached.
    Next we attach a client which does the following:
    1. Creates a stateful session bean which creates a queue that
    has data sent to it via a QueueSender in 6 different message
    listeners one for each topic
    2. Our client then gets the queue and uses a receive to get that
    clients messages.
    When running 5 test clients the cpus are running at close to 90%.
    The vm has been allocated 512MB min - 1024MB max however the
    average vm heap size via the weblogic console is roughly 45-50 mb.
    So it would seem we are not memory bound.
    The goal is to get somewhere around 50 clients per cpu and we are way
    short of
    that now.
    Any ideas??
    Thanks Larry

    The messages are roughly 1k thus far.
    I changed the architecture around so that the clients subscribe to the topics
    instead
    of a stateful session bean and got rid of the queue per client. This model
    seems to
    be very scalable.
    WLAS with 50msgs/sec cpu load is about 19%
    With 5 clients attached running on seperate cpus over a LAN we are
    getting 22% cpu which is more like it.
    It would appear that the stateful session bean subscribing to 6 topics and
    putting the
    entries into a local queue was the problem.
    Zach wrote:
    Larry,
    We have tested WL6 JMS on a single CPU NT
    box (600 MHZ) and reached over 2000 msg/sec
    and over 2000 clients. Similarly we have tested
    on a 4-CPU (x 400 MHz) Solaris box and gotten
    over 5000 messages per second and as many as
    3000 simultaneous clients. Our test messages
    are generally 1000 bytes.
    How big are the messages? If they are sufficiently
    large eventually the statistics are dominated by
    copying of the data and there is nothing we can do
    about that. And when you say the CPUs are
    running close to 90%, does that mean the WLS
    server is running at 90% of both CPUs? Or are
    you including your 5 clients and their time to read
    from the file as well.WLS running at 90%.
    >
    >
    If you have simple example. That you want to
    wrap up and send us (along with the config file)
    we can give it a spin around the block, kick the
    tires a few time and see what's up.
    _sjz.
    "Larry Presswood" <[email protected]> wrote in message
    news:[email protected]...
    We have the following situation:
    We want to pump 50 msg/sec to each of our WLAS 6.0 which works fine
    however
    on the a Solaris 220 - 2CPU 450MHZ I think.
    We simulate pumping the messages with a test client reading a 30MB file
    and pacing
    itslef to 50 msgs/sec. Now this process consumes roughly 18% of the cpu
    without any other clients attached.
    Next we attach a client which does the following:
    1. Creates a stateful session bean which creates a queue that
    has data sent to it via a QueueSender in 6 different message
    listeners one for each topic
    2. Our client then gets the queue and uses a receive to get that
    clients messages.
    When running 5 test clients the cpus are running at close to 90%.
    The vm has been allocated 512MB min - 1024MB max however the
    average vm heap size via the weblogic console is roughly 45-50 mb.
    So it would seem we are not memory bound.
    The goal is to get somewhere around 50 clients per cpu and we are way
    short of
    that now.
    Any ideas??
    Thanks Larry

  • JMS Adapter performance

    Hello
    I'am using JMS Adapter to initiate bpel processes. Can anyone suggest, how can I increase JMS adapter performance.
    Now JMS adapter is able to consume about 700 messages per minute. Does anyone could provide me some performance number for this adapter. I'am using BPEL 10.1.2 beta 2.
    Regards
    J

    You mention JMS performance, but what is your configuration? Are you using Oracle Lite as the dehydration store? 700 messages = process instantiations per minute (=more than 10 per second) is probably the max you will get with Oracle Lite as the dehydration store. What is the process doing that you are instantiating?
    Try using the full Oracle db instead.
    Sandor

  • Measuring efficiency/performance of JMS Servers

              Is there any recommended procedure for measuring JMS Performance?
              Say for e.g: Can Efficiency of Destination be a measurement criteria :
              How much time does the destination takes to deliver the messages of fixed size
              How does it behave if the load increases ?
              Whether any messages are lost ?
              How does a topic with durable subscriber behave ? etc....
              Please let me know in case any body has any thoughts or have down a similar exercise
              as to measure the JMS performance under normal as well as peak load.
              Thanks in advance,
              Kumar
              

    The WebLogic JMS Performance Guide white-paper has some general
              thoughts on this issue. You can find it at dev2dev.bea.com or here:
              http://newsgroups.bea.com/cgi-bin/dnewsweb?utag=&group=weblogic.developer.interest.jms&xrelated=9372&cmd_thread_last.x=42&cmd_thread_last.y=8
              Tom, BEA
              Kumar Raman wrote:
              > Is there any recommended procedure for measuring JMS Performance?
              > Say for e.g: Can Efficiency of Destination be a measurement criteria :
              > How much time does the destination takes to deliver the messages of fixed size
              > ?
              > How does it behave if the load increases ?
              > Whether any messages are lost ?
              > How does a topic with durable subscriber behave ? etc....
              >
              > Please let me know in case any body has any thoughts or have down a similar exercise
              > as to measure the JMS performance under normal as well as peak load.
              >
              > Thanks in advance,
              > Kumar
              

  • WLS-Console export vs JMS browse API

    Hi -
    We are attempting to solve a problem revolving around JMS pagination and seek your help.
    We have a scenario where in certain cases the application queues pile up due to the input flow being far higher than the consumer application capacity.
    In this scenario, we would like to have a mechanism where we can drain out the queues.
    We wrote up a custom script which would read the messages in a queue and dump the values in a file.
    This seems to work for smaller numbers, but when the pile up grows (in number in our case around 20K messages) it appears that the messages are being paged out we see a heavy slow down effect (we have filters on the JMS headers).
    One suggestion was to export all messages present (by compromising on the ability to filter messages) through the functionality present in Weblogic console. Wanted to check if the performance of the export (on the WLS console) would remain linear irrespective of the number of messages or would we still hit a performance block if the messages are paged.
    TIA,
    Senthil
    Edited by: 920205 on Mar 12, 2012 3:23 AM

    Exporting messages may be practical here either.
    I am not sure if you have looked at the JMS performance tuning guide, which has a section for handling messages backlogs.
    My suggestion would be to see if you can add producer flow control and message expiration with error destinations.
    For more details, please refer to http://docs.oracle.com/cd/E17904_01/web.1111/e13814/jmstuning.htm#CHDIJEFE
    Hope this helps.
    Dongbo

  • JMS Messages getting stuck in queues

    Hi,
    I am facing this peculiar issue with queue messages not getting picked up.
    Application Architecture: There is 1 JMS queue ( which resides in WLDomain1 with in a Unix Box) and there are 2 windows boxes having 2 weblogic domains each with 3 instances of MDB deployed on each of the domains. So total of 12 consumers (2 Box * 2 Domain * 3 Instances of MDB) listens to the JMS queue.
    Issue: After bringing everything up I am able to see 12 consumer count listening to the queue. But when I run the application which writes total of 13 messages in the queue only 7 of them are getting processed and 6 messages are always getting stuck in the queues. Interestingly this 7 messages are mostly getting processed by consumers with in the same windows box. And the selection of windows box is completely random. To confirm whether both the windows boxes are configured fine I tried to test them individually and it works fine individually, the problem happens only if I bring up both the boxes together.
    Another observation is, if I bring down the non working domains, the pending messages start getting processed by the working domains. It gives an impression that the non working domains seem to lock the messages for processing but doesn't actually process it. Only when I bring down the domains it releases this lock.
    Below is the JMS Life cycle events I captured from log files :
    1. Start domain1 in WIN Box1
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040304> <783400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <> <>
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040309> <239900> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <> <>
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040313> <2100> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <> <>
    2. Start domain2 in WIN Box 1
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095403> <38600> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <> <>
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095407> <335400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <> <>
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095410> <997700> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <> <>
    3. Start domain1 in WIN Box 2
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172061> <316500> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session80.consumer82)> <> <>
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172066> <324300> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session83.consumer85)> <> <>
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172072> <757000> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session86.consumer88)> <> <>
    4. Start domain2 in WIN Box 2
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214000> <142800> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session90.consumer92)> <> <>
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214005> <38200> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session93.consumer95)> <> <>
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214009> <22400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session96.consumer98)> <> <>
    At this point console shows 12 consumers listening the queue which is absolutely fine.
    5. Run application
    --Message Production
    This produces 13 messages ( I have not pasted the complete log)
    -- Message Consumption ( Only 7 messages are consumed)
    ####<Nov 24, 2009 8:00:05 PM CST> <> <> <1259114405953> <576400> <ID:<1047832.1259114392542.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114392542&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410091> <310100> <ID:<1047832.1259114393181.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393181&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410130> <364600> <ID:<1047832.1259114400626.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400626&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410134> <540700> <ID:<1047832.1259114393125.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393125&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410137> <632400> <ID:<1047832.1259114393128.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393128&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:12 PM CST> <> <> <1259114412026> <984200> <ID:<1047832.1259114393123.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393123&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:16 PM CST> <> <> <1259114416045> <41800> <ID:<1047832.1259114400005.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400005&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    6. At this point Admin Consol shows 6 messages pending in the queue
    and From consumer numbers it is evident that consumers in WIN Box2 domains have not processed any messages
    Now if I stop server in WIN Box2 Domain1, WIN Box1 picks up the messages instantely
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202343> <897600> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session80.consumer82)> <> <>
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202346> <421900> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session83.consumer85)> <> <>
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202379> <582300> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session86.consumer88)> <> <>
    ####<Nov 24, 2009 8:13:24 PM CST> <> <> <1259115204888> <4600> <ID:<1047832.1259114400029.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400029&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:13:32 PM CST> <> <> <1259115212820> <256700> <ID:<1047832.1259114400258.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400258&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:13:43 PM CST> <> <> <1259115223579> <280600> <ID:<1047832.1259114400032.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400032&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    7. At this poing Admin Consol shows 3 messages pending in the queue
    Now if I stop server in WIN Box2 Domain2, the remaining 3 gets processed
    ####<Nov 24, 2009 8:16:08 PM CST> <> <> <1259115368998> <193400> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session90.consumer92)> <> <>
    ####<Nov 24, 2009 8:16:08 PM CST> <> <> <1259115369000> <885500> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session93.consumer95)> <> <>
    ####<Nov 24, 2009 8:16:09 PM CST> <> <> <1259115369002> <902500> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session96.consumer98)> <> <>
    ####<Nov 24, 2009 8:16:25 PM CST> <> <> <1259115385151> <123700> <ID:<1047832.1259114400324.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400324&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:16:29 PM CST> <> <> <1259115389660> <836600> <ID:<1047832.1259114400535.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400535&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:16:37 PM CST> <> <> <1259115397823> <610200> <ID:<1047832.1259114400432.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400432&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    Kindly throw some light on this issue. Also do let me know if you need any more specific details about this.
    Thanks,
    Abhijeet
    Edited by: user5240164 on Nov 25, 2009 11:35 AM
    Edited by: user5240164 on Nov 28, 2009 1:21 PM

    Hi,
    The problem may be conflicting names in your configuration. To ensure proper operation of WL Security, JMS, JTA, and JDBC, make sure that (A) each domain has a unique name, and (B) no two WebLogic servers have the same name (even if in two different domains).
    To ensure a more even distribution of messages, either simply send more than a token amount messages (eg, a hundred or so, rather than just 12), or configure a custom connection factory on the domain that hosts the queue, reduce MessagesMaximum on the connection factory to 1, and then modify each MDB to refer to the custom connection factory. The MessagesMaximum setting controls the number of messages that can be pre-pushed (pipelined) to a single asynchronous consumer.
    For more information see "Best Practices for JMS Beginners and Advanced Users" in the latest versions of the JMS admin guide, and "JMS Performance & Tuning Check List" in the WebLogic Performance and Tuning guide.
    Tom

  • Two JMS Servers on two different nodes in cluster potinting to same destination.

    Here is my JMS configuration:
              <JMSServer Name="transQueueJMSServer_Node1"
              Store="transQueueStore_Node1" Targets="WebServices_Node1">
              <JMSTopic JNDIName="jms.topic.transQueueTopic"
              Name="transQueueTopic" RedeliveryLimit="0"/>
              </JMSServer>
              <JMSServer Name="transQueueJMSServer_Node2"
              Store="transQueueStore_Node2" Targets="WebServices_Node2">
              <JMSTopic JNDIName="jms.topic.transQueueTopic"
              Name="transQueueTopic" RedeliveryLimit="0"/>
              </JMSServer>
              Is it okay to have above configuration? I do not see any problem in my
              testing. But on the startup, second node throws the
              following error message.
              +++++++++++ <Nov 2, 2002 4:03:10 PM PST> <Error> <Cluster> <Conflict
              start: You tried to bin
              +++++++++++ d an object under the name jms.topic.transQueueTopic in the
              JNDI tree. The objec
              +++++++++++ t you have bound from dev_app is non clusterable and you have
              tried to bind mor
              +++++++++++ e than once from two or more servers. Such objects can only
              deployed from one se
              +++++++++++ rver.>
              And the version of the weblogic I am using is Weblogic6.1 SP3. The whole
              point of this configuration is to load balance the nodes.
              I have a MDB deployed on both the nodes listening to queue
              <<jms.topic.transQueueTopic>>.
              Can you guys suggest any alternative options?
              Many Thanks.
              

    Hi,
              There is a configurable on the destination to prevent the destination's
              JNDI name from being bound into cluster-wide JNDI, named something
              like "JNDIReplicationEnabled". The configurable is available
              as a patch on top of SP3. I don't have time to look up the patch
              number, but I know it is mentioned in the JMS performance
              white-paper (available on dev2dev.bea.com) in the
              "emulating distributed destinations" section.
              Tom, BEA
              bkondalreddy wrote:
              > Here is my JMS configuration:
              > <JMSServer Name="transQueueJMSServer_Node1"
              > Store="transQueueStore_Node1" Targets="WebServices_Node1">
              > <JMSTopic JNDIName="jms.topic.transQueueTopic"
              > Name="transQueueTopic" RedeliveryLimit="0"/>
              > </JMSServer>
              > <JMSServer Name="transQueueJMSServer_Node2"
              > Store="transQueueStore_Node2" Targets="WebServices_Node2">
              > <JMSTopic JNDIName="jms.topic.transQueueTopic"
              > Name="transQueueTopic" RedeliveryLimit="0"/>
              > </JMSServer>
              >
              >
              > Is it okay to have above configuration? I do not see any problem in my
              > testing. But on the startup, second node throws the
              > following error message.
              >
              > +++++++++++ <Nov 2, 2002 4:03:10 PM PST> <Error> <Cluster> <Conflict
              > start: You tried to bin
              > +++++++++++ d an object under the name jms.topic.transQueueTopic in the
              > JNDI tree. The objec
              > +++++++++++ t you have bound from dev_app is non clusterable and you have
              > tried to bind mor
              > +++++++++++ e than once from two or more servers. Such objects can only
              > deployed from one se
              > +++++++++++ rver.>
              >
              > And the version of the weblogic I am using is Weblogic6.1 SP3. The whole
              > point of this configuration is to load balance the nodes.
              > I have a MDB deployed on both the nodes listening to queue
              > <<jms.topic.transQueueTopic>>.
              > Can you guys suggest any alternative options?
              >
              > Many Thanks.
              >
              >
              

Maybe you are looking for