日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jms在jboss上的简单应用

發(fā)布時間:2025/4/5 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jms在jboss上的简单应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

核心概念:

?連接工廠(ConnectionFactory)客戶端用來創(chuàng)建連接的管理對象。 ?連接(Connection)代表一個與JMS提供者的活動連接。 ?目的(Destination)標(biāo)識消息接收方式。 ?會話(Session)接收和發(fā)送消息的會話線程。 ?消息生產(chǎn)者(MessageProducer)會話使用它把消息發(fā)送到目的地。 ?消息消費(fèi)者(MessageConsumer)會話使用它從目的地接收消息生產(chǎn)者發(fā)送的消息 1.發(fā)送消息的客戶端使用JMS的過程

(1)使用JNDI查詢管理對象ConnectionFactory和Destination

(2)使用管理對象ConnectionFactory建立連接Connection

(3)使用連接Connection建立會話Session

(4)使用會話Session和管理對象Destination創(chuàng)建消息生產(chǎn)者M(jìn)essagerProducer

(5)使用消息生產(chǎn)者M(jìn)essagerPriducer發(fā)送消息

?

2.接收消息的客戶端使用JMS的過程

(1)使用JNDI查詢管理對象ConnectionFactory和Destination

(2)使用管理對象ConnectionFactory建立連接Connection

(3)使用連接Connection建立會話Session

(4)使用會話Session和管理對象Destination創(chuàng)建消息生產(chǎn)者M(jìn)essagerProducer

(5)使用消息生產(chǎn)者M(jìn)essagerConsumer接收消息

3. JMS中支持兩種事務(wù)方式:事務(wù)性會話和JTA事務(wù)

  a)創(chuàng)建事務(wù)性會話的代碼:

  qsession=qcon.createQueueSession(true; //在PTP方式下創(chuàng)建事務(wù)性會話

  Session.AUTO_ACKNOWLEDGE

  );

  tsession=tcon.createTopicSession(

  true; //在Pub/Sub方式下創(chuàng)建事務(wù)性會話

  Session.AUTO_ACKNOWLEDGE

  );

b)JTA事務(wù):JTA支持跨數(shù)據(jù)源的事務(wù),步驟如下:

(1)創(chuàng)建非事務(wù)性會話

QueuesSession session=connection.createQueueSession(

???????????????????????? false,Session.AUTO_ACKNOWLEGE);

(2)使用JNDI查詢JTA事務(wù)引用

Context ctx = new InitialContext();

UserTansaction ux=(UserTansaction)ctx.lookup

(“javax.transaction.UserTansaction”);

(3)開始事務(wù)

ux.begin();

(4)執(zhí)行業(yè)務(wù)操作

(5)提交或回滾事務(wù)

提交事務(wù):ux.commit();

回滾事務(wù):ux.rollback();

服務(wù)區(qū)端代碼

package test.jms;

import javax.jms.*;
import javax.naming.*;

public class Server {
? private static Server instance = new Server();
? private? TopicSession tsession = null;
? private? Topic topic = null;
? private? TopicPublisher tpub = null;

? private TopicConnectionFactory tcf = null;
? private TopicConnection tconn = null;
? private Context ctx = null;

? private Server() {
??? init();
? }

? public static Server getInstance(){
??? return instance;
? }


? public void sendMessage(MessageInfo msgInfo){
??? int tryTimes = 0;
????? while(true){
??????? try {
????????? if(msgInfo == null){
??????????? break;
????????? }
????????? Message msg = tsession.createMessage();
????????? msg.setStringProperty("xxxx", msgInfo.getxxxx());
????????? msg.setStringProperty("xxxx", msgInfo.getxxxx());
????????? msg.setStringProperty("xxxx", msgInfo.getxxxx());
????????? msg.setStringProperty("xxxx", msgInfo.getxxxx());
????????? msg.setStringProperty("xxxx", msgInfo.getxxxx());
????????? msg.setIntProperty("xxxx", msgInfo.getxxxx());

????????? tpub.publish(msg);
????????? break;
??????? }
??????? catch (Exception e) {
????????? if (!init()) {
??????????? if (tryTimes < 20) { //默認(rèn)15分鐘可以恢復(fù)數(shù)據(jù)庫連接,這里冗余一部分
????????????? tryTimes++;
????????????? try{
??????????????? Thread.sleep(60000); //一分種后重試
????????????? }
????????????? catch(Exception ex){
??????????????? Logger.log(Logger.DEBUG_TYPE,ex);
????????????? }
????????????? continue;
??????????? }
??????????? else{
????????????? System.out.println("系統(tǒng)消息機(jī)制異常,系統(tǒng)將自動退出!請進(jìn)行系統(tǒng)恢復(fù)!");
????????????? SysTool.exit(0);
????????????? return;
??????????? }
????????? }
??????? }
????? }


? }

? private boolean init() {
??? try {
????? try{
??????? tpub.close();
????? }
????? catch(Exception ex){ }
????? try{
??????? tsession.close();
????? }
????? catch(Exception ex){? }
????? try{
??????? tconn.close();
????? }
????? catch(Exception ex){? }
????? try{
??????? ctx.close();
????? }
????? catch(Exception ex){ }

????? ctx = new InitialContext();
????? tcf = (TopicConnectionFactory)ctx.lookup(
??????? "ConnectionFactory");
????? tconn = tcf.createTopicConnection();
????? tsession = tconn.createTopicSession(false,TopicSession.AUTO_ACKNOWLEDGE);
????? topic = (Topic)ctx.lookup("topic/xxxxTopic");
????? tpub = tsession.createPublisher(topic);
????? tconn.start();
????? return true;
??? }
??? catch (Exception e) {
????? Logger.log(Logger.DEBUG_TYPE, e);
????? return false;
??? }
? }

}

