SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Using OpenMQ
           Linda Schneider
           Technical Lead
           Sun Microsystems,
           Inc.
What will be covered ?
• An introduction to OpenMQ.
• A Customer example.
• Basic customer requirements.
• Building a piece of the infrastructure.

• Warnings:
   > No in depth coverage
   > Assumes basic JMS knowledge


              Copyright Sun Microsystems Inc. All Rights Reserved.   [2]
What is OpenMQ ?



 Copyright Sun Microsystems Inc. All Rights Reserved.   [3]
Overview
• Allows heterogenous applications to reliability and
  asynchronously pass data between each other.
• Open Source Java Message Service (JMS)
  implementation (+ additions)
• Default Messaging Provider for Glassfish
• Useful on its own for standalone JMS applications




             Copyright Sun Microsystems Inc. All Rights Reserved.   [4]
Overview (cont.)
• Enterprise level quality (>8 years in development)
• Open Source since JavaOne 2006
• Available as a supported product: Sun Java System
  Message Queue (SJSMQ)




            Copyright Sun Microsystems Inc. All Rights Reserved.   [5]
What this looks like ....




 A set of loosely coupled applications talking through
  OpenMQ apis

          Copyright Sun Microsystems Inc. All Rights Reserved.   [6]
Ok – maybe a little about JMS
Some basic concepts of JMS:
• Producers and Consumers
• Destinations
• Consumer Types
• Reliability




                Copyright Sun Microsystems Inc. All Rights Reserved.   [7]
What are Producers and Consumers?
• Producers
 > Create messages which are given to the “provider” (e.g.
   OpenMQ) to deliver.
 > Once the message has been handed off to the provider it
   goes off and does other processing.
• Consumers
 > Are sent messages from the “provider” to process
 > Notify the provider when they are done with the message.




            Copyright Sun Microsystems Inc. All Rights Reserved.   [8]
So, what are destinations ?
• Named buckets to hold groups of messages.
• Messages are sent to “destinations”
 > Topics: each messages goes to all consumers
 > Queues: a message goes to only one consumer




           Copyright Sun Microsystems Inc. All Rights Reserved.   [9]
What are the types of Consumers ?
• Receivers are delivered messages from a Queue
• Subscribers are delivered messages from a Topic
 > Normal subscribers only receive messages sent while they
   are running
 > Messages for durable subscribers are maintained when
   the subscriber is not running




            Copyright Sun Microsystems Inc. All Rights Reserved.   [10]
And what does reliability mean ?
• Messages can be set to be persistent or non-
  persistent
 > Persistent messages are stored
 > Non-persistent messages are not and could be lost if a
   server crashed
• Messages can be transacted or non-transacted
 > Transactions guarantees that a set of messages will be
   processed or not processed (not partially processed) if a
   server fails
 > XA transactions allow other resources (e.g. databases) to
   be processed in a group with messages. [Requires an
   Application Server]
            Copyright Sun Microsystems Inc. All Rights Reserved.   [11]
Tell Me More
• Developer and User discussion forums
• Stable builds with product releases
• Early access, promoted builds available
 > New features, and fixes

• Dual license support (GPL v2 and CDDL)
• Open source version of Java MQ is available from
  http://mq.dev.java.net


            Copyright Sun Microsystems Inc. All Rights Reserved.   [12]
Using OpenMQ



Copyright Sun Microsystems Inc. All Rights Reserved.   [13]
An example
To mimic problems faced in designing applications, an
example:
• Represents a complex system with loosely
  connected applications
• Utilizes various types of messaging
• Is easy to understand
• Is at least minimally interesting



           Copyright Sun Microsystems Inc. All Rights Reserved.   [14]
Our Example: Santa Claus, Inc
Why, you ask ?

• Even if you don't believe in Santa Claus, you must
  still understand that delivering all those presents
  would be a daunting task
• And while its not Christmas which comes but once a
  year, but requires year round planning and
  preparation.
• Just because Santa Claus lives at the North Pole,
  doesn't imply he can't use technology
           Copyright Sun Microsystems Inc. All Rights Reserved.   [15]
Overall System Requirements
Santa Claus, Inc. software applications need do the
  following:
• Handle gift selection and delivery
• Manage resources e.g.
   > gifts
   > reindeer
   > Elves
• Track general status information
   > how many days before Christmas
   > etc.
            Copyright Sun Microsystems Inc. All Rights Reserved.   [16]
What are we doing:
• Focusing on handling christmas gift processing
• Steps to design it include:
   > Determining the high level operation
   > Coming up with the name and type of destinations
   > Determining models used for the messaging
   > Determining load characteristics
   > Looking at code for some components




             Copyright Sun Microsystems Inc. All Rights Reserved.   [17]
