(Migrated) JMS WebSphere MQ error on springpython

(This message has been automatically imported from the retired mailing list)

Hello,

I am having a problem reading from WebSphere MQ and my first
troubleshooting points to a springpython problem.
I have searched for similar problems and could find similar questions but
not an answer at all.
A small python pymqi program works fine and a similar springpython program
using the same channel, queue, queue manager, host and port fails with the
same error found in Zato logs.

I appreciate any suggestions.More detailed info below:
2015-04-20 13:29:40,715 - INFO - 1990:Thread-8 -
springpython.jms.factory.WebSphereMQConnectionFactory:22 - Connecting to
queue manager [IDM], channel [SYSTEM.AUTO.SVRCONN], connection info
[10.1.0.12(1414)]
2015-04-20 13:29:40,715 - ERROR - 1990:Thread-8 -
springpython.jms.factory.WebSphereMQConnectionFactory:22 - Could not
connect to queue manager, e=[MQSCO wrong size. Given: 544, expected 568]
2015-04-20 13:29:40,716 - WARNING - 1990:Thread-8 -
zato.server.connection:22 - Caught [Traceback (most recent call last):
File
"/opt/zato/2.0.3/code/zato-server/src/zato/server/connection/init.py",
line 131, in start
self._start()
File
"/opt/zato/2.0.3/code/zato-server/src/zato/server/connection/jms_wmq/init.py",
line 31, in _start
self.factory._connect()
File
"/opt/zato/2.0.3/code/eggs/springpython-1.3.0.RC1-py2.7.egg/springpython/util.py",
line 45, in lockedfunc
return f(*args, **kwargs)
File
"/opt/zato/2.0.3/code/eggs/springpython-1.3.0.RC1-py2.7.egg/springpython/jms/factory.py",
line 218, in _connect
raise exc
WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

[]s,
Guilherme

Hello Dariusz,

The sample PyMQI is attached in this message. It get messages forever but
instead of waiting forever (CMQC.MQGMO_WAIT=0) it waits 5 seconds and read
again in loop. I got it from some pymqi sample I guess.

My current MQ version is 7.1.0.6 running on Centos 6.6, and pymqi is 1.0.3.
Zato is 2.0.3.

[zato@idm ~]$ /opt/mqm/bin/dspmqver
Name: WebSphere MQ
Version: 7.1.0.6
Level: p710-006-141112
BuildType: IKAP - (Production)
Platform: WebSphere MQ for Linux (x86-64 platform)
Mode: 64-bit
O/S: Linux 2.6.32-504.8.1.el6.x86_64
InstName: Installation1
InstDesc:
InstPath: /opt/mqm
DataPath: /var/mqm
Primary: Yes
MaxCmdLevel: 711
[zato@idm ~]$ pip show pymqi

Name: pymqi
Version: 1.3
Location: /opt/zato/2.0.3/code/lib/python2.7/site-packages
Requires:
[zato@idm ~]$

The few answers I have seen on WebSphereMQJMSException: MQSCO wrong size
point to a SSL related problem but I took care of disable SSL on this
installation and I am able to use it from pymqi without ssl.

My /opt/zato/2.0.3/code/zato_extra_paths has the symbolic links similar to
the ones listed on https://zato.io/docs/admin/guide/enabling-extra-libs.html

Thanks!
[]s,
Guilherme

On Mon, Apr 20, 2015 at 2:33 PM, Dariusz Suchojad dsuch@zato.io wrote:

On 20/04/15 19:29, Guilherme Monteiro wrote:

WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

Hi Guilherme,

what PyMQI and WMQ versions are you on?

Can you please post that sample PyMQI program which works fine?

thanks a lot,


Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and Cloud Integrations in Python

Hello Dariusz,

Everything I have did is on a single host with MQ 7.1, both server and
client packages installed.
In zato .bashrc I have added:
. /opt/mqm/bin/setmqenv -s -l
I have used “pip install --upgrade --force-reinstall pymqi” to reinstall
pymqi after applied fixes do MQ. Here is the output:

[zato@idm ~]$ pip install --upgrade --force-reinstall pymqi
Downloading/unpacking pymqi
Downloading pymqi-1.3.tar.gz (64kB): 64kB downloaded
Running setup.py (path:/tmp/pip_build_zato/pymqi/setup.py) egg_info for
package pymqi
Building PyMQI client 64bits

warning: no files found matching 'scripts/*.py'

Installing collected packages: pymqi
Found existing installation: pymqi 1.3
Uninstalling pymqi:
Successfully uninstalled pymqi
Running setup.py install for pymqi
Building PyMQI client 64bits
building ‘pymqe’ extension
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall
-Wstrict-prototypes -fPIC -DPYQMI_SERVERBUILD=0 -I/opt/mqm/inc
-I/opt/zato/2.0.3/code/include/python2.7 -c pymqe.c -o
build/temp.linux-x86_64-2.7/pymqe.o
gcc -pthread -shared build/temp.linux-x86_64-2.7/pymqe.o
-L/opt/mqm/lib64 -lmqic_r -o build/lib.linux-x86_64-2.7/pymqe.so

warning: no files found matching 'scripts/*.py'

Successfully installed pymqi
Cleaning up…
[zato@idm ~]$

Now I have uninstalled pymqi and then compiled from sources:
python setup.py build client
python setup.py install
Recreated the symbolic links on zato_extra_paths from
/opt/zato/pymqi/pymqi-1.3/build/lib.linux-x86_64-2.7/ and restarted zato.
The error persists.
Then I have tried building pymqi in server mode but the result persists.

Thanks and Best Regards,
[]s,
Guilherme

On Mon, Apr 20, 2015 at 4:40 PM, Dariusz Suchojad dsuch@zato.io wrote:

On 20/04/15 20:19, Guilherme Monteiro wrote:

My current MQ version is 7.1.0.6 running on Centos 6.6, and pymqi is
1.0.3. Zato is 2.0.3.

Hi Guilherme,

when you were installing PyMQI, are you sure you compiled it in client
mode against WebSphere MQ 7.1.0.6 headers on the host Zato is on?

That message …

MQSCO wrong size. Given: 544, expected 568

… it’s raised because there is a mismatch between the size of the SCO
structure PyMQI was compiled with and the size of the SCO structure
PyMQI is linked to (in C terms).

The size of that structure is obtained by calling sizeof(MQSCO) in C
when PyMQI is compiled.

That size will vary between MQ releases and in general, it will only
increase because new fields are added to each MQ structure with each
release.

So when you compiled PyMQI against a version which expected MQSCO to
have the size of 568 bytes and in run-time PyMQI provide only 544 bytes,
my guess is that what happened was:

  • You compiled PyMQI against MQ 7.5 on a different host
  • You transferred PyMQI to the system Zato is on and that OS has MQ 7.1
    installed

Or perhaps:

  • You compiled PyMQI with 7.1
  • But in run-time your MQ version is 6.x (or 7.0)

Can you confirm everything, right from the moment you compile PyMQI up
to your invoking a Zato service that everything is on the same MQ version?

thanks,


Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and Cloud Integrations in Python

On 20/04/15 19:29, Guilherme Monteiro wrote:

WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

Hi Guilherme,

what PyMQI and WMQ versions are you on?

Can you please post that sample PyMQI program which works fine?

thanks a lot,

On 20/04/15 20:19, Guilherme Monteiro wrote:

My current MQ version is 7.1.0.6 running on Centos 6.6, and pymqi is
1.0.3. Zato is 2.0.3.

Hi Guilherme,

when you were installing PyMQI, are you sure you compiled it in client
mode against WebSphere MQ 7.1.0.6 headers on the host Zato is on?

That message …

MQSCO wrong size. Given: 544, expected 568

… it’s raised because there is a mismatch between the size of the SCO
structure PyMQI was compiled with and the size of the SCO structure
PyMQI is linked to (in C terms).

The size of that structure is obtained by calling sizeof(MQSCO) in C
when PyMQI is compiled.

That size will vary between MQ releases and in general, it will only
increase because new fields are added to each MQ structure with each
release.

So when you compiled PyMQI against a version which expected MQSCO to
have the size of 568 bytes and in run-time PyMQI provide only 544 bytes,
my guess is that what happened was:

  • You compiled PyMQI against MQ 7.5 on a different host
  • You transferred PyMQI to the system Zato is on and that OS has MQ 7.1
    installed

Or perhaps:

  • You compiled PyMQI with 7.1
  • But in run-time your MQ version is 6.x (or 7.0)

Can you confirm everything, right from the moment you compile PyMQI up
to your invoking a Zato service that everything is on the same MQ version?

thanks,

On 20/04/15 22:55, Guilherme Monteiro wrote:

In zato .bashrc I have added:
. /opt/mqm/bin/setmqenv -s -l

Hi Guilherme,

I’ve never used setmqenv - does it do anything above setting up
LD_LIBRARY_PATH (-s -l)?

Can you try the following service with and without setmqenv?

thanks,

Hello Dariusz,

I have tried the service and it worked fine with both situations. I have
first tried it with .bashrc calling setmqenv, and then commented out the
line and restarted zato from the init.d script.
As I have seen, these are the environment variables changed by setmqenv -s
-l:
CLASSPATH=/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/wmqjava/samples:/opt/mqm/samp/jms/samples
LD_LIBRARY_PATH=/opt/mqm/lib64/compat:/opt/mqm/lib/compat
MANPATH=/opt/mqm/man:/usr/share/man
MQ_DATA_PATH=/var/mqm
MQ_INSTALLATION_PATH=/opt/mqm
MQ_JAVA_DATA_PATH=/var/mqm
MQ_JAVA_INSTALL_PATH=/opt/mqm/java
MQ_JAVA_LIB_PATH=/opt/mqm/java/lib64
MQ_JRE_PATH=/opt/mqm/java/jre64/jre
PATH=/opt/mqm/bin:/opt/zato/2.0.3/code/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/opt/zato/bin

The script description is:


@(#) cmd/tools/setmqenv/setmqenv.sh, lqm, p710, p710-006-141112 1.20.1.6

12/03/27 16:22:53


File Description :

This script is used to set the environment for WebSphere MQ. The arguments

specified are passed directly to crtmqenv whose usage is as follows. At

least one of -m, -n, -p, -r or -s must be specified. Use -s to set up the

environment for the installation that this script comes from.

crtmqenv usage:

-m name : Set up the environment for the specified queue

manager

-n name : Set up the environment for the specified installation

-p name : Set up the environment for the installation with the

specified path

-r : Remove WebSphere MQ from the environment

-s : Set up the environment for the installation that this

script comes from

-l : Set up the library path, appending to the current

value

-k : Set up the library path at the start of the current

value

-x 32|64 : Set up either a 32 or 64-bit environment


Thanks and Best Regards,
Guilherme

On Tue, Apr 21, 2015 at 8:05 AM, Dariusz Suchojad dsuch@zato.io wrote:

On 20/04/15 22:55, Guilherme Monteiro wrote:

In zato .bashrc I have added:
. /opt/mqm/bin/setmqenv -s -l

Hi Guilherme,

I’ve never used setmqenv - does it do anything above setting up
LD_LIBRARY_PATH (-s -l)?

Can you try the following service with and without setmqenv?

https://gist.github.com/dsuch/4e8d3f46f6671a52e9fb

thanks,


Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and Cloud Integrations in Python

Hello,

A quick update on the tests I have did so far. I have removed manually
compiled pymqi and cleaned every pymqi file I could find. Without setmqenv
I have installed pymqi again with “pip install” and I have not created the
symbolic links on zato_extra_path, so now I only have:
/opt/zato/2.0.3/code/lib/python2.7/site-packages/pymqi-1.3-py2.7.egg-info
/opt/zato/2.0.3/code/lib/python2.7/site-packages/pymqi.pyc
/opt/zato/2.0.3/code/lib/python2.7/site-packages/pymqi.py

I am still able to run the service that put messages, and the channel still
fails with “WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected
568”.

I guess I don’t need to setup links on zato_extra_path because pymqi is
installed into zato own python distribution, am I right?

What is the /opt/zato/2.0.3/code/patches/pymqi.py.patch file and how is it
used?

Thanks and Best Regards,
Guilherme

On Wed, Apr 22, 2015 at 1:42 PM, Guilherme Monteiro <
guilherme.monteiro@gmail.com> wrote:

Hello Dariusz,

I have tried the service and it worked fine with both situations. I have
first tried it with .bashrc calling setmqenv, and then commented out the
line and restarted zato from the init.d script.
As I have seen, these are the environment variables changed by setmqenv -s
-l:

CLASSPATH=/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/wmqjava/samples:/opt/mqm/samp/jms/samples
LD_LIBRARY_PATH=/opt/mqm/lib64/compat:/opt/mqm/lib/compat
MANPATH=/opt/mqm/man:/usr/share/man
MQ_DATA_PATH=/var/mqm
MQ_INSTALLATION_PATH=/opt/mqm
MQ_JAVA_DATA_PATH=/var/mqm
MQ_JAVA_INSTALL_PATH=/opt/mqm/java
MQ_JAVA_LIB_PATH=/opt/mqm/java/lib64
MQ_JRE_PATH=/opt/mqm/java/jre64/jre

PATH=/opt/mqm/bin:/opt/zato/2.0.3/code/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/opt/zato/bin

The script description is:


@(#) cmd/tools/setmqenv/setmqenv.sh, lqm, p710, p710-006-141112 1.20.1.6

12/03/27 16:22:53


File Description :

This script is used to set the environment for WebSphere MQ. The

arguments

specified are passed directly to crtmqenv whose usage is as follows. At

least one of -m, -n, -p, -r or -s must be specified. Use -s to set up the

environment for the installation that this script comes from.

crtmqenv usage:

-m name : Set up the environment for the specified queue

manager

-n name : Set up the environment for the specified

installation

-p name : Set up the environment for the installation with the

specified path

-r : Remove WebSphere MQ from the environment

-s : Set up the environment for the installation that

this

script comes from

-l : Set up the library path, appending to the current

value

-k : Set up the library path at the start of the current

value

-x 32|64 : Set up either a 32 or 64-bit environment


Thanks and Best Regards,
Guilherme

On Tue, Apr 21, 2015 at 8:05 AM, Dariusz Suchojad dsuch@zato.io wrote:

On 20/04/15 22:55, Guilherme Monteiro wrote:

In zato .bashrc I have added:
. /opt/mqm/bin/setmqenv -s -l

Hi Guilherme,

I’ve never used setmqenv - does it do anything above setting up
LD_LIBRARY_PATH (-s -l)?

Can you try the following service with and without setmqenv?

https://gist.github.com/dsuch/4e8d3f46f6671a52e9fb

thanks,


Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and Cloud Integrations in Python

Hello Dariusz!

Everything is 64-bits:
[root@idm ~]# uname -m
x86_64
[root@idm ~]# file /opt/mqm/bin/runmqsc
/opt/mqm/bin/runmqsc: setuid setgid ELF 64-bit LSB executable, x86-64,
version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux
2.6.4, not stripped
[root@idm ~]# file /opt/zato/2.0.3/code/bin/python2.7
/opt/zato/2.0.3/code/bin/python2.7: ELF 64-bit LSB executable, x86-64,
version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux
2.6.18, stripped

I have removed pymqi both from distro python and zato, set the
LD_LIBRARY_PATH on .bashrc exactly as pointed in the URL you have sent me,
restarted user session, install pymqi and started zato. The errors persists.

I have double checked pymqe.so and it is 64-bits and it points to 64-bits
libraries:
[root@idm ~]# ldd /opt/zato/2.0.3/code/lib/python2.7/site-packages/pymqe.so
linux-vdso.so.1 => (0x00007fffa982e000)
libmqic_r.so => /usr/lib64/libmqic_r.so (0x00007f048f6cf000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f048f4b2000)
libc.so.6 => /lib64/libc.so.6 (0x00007f048f11d000)
libmqe_r.so => /opt/mqm/lib64/libmqe_r.so (0x00007f048e780000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f048e57b000)
/lib64/ld-linux-x86-64.so.2 (0x0000003b5e400000)
libm.so.6 => /lib64/libm.so.6 (0x00007f048e2f7000)
librt.so.1 => /lib64/librt.so.1 (0x00007f048e0ee000)

The reinstallation session of pymqi is attached.

Thanks and Best Regards,
Guilherme

On Wed, Apr 22, 2015 at 4:22 PM, Dariusz Suchojad dsuch@zato.io wrote:

On 22/04/15 18:42, Guilherme Monteiro wrote:

I have tried the service and it worked fine with both situations. I have
first tried it with .bashrc calling setmqenv, and then commented out the
line and restarted zato from the init.d script.

Thanks a lot - I will need to set up an MQ 7.1 environment locally and
check it out. Can you please confirm you are on 64 bits everywhere - MQ,
OS and Zato?

I’m asking to be 100% sure because in this exception …

WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

… the difference is 24 bytes.

Now over here in MQSCO’s C definition …

http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.1.0/com.ibm.mq.doc/fr15260_.htm?lang=en

… we can find 6 MQLONG types and, perhaps coincidentally, 6 * 4
additional bytes each MQLONG = 24 bytes, the very difference above.

So maybe there is some mismatch between 32-bit and 64-bit somewhere, I’m
not sure yet. Maybe that difference in sizes of MQLONG members doesn’t
mean much…

But before I start, can you try out one thing more?

In zato user’s environment variables, can you please set the
LD_LIBRARY_PATH as listed here instead of what mqsetenv was doing?

https://zato.io/docs/admin/guide/enabling-extra-libs.html#pymqi-and-websphere-mq

(Please remember to refresh the user’s environment, I know you know it
but let’s not forget about it, thanks :-))


Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and Cloud Integrations in Python

On 22/04/15 18:42, Guilherme Monteiro wrote:

I have tried the service and it worked fine with both situations. I have
first tried it with .bashrc calling setmqenv, and then commented out the
line and restarted zato from the init.d script.

Thanks a lot - I will need to set up an MQ 7.1 environment locally and
check it out. Can you please confirm you are on 64 bits everywhere - MQ,
OS and Zato?

I’m asking to be 100% sure because in this exception …

WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

… the difference is 24 bytes.

Now over here in MQSCO’s C definition …

http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.1.0/com.ibm.mq.doc/fr15260_.htm?lang=en

… we can find 6 MQLONG types and, perhaps coincidentally, 6 * 4
additional bytes each MQLONG = 24 bytes, the very difference above.

So maybe there is some mismatch between 32-bit and 64-bit somewhere, I’m
not sure yet. Maybe that difference in sizes of MQLONG members doesn’t
mean much…

But before I start, can you try out one thing more?

In zato user’s environment variables, can you please set the
LD_LIBRARY_PATH as listed here instead of what mqsetenv was doing?

https://zato.io/docs/admin/guide/enabling-extra-libs.html#pymqi-and-websphere-mq

(Please remember to refresh the user’s environment, I know you know it
but let’s not forget about it, thanks :-))

On 23/04/15 00:32, Guilherme Monteiro wrote:

Everything is 64-bits:

Thanks again, Guilherme, I really appreciate your confirming everything.

I need to set it all up locally and dig into it a bit deeper - I’ll be
in touch.

Hello Dariusz,

Thanks a lot! This is what I got from server1 server.log:
2015-04-23 21:15:54,127 - INFO - 6429:Dummy-109 - testeg.my-service:22 -
TESTEG - Got message from MQ: NOW IT WORKS!

What I don’t understand is that on server2 I am still getting errors:
WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568
] error, will try to (re-)connect to [queue manager=[IDM],
channel=[SYSTEM.AUTO.SVRCONN], conn_name=[10.1.0.12(1414)] (TESTEG)] in 5
seconds, 12 attempt(s) so far, time spent 0:00:55.067615
2015-04-23 21:31:03,552 - ERROR - 1990:Thread-13 -
springpython.jms.factory.WebSphereMQConnectionFactory:22 - Could not
connect to queue manager, e=[MQSCO wrong size. Given: 544, expected 568]
2015-04-23 21:31:03,552 - WARNING - 1990:Thread-13 -
zato.server.connection:22 - Caught [Traceback (most recent call last):
File
"/opt/zato/2.0.3/code/zato-server/src/zato/server/connection/init.py",
line 131, in start
self._start()
File
"/opt/zato/2.0.3/code/zato-server/src/zato/server/connection/jms_wmq/init.py",
line 31, in _start
self.factory._connect()
File
"/opt/zato/2.0.3/code/eggs/springpython-1.3.0.RC1-py2.7.egg/springpython/util.py",
line 45, in lockedfunc
return f(*args, **kwargs)
File
"/opt/zato/2.0.3/code/eggs/springpython-1.3.0.RC1-py2.7.egg/springpython/jms/factory.py",
line 218, in _connect
raise exc
WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568
] error, will try to (re-)connect to [queue manager=[IDM],
channel=[SYSTEM.AUTO.SVRCONN], conn_name=[10.1.0.12(1414)] (TESTEG)] in 5
seconds, 12 attempt(s) so far, time spent 0:00:55.066700

