use of com.ibm.mq.headers.MQMD in project irontest by zheng-wang.
the class MQTeststepRunner method buildMessageFromFile.
private MQMessage buildMessageFromFile(byte[] bytes) throws MQDataException, IOException {
MQMessage message = new MQMessage();
MQMD mqmdHeader = null;
try {
mqmdHeader = new MQMD(new DataInputStream(new ByteArrayInputStream(bytes)), CMQC.MQENC_REVERSED, CMQC.MQCCSI_DEFAULT);
} catch (Exception e) {
LOGGER.info("Not able to construct MQMD out of the bytes. Exception details: ", e);
mqmdHeader = null;
}
if (mqmdHeader != null && CMQC.MQMD_STRUC_ID.equals(mqmdHeader.getStrucId()) && (CMQC.MQMD_VERSION_1 == mqmdHeader.getVersion() || CMQC.MQMD_VERSION_2 == mqmdHeader.getVersion())) {
LOGGER.info("MQMD constructed. Writing other bytes as application data.");
message.putDateTime = new GregorianCalendar();
mqmdHeader.copyTo(message);
message.persistence = CMQC.MQPER_PERSISTENT;
message.write(bytes, MQMD.SIZE2, bytes.length - MQMD.SIZE2);
} else {
LOGGER.info("No valid MQMD. Writing all bytes as application data.");
message.write(bytes);
}
return message;
}
use of com.ibm.mq.headers.MQMD in project irontest by zheng-wang.
the class MQTeststepRunner method buildMessageFromText.
private MQMessage buildMessageFromText(String body, MQRFH2Header rfh2Header) throws IOException, MQDataException {
MQMessage message = new MQMessage();
// add RFH2 header if included
if (rfh2Header.isEnabled()) {
// create MQMD properties on the message object (MQMD is not written into message, but is used by MQ PUT)
MQMD mqmd = new MQMD();
mqmd.setFormat(CMQC.MQFMT_RF_HEADER_2);
mqmd.setEncoding(CMQC.MQENC_REVERSED);
mqmd.setCodedCharSetId(CMQC.MQCCSI_DEFAULT);
mqmd.setPersistence(CMQC.MQPER_PERSISTENT);
message.putDateTime = new GregorianCalendar();
mqmd.copyTo(message);
// populate RFH2 header
MQRFH2 mqrfh2 = new MQRFH2();
mqrfh2.setFolderStrings(rfh2Header.getFolderStrings());
mqrfh2.write(message);
}
// populate message body
message.writeString(body);
return message;
}
Aggregations