jmsItemReader
richardmoore Dec 11, 2017 9:40 AMI was looking at the JmsItemReaderWriterBase code and noticed that destination is built first, then connectionfactory, and lastly the connection. I had to write my own jndi so I am confused. The steps I have to go through when setting up code for MQ is the following which does not fit the sequence in the reader. What am I missing?
PropertiesConfiguration properties = new PropertiesConfiguration();
properties.read(new StringReader(FrameworkTestQueue.JNDI_CONFIGURATION));
MQQueueConnectionFactory factory = new MQQueueConnectionFactory();
factory.setHostName(configuration.getString(FrameworkTestQueue.HOST));
factory.setChannel(configuration.getString(FrameworkTestQueue.CHANNEL));
factory.setPort(configuration.getInt(FrameworkTestQueue.PORT));
factory.setQueueManager(configuration.getString(FrameworkTestQueue.QUEUE_MANAGER));
String transportTypeClassname = configuration.getString(TRANSPORT_TYPE_CLASS);
String transportTypeFieldName = configuration.getString(TRANSPORT_TYPE_NAME);
Field f = Class.forName(transportTypeClassname).getField(transportTypeFieldName);
factory.setTransportType(f.getInt(null));
QueueConnection connection = factory.createQueueConnection();
connection.start();
Session session = connection.createSession(FrameworkTestQueue.TRANSACTED_SESSION, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue(FrameworkTestQueue.QUEUE_NAME);
// Perform produce, consume, browse using session and destination.
session.close();
connection.close();
private final static String QUEUE_NAME = "MYQUEUE";
private final static boolean TRANSACTED_SESSION = false;
private final static String JNDI_CONFIGURATION = "javax.jms.port=2121" + "\n"
+ "javax.jms.host=MYHOST" + "\n"
+ "javax.jms.channel=MYCHANNEL" + "\n"
+ "javax.jms.queue.manager=MYMGR" + "\n"
+ "javax.jms.queue=" + QUEUE_NAME + "\n"
+ "javax.jms.transport.type.class=com.ibm.msg.client.wmq.v6.jms.internal.JMSC" + "\n"
+ "javax.jms.transport.type.name=MQJMS_TP_CLIENT_MQ_TCPIP" + "\n"
+ "javax.jms.factory.initial=com.ibm.mq.jms.MQQueueConnectionFactory";
private static final String FACTORY = "javax.jms.factory.initial";
private static final String PORT = "javax.jms.port";
private static final String HOST = "javax.jms.host";
private static final String CHANNEL = "javax.jms.channel";
private static final String QUEUE_MANAGER = "javax.jms.queue.manager";
private static final String TRANSPORT_TYPE_CLASS = "javax.jms.transport.type.class";
private static final String TRANSPORT_TYPE_NAME = "javax.jms.transport.type.name";