IBM MQ client application fails on latest cygwin

Takashi Yano takashi.yano@nifty.ne.jp
Thu Apr 8 14:04:04 GMT 2021


On Thu, 8 Apr 2021 15:10:54 +0200
Morten Kjærulff wrote:
> On Thu, Apr 8, 2021 at 2:26 PM Takashi Yano wrote:
> >
> > On Thu, 8 Apr 2021 20:16:00 +0900
> > Takashi Yano wrote:
> > > On Thu, 8 Apr 2021 08:04:26 +0200
> > > Morten Kjærulff wrote:
> > > > On Wed, Apr 7, 2021 at 1:04 PM Takashi Yano wrote:
> > > > >
> > > > > On Wed, 7 Apr 2021 19:56:24 +0900
> > > > > Takashi Yano wrote:
> > > > > > On Wed, 7 Apr 2021 11:32:59 +0200
> > > > > > Morten Kjærulff wrote:
> > > > > > > On Tue, Apr 6, 2021 at 4:37 PM Takashi Yano wrote:
> > > > > > > >
> > > > > > > > On Tue, 6 Apr 2021 15:16:56 +0200
> > > > > > > > Morten Kjærulff wrote:
> > > > > > > > > When I run it from a windows command prompt, it works fine.
> > > > > > > >
> > > > > > > > In this case, did you run MQ client from cygwin shell
> > > > > > > > in command prompt? Or run it in cmd.exe?
> > > > > > >
> > > > > > > what works is:
> > > > > > > cmd.exe->bash->script->non-cygwin-mq-client.exe
> > > > > > >
> > > > > > > what fails is:
> > > > > > > cmd.exe->bash->mintty->bash->script->non-cygwin-mq-client.exe
> > > > > > >
> > > > > > > also fails:
> > > > > > > cmd.exe->bash->mintty->bash
> > > > > > > and then
> > > > > > > cmd /c bash -c 'script' # script->non-cygwin-mq-client.exe
> > > > > >
> > > > > > Thnaks for the report.
> > > > > >
> > > > > > What about:
> > > > > > mintty->cmd /c bash->non-cygwin-mq-client.exe ?
> > > > >
> > > > > Do you mean your script starting mq-client by "script" ?
> > > > > I meant /usr/bin/script by "script".
> > > > >
> > > > > > > cmd.exe->bash->script->non-cygwin-mq-client.exe
> > > > >
> > > > > If so, what about:
> > > > > cmd.exe->bash->/usr/bin/script->(your script)->non-cygwin-mq-client.exe ?
> > > > >
> > > > > --
> > > > > Takashi Yano
> > > >
> > > > Hi,
> > > >
> > > > I cooked the issue down to this.
> > > >
> > > > My script:
> > > > $ cat tmq.sh
> > > > #!/bin/sh
> > > >
> > > > export MQSERVER='BROWSE/TCP/mvs1(1414)'
> > > > amqsbcgc Q
> > > >
> > > > amqsbcgc is a sample that comes with MQ:
> > > > $ which amqsbcgc
> > > > /cygdrive/c/Program Files/IBM/WebSphere MQ/tools/c/samples/bin64/amqsbcgc
> > > >
> > > > It is a C program:
> > > > $ head /cygdrive/c/Program\ Files/IBM/WebSphere\ MQ/tools/c/Samples/amqsbcg0.c
> > > > /* @(#) MQMBID sn=p800-008-171121 su=_A5OAkM6qEeemCpCOEyy4yA
> > > > pn=samples/c/amqsbcg0.c */
> > > > /**********************************************************************/
> > > > /*                                                                    */
> > > > /* Program name: AMQSBCG0                                             */
> > > > /*                                                                    */
> > > > /* Description : Sample program to read and output the message        */
> > > > /*                 descriptor fields, any other message properties    */
> > > > /*                 and the message content of all the messages on a   */
> > > > /*                 queue                                              */
> > > > /*   <copyright                                                       */
> > > >
> > > > When I run it from a bash prompt, started with cmd.exe->bash.exe, I
> > > > see correct output (2085 means Q not found, which means that we are
> > > > connected ok):
> > > > $ ./tmq.sh
> > > >
> > > > AMQSBCG0 - starts here
> > > > **********************
> > > >
> > > >  MQOPEN - 'Q'
> > > >  MQOPEN failed with CompCode:2, Reason:2085
> > > >  MQDISC
> > > >
> > > > If I start mintty, I see:
> > > > $ ./tmq.sh
> > > >
> > > > AMQSBCG0 - starts here
> > > > **********************
> > > >
> > > >  MQCONNX failed with CompCode:2, Reason:2539
> > > >
> > > > I also see errors at the server side, which means that some sort of
> > > > connection has been made, but it seems to be garbled.
> > > >
> > > > When we are "under" mintty it does not matter how I call amqsbcgc, it
> > > > always fails, here is one example:
> > > >
> > > > $ ./tmq.sh
> > > >
> > > > AMQSBCG0 - starts here
> > > > **********************
> > > >
> > > >  MQCONNX failed with CompCode:2, Reason:2539
> > > >
> > > > $ cmd
> > > > Microsoft Windows [Version 10.0.17763.1817]
> > > > (c) 2018 Microsoft Corporation. Alle rettigheder forbeholdes.
> >
> > Ah, you are using Win10 1809. Then the pseudo console should be
> > supported.
> >
> > > > C:\mhome\mqadm>set MQSERVER=BROWSE/TCP/mvs1(1414)
> > > > set MQSERVER=BROWSE/TCP/mvs1(1414)
> > > >
> > > > C:\mhome\mqadm>amqsbcgc Q
> > > > amqsbcgc Q
> > > >
> > > > AMQSBCG0 - starts here
> > > > **********************
> > > >
> > > >  MQCONNX failed with CompCode:2, Reason:2539
> > >
> > > In the log above in cmd, input command are echoed twice.
> > > This happens when the pseudo console is not activated. Are you
> > > using Win7 or old Win10? Or do you set CYGWIN=disable_pcon by
> > > any chance?
> > >
> > > If you set CYGWIN=disable_pcon, please try unset it.
> >
> > Probably you set CYGWIN=disable_pcon in .bashrc or elsewhere.
> > Please try to unset it.
> 
> I explicitly have a
> set CYGWIN=
> in the .bat file that initially invokes bash.
> I do not set CYGWIN= elsewhere (just grep'd for it).
> 
> I change my test script to show empy CYGWIN=
> $ cat tmq.sh
> #!/bin/sh
> 
> export MQSERVER='BROWSE/TCP/mvs1(1414)'
> echo CYGWIN=$CYGWIN
> amqsbcgc Q
> 
> $ ./tmq.sh
> CYGWIN=
> 
> AMQSBCG0 - starts here
> **********************
> 
>  MQCONNX failed with CompCode:2, Reason:2539
> 
> Output of systeminfo:
> 
> 
> C:\mhome\mqadm>systeminfo
> 
> Host Name:                 DX777
> OS Name:                   Microsoft Windows 10 Enterprise
> OS Version:                10.0.17763 N/A Build 17763
> OS Manufacturer:           Microsoft Corporation
> OS Configuration:          Member Workstation
> OS Build Type:             Multiprocessor Free
> Registered Owner:          admin1
> Registered Organization:
> Product ID:                00329-00000-00003-AA588
> Original Install Date:     21-11-2019, 11:14:32
> System Boot Time:          07-04-2021, 10:40:05
> System Manufacturer:       LENOVO
> System Model:              20BX004NMD
> System Type:               x64-based PC
> Processor(s):              1 Processor(s) Installed.
>                            [01]: Intel64 Family 6 Model 61 Stepping 4
> GenuineIntel ~2195 Mhz
> BIOS Version:              LENOVO JBET71WW (1.35 ), 14-09-2018
> Windows Directory:         C:\WINDOWS
> System Directory:          C:\WINDOWS\system32
> Boot Device:               \Device\HarddiskVolume1
> System Locale:             da;Dansk
> Input Locale:              da;Dansk
> Time Zone:                 (UTC+01:00) København, Stockholm, Oslo, Madrid, Paris
> Total Physical Memory:     7.888 MB
> Available Physical Memory: 3.302 MB
> Virtual Memory: Max Size:  9.104 MB
> Virtual Memory: Available: 3.179 MB
> Virtual Memory: In Use:    5.925 MB
> Page File Location(s):     C:\pagefile.sys
> Domain:                    intern.vp.dk
> Logon Server:              \\DS300
> Hotfix(s):                 23 Hotfix(s) Installed.
>                            [01]: KB4601555
>                            [02]: KB4465065
>                            [03]: KB4470788
>                            [04]: KB4486153
>                            [05]: KB4486158
>                            [06]: KB4489907
>                            [07]: KB4523204
>                            [08]: KB4535680
>                            [09]: KB4539571
>                            [10]: KB4549947
>                            [11]: KB4558997
>                            [12]: KB4562562
>                            [13]: KB4566424
>                            [14]: KB4570332
>                            [15]: KB4577586
>                            [16]: KB4577667
>                            [17]: KB4580325
>                            [18]: KB4587735
>                            [19]: KB4589208
>                            [20]: KB4598480
>                            [21]: KB4601393
>                            [22]: KB5000859
>                            [23]: KB5000822
> Network Card(s):           4 NIC(s) Installed.
>                            [01]: Intel(R) Ethernet Connection (3) I218-V
>                                  Connection Name: Ethernet 5
>                                  Status:          Media disconnected
>                            [02]: Intel(R) Dual Band Wireless-AC 7265
>                                  Connection Name: Wi-Fi 3
>                                  DHCP Enabled:    Yes
>                                  DHCP Server:     192.168.0.1
>                                  IP address(es)
>                                  [01]: 192.168.0.24
>                                  [02]: fe80::2c6e:9e53:e28a:31f2
>                            [03]: Bluetooth Device (Personal Area Network)
>                                  Connection Name:
> Bluetooth-netværksforbindelse 3
>                                  Status:          Media disconnected
>                            [04]: PANGP Virtual Ethernet Adapter
>                                  Connection Name: Ethernet 6
>                                  DHCP Enabled:    No
>                                  IP address(es)
>                                  [01]: 10.51.10.14
> Hyper-V Requirements:      VM Monitor Mode Extensions: Yes
>                            Virtualization Enabled In Firmware: No
>                            Second Level Address Translation: Yes
>                            Data Execution Prevention Available: Yes
> 
> C:\mhome\mqadm>

Hmm, another possibility to disable pseudo console is setting
"Legacy console mode". However, since this setting also affects
in cygwin 3.1.7, this cannot explain that your case works in
cygwin 3.1.7 ...

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>


More information about the Cygwin mailing list