Defining the High Level
Operation of the System


   Copyright Sun Microsystems Inc. All Rights Reserved.   [18]
What do we need to do ?




       Copyright Sun Microsystems Inc. All Rights Reserved.   [19]
What do we need to do ? (cont.)




       Copyright Sun Microsystems Inc. All Rights Reserved.   [20]
How can Santa Do it ?




       Copyright Sun Microsystems Inc. All Rights Reserved.   [21]
What are the
    destinations ?


Copyright Sun Microsystems Inc. All Rights Reserved.   [22]
The Child Queue




      Copyright Sun Microsystems Inc. All Rights Reserved.   [23]
The Naughty/Nice Queues




      Copyright Sun Microsystems Inc. All Rights Reserved.   [24]
The Wrap Queue




      Copyright Sun Microsystems Inc. All Rights Reserved.   [25]
The Stuff to Pack Queue




       Copyright Sun Microsystems Inc. All Rights Reserved.   [26]
Select-a-gift Queues




       Copyright Sun Microsystems Inc. All Rights Reserved.   [27]
Topic LogChild




       Copyright Sun Microsystems Inc. All Rights Reserved.   [28]
A quick overview to
  design patterns


 Copyright Sun Microsystems Inc. All Rights Reserved.   [29]
Some basic design patterns:
Pattern                 Description
                        Message is sent to another application
Request/Reply           who sends back a response
                        Messages go through several iterations,
                        the message is persisted at key points
                        where processing it again would be
Step Operations         expensive
Broadcast               One message goes to many consumers
                        Multiple consumers send messages to a
Conduit                 single destination
Batch                   Messages are processed in a chunk
                        Messages must be processed within a
                        short period of time (e.g. under an hour)
Time Critical/Sensitive and can not be lost




               Copyright Sun Microsystems Inc. All Rights Reserved.   [30]
