JmsTransactionManager 管理jms事務(wù)

上一篇寫(xiě)了 通過(guò)自己的本地事務(wù)來(lái)管理 jms的事務(wù)
這一篇說(shuō)一下 用 JmsTranscationManager來(lái)管理事務(wù)

image.png

可以看到 和本地事務(wù)相比 這種形式 是通過(guò)jmsTranscationMnager 生成了一個(gè)JMSResourceHolder來(lái)管理session。
所以也可以想到 在代碼實(shí)現(xiàn)的時(shí)候 就一定是要對(duì)JmsTransactionManager進(jìn)行配置的

所有要新建一個(gè)配置類

 @EnableJms
@Configuration
public class ConfigJms {
    @Bean
    JmsTransactionManager jmsTransactionManager(ConnectionFactory cf) {
        return new JmsTransactionManager(cf);
    }

    @Bean
    JmsTemplate jmsTemplate(ConnectionFactory cf) {
        JmsTemplate jmsTemplate = new JmsTemplate();
        jmsTemplate.setConnectionFactory(cf);
        return jmsTemplate;
    }

    @Bean
    JmsListenerContainerFactory<?> jmsListenerContainerFactory(ConnectionFactory cf,
                                                               PlatformTransactionManager transactionManager,
                                                               DefaultJmsListenerContainerFactoryConfigurer configurer) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        configurer.configure(factory, cf);
        factory.setReceiveTimeout(10000L);
        factory.setConnectionFactory(cf);
        factory.setTransactionManager(transactionManager);
        return factory;
    }
}

主要是配置了一個(gè)自己的JmsListenerContainerFactory 然后在service的方法中

    @Transactional
    @JmsListener(destination = "customer:msg:new", containerFactory = "jmsListenerContainerFactory")
    public void sendMsg(String msg) {
        String msgReply = "Local reply:" + msg;
        jmsTemplate.convertAndSend("customer:msg:reply", msgReply);
        if (msg.contains("error")) {
            sendError();
        }
    }

加上containerFactry 名字是自己定義的containerFactory
在之前使用本地session的時(shí)候 如果使用方法的方式來(lái)進(jìn)行傳遞消息
是無(wú)法進(jìn)行回滾的。
加上@Transactional 實(shí)現(xiàn)回滾的效果 出現(xiàn)報(bào)錯(cuò)時(shí) 信息不回錄入。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市唁毒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖梯影,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異诅挑,居然都是意外死亡四敞,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門拔妥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)忿危,“玉大人,你說(shuō)我怎么就攤上這事没龙∑坛” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵硬纤,是天一觀的道長(zhǎng)解滓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)筝家,這世上最難降的妖魔是什么洼裤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮溪王,結(jié)果婚禮上腮鞍,老公的妹妹穿的比我還像新娘值骇。我一直安慰自己,他們只是感情好移国,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布吱瘩。 她就那樣靜靜地躺著,像睡著了一般迹缀。 火紅的嫁衣襯著肌膚如雪使碾。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天裹芝,我揣著相機(jī)與錄音部逮,去河邊找鬼。 笑死嫂易,一個(gè)胖子當(dāng)著我的面吹牛兄朋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怜械,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼颅和,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了缕允?” 一聲冷哼從身側(cè)響起峡扩,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎障本,沒(méi)想到半個(gè)月后教届,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驾霜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年案训,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粪糙。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡强霎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蓉冈,到底是詐尸還是另有隱情城舞,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布寞酿,位于F島的核電站家夺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏伐弹。R本人自食惡果不足惜秦踪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧椅邓,春花似錦柠逞、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至合住,卻和暖如春绰精,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背透葛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工笨使, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人僚害。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓硫椰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親萨蚕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子靶草,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 這部分的參考文檔涉及數(shù)據(jù)訪問(wèn)和數(shù)據(jù)訪問(wèn)層和業(yè)務(wù)或服務(wù)層之間的交互。 Spring的綜合事務(wù)管理支持覆蓋很多細(xì)節(jié)岳遥,然...
    竹天亮閱讀 1,033評(píng)論 0 0
  • 1 事務(wù) 1.1 事務(wù)管理方式 spring支持編程式事務(wù)管理和聲明式事務(wù)管理兩種方式奕翔。 編程式事務(wù)管理使用Tra...
    鑫奕航閱讀 2,786評(píng)論 0 1
  • PartV.TransactiomManagement github 地址 https://github.com/...
    天幕_bc1a閱讀 1,116評(píng)論 2 0
  • 1.數(shù)據(jù)庫(kù)事務(wù)基礎(chǔ)知識(shí) 1.1.何為數(shù)據(jù)庫(kù)事務(wù) 數(shù)據(jù)庫(kù)事務(wù)的4個(gè)特性 原子性:組成一個(gè)事務(wù)的多個(gè)數(shù)據(jù)庫(kù)操作是一個(gè)不...
    小螺釘12138閱讀 1,560評(píng)論 1 18
  • spring事務(wù)管理是指在業(yè)務(wù)代碼在出現(xiàn)異常之后,對(duì)之前的操作進(jìn)行回滾浩蓉,保證數(shù)據(jù)庫(kù)數(shù)據(jù)的一致性 分為編程式事務(wù)管理...
    MicoCube閱讀 8,851評(píng)論 0 3