|
| |
精品推荐 |
 |
|
| |
|
|
|
|
JBoss 文档(三) JBoss和JMS
|
日期:2008年3月30日 作者: 查看:[大字体
中字体 小字体]
|
w 在某些情景下,可能需要手工配置JNDI;例如当运行的类文件中环境已经配置了一个初始化上下文,但不是你想用的上下文时,需要手工来配置一个上下文。设置在哈希表中的几个属性值,并且使用此哈希表来实例化一个上下文。定义语法: Hashtable props = new Hashtable(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); props.put(Context.PROVIDER_URL, "localhost:1099"); props.put("java.naming.rmi.security.manager", "yes"); props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
2) 查找连接工厂 自有了上下文后,需要查找一个连接工厂。为了查找它,使用一个可用的名字。查找连接工厂的代码如下: 对于一个topic目的地 TopicConnectionFactory topicFactory = (TopicConnectionFactory) context.lookup (“ConnectionFactory”) Queue 目的地: QueueConnectionFactory queueFactory = (QueueConnectionFactory ) context.lookup (“ConnectionFactory”) 3) 建立连接和会话 在我们有了连接工厂后,建立一个连接,在此连接中建立一个会话。 对于topic代码如下: //建立一个连接 topicConnection = topicFactory.createTopicConnection(); //建立一个会话 topicSession = topicConnection.createTopicSession(false, //不需要事务 Session.AUTO_ACKNOLEDGE //自动接收消息的收条。 ); 对于queue代码如下: //建立一个连接 queueConnection = queueFactory.createQueueConnection(); //建立一个会话 queueSession = queueConnection .createQueueSession(false, //不需要事务 Session.AUTO_ACKNOLEDGE //自动接收消息的收条。 ); 一个会话建立时,配置是否调用事务 在事务Session中,当事务被提交后,自动接收,如果事务回滚,所有的被消费的消息将会被重新发送。 在非事务Session中,如果没有调用事务处理,消息传递的方式有三种: Session.AUTO_ACKNOWLEDGE :当客户机调用的receive方法成功返回,或当MessageListenser 成功处理了消息,session将会自动接收消息的收条。 Session.CLIENT_ACKNOWLEDGE :客户机通过调用消息的acknowledge方法来接收消息。接收发生在session层。接收到一个被消费的消息时,将自动接收该session已经消费的所有消息。例如:如果消息的消费者消费了10条消息,然后接收15个被传递的消息,则前面的10个消息的收据都会在这15个消息中被接收。 Session.DUPS_ACKNOWLEDGE :指示session缓慢接收消息。
4) 查找目的地 现在我们来介绍建立publishes/sends 或subscribles/receives消息。 下面的代码列出来查找一个目的地: 对于topic 查找一个testTopic目的地 Topic topic = (Topic) context.lookup(“topic/testTopic”);
对于queue 查找一个testQueue目的地 Queue queue= (Queue) context.lookup(“queue/testQueue”); 注意:JbossM的前缀topic/ (queue/)通常被放在topic (queue)名字前面。 在JMS中,当客户机扮演每种角色,象对于topic来将的publisher ,subscriber 或对于queue来将的sender, receiver, 都有自己不同类继承和不同函数。 5) 建立一个消息制造者Message Producer (topic publisher/ queue sender) 消息制造者是一个由session创建的对象,主要工作是发送消息到目的地。 对于一个topic,需要通过TopicSession来创建一个TopicPublisher。代码如下: TopicPublisher topicPublisher = TopicSession.createPublisher(topic);
对于一个queue,需要通过QueueSession来创建一个QueueSender。代码如下: QueuePublisher queuePublisher = queueSession.createSender(queue); 6) 消息发送 建立一个TestMessage并且publish 它, 代码: TextMessage message = topicSession.createTestMessage(); message.setText(msg);
上一篇:JBoss v3.0 与Tibco JMS的整合
下一篇:JBoss-3.0.1RC1_Tomcat-4.0.4中的安全
|
| 相关文章: |
|
|
|
| 相关软件: |
|
|
|
|