#include #include #include #include #include #include int main(int argc, char **argv) { MQHCONN h_conn; MQHOBJ h_obj; MQLONG comp_code; MQLONG reason; char topic_name[] = "TOPIC.1"; char payload[] = "My payload"; char qm_name[] = "QM01"; char channel[] = "SVRCONN.1"; char connection_name[] = "192.168.1.139(1434)"; MQCNO cno = {MQCNO_DEFAULT}; MQCD client_conn = {MQCD_CLIENT_CONN_DEFAULT}; MQOD td = {MQOD_DEFAULT}; MQMD md = {MQMD_DEFAULT}; MQPMO pmo = {MQPMO_DEFAULT}; MQCHAR res_topic_str[151]; memset(res_topic_str, 0 , sizeof(res_topic_str)); strncpy(client_conn.ChannelName, channel, MQ_CHANNEL_NAME_LENGTH); strncpy(client_conn.ConnectionName, connection_name, MQ_CONN_NAME_LENGTH); cno.ClientConnPtr = &client_conn; cno.Version = MQCNO_VERSION_2; printf("Channel: %s\n", client_conn.ChannelName); printf("Connection name: %s.\n\n", client_conn.ConnectionName); MQCONNX(qm_name, &cno, &h_conn, &comp_code, &reason); printf("MQCONNX ended with reason code %d\n", reason); td.ObjectType = MQOT_TOPIC; td.Version = MQOD_VERSION_4; strncpy(td.ObjectName, topic_name, MQ_TOPIC_NAME_LENGTH); td.ResObjectString.VSPtr = res_topic_str; td.ResObjectString.VSBufSize = sizeof(res_topic_str)-1; MQOPEN(h_conn, &td, MQOO_OUTPUT | MQOO_FAIL_IF_QUIESCING, &h_obj, &comp_code, &reason); printf("MQOPEN ended with reason code %d\n", reason); pmo.Options = MQPMO_FAIL_IF_QUIESCING | MQPMO_RETAIN; md.Persistence = MQPER_PERSISTENT; MQPUT(h_conn, h_obj, &md, &pmo, (MQLONG)strlen(payload)+1, payload, &comp_code, &reason); printf("MQPUT ended with reason code %d\n", reason); MQCLOSE(h_conn, &h_obj, MQCO_NONE, &comp_code, &reason); printf("MQCLOSE ended with reason code %d\n", reason); MQDISC(&h_conn, &comp_code, &reason); printf("MQDISC ended with reason code %d\n", reason); return 0; }