The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,862 other subscribers

Archive for the ‘MQ Message Queueing/Queuing’ Category

Convenient when translating C header files: Delphi to C++ types mapping (Embarcadero docwiki)

Posted by jpluimers on 2013/03/07

A while ago I was involved in a C header file translation for the header files of the IBM WebSphere MQ family of products, and the table helped a lot for the base types:

Delphi to C++ types mapping – RAD Studio.

A few C things missing there:

These articles helped resolving the missing bits:

Now we can do SOA between System i (a.k.a. iSeries, aka AS/400) from Windows 7.

–jeroen

PS: Later I found someone else also did a lot of work on this and published http://www.milosev.com/Download/WebSphere/WebSphereD2009.rar [WayBack] (thanks Murat Mutlu for pointing me at that) with a very thin note at http://www.milosev.com/32-mq/mq/171-delphi-2009.html [WayBack]

Posted in C++, C++ Builder, Delphi, Delphi 2006, Delphi XE2, Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | Leave a Comment »

Delphi bindings for WebSphere MQ

Posted by jpluimers on 2013/02/14

The current Delphi bindings for WebSphere MQ (formerly known as MQSeries) are very old.

The MA7Q: WebSphere MQ – MQI for Delphi formal binding from IBM is incomplete. Even though it is from 2005, it doesn’t contain the MQCD definition that was there at least since WebSphere MQ 5.2 (released in 2000). And by now it should be gone, since MQSeries 5.x is not supported any more.

A newer one by Dinko Miljak which is mentioned on Delphi 3000 and mentioned on MQSeries.net, has some errors and is from the WebSphere MQ 5.2 era.
It is available via this posting on MQSeries.net (direct download link), and this author reference on Torry.net (direct download link). Both files are identical.

Since it is much more extensive than the IBM version, I am using it to update it for newer WebSphere versions.
Great help while updating are the Gefira MQ bindings for Python: readable, indexed on nullege, and helpful (for instance on the usage of MQHO_UNUSABLE_HOBJ – which is assigned when calling MQCLOSE, I found out later that it is also explained here). The latest Gefira change was in 2008, but still way better than the Delphi bindings.

Also the Perl bindings for MQSeries together with their ASCII/EBCDIC client demo helped a lot.

A big issue when translating is that the i5/OS API in large part uses different names than the regular API.
For instance MQMD (i5/OS) contains MDENCMDCSI and MDFMT fields where MQMD (regular) contains and EncodingCodedCharSetId and Format fields.

As soon as I have done proper translation and upgrading to WebSphere MQ 7.x, I will upload source code.

Source code will be on the BeSharp.net CodePlex repository.

–jeroen

Posted in Delphi, Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | 1 Comment »

A couple of notes on NMQ_MQ_LIB

Posted by jpluimers on 2013/02/13

A couple of notes on NMQ_MQ_LIB and the WebSphere MQ aka MQSeries client libraries:

  • NMQ_MQ_LIB specifies the MQ DLL to use
  • Depending in your interface, the NMQ_MQ_LIB can be an environment variable, application setting, or hardcoded DLL name
  • MQSeries 5.x and WebShpere MQ 6.x require you to specify the bitness in the MQIC DLL name (they don’t accept mqic.dll, but require mqic32.dll) when you access it from the C or Delphi interface.
    MQM DLL does not require bitness: it is mqm.dll in all versions.
  • From client applications, use mqic.dll or mqic32.dll.

And a few links:

I needed this to get some apps talking to MQ on AS/400 aka iSeries aka System i working correctly by getting the DLLs right.

–jeroen

Posted in .NET, AS/400 / iSeries / System i, Delphi, Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | Leave a Comment »

WebSphere MQ Client 5.3, 6.0 and 7.0

Posted by jpluimers on 2012/10/30

Some of the links in my post on WebSphere MQ Client 5.3 and 7.0 last year didn’t work any more, so below an updated  download link list:

One of the reasons for being at least at V6.0, is that it allows you to specify credentials during a MQCONNX call and using MQCNO_VERSION_5 which enables the use of the SecurityParams (a demo is here) of the MQCNO structure.

–jeroen

via: WebSphere MQ Client 5.3 and 7.0 « The Wiert Corner – irregular stream of Wiert stuff.

