IBM has just released Fix Pack 5.3.1.17 for WebSphere MQ for HP NonStop Server:
https://www.ibm.com/support/pages/node/6427757
Regards,
Roger Lacroix
Capitalware Inc.
IBM has just released Fix Pack 5.3.1.17 for WebSphere MQ for HP NonStop Server:
https://www.ibm.com/support/pages/node/6427757
Regards,
Roger Lacroix
Capitalware Inc.
Back in November 2020, IBM announced that they would be withdrawing/discontinuing IBM IoT MessageSight and IBM Watson IoT Platform Message Gateway.
The other day, IBM announced that they would be donating the source code for Watson IoT Platform Message Gateway (formerly IBM MessageSight) to Eclipse.
You can read about the new Eclipse project here: https://projects.eclipse.org/proposals/eclipse-amlen
Regards,
Roger Lacroix
Capitalware Inc.
IBM has just released Fix Pack 9.2.0.2 for IBM MQ V9.2 LTS:
https://www.ibm.com/support/pages/node/6434245
Regards,
Roger Lacroix
Capitalware Inc.
David Csakvari has a blog posting called: A categorized list of all Java and JVM features since JDK 8 to 16
If you ever wondered or needed to know what has changed between releases of Java, David Csakvari’s blog posting has an excellent list of changes.
On the flip side, if you are a new Java or Java/JMS developer and need tutorials and/or examples of the different Java libraries and how they work then check out Jenkov’s web page called: Tutorials for Software Developers and Technopreneurs. The web page has the various features of Java categorized into useful topics.
Regards,
Roger Lacroix
Capitalware Inc.
IBM has announced IBM MQ V9.2.2:
https://www.ibm.com/common/ssi/cgi-bin/ssialias?infotype=AN&subtype=CA&htmlfid=897/ENUS221-075
Highlights:
MQ 9.2.2:
– Advanced Message Queuing Protocol (AMQP) browse support
MQ Advanced 9.2.2:
– The capabilities listed in MQ 9.2.2
– New ordering options for nonproduction workloads
– An early release of “native high-availability”, which is made available for demonstration purposes for clients deploying container-based queue managers to IBM Cloud Pak for Integration using the MQ certified container
– MQ Managed File Transfer commands to start and stop resource monitors and assets to simplify deployment in containers
– MQ Advanced Message Security password protection enhancements
– RDQM HA failed resource action identification and resolution, and high availability (HA) and disaster recovery (DR) last “in sync” time information.
MQ Appliance 9.2.2 firmware:
– The capabilities in MQ 9.2.2
– HA failed resource action identification and resolution
– MQ Appliance 9.2.2 firmware available for MQ Appliance M2001 and MQ Appliance M2002
Planned availability for IBM MQ V9.2.2 is March 25, 2021 for Electronic software delivery.
IBM MQ (aka WebSphere MQ) homepage
https://www.ibm.com/products/mq
Regards,
Roger Lacroix
Capitalware Inc.
Oracle has just released Java 16.
https://blogs.oracle.com/java-platform-group/the-arrival-of-java-16
Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers, as well as in today’s demanding embedded environments. Java offers the rich user interface, performance, versatility, portability, and security that today’s applicationsrequire.
Regards,
Roger Lacroix
Capitalware Inc.
Yesterday, I wrote a blog item regarding Exporting MQ Objects into Individual Files.
I forgot that the dmpmqcfg program can output the MQ Object information as 1 line rather than spanning multiple lines.
Hence, if we let dmpmqcfg do that work then we can simplify the Rexx script to only output the various MQ objects to their own file.
Example of running dmpmqcfg against your queue manager called MQA1 such that it outputs each MQ object as 1 line:
dmpmqcfg -m MQA1 -a -o 1line > MQA1.all.mqsc
Then you run it against my REXX script called fmt_dmpmqcfg.rex:
/* Format output from dspmqcfg command to a single line for each entry. */ /* Put each MQ object type into a different file. */ /* */ /* Example dspmqcfg command: */ /* dmpmqcfg -m MQA1 -a -o 1line > MQA1.all.mqsc */ trace o Parse Arg inFN . if inFN = "" then do Say "Invalid number of parameters." Say "i.e." Say " fmt_dmpmqcfg.rex input_file_name" Exit end types = "QMGR CHANNEL LISTENER NAMELIST PROCESS QALIAS QLOCAL QMODEL QREMOTE SERVICE SUB TOPIC AUTHREC AUTHINFO CHLAUTH COMMINFO" /* open file */ Call Stream inFN,'C','OPEN READ' /* Delete previous output and then open it. */ do i=1 to Words(types) ptr = Word(types,i) outFN = inFN||"."||ptr||".mqsc" if (STREAM( outFN, 'C', 'QUERY EXIST' ) <> "") then "ERASE "outFN Call Stream outFN,'C','OPEN WRITE' counts.ptr = 0 end total = 0 do until Lines(inFN) = 0 inLine = Strip(LineIn(inFN)) /* read next line */ if (inLine = "") then NOP /* blank line, forget-about-it */ else if (SubStr(inLine,1,1) = "*") then NOP /* comment line, forget-about-it */ else do ptr = Word(inLine, 2) if (Pos("(", ptr) > 0) then ptr = SubStr(ptr, 1, Pos("(", ptr) - 1) nothing = LineOut(inFN||"."||ptr||".mqsc", inLine) /* write to the file */ counts.ptr = counts.ptr + 1 total = total + 1 end end /* close the files */ Call Stream inFN,'C','CLOSE' do i=1 to Words(types) ptr = Word(types,i) outFN = inFN||"."||ptr||".mqsc" Call Stream outFN,'C','CLOSE' Say outFN || " contains " || counts.ptr || " MQSC formatted commands." end Say "" Say "Total formatted MQSC commands was:" total Exit
To run the Rexx script, the command is:
rexx fmt_dmpmqcfg.rex MQA1.all.mqsc
The Rexx script will output:
MQA1.all.mqsc.QMGR.mqsc contains 1 MQSC formatted commands. MQA1.all.mqsc.CHANNEL.mqsc contains 43 MQSC formatted commands. MQA1.all.mqsc.LISTENER.mqsc contains 5 MQSC formatted commands. MQA1.all.mqsc.NAMELIST.mqsc contains 3 MQSC formatted commands. MQA1.all.mqsc.PROCESS.mqsc contains 2 MQSC formatted commands. MQA1.all.mqsc.QALIAS.mqsc contains 4 MQSC formatted commands. MQA1.all.mqsc.QLOCAL.mqsc contains 111 MQSC formatted commands. MQA1.all.mqsc.QMODEL.mqsc contains 7 MQSC formatted commands. MQA1.all.mqsc.QREMOTE.mqsc contains 11 MQSC formatted commands. MQA1.all.mqsc.SERVICE.mqsc contains 6 MQSC formatted commands. MQA1.all.mqsc.SUB.mqsc contains 1 MQSC formatted commands. MQA1.all.mqsc.TOPIC.mqsc contains 8 MQSC formatted commands. MQA1.all.mqsc.AUTHREC.mqsc contains 438 MQSC formatted commands. MQA1.all.mqsc.AUTHINFO.mqsc contains 4 MQSC formatted commands. MQA1.all.mqsc.CHLAUTH.mqsc contains 3 MQSC formatted commands. MQA1.all.mqsc.COMMINFO.mqsc contains 1 MQSC formatted commands. Total formatted MQSC commands was: 648
As I said yesterday, create a nightly job to run dmpmqcfg, the Rexx script and push the output to your source code repository and you will have a complete history of changes made to your queue manager.
Regards,
Roger Lacroix
Capitalware Inc.
Ok. Here’s a really weird one reported yesterday by a customer.
If you are using a MacBook Pro with an external monitor (or 2) via Display Link and you try and run a Java GUI application, it will crash because the JVM thinks that it is running on a headless computer (no graphics driver).
Therefore, if are running MQ Visual Edit or MQ Visual Browse or MQTT Message Editing Suite you may get this issue because all of these programs are GUI applications that require graphics driver.
The quick and dirty solution to the issue is to change your primary display to be the built-in display. Hence, do the following:
System Preferences –> Displays –> Arrangement –> Drag menu bar to built-in display
Note: While the menu bar on a MacBook Pro (aka macOS) appears by default on all connected displays, placement of the menu bar on a display within the system preferences determines which screen is the primary.
I’m going to continue to look for a better solution.
Regards,
Roger Lacroix
Capitalware Inc.
I posted this item on mqseries.net and I thought I should do a write up here.
Back in the early 2000s, I was a consultant at a customer site and they wanted the nightly dumps of the MQ objects (not messages), 1 line per object and then check those files into a source code repository.
I used SupportPac MS03 to dump the MQ objects but it put all objects in the same file and each object was on many lines. So, I wrote a simple Rexx script to extract each object type to: (1) flatten each object to 1 line and (2) write it their own object file.
SupportPac MS03 has been replaced with the dmpmqcfg program.
I have updated the list of object types in the Rexx script for the modern IBM MQ v9.2 (because IBM has added a lot of new objects in the last 15 years).
Example of running dmpmqcfg against your queue manager called MQA1:
dmpmqcfg -m MQA1 -a > MQA1.all.mqsc
Then you run it against my REXX script called fmt_dmpmqcfg.rex:
/* Format output from dspmqcfg command to a single line for each entry. */ /* Put each MQ object type into a different file. */ /* */ /* Example dspmqcfg command: */ /* dmpmqcfg -m MQA1 -a > MQA1.all.mqsc */ trace o Parse Arg inFN . if inFN = "" then do Say "Invalid number of parameters." Say "i.e." Say " fmt_dmpmqcfg.rex input_file_name" Exit end types = "QMGR CHANNEL LISTENER NAMELIST PROCESS QALIAS QLOCAL QMODEL QREMOTE SERVICE SUB TOPIC AUTHREC AUTHINFO CHLAUTH COMMINFO" /* open file */ Call Stream inFN,'C','OPEN READ' /* Delete previous output and then open it. */ do i=1 to Words(types) ptr = Word(types,i) outFN = inFN||"."||ptr||".mqsc" if (STREAM( outFN, 'C', 'QUERY EXIST' ) <> "") then "ERASE "outFN Call Stream outFN,'C','OPEN WRITE' counts.ptr = 0 end total = 0 mqscCmd = "" do until Lines(inFN) = 0 inLine = Strip(LineIn(inFN)) /* read next line */ if (inLine = "") then NOP /* blank line, forget-about-it */ else if (SubStr(inLine,1,1) = "*") then NOP /* comment line, forget-about-it */ else do /* Last attribute in MQSC command? */ if (Length(inLine) <> LastPos('+',inLine)) then do mqscCmd = mqscCmd || " " || inLine /* add last attribute */ ptr = Word(mqscCmd, 2) if (Pos("(", ptr) > 0) then ptr = SubStr(ptr, 1, Pos("(", ptr) - 1) nothing = LineOut(inFN||"."||ptr||".mqsc", mqscCmd) /* write to the file */ counts.ptr = counts.ptr + 1 total = total + 1 mqscCmd = "" end else do temp = Strip(SubStr(inLine,1,(LastPos('+',inLine) - 1))) /* remove '+' */ if (mqscCmd = "") then mqscCmd = temp else mqscCmd = mqscCmd || " " || temp end end end /* close the files */ Call Stream inFN,'C','CLOSE' do i=1 to Words(types) ptr = Word(types,i) outFN = inFN||"."||ptr||".mqsc" Call Stream outFN,'C','CLOSE' Say outFN || " contains " || counts.ptr || " MQSC formatted commands." end Say "" Say "Total formatted MQSC commands was:" total Exit
To run the Rexx script, the command is:
rexx fmt_dmpmqcfg.rex MQA1.all.mqsc
The Rexx script will output:
MQA1.all.mqsc.QMGR.mqsc contains 1 MQSC formatted commands. MQA1.all.mqsc.CHANNEL.mqsc contains 43 MQSC formatted commands. MQA1.all.mqsc.LISTENER.mqsc contains 5 MQSC formatted commands. MQA1.all.mqsc.NAMELIST.mqsc contains 3 MQSC formatted commands. MQA1.all.mqsc.PROCESS.mqsc contains 2 MQSC formatted commands. MQA1.all.mqsc.QALIAS.mqsc contains 4 MQSC formatted commands. MQA1.all.mqsc.QLOCAL.mqsc contains 111 MQSC formatted commands. MQA1.all.mqsc.QMODEL.mqsc contains 7 MQSC formatted commands. MQA1.all.mqsc.QREMOTE.mqsc contains 11 MQSC formatted commands. MQA1.all.mqsc.SERVICE.mqsc contains 6 MQSC formatted commands. MQA1.all.mqsc.SUB.mqsc contains 1 MQSC formatted commands. MQA1.all.mqsc.TOPIC.mqsc contains 8 MQSC formatted commands. MQA1.all.mqsc.AUTHREC.mqsc contains 438 MQSC formatted commands. MQA1.all.mqsc.AUTHINFO.mqsc contains 4 MQSC formatted commands. MQA1.all.mqsc.CHLAUTH.mqsc contains 3 MQSC formatted commands. MQA1.all.mqsc.COMMINFO.mqsc contains 1 MQSC formatted commands. Total formatted MQSC commands was: 648
If you setup a job (script/batch file) to do this nightly and then check the output files into a source code repository then you will have a complete history of changes made to your queue manager. Because the Rexx script flattens the data to 1 line per object, your source code repository will show you exactly which objects have changed.
Its a simple hack but well worth implementing.
Regards,
Roger Lacroix
Capitalware Inc.
IBM has just released Fix Pack 8.0.0.16 for IBM MQ
https://www.ibm.com/support/pages/node/6417257
Regards,
Roger Lacroix
Capitalware Inc.