客戶端代碼

package test;
import java.util.Hashtable;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import javax.naming.Context;
import javax.naming.InitialContext;

public class JMSClinet {
? public static void main(String[] args) {

??????? while(true){
??????? try {
??????????? TopicSession tsession = null;

??????????? TopicSubscriber tsub = null;
??????????? Hashtable ht = new Hashtable();
??????????? ht.put(Context.INITIAL_CONTEXT_FACTORY,
??????????????????? "org.jnp.interfaces.NamingContextFactory");
??????????? ht.put(Context.PROVIDER_URL, "ip地址:1099");
??????????? ht.put("java.naming.rmi.security.manager", "yes");
??????????? ht.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");

??????????? Context ctx = new InitialContext(ht);

??????????? TopicConnectionFactory factory = (TopicConnectionFactory) ctx
??????????????????? .lookup("ConnectionFactory");

??????????? TopicConnection connection = factory.createTopicConnection();


??????????? TopicSession session = connection.createTopicSession(false,
??????????????????? Session.AUTO_ACKNOWLEDGE);

??????????? Topic topic = (Topic) ctx.lookup("topic/logInAndOutTopic");

??????????? tsub = session.createSubscriber(topic);

??????????? connection.start();
??????????? Message msg = tsub.receive();
??????????? String xxxx= msg.getStringProperty("xxxx");
??????????? String xxxx= msg.getStringProperty("xxxx");
??????????? String xxxx= msg.getStringProperty("xxxx");
??????????? String xxxx= msg.getStringProperty("xxxx");
??????????? String xxxx= msg.getStringProperty("xxxx");
??????????? int xxxx= msg.getIntProperty("xxxx");?????
??????????? connection.close();
??????? }
??????? catch (Exception e) {
??????????? e.printStackTrace();
??????? }
??????? }
??? }

}

配置文件

?<mbean code="org.jboss.mq.server.jmx.Topic"
? name="jboss.mq.destination:service=Topic,name=xxxxTopic">
??? <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
??? <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
??? <attribute name="SecurityConf">
?????? <security>
???????? <role name="xxxx" read="true" write="true"/>
???????? <role name="xxxx" read="true" write="true" create="false"/>
???????? <role name="xxxx" read="true" write="true" create="true"/>
????? </security>
??? </attribute>
?</mbean>

轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/archive/2013/01/22/2871924.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的jms在jboss上的简单应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本黄色免费在线观看 | 亚洲第一狼人区 | 精品一区国产 | 国产一区二区在线看 | 国产欧美一区二区三区在线看蜜臀 | 三上悠亚久久 | 国产做爰全免费的视频软件 | 国产成人无遮挡在线视频 | 久久久久久久国产精品毛片 | 精品一区二区三区蜜臀 | 国产成人无码久久久精品天美传媒 | 国产黄色录相 | 青青草免费在线观看 | 一本一道久久a久久 | 日日摸天天爽天天爽视频 | xxx性日本| 日本裸体动漫 | 亚洲欧美日韩图片 | 国产三级视频在线 | 天天澡天天狠天天天做 | 亚洲乱仑 | 91国内精品视频 | 麻豆成人av | 中文字幕一区二区三区人妻四季 | 国产小视频一区 | 欧美αv | 天天爽夜夜爽夜夜爽精品 | 国产一区二区三区四区视频 | 婷婷色中文网 | 成人自拍偷拍 | 麻豆视频在线观看免费 | 噜噜噜视频 | 我要看一级片 | 欧美激情精品久久久久 | 日本国产精品视频 | 欧美日韩高清一区二区 | 涩里番在线观看 | 欧美日韩在线免费观看 | 在线观看免费观看 | 国产美女主播在线 | 国产无码精品在线播放 | 我要操av | 日本黄页网站 | 国产精品电影一区 | 奇米影视77777| 美国av片| 日韩欧美亚洲成人 | 在线观看麻豆 | 国产视频一区二区三区在线播放 | 天天看片中文字幕 | 精品交短篇合集 | 国产伦精品一区二区三区在线 | 在线看片一区二区 | 亚洲欧美成人一区二区三区 | 日本精品一二区 | 日韩黄色一级 | 国产在线黄 | 91一区二区国产 | 欧美重口另类 | 亚洲欧美另类图片 | 亚洲av无码一区二区乱子伦 | 国产成人一区二区三区视频 | 日本一级大片 | 欧美aaa在线观看 | 黄色网页免费在线观看 | 亚洲国产97 | 精品国产鲁一鲁一区二区张丽 | 国产自产21区 | 懂色av中文字幕 | 影音先锋波多野结衣 | 97九色 | 国产露脸国语对白在线 | 里番acg★同人里番本子大全 | 亚洲国产成人精品视频 | 亚洲高清欧美 | xxxxhd欧美| 亚洲天堂视频网 | 亚洲精品久久久久久久蜜桃 | 不卡成人 | 日韩少妇裸体做爰视频 | 朝桐光在线播放 | 亚洲 成人 av| 国产精品电影一区二区三区 | 蜜桃精品视频 | 黑人玩弄人妻一区二区三区四 | 他趴在我两腿中间添得好爽在线看 | 五月婷婷激情 | 4色av| 神马一区二区三区 | 中文人妻av久久人妻18 | 天天操网址 | 久久狠| 桥本有菜aⅴ一区二区三区 在线午夜电影 | 久草资源| 福利电影在线播放 | 精品日韩在线观看 | 成人午夜视频一区二区播放 | a级片免费网站 | 久久人人妻人人人人妻性色av |