Could it be cached somewhere? I have uninstalled pymqi (pip uninstall
pymqi) and reinstalled later.
Btw on .bashrc I am using:
. /opt/mqm/bin/setmqenv -r
export LD_LIBRARY_PATH=/opt/mqm/lib64/
The setmqenv -r removes all MQ environment it know about, so I am sure only
the /opt/mqm/lib64/ is added to LD_LIBRARY_PATH.

Thanks and Best Regards,
Guilherme

On Thu, Apr 23, 2015 at 5:09 PM, Dariusz Suchojad dsuch@zato.io wrote:

On 20/04/15 19:29, Guilherme Monteiro wrote:

WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

Hi Guilherme,

it turned out to have been caused by PyMQI’s not being able to handle
MQSCO structures used in MQ 7.0+.

In particular, several new fields were missing in its MQSCO definition.

PyMQI 1.4 has just been released and if you install it into your Zato
environment, the channels will start.

It was not obvious initially because PyMQI doesn’t use MQSCO by default
whereas Spring Python does use an empty one.

If the structure was not used at all its length was not checked but if
an empty one was in use its size was to be equal to what MQ was expecting.

So outwardly it looked as though PyMQI was doing fine with Spring
Python’s not coping with the situation but actually it was the other way
around.

Also, your question uncovered the fact that outgoing JMS WebSphere MQ
connections could not be started. This is unrelated to PyMQI and will be
addressed in Zato 2.0.4, within a few weeks.

