Some time ago, I was told by a colleague that there are a lot of message status for receive in the client, which can only be consumed if the JMS server or WebLogic server is fully charged. After investigation, this problem may be a bug in the WebLogic, of course, does not exclude the possibility of the specific environment. Let's take a look at the root cause of the problem, which helps us to understand more about the implementation of WebLogic
The distributed transaction about the Dubbo service framework, although it is not urgent to do, but can be discussed.
I think the management of affairs should not belong to the Dubbo framework,Dubbo can only be managed by the transaction,Like JDBC and JMS are distributed resources that can be managed by transactions.Dubbo as long as the same behavior can be managed by the transaction, such as can be rolled back,The scheduling of other transactions sho
1, Singleconnectionfactory: The request to establish a JMS server link will always return the same link, and the Close method call of connection will be ignored. ( org.springframework.jms.connection. singleconnectionfactory)2, Cachingconnectionfactory: inherited the singleconnectionfactory, so it has all the functions of singleconnectionfactory, and it also added a cache function, It can cache sessions, MessageProducer, and Messageconsumer. We use Cac
topic. Multiple publishers send messages to topic, which the system passes to multiple subscribers.? Each message can have multiple consumers? There is a time dependency between the Publisher and the Subscriber . Subscribers to a topic (TOPIC) must create a subscription before they can consume the publisher's message and, in order to consume the message, the Subscriber must remain in a running state.Of course, to mitigate this strict time dependency, JMS
DeliveryMode indicates the transmission mode of the message:
deliverymode.non_persistent --Indicates that the message does not exist until the message is consumed, if the JMS Providers (such as active MQ) is down, after the reboot. deliverymode.persistent --Indicates that the message still exists if the JMS Providers (such as active MQ) is down before the message is consumed.
Can be set by producer,
It programmer development Essentials-all kinds of resources download list, history of the most IT resources, personal collection summary.
Based on Spring+jms+activemq+tomcat, the version I'm using is as follows: Spring 2.5 ActiveMQ 5.4.0 Tomcat 6.0.30
The following learning and configuration, to achieve the basic message service functions: Send and receive. Spring provides very good support for JMS, which
Running environment:
Weblogic 92, jdk150
Through the JMX service of weblogic, we can directly obtain mbeans to monitor the JMS server, instead of opening the weblogic online console for manual monitoring every time, which can be completely automated.
The source code is as follows:
Import java. io. IOException;
Briefly introduce this code,
To capture mbeans of JMX, initialize the MBean object first,JmsService = new ObjectName (
You can check the N
Temporaryqueue and temporarytopic can be seen literally as "temporary" destinations. You can create a session, for example:Temporaryqueue replyqueue = session. createtemporaryqueue ();Although they are created by sessions, their life cycle is indeed the entire connection. If two sessions are created on one connection, the temporaryqueue or temporarytopic created by one session can also be accessed by another session. If the two sessions are created by different connections, the temporaryqueue cr
The problems and solutions of the single machine affairs of Taobao's mass storage
http://blog.csdn.net/jiao_fuyou/article/details/15499261
This article is quite good. Core keywords: idempotent.
Message Queue Activemq:redeliver, how to do the retry mechanism does not result in a piece of information being executed multiple times. Http://stackoverflow.com/questions/4934386/avoiding-duplicated-messages-on-jms-activemq this inside mentioned two. One is
message destination and consumer message source. //In PTP mode, destination refers to the queue//In the Publish subscription model, destination refers to the topicDestination Destination = Session.createqueue ("queue1"); //5. Use session to create a message object producer or consumerMessageProducer MessageProducer =session.createproducer (destination); //6. If yes, the producer, using the MessageProducer Setdelivermode method setting, the persistence and non-persistence of messagesMessageprodu
The two message transmission modes Topic and Queue in the Jms specification are compared as follows ():
Topic
Queue
Summary
Publish Subscribe messaging Publish and Subscribe messages
Point-to-Point
Status or not
Topic data is stateless by default.
By default, Queue data is stored as files on the mq server. For example, Active MQ is generally stored under $ AMQ_HOME/data/kr-store/data. You can also config
The company's technology platform in the docking of IBM MQ message middleware with a broker, messages sent to MQ have more message header information:RHF2, resulting in the reception of the message is not working properly. Record how this problem is handled here.A parameter, targetclient, is provided in IBM MQ that can be used to control whether the message header is enabled in a JMS message. When using JMS
restarts at D2, the publisher sends M6 and M7. Now S'll receive M4, M5 followed by M6 and M7 and all for future messages. i.e. S would receive all messages from M1. M7. This is the difference between durable and non-durable consuming. If S were a non-durable consumer then it would only has received M1, M2, M3 and M6, M7-not M4 and M5. i.e because the subscription is durable, S would receive every message sent to T whether the Subscriber are running or not. For non-durable topics, only messages
Spring Integrated JMS Usage
The JMS full name Java Message Service, which is used to send messages.
1. Advantages1. Relative RPC achieves the decoupling effect: Decoupling from the Service Interface name (changing the interface name in RPC, the client needs to make modifications), decoupling from the service location (RPC needs to configure the service's network location to use the service),
JMS-based Active MQ message storage, jmsmqI. Message Storage Methods
ActiveMQ supports persistent messages and non-persistent messages in JMS specifications.
Persistent messages are usually used to ensure that messages are consumed by consumers regardless of whether the consumers are online or not. After the message is confirmed to be consumed, it will be deleted from the storage.
Non-persistent messages
Use Apache Flume to read the JMS Message Queuing message and write the message to the Hdfs,flume agent configuration as follows:Flume-agent.conf#name the components in this agentagenthdfs.sources = Jms_sourceAgenthdfs.sinks = Hdfs_sinkAgenthdfs.channels = Mem_channel# Describe/configure The sourceAgentHdfs.sources.jms_source.type = JMS# Bind to all interfacesAgentHdfs.sources.jms_source.initialContextFactor
1: ActiveMQ Zookeeper-based master-slave (LevelDB master/slave) construction and Spring-boot use (http://www.cnblogs.com/yshyee/p/7277801. HTML), the following code is used to send the JMS message:@Service Public class Producer { @Autowired private jmsmessagingtemplate jmstemplate; Public void Final String message) { jmstemplate.convertandsend (destination, message);} }After using JMeter for stress testing, it was found that
Select Activemq.
To establish a simple Maven project, the Pom.xml is as follows:
To create a test class:
Package com.gof.jms.test;
Import javax.jms.Connection;
Import Javax.jms.ConnectionFactory;
Import Javax.jms.DeliveryMode;
Import javax.jms.Destination;
Import Javax.jms.Message;
Import Javax.jms.MessageConsumer;
Import Javax.jms.MessageProducer;
Import javax.jms.Session;
Import Javax.jms.TextMessage;
Import Org.apache.activemq.ActiveMQConnectionFactory;
public class Simplemessagesend
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.