More things to think about:
• Use persistent messages if it can not afford to be lost
• Use non-persistent messages for:
   > Non-critical step messages (when it can be repeated
   > Request/Reply
   > Anytime a message can be lost on a server crash
• Use durables for Topics when it may need to be
  retrieved later
• Use normal or XA transactions when multiple things
  must process together:
   > XA if it includes other resources like databases
             Copyright Sun Microsystems Inc. All Rights Reserved.   [31]
Processing Queue Child
• Conduit: many producers to one queue
• Persistent: would be time consuming to lose message




           Copyright Sun Microsystems Inc. All Rights Reserved.   [32]
Processing Naughty and Nice
• Step Pattern: one step of it
• Naughty Queue: Non-
  Persistent
   > its OK if a child who is bad
     misses their coal
• Nice Queue: Persistent.
   > They must get their present.




              Copyright Sun Microsystems Inc. All Rights Reserved.   [33]
Processing Nice
• Step Pattern: more steps of it
• Multiple resources so XA




            Copyright Sun Microsystems Inc. All Rights Reserved.   [34]
Processing Nice (Select a gift)
• Request/Reply Pattern
• Non-persistent
• Action repeated on failure




            Copyright Sun Microsystems Inc. All Rights Reserved.   [35]
The Wrap Queue
• Step operation
• Persistent: end of an expensive set of steps that they
  don't want to repeat




            Copyright Sun Microsystems Inc. All Rights Reserved.   [36]
The Log Child Topic
• Broadcast Pattern
• Persistent because santa wants his database
  accurate




           Copyright Sun Microsystems Inc. All Rights Reserved.   [37]
In this example:
• The batch pattern was not used
   > Santa does use It for processing HR updates for the
     elves
• The time sensitive/critical data pattern was not used:
   > Santa does use it during present delivery on christmas
     eve to track where he is
• Because he has no time sensitive/critical data,
  reliability is important however data availability isn't
  for gift processing


             Copyright Sun Microsystems Inc. All Rights Reserved.   [38]
Performance Requirements
• 22 billion kids
• 364 days for preparation (since christmas is taken)
   > 31,526,000 seconds
• 70 children/second must be processed
• Assume 60% are “nice”
• Assume 40% downtime to cover outages and normal
  processing (so goal is approx 100 kids/second)



            Copyright Sun Microsystems Inc. All Rights Reserved.   [39]
Performance Requirements (cont)
• Naughty Kids use
   > 1 Persistent queue (child)
   > 1 Non-persistent queue (naughty)
   > 1 Persistent Topic (log child)
• Nice Kids Use:
   > Persistent Queue (child)
   > Persistent Queue (nice)
   > 2 Non-Persistent Queues (Inventory request and reply
     queues)
   > Non-persistent queue (Wrap)
   > 1 Persistent Topic (log child)
             Copyright Sun Microsystems Inc. All Rights Reserved.   [40]
The cold hard requirements
• Messages:
  > Child: 100 msgs/second (persistent)
  > Naughty: 40 msgs/second (non-persistent)
  > Log Child: 100msgs/second (persistent)
  > Nice: 60 msgs/second (persistent in XA transaction)
  > Inventory request/reply: 60 msgs/second *2 (non-
    persistent)
  > Wrap: 60 msgs/second (persistent)
• TOTALS:
  > Persistent: 380 msgs/second
  > Non-persistent: 160 msgs/second
            Copyright Sun Microsystems Inc. All Rights Reserved.   [41]
Some Sample Code



 Copyright Sun Microsystems Inc. All Rights Reserved.   [42]
Sending the “Child” message
 public void doPost(HttpServletRequest request,
   HttpServletResponse response)       throws ServletException,
   IOException {
     // retrieve initial context (ic)
      QueueConnectionFactory qcf = (QueueConnectionFactory)
                ic.lookup(quot;MyConnectionFactoryquot;);
      Queue destQueue = (Queue)ic.lookup(quot;Childquot;);
      QueueConnection connection = qcf.createQueueConnection();
      try {
            QueueSession session = connection.createQueueSession(
                    False, Session.AUTO_ACKNOWLEDGE);
            QueueSender sender = session.createSender(destQueue);
            MapMessage msg = session.createMapMessage();
            // Set each item
            msg.setString(“firstname”,
                  request.getParameter(“firstname”));
              // … retrieve other properties …;
              sender.send(msg);
       } finally {
             connection.close();
       }
 }

           Copyright Sun Microsystems Inc. All Rights Reserved.     [43]
Processing the “nice” queue
 public void onMessage(Message inMessage) {
     TextMessage msg = null;
     try {
         //Message is of type text and has a unique child id
         msg = (TextMessage) inMessage;
         String id = msg.getText();
         String[] list = db.getList(id); // makes SQL call
         String item = null;
         if (list == null) { // no list, send request
             String item = getListItem(); //next slide
         } else {
             item = list[0];
         }
         //update inventory
         db.updateInventory(item, id);//makes SQL call
         // put on packing list
         pack(item, id);
     } catch (Exception e) { // things went wrong roll back
         mdc.setRollbackOnly();
     }
 }



           Copyright Sun Microsystems Inc. All Rights Reserved.   [44]
Processing the “nice” queue (step 2)
 public String getListItem(String childid)
           throws Exception {
      QueueConnectionFactory factory =
           jndiContext.lookup(“MyQueueFactory”);
      QueueConnection qc = factory.createQueueConnection();
      qc.start();
      QueueSession session = qc.createSession(true,
                  Session.AUTO_ACKNOWLEDGED);
      Queue q = session.createQueue(“RandomPresent”);
      Queue reply = session.createTemporaryQueue();
      // get sender and receiver
      QueueSender sender = session.createSender(q);
      QueueReceiver receiver = session.createReceiver(q);
      //send message and wait
      TextMessage m = session.createTextMessage(childid);
      m.setJMSReplyTo(reply);
      //send the message
      sender.send(m);
      TextMessage back = (TextMessage)
           receiver.receive(60*1000); // wait a minute
      if (back == null) { didn't get anything
          throw new Exception(“Nothing”);
      return back.getText();
 }
           Copyright Sun Microsystems Inc. All Rights Reserved.   [45]
Processing the “nice” queue (step 3)
 public String pack(String item, String child_id)
     throws JMSException
 {
     QueueConnectionFactory factory =
          jndiContext.lookup(“MyQueueFactory”);
     QueueConnection qc = factory.createQueueConnection();
     QueueSession session = qc.createSession(true,
              Session.AUTO_ACKNOWLEDGED););
     Queue q = session.createQueue(“Pack”);
     // get sender
     QueueSender sender = session.createSender(q);
     //send message
     MapMessage m = session.createMapMessage(childid);
     m.setString(“child_id”, child_id);
     m.setString(“present”, item);
     sender.send(m);
 }



          Copyright Sun Microsystems Inc. All Rights Reserved.   [46]
You'll need to fill in the
          rest


   Copyright Sun Microsystems Inc. All Rights Reserved.   [47]
More Information



Copyright Sun Microsystems Inc. All Rights Reserved.   [48]
OpenMQ -- More Information
•Visit the product webpage
>http://sun.com/software/products/message_queue
•Join the Open Message Queue project
>https://mq.dev.java.net
•Browse the product documentation
>http://docs.sun.com/app/docs/coll/1307.3
•Take the free technical training
>http://www.sun.com/training/catalog/courses/WMT-SMQ-1491.xml




              Copyright Sun Microsystems Inc. All Rights Reserved.   [49]
Related Information
•Java Composite Application Platform Suite
>http://sun.com/software/javaenterprisesystem/javacaps/
•Java System Identity Manager
>http://sun.com/software/products/identity
•Project GlassFish
>https://glassfish.dev.java.net/
•The Aquarium, A community forum
>http://blogs.sun.com/theaquarium/



              Copyright Sun Microsystems Inc. All Rights Reserved.   [50]
Thank You!


Using OpenMQ
Linda Schneider
linda.schneider@sun.com

Weitere ähnliche Inhalte

Ähnlich wie Building With Open Mq V2

Choosing the right parallel compute architecture
Choosing the right parallel compute architecture Choosing the right parallel compute architecture
Choosing the right parallel compute architecture corehard_by
 
Which cloud(s) & why? Defining Clouds and Best Practices
Which cloud(s) & why? Defining Clouds and Best PracticesWhich cloud(s) & why? Defining Clouds and Best Practices
Which cloud(s) & why? Defining Clouds and Best PracticesPaul Weiss
 
Citrix Troubleshooting 101: How to Resolve and Prevent Business-Impacting Cit...
Citrix Troubleshooting 101: How to Resolve and Prevent Business-Impacting Cit...Citrix Troubleshooting 101: How to Resolve and Prevent Business-Impacting Cit...
Citrix Troubleshooting 101: How to Resolve and Prevent Business-Impacting Cit...eG Innovations
 
Building an Enterprise Cloud on OpenStack
Building an Enterprise Cloud on OpenStackBuilding an Enterprise Cloud on OpenStack
Building an Enterprise Cloud on OpenStackDavid Grizzanti
 
Quantifying Genuine User Experience in Virtual Desktop Ecosystems
Quantifying Genuine User Experience in Virtual Desktop EcosystemsQuantifying Genuine User Experience in Virtual Desktop Ecosystems
Quantifying Genuine User Experience in Virtual Desktop EcosystemsData Con LA
 
Azure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreAzure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreDataStax Academy
 
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAEdge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAAkamai Technologies
 
Java Middleware Surgery
Java Middleware Surgery Java Middleware Surgery
Java Middleware Surgery C2B2 Consulting
 
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...Amazon Web Services
 
2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by dddKim Kao
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDDAmazon Web Services
 
Citrix Troubleshooting 101
Citrix Troubleshooting 101Citrix Troubleshooting 101
Citrix Troubleshooting 101eG Innovations
 
[WSO2Con USA 2018] Nightmare on SSO Street
[WSO2Con USA 2018] Nightmare on SSO Street[WSO2Con USA 2018] Nightmare on SSO Street
[WSO2Con USA 2018] Nightmare on SSO StreetWSO2
 
Designing Cloud Backup to reduce DR downtime for IT Professionals
Designing Cloud Backup to reduce DR downtime for IT ProfessionalsDesigning Cloud Backup to reduce DR downtime for IT Professionals
Designing Cloud Backup to reduce DR downtime for IT ProfessionalsStorage Switzerland
 
Lessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksLessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksMatei Zaharia
 

Ähnlich wie Building With Open Mq V2 (20)

Building With Open MQ
Building With Open MQBuilding With Open MQ
Building With Open MQ
 
OpenMQ Aquarium Paris
OpenMQ Aquarium ParisOpenMQ Aquarium Paris
OpenMQ Aquarium Paris
 
Designing Scalable Applications
Designing Scalable ApplicationsDesigning Scalable Applications
Designing Scalable Applications
 
Choosing the right parallel compute architecture
Choosing the right parallel compute architecture Choosing the right parallel compute architecture
Choosing the right parallel compute architecture
 
Which cloud(s) & why? Defining Clouds and Best Practices
Which cloud(s) & why? Defining Clouds and Best PracticesWhich cloud(s) & why? Defining Clouds and Best Practices
Which cloud(s) & why? Defining Clouds and Best Practices
 
shashi_roshan1555523
shashi_roshan1555523shashi_roshan1555523
shashi_roshan1555523
 
Citrix Troubleshooting 101: How to Resolve and Prevent Business-Impacting Cit...
Citrix Troubleshooting 101: How to Resolve and Prevent Business-Impacting Cit...Citrix Troubleshooting 101: How to Resolve and Prevent Business-Impacting Cit...
Citrix Troubleshooting 101: How to Resolve and Prevent Business-Impacting Cit...
 
Building an Enterprise Cloud on OpenStack
Building an Enterprise Cloud on OpenStackBuilding an Enterprise Cloud on OpenStack
Building an Enterprise Cloud on OpenStack
 
Quantifying Genuine User Experience in Virtual Desktop Ecosystems
Quantifying Genuine User Experience in Virtual Desktop EcosystemsQuantifying Genuine User Experience in Virtual Desktop Ecosystems
Quantifying Genuine User Experience in Virtual Desktop Ecosystems
 
Azure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreAzure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User Store
 
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAEdge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
 
Java Middleware Surgery
Java Middleware Surgery Java Middleware Surgery
Java Middleware Surgery
 
DR hosting & cloud
DR hosting & cloudDR hosting & cloud
DR hosting & cloud
 
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
 
2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDD
 
Citrix Troubleshooting 101
Citrix Troubleshooting 101Citrix Troubleshooting 101
Citrix Troubleshooting 101
 
[WSO2Con USA 2018] Nightmare on SSO Street
[WSO2Con USA 2018] Nightmare on SSO Street[WSO2Con USA 2018] Nightmare on SSO Street
[WSO2Con USA 2018] Nightmare on SSO Street
 
Designing Cloud Backup to reduce DR downtime for IT Professionals
Designing Cloud Backup to reduce DR downtime for IT ProfessionalsDesigning Cloud Backup to reduce DR downtime for IT Professionals
Designing Cloud Backup to reduce DR downtime for IT Professionals
 
Lessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksLessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at Databricks
 

Mehr von Eduardo Pelegri-Llopart

What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...Eduardo Pelegri-Llopart
 
What is the Internet of Things and How it Impacts You
What is the Internet of Things and How it Impacts YouWhat is the Internet of Things and How it Impacts You
What is the Internet of Things and How it Impacts YouEduardo Pelegri-Llopart
 
Ehcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEhcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEduardo Pelegri-Llopart
 

Mehr von Eduardo Pelegri-Llopart (20)

Juggling at freenome
Juggling   at freenomeJuggling   at freenome
Juggling at freenome
 
Csumb capstone-fall2016
Csumb capstone-fall2016Csumb capstone-fall2016
Csumb capstone-fall2016
 
Digital activitymanagement
Digital activitymanagementDigital activitymanagement
Digital activitymanagement
 
Progress next iot_pelegri
Progress next iot_pelegriProgress next iot_pelegri
Progress next iot_pelegri
 
IOT - Presentation to PEP @ Progress
IOT - Presentation to PEP @ ProgressIOT - Presentation to PEP @ Progress
IOT - Presentation to PEP @ Progress
 
Node.js as an IOT Bridge
Node.js as an IOT BridgeNode.js as an IOT Bridge
Node.js as an IOT Bridge
 
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
 
What is the Internet of Things and How it Impacts You
What is the Internet of Things and How it Impacts YouWhat is the Internet of Things and How it Impacts You
What is the Internet of Things and How it Impacts You
 
Community Update 25 Mar2010 - English
Community Update 25 Mar2010 - EnglishCommunity Update 25 Mar2010 - English
Community Update 25 Mar2010 - English
 
GlassFish Community Update 25 Mar2010
GlassFish Community Update 25 Mar2010GlassFish Community Update 25 Mar2010
GlassFish Community Update 25 Mar2010
 
Glass Fish Portfolio C1 West V3.Mini
Glass Fish Portfolio C1 West V3.MiniGlass Fish Portfolio C1 West V3.Mini
Glass Fish Portfolio C1 West V3.Mini
 
Virtual Box Aquarium May09
Virtual Box Aquarium May09Virtual Box Aquarium May09
Virtual Box Aquarium May09
 
Introduction To Web Beans
Introduction To Web BeansIntroduction To Web Beans
Introduction To Web Beans
 
Ehcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEhcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage Patterns
 
OpenDS Primer Aquarium
OpenDS Primer AquariumOpenDS Primer Aquarium
OpenDS Primer Aquarium
 
Fuji Overview
Fuji OverviewFuji Overview
Fuji Overview
 
Nuxeo 5.2 Glassfish
Nuxeo 5.2 GlassfishNuxeo 5.2 Glassfish
Nuxeo 5.2 Glassfish
 
OpenSSO Deployments
OpenSSO DeploymentsOpenSSO Deployments
OpenSSO Deployments
 
OpenSSO Tech Overview Aquarium
OpenSSO Tech Overview AquariumOpenSSO Tech Overview Aquarium
OpenSSO Tech Overview Aquarium
 
OpenSSO Roadmap Aquarium
OpenSSO Roadmap AquariumOpenSSO Roadmap Aquarium
OpenSSO Roadmap Aquarium
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Building With Open Mq V2

  • 1. Using OpenMQ Linda Schneider Technical Lead Sun Microsystems, Inc.
  • 2. What will be covered ? • An introduction to OpenMQ. • A Customer example. • Basic customer requirements. • Building a piece of the infrastructure. • Warnings: > No in depth coverage > Assumes basic JMS knowledge Copyright Sun Microsystems Inc. All Rights Reserved. [2]
  • 3. What is OpenMQ ? Copyright Sun Microsystems Inc. All Rights Reserved. [3]
  • 4. Overview • Allows heterogenous applications to reliability and asynchronously pass data between each other. • Open Source Java Message Service (JMS) implementation (+ additions) • Default Messaging Provider for Glassfish • Useful on its own for standalone JMS applications Copyright Sun Microsystems Inc. All Rights Reserved. [4]
  • 5. Overview (cont.) • Enterprise level quality (>8 years in development) • Open Source since JavaOne 2006 • Available as a supported product: Sun Java System Message Queue (SJSMQ) Copyright Sun Microsystems Inc. All Rights Reserved. [5]
  • 6. What this looks like .... A set of loosely coupled applications talking through OpenMQ apis Copyright Sun Microsystems Inc. All Rights Reserved. [6]
  • 7. Ok – maybe a little about JMS Some basic concepts of JMS: • Producers and Consumers • Destinations • Consumer Types • Reliability Copyright Sun Microsystems Inc. All Rights Reserved. [7]
  • 8. What are Producers and Consumers? • Producers > Create messages which are given to the “provider” (e.g. OpenMQ) to deliver. > Once the message has been handed off to the provider it goes off and does other processing. • Consumers > Are sent messages from the “provider” to process > Notify the provider when they are done with the message. Copyright Sun Microsystems Inc. All Rights Reserved. [8]
  • 9. So, what are destinations ? • Named buckets to hold groups of messages. • Messages are sent to “destinations” > Topics: each messages goes to all consumers > Queues: a message goes to only one consumer Copyright Sun Microsystems Inc. All Rights Reserved. [9]
  • 10. What are the types of Consumers ? • Receivers are delivered messages from a Queue • Subscribers are delivered messages from a Topic > Normal subscribers only receive messages sent while they are running > Messages for durable subscribers are maintained when the subscriber is not running Copyright Sun Microsystems Inc. All Rights Reserved. [10]
  • 11. And what does reliability mean ? • Messages can be set to be persistent or non- persistent > Persistent messages are stored > Non-persistent messages are not and could be lost if a server crashed • Messages can be transacted or non-transacted > Transactions guarantees that a set of messages will be processed or not processed (not partially processed) if a server fails > XA transactions allow other resources (e.g. databases) to be processed in a group with messages. [Requires an Application Server] Copyright Sun Microsystems Inc. All Rights Reserved. [11]
  • 12. Tell Me More • Developer and User discussion forums • Stable builds with product releases • Early access, promoted builds available > New features, and fixes • Dual license support (GPL v2 and CDDL) • Open source version of Java MQ is available from http://mq.dev.java.net Copyright Sun Microsystems Inc. All Rights Reserved. [12]
  • 13. Using OpenMQ Copyright Sun Microsystems Inc. All Rights Reserved. [13]
  • 14. An example To mimic problems faced in designing applications, an example: • Represents a complex system with loosely connected applications • Utilizes various types of messaging • Is easy to understand • Is at least minimally interesting Copyright Sun Microsystems Inc. All Rights Reserved. [14]
  • 15. Our Example: Santa Claus, Inc Why, you ask ? • Even if you don't believe in Santa Claus, you must still understand that delivering all those presents would be a daunting task • And while its not Christmas which comes but once a year, but requires year round planning and preparation. • Just because Santa Claus lives at the North Pole, doesn't imply he can't use technology Copyright Sun Microsystems Inc. All Rights Reserved. [15]
  • 16. Overall System Requirements Santa Claus, Inc. software applications need do the following: • Handle gift selection and delivery • Manage resources e.g. > gifts > reindeer > Elves • Track general status information > how many days before Christmas > etc. Copyright Sun Microsystems Inc. All Rights Reserved. [16]
  • 17. What are we doing: • Focusing on handling christmas gift processing • Steps to design it include: > Determining the high level operation > Coming up with the name and type of destinations > Determining models used for the messaging > Determining load characteristics > Looking at code for some components Copyright Sun Microsystems Inc. All Rights Reserved. [17]
  • 18. Defining the High Level Operation of the System Copyright Sun Microsystems Inc. All Rights Reserved. [18]
  • 19. What do we need to do ? Copyright Sun Microsystems Inc. All Rights Reserved. [19]
  • 20. What do we need to do ? (cont.) Copyright Sun Microsystems Inc. All Rights Reserved. [20]
  • 21. How can Santa Do it ? Copyright Sun Microsystems Inc. All Rights Reserved. [21]
  • 22. What are the destinations ? Copyright Sun Microsystems Inc. All Rights Reserved. [22]
  • 23. The Child Queue Copyright Sun Microsystems Inc. All Rights Reserved. [23]
  • 24. The Naughty/Nice Queues Copyright Sun Microsystems Inc. All Rights Reserved. [24]
  • 25. The Wrap Queue Copyright Sun Microsystems Inc. All Rights Reserved. [25]
  • 26. The Stuff to Pack Queue Copyright Sun Microsystems Inc. All Rights Reserved. [26]
  • 27. Select-a-gift Queues Copyright Sun Microsystems Inc. All Rights Reserved. [27]
  • 28. Topic LogChild Copyright Sun Microsystems Inc. All Rights Reserved. [28]
  • 29. A quick overview to design patterns Copyright Sun Microsystems Inc. All Rights Reserved. [29]
  • 30. Some basic design patterns: Pattern Description Message is sent to another application Request/Reply who sends back a response Messages go through several iterations, the message is persisted at key points where processing it again would be Step Operations expensive Broadcast One message goes to many consumers Multiple consumers send messages to a Conduit single destination Batch Messages are processed in a chunk Messages must be processed within a short period of time (e.g. under an hour) Time Critical/Sensitive and can not be lost Copyright Sun Microsystems Inc. All Rights Reserved. [30]
  • 31. More things to think about: • Use persistent messages if it can not afford to be lost • Use non-persistent messages for: > Non-critical step messages (when it can be repeated > Request/Reply > Anytime a message can be lost on a server crash • Use durables for Topics when it may need to be retrieved later • Use normal or XA transactions when multiple things must process together: > XA if it includes other resources like databases Copyright Sun Microsystems Inc. All Rights Reserved. [31]
  • 32. Processing Queue Child • Conduit: many producers to one queue • Persistent: would be time consuming to lose message Copyright Sun Microsystems Inc. All Rights Reserved. [32]
  • 33. Processing Naughty and Nice • Step Pattern: one step of it • Naughty Queue: Non- Persistent > its OK if a child who is bad misses their coal • Nice Queue: Persistent. > They must get their present. Copyright Sun Microsystems Inc. All Rights Reserved. [33]
  • 34. Processing Nice • Step Pattern: more steps of it • Multiple resources so XA Copyright Sun Microsystems Inc. All Rights Reserved. [34]
  • 35. Processing Nice (Select a gift) • Request/Reply Pattern • Non-persistent • Action repeated on failure Copyright Sun Microsystems Inc. All Rights Reserved. [35]
  • 36. The Wrap Queue • Step operation • Persistent: end of an expensive set of steps that they don't want to repeat Copyright Sun Microsystems Inc. All Rights Reserved. [36]
  • 37. The Log Child Topic • Broadcast Pattern • Persistent because santa wants his database accurate Copyright Sun Microsystems Inc. All Rights Reserved. [37]
  • 38. In this example: • The batch pattern was not used > Santa does use It for processing HR updates for the elves • The time sensitive/critical data pattern was not used: > Santa does use it during present delivery on christmas eve to track where he is • Because he has no time sensitive/critical data, reliability is important however data availability isn't for gift processing Copyright Sun Microsystems Inc. All Rights Reserved. [38]
  • 39. Performance Requirements • 22 billion kids • 364 days for preparation (since christmas is taken) > 31,526,000 seconds • 70 children/second must be processed • Assume 60% are “nice” • Assume 40% downtime to cover outages and normal processing (so goal is approx 100 kids/second) Copyright Sun Microsystems Inc. All Rights Reserved. [39]
  • 40. Performance Requirements (cont) • Naughty Kids use > 1 Persistent queue (child) > 1 Non-persistent queue (naughty) > 1 Persistent Topic (log child) • Nice Kids Use: > Persistent Queue (child) > Persistent Queue (nice) > 2 Non-Persistent Queues (Inventory request and reply queues) > Non-persistent queue (Wrap) > 1 Persistent Topic (log child) Copyright Sun Microsystems Inc. All Rights Reserved. [40]
  • 41. The cold hard requirements • Messages: > Child: 100 msgs/second (persistent) > Naughty: 40 msgs/second (non-persistent) > Log Child: 100msgs/second (persistent) > Nice: 60 msgs/second (persistent in XA transaction) > Inventory request/reply: 60 msgs/second *2 (non- persistent) > Wrap: 60 msgs/second (persistent) • TOTALS: > Persistent: 380 msgs/second > Non-persistent: 160 msgs/second Copyright Sun Microsystems Inc. All Rights Reserved. [41]
  • 42. Some Sample Code Copyright Sun Microsystems Inc. All Rights Reserved. [42]
  • 43. Sending the “Child” message public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // retrieve initial context (ic) QueueConnectionFactory qcf = (QueueConnectionFactory) ic.lookup(quot;MyConnectionFactoryquot;); Queue destQueue = (Queue)ic.lookup(quot;Childquot;); QueueConnection connection = qcf.createQueueConnection(); try { QueueSession session = connection.createQueueSession( False, Session.AUTO_ACKNOWLEDGE); QueueSender sender = session.createSender(destQueue); MapMessage msg = session.createMapMessage(); // Set each item msg.setString(“firstname”, request.getParameter(“firstname”)); // … retrieve other properties …; sender.send(msg); } finally { connection.close(); } } Copyright Sun Microsystems Inc. All Rights Reserved. [43]
  • 44. Processing the “nice” queue public void onMessage(Message inMessage) { TextMessage msg = null; try { //Message is of type text and has a unique child id msg = (TextMessage) inMessage; String id = msg.getText(); String[] list = db.getList(id); // makes SQL call String item = null; if (list == null) { // no list, send request String item = getListItem(); //next slide } else { item = list[0]; } //update inventory db.updateInventory(item, id);//makes SQL call // put on packing list pack(item, id); } catch (Exception e) { // things went wrong roll back mdc.setRollbackOnly(); } } Copyright Sun Microsystems Inc. All Rights Reserved. [44]
  • 45. Processing the “nice” queue (step 2) public String getListItem(String childid) throws Exception { QueueConnectionFactory factory = jndiContext.lookup(“MyQueueFactory”); QueueConnection qc = factory.createQueueConnection(); qc.start(); QueueSession session = qc.createSession(true, Session.AUTO_ACKNOWLEDGED); Queue q = session.createQueue(“RandomPresent”); Queue reply = session.createTemporaryQueue(); // get sender and receiver QueueSender sender = session.createSender(q); QueueReceiver receiver = session.createReceiver(q); //send message and wait TextMessage m = session.createTextMessage(childid); m.setJMSReplyTo(reply); //send the message sender.send(m); TextMessage back = (TextMessage) receiver.receive(60*1000); // wait a minute if (back == null) { didn't get anything throw new Exception(“Nothing”); return back.getText(); } Copyright Sun Microsystems Inc. All Rights Reserved. [45]
  • 46. Processing the “nice” queue (step 3) public String pack(String item, String child_id) throws JMSException { QueueConnectionFactory factory = jndiContext.lookup(“MyQueueFactory”); QueueConnection qc = factory.createQueueConnection(); QueueSession session = qc.createSession(true, Session.AUTO_ACKNOWLEDGED);); Queue q = session.createQueue(“Pack”); // get sender QueueSender sender = session.createSender(q); //send message MapMessage m = session.createMapMessage(childid); m.setString(“child_id”, child_id); m.setString(“present”, item); sender.send(m); } Copyright Sun Microsystems Inc. All Rights Reserved. [46]
  • 47. You'll need to fill in the rest Copyright Sun Microsystems Inc. All Rights Reserved. [47]
  • 48. More Information Copyright Sun Microsystems Inc. All Rights Reserved. [48]
  • 49. OpenMQ -- More Information •Visit the product webpage >http://sun.com/software/products/message_queue •Join the Open Message Queue project >https://mq.dev.java.net •Browse the product documentation >http://docs.sun.com/app/docs/coll/1307.3 •Take the free technical training >http://www.sun.com/training/catalog/courses/WMT-SMQ-1491.xml Copyright Sun Microsystems Inc. All Rights Reserved. [49]
  • 50. Related Information •Java Composite Application Platform Suite >http://sun.com/software/javaenterprisesystem/javacaps/ •Java System Identity Manager >http://sun.com/software/products/identity •Project GlassFish >https://glassfish.dev.java.net/ •The Aquarium, A community forum >http://blogs.sun.com/theaquarium/ Copyright Sun Microsystems Inc. All Rights Reserved. [50]
  • 51. Thank You! Using OpenMQ Linda Schneider linda.schneider@sun.com