JTA 四(JMS)

下面将对另一个常见的XA资源进行代码示例(使用的activemq5.7)

1)  下载activemq并启动服务。

2)创建Connection,Queue,Session,Destination,Message

public static void main(String[] args) throws Exception {


try{
                String user="system";
                String password="manager";
                String url="tcp://localhost:61616";
        
                ActiveMQXAConnectionFactory connectionFactory = new     ActiveMQXAConnectionFactory(user,password,url);//创建connectionfactory
                XAConnection xaConnection = connectionFactory.createXAConnection();//创建connection
                XASession xaSession=xaConnection.createXASession();//创建session
                XAResource xaResource=xaSession.getXAResource();//获得与session相关的XAResource
                
                Destination destination=xaSession.createQueue("TestQueue");//创建一个Queue
                MessageProducer producer=xaSession.createProducer(destination);//创建一个Destination

                Jotm jotm=new Jotm(true,false);
                TransactionManager transactionManager=jotm.getTransactionManager();

                
                transactionManager.begin();//事务开始
                Transaction transaction=transactionManager.getTransaction();
                transaction.enlistResource(xaResource);//将相关的XAResource纳入事务的管理列表
                TextMessage textMessage=xaSession.createTextMessage();//创建TextMessage
                textMessage.setText(String.valueOf(System.currentTimeMillis()));//设置消息内容(偷懒,将当前时间转为字符串,做为消息内容了)
                producer.send(textMessage);//发送消息
                

            try{
                   transaction.commit();//事务提交
               }catch(Exception e){

                   transaction.rollback();//事务rollback

              }
                jotm.stop();
         }finally{               
                System.exit(0);
         }

}


以上就是jms的JTA操作,当然了,前提是要实现了xa接口


转载于:https://my.oschina.net/u/186769/blog/659513

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值