thank you,


Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and Cloud Integrations in Python

On 20/04/15 19:29, Guilherme Monteiro wrote:

WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

Hi Guilherme,

it turned out to have been caused by PyMQI’s not being able to handle
MQSCO structures used in MQ 7.0+.

In particular, several new fields were missing in its MQSCO definition.

PyMQI 1.4 has just been released and if you install it into your Zato
environment, the channels will start.

It was not obvious initially because PyMQI doesn’t use MQSCO by default
whereas Spring Python does use an empty one.

If the structure was not used at all its length was not checked but if
an empty one was in use its size was to be equal to what MQ was expecting.

So outwardly it looked as though PyMQI was doing fine with Spring
Python’s not coping with the situation but actually it was the other way
around.

Also, your question uncovered the fact that outgoing JMS WebSphere MQ
connections could not be started. This is unrelated to PyMQI and will be
addressed in Zato 2.0.4, within a few weeks.

thank you,

On 24/04/15 02:44, Guilherme Monteiro wrote:

I have uninstalled pymqi (pip uninstall pymqi) and reinstalled later.

Aha, and you’re sure it’s 1.4 now?

$ ./bin/py

import pymqi; pymqi.version
’1.4’

On 24/04/15 02:44, Guilherme Monteiro wrote:

WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

Hi again,

I created a quickstart 2.0.3 environment from scratch and cannot
reproduce it with PyMQI 1.4.

Only one server starts a connector to MQ and it receives JMS messages fine.

Hello,

[zato@idm code]$ ./bin/py

import pymqi
pymqi.version
’1.4’

A second environment is working perfectly, and fortunately this is the one
I need. :slight_smile:
This one I have tried so many things that I probably forgot something.
For now am I ok with that. Thanks a lot for all your support.

Thanks and Best Regards,
Guilherme

On Fri, Apr 24, 2015 at 6:30 AM, Dariusz Suchojad dsuch@zato.io wrote:

On 24/04/15 02:44, Guilherme Monteiro wrote:

WebSphereMQJMSException: MQSCO wrong size. Given: 544, expected 568

Hi again,

I created a quickstart 2.0.3 environment from scratch and cannot
reproduce it with PyMQI 1.4.

Only one server starts a connector to MQ and it receives JMS messages fine.


Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and Cloud Integrations in Python