JMS
Java Messaging Service (also referred to as Java Message Service; commonly abbreviated JMS) is a communication protocol designed to work atop the existing HTTP and HTTPS protocols.
Contents
Specifications
- Java Message Service 1.1 - Specification Final Release: http://download.oracle.com/otndocs/jcp/7195-jms-1.1-fr-spec-oth-JSpec/
- Java Message Service 2.0 - Proposed Final Draft: http://download.oracle.com/otndocs/jcp/jms-2_0-pfd-spec/ (JSR-000343)
Protocols
Queues
Are synchronous and/or asynchronous data stores where messages are placed in line by the provider (i.e. "queued") for their turn to be picked up by a consumer via a single-consumption mechanism. Since messages are de-queued after they are received, Queues are most appropriate for point-to-point application communication, transactional event-processing, or other instances where a race condition will not cause issues in application performance.
Topics
Are asynchronous data relay containers where messages are passed from providers to consumers in a multiple-consumption (i.e. "Publish/Subscribe") mechanism, where any number of consumers can all be "pushed" the same message simultaneously, and any of the consumers could also be producers of messages of their own. Thus, Topics are best suited for multicast application communication, real-time data services, remote control message passing, or other instances where events are to be shared across multiple applications.
Servers
- Oracle - Communications Messaging Exchange Server: http://www.oracle.com/us/industries/communications/messaging-exchange-server-066172.html
- IBM - WebSphere MQ: http://www-03.ibm.com/software/products/us/en/wmq/
- OpenJMS: http://openjms.sourceforge.net/
- Open Message Queue (OpenMQ): http://mq.java.net/
- Mule MQ: http://www.mulesoft.org/documentation/display/MQ/Home
- RabbitMQ: http://www.rabbitmq.com/
ActiveMQ
Apache ActiveMQ is the leading open source JMS implementation, and supports messaging in many languages.
- ActiveMQ: http://activemq.apache.org/
- ActiveMQ -- Getting Started: http://activemq.apache.org/getting-started.html[1]
- Running an ActiveMQ Broker: http://activemq.apache.org/run-broker.html
- ActiveMQ -- Cross-language clients: http://activemq.apache.org/cross-language-clients.html
- ActiveMQ -- AJAX client: http://activemq.apache.org/ajax.html
- ActiveMQ -- Web Samples: http://activemq.apache.org/web-samples.html | http://localhost:8161/admin
- ActiveMQ transports: http://activemq.apache.org/configuring-transports.html
Tools
- SOAP UI + Hermes: http://soapui.org
- HermesJMS: http://www.hermesjms.com/
Resources
- JNDI Support in ActiveMQ: http://activemq.apache.org/jndi-support.html
Ajax
- AJAX cross-browser, cross-platform JMS: http://activemq.apache.org/ajax.html
Java
- Simple JMS Consumer/Producer with ActiveMQ: http://sacrosanctblood.blogspot.com/2008/06/jms-with-activemq.html
- SPRING FRAMEWORK -- Chapter 19. JMS (Java Message Service): http://static.springsource.org/spring/docs/2.5.x/reference/jms.html
Scala
- Scala-with-JMS: http://github.com/Lewisham/Scala-with-JMS
Flex
- Flex with JMS using BlazeDS, Jetty and ActiveMQ: http://www.theserverlabs.com/blog/2009/01/22/flex-with-jms-using-blazeds-jetty-and-activemq/
- Doing flex with JMS: combining BlazeDS, spring-jms and ActiveMQ: http://www.gridshore.nl/2009/04/13/doing-flex-with-jms-combining-blazeds-spring-jms-and-activemq/
- Integrating Flex and Spring based JMS applications: http://php.dzone.com/articles/flex-spring-jms
- BlazeDS and JMS for Flex/PHP Developers: http://www.infoq.com/articles/blazedsjms1
PHP
- PHP JMS clients: http://stomp.codehaus.org/PHP
- PHP - PECL Stomp extension: http://pecl.php.net/package/stomp
- STOMPing with PHP – intergration with ActiveMQ : http://pookey.co.uk/wordpress/archives/75-stomping-with-php-intergration-with-activemq
- 11 easy steps for installing Apache ActiveMQ and configuring it for PHP application: http://www.webdeveloperjuice.com/2010/02/02/11-easy-steps-for-installing-apache-activemq-and-configuring-it-for-php-application/
- How to Use JMS with PHP: http://onjava.com/pub/a/onjava/2004/10/27/php-jms.html
- Using JMS in PHP: http://fallenempires.net/activemq_stomp/
.Net
- Messaging with .NET and ActiveMQ: http://remark.wordpress.com/articles/messaging-with-net-and-activemq/
Tutorials
- Push-Messaging with JMS: http://bcmoney-mobiletv.com/blog/2010/01/21/push-messaging-with-jms/
- JMS basic Publish/Subscribe Message example: https://howtodoinjava.com/jms/jms-publish-subscribe-message-example/
- Spring JMS Tutorial with ActiveMQ: http://www.briansdevblog.com/2012/09/spring-jms-tutorial-with-activemq/
- JMS Sun Complete Tutorial: http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/jms_tutorialTOC.html
- JMS - Quick & Complete Guide: https://dzone.com/articles/jms-a-quick-amp-complete-guide-with-example
- JMS easy example, Get start with JMS, JMS tutorial, JMS easy code: http://binodsuman.blogspot.com/2009/06/jms-easy-example-get-start-with-jms-jms.html
- JMS Tutorial - Topic Subscriber Client: http://sacrosanctblood.blogspot.com/2008/11/jms-tutorial-topic-subscriber-client.html
- Simple guide to Java Message Service (JMS) using ActiveMQ: http://www.javablogging.com/simple-guide-to-java-message-service-jms-using-activemq/
- Writing Simple JMS Client Applications: http://download.oracle.com/javaee/1.4/tutorial/doc/JMS5.html
- JMS Security -- Authentication and Authorization: http://activemq.apache.org/security.html
- Running ActiveMQ within Tomcat (rather than Jetty default embedded container): http://activemq.apache.org/tomcat.html[3]
- Integrating ActiveMQ With Apache Tomcat Using Local JNDI: http://www.tomcatexpert.com/blog/2010/12/16/integrating-activemq-tomcat-using-local-jndi[4]
- Integrating ActiveMQ With Apache Tomcat using Global JNDI: http://www.tomcatexpert.com/blog/2010/12/20/integrating-activemq-tomcat-using-global-jndi[5]
- Jetty embedded ActiveMQ broker integration with Tomcat: http://docs.codehaus.org/display/JETTY/Integrating+with+ActiveMQ[6]
- PHP JMS Client - Intro Tutorial: http://stomp.fusesource.org/documentation/php/book.html
- 11 easy steps for installing Apache ActiveMQ and configuring it for PHP application: http://www.webdeveloperjuice.com/2010/02/02/11-easy-steps-for-installing-apache-activemq-and-configuring-it-for-php-application/
- Getting started with JMS testing in soapUI (using HermesJMS): http://www.soapui.org/tutorials/jms/jms-tutorial.html
- Using JMS from NetBeans and Glassfish server: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/JMSProducer/JMSProducer.html
- Creating a Publish/Subscribe Model with Message-Driven Beans and GlassFish Server: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/JMS_pub_sub/JMS_pub_sub.html
- Load-Testing JMS based services (with no JNDI) using JMeter: http://yogeshd.blog.com/2012/09/18/load-testing-jms-based-services-with-no-jndi-using-jmeter/
- JMS 2.0 Early Draft - Simplified API Sample Code : https://blogs.oracle.com/arungupta/entry/jms_2_0_early_draft
- Java EE 7 (final) - Creating a Java Message Service 2.0 Producer and Receiver: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/JMS2.0WebMessage/JMS2.0WebMessage.html
- Integrating WebSockets and JMS with CDI Events in Java EE 7: https://blogs.oracle.com/brunoborges/entry/integrating_websockets_and_jms_with
- Sending JMS Messages From WildFly 8 To WebLogic 12 with Camel: http://dzone.com/articles/scaling-and-load-balancing-wildfly-on-openshift-v3?oid=integration
- Messaging for IoT - Extending ActiveMQ to handle MQTT: http://dzone.com/articles/messaging-for-iot
- Add the power of JMS Messaging and Asynchronous Processing to your JSPs: http://www.javaworld.com/article/2074950/java-web-development/add-the-power-of-asynchronous-processing-to-your-jsps.html
- Intro to XML Messaging: http://www.javaworld.com/article/2075082/embedded-java/xml-messaging--part-1.html
- ActiveMQ - Network of Brokers Explained: http://java.dzone.com/articles/active-mq-network-brokers
- JMS client example: https://examples.javacodegeeks.com/enterprise-java/jms/jms-client-example/
- Java chat that uses JMS as a server & Java FX GUI later: https://github.com/mathiasritter/JMSChat
External Links
- wikipedia: Java Message Service
- Sun product page - JMS: http://java.sun.com/products/jms/
- Getting Started with Java Message Service (JMS): http://java.sun.com/developer/technicalArticles/Ecommerce/jms/
- What's New in JMS 2.0 -- Part 1 - Ease of Use: http://www.oracle.com/technetwork/articles/java/jms20-1947669.html
- JMS Queues or Topics?: http://www.theserverside.com/discussions/thread.tss?thread_id=22158
- BlazeDS and JMS for PHP Developers, Part 1 (Flex + BlazeDS or REST): http://www.infoq.com/articles/blazedsjms1
- BlazeDS and JMS for PHP Developers, Part 2 (PHP-Java Bridge or STOMP): http://www.infoq.com/articles/blazedsjms2
- Best Practices for (JMS) Application Design - by Oracle/SUN: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jms/design_best_practices.html
- JMS Queues .vs. JMS Topics: http://soasidewalk.blogspot.com/2007/07/jms-queues-versus-jms-topics.html
- Queues Vs. Topics in TIBCO: http://eai.ittoolbox.com/documents/queues-vs-topics-in-tibco-17784
- JMS Web Service Sample (News Service application): http://www.oracle.com/technology/sample_code/tech/java/web_services/jmsws/index.html
- Sending Messages to a JMS Queue or Topic from a Message-Driven Bean (2003): http://developers.sun.com/appserver/reference/techart/tip1_june_2003.html
- Java Message Service (JMS): http://my.execpc.com/~gopalan/jms/jms.html
- Creating Robust JMS Applications (SUN): http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JMS6.html
- Benchmarking JMS-Based E-Business Messaging Providers: http://ajax.sys-con.com/node/36219
- Introduction to Simple (JMS) Messaging Examples: http://www.enterpriseintegrationpatterns.com/SimpleMessagingIntro.html
- amq.js should not have a dependency on prototype.js: http://issues.apache.org/activemq/browse/AMQ-1377
- Using JMS with PHP: http://fallenempires.net/activemq_stomp/
- JMS - Hello World Example: http://www.novell.com/documentation/extend52/Docs/help/MP/jms/tutorial/pubSub-1.htm
- Step by Step toward a jms sample in NetBeans and yes GlassFish: http://weblogs.java.net/blog/kalali/archive/2006/05/step_by_step_to.html
- Java Message Service Tutorial - FAQ: http://java.sun.com/products/jms/tutorial/jms_tutorial_faq.html
- Running JMS Client Programs on Multiple Systems: http://docs.sun.com/app/docs/doc/819-3669/bncfp?a=view
- Chapter 9. Scenario: JMS messaging: http://www.tryllian.org/docs/scenarios/ch09.html
- Chapter 5. Using JMS (with JNDI): http://docs.jboss.org/jbossmessaging/docs/usermanual-2.0.0.beta1/html/using-jms.html
- Getting Up to Speed with Java Message Service (JMS): http://developer.novell.com/extend/composer/1006.html
- JMS metrics: http://www.spec.org/jms2007/results/res2009q4/jms2007-20090921-00010.html
- Java - Threads in JMS listeners?: http://www.velocityreviews.com/forums/t132676-threads-in-jms-listeners.html
- jboss jms example: http://www.learntechnology.net/content/jms/jms_jboss_ejb3.jsp
- Configuring ActiveMQ 5 jms topic in Tomcat 6: http://javaguru.fi/2007/12/21/configuring-activemq-5-jms-topic-in-tomcat-6/
- Understanding POJOs: https://spring.io/understanding/POJO
- JMS, XML, and the heterogeneous enterprise -- Using JMS and XML to improve enterprise application interoperability: http://www.ibm.com/developerworks/xml/library/x-heterogeneous/index.html
- ActiveMQ Message Consumer in Spring: http://javaandjava.blogspot.com/2008/10/activemq-message-consumer-in-spring.html
- AJAX producer/consumer and JAVA producer/consumer in same project: http://forums.sun.com/thread.jspa?threadID=5439428
- Running ActiveMQ AJAX and JAVA client listeners: http://old.nabble.com/Running-ActiveMQ-AJAX-and-JAVA-client-listeners-ts28572124.html
- Servlets/JSP - Running Java main program from a Servlet: http://forums.devshed.com/java-help-9/running-java-main-program-from-a-servlet-705700.html
- AJAX and JAVA clients in the same project...: http://www.coderanch.com/t/495824/EJB-JEE/java/AJAX-JAVA-clients-same-project
- Implementing Jms to Jms Bridge using ActiveMQ and OpenJMS: http://www.codeproject.com/KB/docview/jms_to_jms_bridge_activem.aspx
- Flex with JMS using BlazeDS, Jetty and ActiveMQ: http://www.theserverlabs.com/blog/2009/01/22/flex-with-jms-using-blazeds-jetty-and-activemq/
- Messaging from Java to Flex without JMS: http://blog.comtaste.com/2009/03/messaging_from_java_to_flex_wi_1.html
- Apache ActiveMQ 5.9 - One of the Strongest ActiveMQ Releases: http://java.dzone.com/articles/apache-activemq-59-one
- JMS Real-World Use Cases & Applications: http://searchsoa.techtarget.com/photostory/2240235281/Top-five-use-cases-for-Java-messaging/3/Message-based-system-integration-applications
- What's New in JMS 2.0, Part One: Ease of Use: https://www.oracle.com/technetwork/articles/java/jms20-1947669.html
- What's New in JMS 2.0, Part Two—New Messaging Features: https://www.oracle.com/technetwork/articles/java/jms2messaging-1954190.html
- Announcing preview of Java Message Service 2.0 over AMQP on Azure Service Bus: https://azure.microsoft.com/en-us/blog/announcing-preview-of-java-message-service-2-over-amqp-on-azure-service-bus/
- JMS 3.0 -- Get Involved!: https://www.tomitribe.com/blog/jms-3-0-get-involved/
- What Happened to HornetQ, the JMS That Shattered Records?: https://dzone.com/articles/hornetq-stings-competition (it was donated to Apache Software Foundation and is now an "ActiveMQ sub-project")
References
- ↑ Building ActiveMQ (from source) using Maven: http://activemq.apache.org/building.html
- ↑ cvc-complex-type.2.4.a -- Invalid content was found starting with element 'init-param': https://stackoverflow.com/questions/5175034/cvc-complex-type-2-4-a-invalid-content-was-found-starting-with-element-init-pa
- ↑ Configure Tomcat's JNDI Resource Factory: http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
- ↑ Configure Apache ActiveMQ with Tomcat 6: http://rocksolutions.wordpress.com/2010/12/03/configure-apache-activemq-with-tomcat-6/
- ↑ Integrating ActiveMQ 5.1 with Tomcat 6: http://sacrosanctblood.blogspot.ca/2008/11/integrating-activemq-51-with-tomcat-6.html
- ↑ Howto Run ActiveMQ 5.2 in Tomcat 6 on Windows: http://activemq.2283324.n4.nabble.com/Howto-Run-ActiveMQ-5-2-in-Tomcat-6-on-Windows-td2366506.html
See Also
Web Service | ESB |Mule | ServiceMix | SOA | JEE | XMPP | IM | SMS | MMS | Chat | Text