Posted in Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | 1 Comment »

Jamie’s Blog | MQTT Client Library for Delphi

Posted by jpluimers on 2011/11/23

Another way to talk to WebSphere MQ from Delphi is to use the MQTT Client Library for Delphi.

It encapsulates the MQTT protocol, which – being a telemetry transport protocol – is extremely light weight, but also versatile.

–jeroen

Via: Jamie’s Blog | MQTT Client Library for Delphi.

Posted in Delphi, Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | 2 Comments »

The *must read* WebSphere MQ security topic on #MQSeries.net

Posted by jpluimers on 2011/10/04

MQSeries.net is the site to visit for WebSphere MQ (formerly MQSeries) topics.

They have a forum with very knowledgeable people.

One of the must-read topics is MQSeries.net :: View topic – NOT running amqcrsta as ‘mqm’… that points to a very nice IBM WebSphere MQ Security presentation (including a 50 minute YouTube video) that Martyn Ruks presented on EUSecWest 08  (an older version of the presentation is from DefCon 15) who in 2006 did a very nice piece of security research on the SNA protocol and now has a series of publications on WebSphere MQ security.

The posting does not link the the paper that goes with the conference (that he wrote with Alex Pratt), which has much more in depth information than the presentation itself. Recommended reading!

–jeroen

via: MQSeries.net :: View topic – NOT running amqcrsta as ‘mqm’…

Posted in Development, MQ Message Queueing/Queuing, Power User, Security, WebSphere MQ | Leave a Comment »

MQCONNX 2058 (080A) (RC2058): MQRC_Q_MGR_NAME_ERROR

Posted by jpluimers on 2011/09/21

Solved a “2058 (080A) (RC2058): MQRC_Q_MGR_NAME_ERROR” error when calling MQCONNX; My bad.

I forgot that both the Queue Manager name must be passed both as the pQMgrName parameter and as the ClientConnPtr (MQCD).QMgrName of the ConnectOpts (MQCNO) parameter to MQCONNX.

–jeroen

Posted in Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | Leave a Comment »

Comparisons for EBCDIC CCSID 37, 500 and 1047

Posted by jpluimers on 2011/09/20

The referenced article explains the difference in code points between EBCDIC CCSID 37 and EBCDIC CCSID 500, and the difference in code points between EBCDIC CCSID 37 and EBCDIC CCSID 1047:
IBM CCSID Comparisons – United States.

Basically, these are the codepoints that are sensitive:

4A, 4F, 5A, 5F, AD, B0, BA, BB and BD.

–jeroen

Posted in Development, EBCDIC, Encoding, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | Leave a Comment »

Windows WebSphere MQ client DLLs

Posted by jpluimers on 2011/09/14

There are multiple DLLs you can use as MQ Client.

Most interfaces directly or indirectly use MQM.DLL, which is the interface to the local running WebSphere MQ Manager.

But sometimes your installation doesn’t contain a local WebSphere MQ Manager, and you need to connect remotely as a client.

You need one of these client DLLs, depending if you are using extended architecgture (XA) or not:

  • mqic.dll: Connect as a non-XA client
  • mqicxa.dll: Connect as a XA client

Note that depending on x86 machines, the DLLs can be called mqic32.dll and mqicxa32.dll as well.

–jeroen

via: WebSphere MQ – Defining which connection type to use.

Posted in Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | Leave a Comment »

WebSphere MQ Client 5.3 and 7.0

Posted by jpluimers on 2011/09/07

After having worked earlier with other Message Queuing systems like AS/400 Data Queues, MSMQ, Apache ActiveMQ and Oracle AQ, I recently was involved using IBM WebSphere MQ. WebSphere MQ Clients are available for free on many platforms. The project involved using WebSphere MQ Client 5.3 and will most likely upgrade to 7.0, so here are some download links that help during the process of preparing for the upgrade:

One of the reasons for being at least at V6.0, is that it allows you to specify credentials during a MQCONNX call and using MQCNO_VERSION_5 which enables the use of the SecurityParams (a demo is here) of the MQCNO structure. There is much more to diff, so hopefully more on that later.

–jeroen

Posted in Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | 5 Comments »