Lyn Elkins and Mitch Johnson will be Speaking at MQTC v2.0.1.7

Lyn Elkins of IBM and Mitch Johnson of IBM will be speaking at MQ Technical Conference v2.0.1.7 (MQTC).

    Lyn Elkins’ and Mark Taylor Session:

  • Using and Analysing SMF data
    Lyn Elkins’ Sessions:

  • MQ z/OS Performance & Internals
  • MQ for z/OS – Shared queues and why is my workload not running where I think it should
    Lyn Elkins’ and Mitch Johnson’s Session:

  • MQ for z/OS – An introduction to object authorization on that ‘other’ queue manager
    Mitch Johnson’s Session:

  • An Intro to MQ Service provider and z/OS Connect

For more information about MQTC, please go to:
http://www.mqtechconference.com

Regards,
Roger Lacroix
Capitalware Inc.

Education, IBM MQ, MQ Technical Conference Comments Off on Lyn Elkins and Mitch Johnson will be Speaking at MQTC v2.0.1.7

MQ API Verbs that IBM Forgot!!

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.

C, IBM i (OS/400), IBM MQ, IBM MQ Appliance, Linux, macOS (Mac OS X), Programming, Unix, Windows 2 Comments

IBM MQ V9.0.3 Continuous Delivery Released

IBM has released IBM MQ V9.0.3 Continuous Delivery:
https://www.ibm.com/developerworks/community/blogs/messaging/entry/MQ903GA

Highlights:
– IBM MQ Advanced for z/OS Value Unit Edition has a new Connector Pack
– The MQ REST API has had some updates to enable read and update of the queue manager configuration, plus querying of the status.
– IBM MQ Managed File Transfer has had additional diagnostics added to improve the user experience of understanding why file transfers have failed and what corrective action needs to be taken to resolve the problem.
– IBM MQ Appliance can intercept messages from clients not configured to work with MQ Advanced Message Security(AMS) and enable them to interact with queues that have AMS policies defined, such as signing and/or encryption.

IBM MQ (aka WebSphere MQ) homepage
http://www.ibm.com/software/products/en/ibm-mq

Regards,
Roger Lacroix
Capitalware Inc.

Fix Packs for MQ, IBM MQ, IBM MQ Appliance, Linux, Windows, z/OS Comments Off on IBM MQ V9.0.3 Continuous Delivery Released

SQLite v3.19.0 Released

D. Richard Hipp has just released SQLite v3.19.0.
http://www.sqlite.org/news.html

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

Regards,
Roger Lacroix
Capitalware Inc.

C, Database, IBM i (OS/400), Linux, macOS (Mac OS X), Open Source, Programming, Unix, Windows Comments Off on SQLite v3.19.0 Released

Scam/Fraud Email ‘Google Award Notice’

Another day, another scam. I received another scam email that Spam Assassin didn’t remove. This email is a ‘Google Award Notice’ 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.

Email Header shows that it came from: o3tx-repu.taurus.oneoffice.jp
From Email: reform-info-01@tokaigas.co.jp
Subject: RE: FINAL AWARD NOTICE UPDATE 2017!!!

Google Incorporation.
Google UK Reward
1-13 St Giles High Street
London WC2H 8AG
United Kingdom.

Dear Customer,

We are delighted to inform you that you are one of our proud winners of the GOOGLE ANNUAL LOTTERY DRAW 2017.
With this Email is an attachment with the INSTRUCTIONS on how to claim your prize. Please follow the instructions and proceed IMMEDIATELY, Thank you….CONGRATULATIONS!!!

GOOGLE REWARD TEAM. CO..

United Kingdom.

This e-mail is Confidential and it is intended only for the addressees Any. review, dissemination, distribution, or copying of this message by persons or entities other than the intended recipient is prohibited. If you have received this e-mail in error, kindly notify us immediately by telephone or e-mail and delete the message from your system. The sender does not accept liability for any errors or omissions in the contents of this message which may arise as a result of the e-mail transmission.

The email includes an attachment. The attachment is a PDF file and appears to have an executable embedded in it (most likely ransomware). Do NOT open the attachment. Just delete the email ASAP and clear your Trash folder.

Regards,
Roger Lacroix
Capitalware Inc.

Scam / Fraud Comments Off on Scam/Fraud Email ‘Google Award Notice’

Introduction to JSON Session at MQTC v2.0.1.7

I have been using JSON a lot lately, so I thought I would give an ‘Introduction to JSON’ session 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.

Education, IBM MQ, MQ Technical Conference Comments Off on Introduction to JSON Session at MQTC v2.0.1.7

New Web Page of MQTT Links

I have added a new web page to Capitalware’s web server. The new web page contains 7 sections with various links on MQTT. The new web page can be found here.

Regards,
Roger Lacroix
Capitalware Inc.

Capitalware, MQTT Comments Off on New Web Page of MQTT Links

MQTT Message Viewer V1.0.0 Released

Capitalware Inc. would like to announce the official release of MQTT Message Viewer V1.0.0.

MQTT Message Viewer is an MQTT (MQ Telemetry Transport) client that connects to an MQTT Broker. MQTT is a machine-to-machine (M2M)/Internet of Things (IoT) connectivity protocol. MQTT Message Viewer supports MQTT 3.1 and 3.1.1 protocol versions.

MQTT Message Viewer allows users to subscribe, publish, edit, copy, delete, forward, backup, restore, import and export messages of a topic. MQTT Message Viewer is a great tool for IoT (Internet of Things) application programmers, developers, quality assurance testers, and production support personnel.

MQTT Message Viewer is able to connect to any remote MQTT Broker. The remote MQTT Broker can be on any platform. The following is a sample of the MQTT Brokers that MQTT Message Viewer can connect to: 2lemetry, Apache ActiveMQ, Apache Apollo, EMQ, GnatMQ, HBMQTT, HiveMQ, IBM MessageSight, IBM MQ, JoramMQ, Moquette, Mosquitto, MQTT.js, RabbitMQ, RSMB, Software AG Universal Messaging, Solace, ThingMQ and VerneMQ.

MQTT Message Viewer has full language support for the following 55 languages: Amharic, Arabic, Azerbaijani, Bengali, Cebuano, Chinese (Mandarin China), Chinese (Mandarin Taiwan), Czech, Danish, Dutch, English, Finnish, French, German, Greek, Gujarati, Hausa, Hebrew, Hindi, Hungarian, Igbo, Indonesian, Italian, Japanese, Javanese, Kannada, Korean, Malay, Malayalam, Marathi, Norwegian, Panjabi, Pashto, Persian, Polish, Portuguese, Romanian, Russian, Shona, Sindhi, Spanish, Sundanese, Swahili, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Uzbek, Vietnamese, Xhosa, Yoruba and Zulu.

MQTT Message Viewer is designed to run on a desktop platform that supports Java SE 7 (or higher). This includes: Linux x86, Mac OS X and Windows Vista/7/8/8.1/10.

For more information about MQTT Message Viewer, please go to:
https://www.capitalware.com/mtmv_overview.html

Regards,
Roger Lacroix
Capitalware Inc.

Capitalware, Linux, macOS (Mac OS X), MQTT, MQTT Message Viewer, Windows Comments Off on MQTT Message Viewer V1.0.0 Released

IBM MQ Fix Pack 9.0.0.1 Released

IBM has just released FixPack 9.0.0.1 for IBM MQ V9.0 LTS
http://www.ibm.com/support/docview.wss?uid=swg24043467

Regards,
Roger Lacroix
Capitalware Inc.

Fix Packs for MQ, IBM i (OS/400), IBM MQ, Linux, Unix, Windows Comments Off on IBM MQ Fix Pack 9.0.0.1 Released

Debian 8.8 Released

Debian Project has just released Debian 8.8.
https://www.debian.org/News/2017/20170506

Debian is a free operating system (OS) for your computer. An operating system is the set of basic programs and utilities that make your computer run. Debian uses the Linux kernel (the core of an operating system), but most of the basic OS tools come from the GNU project; hence the name GNU/Linux.

Regards,
Roger Lacroix
Capitalware Inc.

Linux, Open Source, Operating Systems Comments Off on Debian 8.8 Released