Search in sources :

Example 1 with MQMD

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;
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) GregorianCalendar(java.util.GregorianCalendar) DataInputStream(java.io.DataInputStream) MQDataException(com.ibm.mq.headers.MQDataException) IOException(java.io.IOException) MQMD(com.ibm.mq.headers.MQMD)

Example 2 with MQMD

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;
}
Also used : MQRFH2(com.ibm.mq.headers.MQRFH2) GregorianCalendar(java.util.GregorianCalendar) MQMD(com.ibm.mq.headers.MQMD)

Aggregations

MQMD (com.ibm.mq.headers.MQMD)2 GregorianCalendar (java.util.GregorianCalendar)2 MQDataException (com.ibm.mq.headers.MQDataException)1 MQRFH2 (com.ibm.mq.headers.MQRFH2)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 DataInputStream (java.io.DataInputStream)1 IOException (java.io.IOException)1