📄 transmessageproducer.java
字号:
/*消息发送程序,发向消息队列*/
package JMSTrans;
import java.util.Properties;
import javax.rmi.PortableRemoteObject;
import javax.naming.InitialContext;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import java.io.*;
import java.sql.*;
import javax.sql.DataSource;
import javax.naming.NamingException;
import javax.transaction.*;
public final class TransMessageProducer{
private static QueueSender sender;
private static TextMessage msg;
private static final String url = "t3://localhost:7001";
public static void main(String [] argv) throws Exception
{
UserTransaction tx=null;
DataSource ds=null;
Connection myConn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, url);
Context ctx = new InitialContext(env);
QueueConnectionFactory qConFactory = (QueueConnectionFactory)
ctx.lookup("weblogic.jms.ConnectionFactory");
QueueConnection qCon = qConFactory.createQueueConnection();
QueueSession session = qCon.createQueueSession(
false, /* not a transacted session */
Session.AUTO_ACKNOWLEDGE
);
Queue messageQueue = (Queue) ctx.lookup("MessageQueue");
sender = session.createSender(messageQueue);
msg = session.createTextMessage();
//获取UserTransaction和数据源
try{
tx=(UserTransaction)ctx.lookup("javax.transaction.UserTransaction");
ds=(javax.sql.DataSource)ctx.lookup("JTA-dataSource");
}catch(Exception e){
System.out.println("Get JTA-dataSource Error");
}
//开始JTA事务
try{
tx.begin();
//Create a new JDBC connection from the DataSource:
myConn=ds.getConnection();
//System.out.println("conn succ");
stmt=myConn.createStatement();
//System.out.println("stmt succ");
rs=stmt.executeQuery("select emp_no,emp_name from t_employee where emp_no=2001");
System.out.println("executeQuery succ");
String emp_no=null,emp_name=null;
while(rs.next()){
emp_no=rs.getString("emp_no");
msg.setText(emp_no);
sender.send(msg);//发送消息
emp_name=rs.getString("emp_name");
msg.setText(emp_name);
sender.send(msg);//发送消息
}
rs.close();
stmt.close();
tx.commit();
}catch(Exception e){
System.out.println("Service Error: "+e);
}
}catch (NamingException ne) {
System.err.println("The JMS Server and the appropriate "+
"JMS Destinations must be configured properly.");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -