日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩综合在线观看 | 黄色片毛片| 一级全黄裸体片 | 极品av在线| 欧美激情在线一区二区 | 男女扒开双腿猛进入爽爽免费 | 成年人免费在线 | 自拍第一区 | 寂寞人妻瑜伽被教练日 | 亚洲熟女乱综合一区二区 | 夜夜福利 | 亚洲自偷自偷偷色无码中文 | 一级特黄a | 黑人操日本女优 | 天天艹 | 毛片网在线 | 国产男男gay体育生网站 | 欧美日韩a | 国产精品爽爽久久久久久 | 久久精彩免费视频 | 99久久香蕉| 99久久精品一区二区三区 | 国内激情| 久久久无码人妻精品一区 | 999国产精品| 天天操天 | 黄色一级免费视频 | 羞羞网站在线观看 | 成人国产 | 国产精品久久久久久久久免费相片 | 国产精品一卡二卡 | 久久精品中文闷骚内射 | www.av天天 | 超级黄色录像 | 日韩精品无码一区二区三区 | 国产+高潮+白浆+无码 | 久久久国产精品成人免费 | 福利在线免费视频 | 国产无套在线观看 | 泰坦尼克号3小时49分的观看方法 | 性欧美jzjz2 九草影院 | 色屁屁视频| 欧美视频在线观看视频 | 国产精品无码免费专区午夜 | 国产探花在线精品一区二区 | 天堂视频网 | 中文字幕超清在线免费观看 | 国产精品9191 | 91九色国产视频 | 国产又粗又猛又黄又爽的视频 | 欧美69精品久久久久久不卡 | 欧美在线视频第一页 | 欧美特黄一区二区三区 | 成人区人妻精品一区二区不卡视频 | 欧美大片免费 | 午夜精品久久久久久久久久久 | 精品一二三区 | 亚洲激情小视频 | 色婷婷av一区二区三区大白胸 | 久久久久黄 | 国产老头户外野战xxxxx | 青青草成人在线观看 | 日本极品少妇 | 中文字字幕在线中文乱码电影 | 国产色秀视频 | 在线观看视频一区二区三区 | 狠狠干狠狠艹 | 中文字幕av播放 | 欧美一区二区激情 | 日本泡妞视频 | 漂亮人妻洗澡被公强 日日躁 | 农村搞破鞋视频大全 | 免费看裸体视频网站 | 18禁超污无遮挡无码免费游戏 | 亚洲欧美日韩精品久久亚洲区 | 少妇人妻偷人精品一区二区 | 性欧美bbw| 国产三级三级三级 | yy4138理论片动漫理论片 | 女女互磨互喷水高潮les呻吟 | 朝桐光在线视频 | 二区不卡 | 69成人网 | 中文字幕观看在线 | 国产一级生活片 | 一级片在线免费观看视频 | 在线免费观看日韩av | www国产精品 | 一及黄色大片 | 天天做天天爱天天爽综合网 | 日本色妞 | 少妇无套高潮一二三区 | 天天射寡妇射 | 国产在线1区 | a级在线视频 | 成人深夜电影 | 国产午夜无码精品免费看奶水 | 91久久超碰 | av在线免费观看不卡 |