|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MTS & MQSeries ? Weired |
« View previous topic :: View next topic » |
Author |
Message
|
chinlean |
Posted: Sat Mar 16, 2002 7:30 pm Post subject: |
|
|
Newbie
Joined: 15 Mar 2002 Posts: 4
|
I've encapsulate the send method in a MTS component with this :
HRESULT send(BSTR queue,BSTR body)
At the implementation of the method, I just use normal procedure
a) Connect to queue manager
b) open queue
c) write message
d) close queue
e) disconnect queue manager
When I call this component’s method from another MTS component(let say a component doing DB update and then call this method to send out a message to MQSeries)
It’s work fine if I call the method once. But failed when I make the second call. When I debug, I found that in second call, the mqmanager.connect() failed with reason code MQRC_UNEXPECTED_ERROR(2195) .
Here is some info of my environment.
1) MQSeries 5.2 Server CSD02 for Windows 2000
2) I use C++ early binding.
Besides, I encounter a lot of weird thing when integrate MQSeries with MTS for example
1) when mixture usage of transactional and non transactional mode under MTS, MQSeries complaint with MQRC_UNEXPECTED_ERROR(2195).
2) When I ungrade MQSeries server to CSD03. It cause DTC crash…
It’s seems like MQSeries is integrating not very well with MTS or I use the MQSeries wrongly. Also the documentation and code sample is very limited for MQSeries MTS support…Do you know where to find extra information?
[ This Message was edited by: chinlean on 2002-03-19 01:42 ] |
|
Back to top |
|
 |
chinlean |
Posted: Tue Mar 19, 2002 2:08 am Post subject: |
|
|
Newbie
Joined: 15 Mar 2002 Posts: 4
|
After i wrote some program to test the MTS behavior of MQSeries including step thru every single step of the code in debug mode , thease are the summary I can make.
1) The transaction begin when you connect to queue manager, NOT when you issue a syncpoint call( put/get). I notice that when I step over ImqqueueManager.connect(), the Transaction List under Component Services begin to appear.
2)You CANNOT disconect a queue manager in a MTS object. If you do, when another MTS object under the SAME transaction issue ImqqueueManager.connect(), it will return MQRC_UNEXPECTED_ERROR(2195) immediately. MQSeries expect you won't disconnect queue manager from within sub objects and can only disconnect from within root object. This already break ACID rule of transactional programing whereas a MTS object should independent with another object or they can operate seperately.
thanks
|
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|