public void init(){
QueueConnectionFactory queueConnectionFactory = null;
QueueConnection queueConnection = null;
QueueSession queueSession = null;
Queue queue = null;
QueueReceiver subscriber = null;
Message message = null;
try{
Properties properties = new Properties();
**InputStream in = this.getClass().getClassLoader().getResourceAsStream("aqDBC.properties");
//配置文件内容
//hostname=192.168.1.118
//sid=fuguo
//port=1521
//driver=thin
//user=stradmin
//password=stradmin**
properties.load(in);
queueConnectionFactory = AQjmsFactory.getQueueConnectionFactory(properties.getProperty("hostname")
,properties.getProperty("sid"), Integer.valueOf(properties.getProperty("port")),
properties.getProperty("driver"));
queueConnection = queueConnectionFactory.createQueueConnection(properties.getProperty("user"),
properties.getProperty("password"));
queueConnection.start();
queueSession = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
_//这行代码报错:oracle.jms.AQjmsException: JMS-130: JMS 队列不能启用多个使用者 JMS-130 这个问题,没弄清楚是怎么出现的
queue = ((AQjmsSession) queueSession).getQueue("stradmin", "JMS_QUEUE"); //问题主要在这_
subscriber = queueSession.createReceiver(queue);
subscriber.setMessageListener(new MessageListener() {//底下这块 就没什么大用了
@Autowired
private RealTimeCashInterfaceAction realTimeCashInterfaceAction;
@Override
public void onMessage(Message message) {//待确定 字段名待修改
try {
} catch (Exception e) {
e.printStackTrace();
}
}
});
} catch(Exception e){
e.printStackTrace();
}
}
ORACLE部分
JMS_QUEUE队列
begin
sys.dbms_aqadm.create_queue(
queue_name => 'JMS_QUEUE',
queue_table => 'JMS_QUEUE_TABLE',
queue_type => sys.dbms_aqadm.normal_queue,
max_retries => 5,
retry_delay => 0,
retention_time => 0);
end;
/
所有者就是STRADMIN