I have created and posted an introduction to MQTT Message Viewer video. This video guides the user through the process of installing, registering and using MQTT Message Viewer.
Regards,
Roger Lacroix
Capitalware Inc.
The early-bird price for MQ Technical Conference v2.0.1.7 (MQTC) expires on Sunday, June 25th.
MQTC is the largest conference in the world solely dedicated to IBM MQ (aka WebSphere MQ & MQSeries).
For more information about MQTC, please go to:
http://www.mqtechconference.com
Regards,
Roger Lacroix
Capitalware Inc.
IBM has released IBM MQ V8.0 on the HPE NonStop platform:
https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/6/897/ENUS217-266/index.html
Highlights:
– Support for both the NSX and NSI platform
– Support for both 32-bit and 64-bit native applications
– Support for OSS and Guardian applications
– Data storage in Transaction Management Facility (TMF) protected Enscribe files
– Transactional support provided by TMF
– MQ non-native TNS language support with greater memory headroom than in the WebSphere MQ for HP NonStop Server V5.3
– Support for all the WebSpher MQ for HP NonStop Server V5.3 native languages with additional support for the native pTAL language
– Support for modern PUT multi-threading
– Default Fault Tolerant Mode for high availability
– Bundled MQ client feature with TMF integration
– Richer Enhanced Messaging Service (EMS) event handling
– TCP/IP transport configurable by channel and listener
IBM MQ (aka WebSphere MQ) homepage
http://www.ibm.com/software/products/en/ibm-mq
Regards,
Roger Lacroix
Capitalware Inc.
Today was Richard’s (son #1) graduation ceremony from University of Western Ontario (Mechatronic Systems Engineering program).
He picked up 2 more awards:
– Governor General’s Academic Medal – awarded for having the highest average of Western’s entire graduating class.
– Professional Engineers of Ontario Gold Medal – awarded to the graduating engineering student with the highest aggregate mark for the four years of the undergraduate program.
The London Free Press has written an article about Richard’s awards and job with Google.

The legal process for Richard getting his TN1 Visa has take longer than expected, so Richard’s new start date is July 10th.
Regards,
Roger Lacroix
Capitalware Inc.
Another day, another scam. I received another scam email that Spam Assassin didn’t remove. This email is a phishing email pretending to be from DocuSign with the title ‘Please review your document Invoice 2521458 for capitalware.com’ and is a scam or more likely it is ransomware.
So, be warned, the following email is a scam or ransomware and is not real.
Note: ‘Review Document’ is a link to http://explorist.in/file.php ? document=c2FsZXNAY2FwaXRhbHdhcmUuY29t – I put a space before and after the ‘?’ in the link so that it would not be click able.
(1st) Email Header shows that it came from: 173-162-136-5-newengland.hfc.comcastbusiness.net
(2nd) Email Header shows that it came from: 70-89-217-253-clark-manor-il.hfc.comcastbusiness.net
From Email: william_scott@flexovitportal.com
Subject: Please review your document Invoice 2521458 for capitalware.com

Your Invoice 2521458 from capitalware.com for May Document is Ready for Signature.
Please review and sign your Invoice 2521458 from capitalware.com for May
via DocuSign by clicking on the “Review Document” button above. Signing will not be complete until you have reviewed the document and confirmed your signature. Please contact us if you have any questions. Thank you.
Powered by
DocuSign
Do Not Share This Email
This email contains a secure link to DocuSign. Please do not share this email, link, or access code with others.
Alternate Signing Method
Visit DocuSign.com, click ‘Access Documents’, and enter the security code:
4C734
EC8F62G41E7A221B5446048
E2171
About DocuSign
Sign documents electronically in just minutes. It’s safe, secure, and legally binding. Whether you’re in an office, at home, on-the-go — or even across the globe — DocuSign provides a professional trusted solution for Digital Transaction Management™.
Questions about the Document?
If you need to modify the document or have questions about the details in the document, please reach out to the sender by emailing them directly or replying to this email.
If you are having trouble signing the document, please visit the Help with Signing page on our Support Center.
If you get an email like this from an unknown person, do NOT click on the ‘REVIEW DOCUMENT’ button in the email. Just delete the email ASAP and clear your Trash folder.
Regards,
Roger Lacroix
Capitalware Inc.
I love programming and there are 2 things I require: coffee and music. You give me fresh coffee and let me play my music (Alt-Rock with a hint of blues), I can program all day and all night. 🙂 Although, my wife will get really mad about me programming all night. 🙂
My wife and I have 5 kids. So, when either the kids or my wife ask me what I want for my birthday or Xmas, etc… I say music, music and more music. And not the low quality digital download music (crap) but I want my music on CD. I want CDs for 2 reasons: (1) it is the best quality available for music and (2) the artist gets paid the most in royalties from a CD purchase.
For years and years, when I get new CDs, I had to rip them twice. Once to get the music in FLAC format and a second time to get MP3 format (VBR 192-320kps).
I use Winamp to play my music from my FLAC music library. But since Apple has refused to support FLAC, I have to have my music in MP3 format, so that I can load it onto my iPhone and iPod.
So, I REALLY hope this news article is correct:
https://thenextweb.com/apple/2017/06/06/ios-11-flac-audio-iphone-ipad/
It will make my life so much easier when I get new CDs. 🙂
Regards,
Roger Lacroix
Capitalware Inc.
Lyn Elkins of IBM and Mitch Johnson of IBM will be speaking at MQ Technical Conference v2.0.1.7 (MQTC).
For more information about MQTC, please go to:
http://www.mqtechconference.com
Regards,
Roger Lacroix
Capitalware Inc.
Every couple of months, I get an email from someone asking me if they can use MQAUSX client-side security exit with IBM MQ V8 or V9 to perform authentication via CONNAUTH. The answer is no – the MQAUSX client-side security exit only works with the MQAUSX server-side security exit.
IBM added the MQCSP (Connection Security Parameters) structure in MQ V6, so that applications could send a UserId and Password (in plain text) to a remote queue manager. At that time, the queue manager would not do anything with the UserId and Password except pass it to a channel security exit (i.e. MQAUSX), if one was in use.
In MQ V7, MQ had an explosion of new MQ API verbs. MQ V6 had 13 verbs and MQ v7.0 introduced 12 new API verbs (basically, the verb count doubled). Why IBM did not enhance or add new MQCONN/MQCONNX verbs to include a UserId and Password for MQ V7, V7.1 or V7.5 is debatable. But when IBM introduced CONNAUTH in MQ V8, IBM absolutely should have made the developers life easier by introducing new MQCONN/MQCONNX verbs.
Since, IBM is not interested or unwilling to introduce 2 new MQ API verbs, I will.
Here are the standard MQCONN and MQCONNX verbs:
MQCONN(QMgrName, &Hconn, &CompCode, &Reason); MQCONNX(QMgrName, &ConnectOpts, &Hconn, &CompCode, &Reason);
Today, I will introduce 2 new MQ verbs: MQCONNU and MQCONNUX for MQ applications written in C.
MQCONNU(UserId, Password, QMgrName, &Hconn, &CompCode, &Reason); MQCONNUX(UserId, Password, QMgrName, &ConnectOpts, &Hconn, &CompCode, &Reason);
I have created a C source file called ‘mqconnu.c’ that has the prototypes and code to handle the new MQ verbs. All the developer needs to do is include the ‘mqconnu.c’ in their MQ C applications then they can use the new MQ verbs.
I have created 2 MQ tester programs to demonstrate the 2 new MQ verbs called: ‘test_mqconnu.c’ and ‘test_mqconnux.c’. You can download a zip file that contains the 3 files from here.
So, lets have a look at the ‘test_mqconnu.c’ program:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmqc.h>
#include "mqconnu.c" /* prototypes and code for MQCONNU and MQCONNUX */
int main(int argc, char **argv)
{
MQHCONN Hcon; /* connection handle */
MQLONG CompCode; /* completion code */
MQLONG Reason; /* reason code */
char QMgrName[MQ_Q_MGR_NAME_LENGTH+1];
char userId[64];
char passwd[64];
if (argc != 4)
{
printf("test_mqconnu QMgrName userid password\n");
return(1);
}
printf("test_mqconnu start\n");
strncpy(QMgrName, argv[1], MQ_Q_MGR_NAME_LENGTH);
strncpy(userId, argv[2], sizeof(userId));
strncpy(passwd, argv[3], sizeof(passwd));
printf("Using values:\n");
printf(" QMgrName : %s\n", QMgrName);
printf(" UserID : %s\n", userId);
printf(" Password : %s\n", passwd);
MQCONNU(userId, /* UserId */
passwd, /* Password */
QMgrName, /* queue manager */
&Hcon, /* connection handle */
&CompCode, /* completion code */
&Reason); /* reason code */
printf("MQCONNU CC=%d RC=%d\n", CompCode, Reason);
if (CompCode == MQCC_OK)
{
MQDISC(&Hcon, /* connection handle */
&CompCode, /* completion code */
&Reason); /* reason code */
printf("MQDISC CC=%d RC=%d\n", CompCode, Reason);
}
printf("test_mqconnu end\n");
return(0);
}
As you can see, MQCONNU is a direct replacement for MQCONN with the added benefit of passing the UserId and Password to MQ.
Now lets have a look at the ‘test_mqconnux.c’ program:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmqc.h>
#include <cmqxc.h>
#include "mqconnu.c" /* prototypes and code for MQCONNU and MQCONNUX */
int main(int argc, char **argv)
{
MQHCONN Hcon; /* connection handle */
MQLONG CompCode; /* completion code */
MQLONG Reason; /* reason code */
MQCNO cno = {MQCNO_DEFAULT}; /* MQCONNX options */
MQCD cd = {MQCD_CLIENT_CONN_DEFAULT};
char QMgrName[MQ_Q_MGR_NAME_LENGTH+1];
char userId[64];
char passwd[64];
if (argc != 6)
{
printf("test_mqconnux QMgrName ChlName hostname(port) userid password\n");
return(1);
}
printf("test_mqconnux start\n");
strncpy(QMgrName, argv[1], MQ_Q_MGR_NAME_LENGTH);
strncpy(cd.ChannelName, argv[2], MQ_CHANNEL_NAME_LENGTH);
strncpy(cd.ConnectionName, argv[3], MQ_CONN_NAME_LENGTH);
strncpy(userId, argv[4], sizeof(userId));
strncpy(passwd, argv[5], sizeof(passwd));
printf("Using values:\n");
printf(" QMgrName : %s\n", QMgrName);
printf(" ChannelName: %s\n", cd.ChannelName);
printf(" hostname : %s\n", cd.ConnectionName);
printf(" UserID : %s\n", userId);
printf(" Password : %s\n", passwd);
/* Point the MQCNO to the client connection definition */
cno.ClientConnPtr = &cd;
cno.Version = MQCNO_VERSION_5;
MQCONNUX(userId, /* UserId */
passwd, /* Password */
QMgrName, /* queue manager */
&cno, /* options for connection */
&Hcon, /* connection handle */
&CompCode, /* completion code */
&Reason); /* reason code */
printf("MQCONNUX CC=%d RC=%d\n", CompCode, Reason);
if (CompCode == MQCC_OK)
{
MQDISC(&Hcon, /* connection handle */
&CompCode, /* completion code */
&Reason); /* reason code */
printf("MQDISC CC=%d RC=%d\n", CompCode, Reason);
}
printf("test_mqconnux end\n");
return(0);
}
As you can see, MQCONNUX is a direct replacement for MQCONNX with the added benefit of passing the UserId and Password to MQ.
The new MQCONNU and MQCONNUX verbs can be used in any C MQ application that wants to pass a UserId and Password to MQ for authentication. The 2 new verbs can be used in MQ applications on any platform where the MQ client code-base supports MQCSP structure.
As mentioned above, you can download a zip file that contains the 3 files from here.
Regards,
Roger Lacroix
Capitalware Inc.