Author |
Message
|
drummerboyuk |
Posted: Wed Feb 08, 2012 3:08 am Post subject: 2354 (0932) (RC2354): MQRC_UOW_ENLISTMENT_ERROR |
|
|
Newbie
Joined: 08 Feb 2012 Posts: 7
|
Hi,
I am getting the
2354 (0932) (RC2354): MQRC_UOW_ENLISTMENT_ERROR
error when running a COM+ (x86) (written in Delphi) on a Windows 2008 Server (64 bit) R2 server. The COM+ object has been ported from a Windows 2003 Server (32 bit) R2 server.
I am using v7.0.1.3 MQ Websphere client and the MQ Websphere server is also running on v7.
The problem appears to be happening when trying to get the message
from the queue. Does not seem to beable to read it.
-------------------------------------------------------------------------------
QueueSession := coMQSession.CreateRemote(FConfigInfo.Values[MQCOMPUTER_NAME]);
QueueManagerName := FConfigInfo.Values[MQMGR_NAME];
QueueManager := QueueSession.AccessQueueManager(QueueManagerName) as IMQQueueManager200;
Queue := QueueManager.AccessQueue(
FConfigInfo.Values[MQINBOUND_QUEUE],
MQOO_INPUT_AS_Q_DEF + MQOO_BROWSE, QueueManagerName, '', '') as IMQQueue200;
GetOptions := QueueSession.AccessGetMessageOptions as IMQGetMessageOptions200;
GetOptions.WaitInterval := StrToInt(FConfigInfo.Values[MQWAITINTERVAL]);
GetOptions.Options := MQGMO_WAIT + MQGMO_SYNCPOINT;
Queue.Get(MQMessage, GetOptions, 32000);
{$ifdef DEBUG}
TNTEventService.LogEventMessage('MQRead',
'Current queue message depth '+inttostr(Queue.CurrentDepth), EVENTLOG_INFORMATION_TYPE, 15900);
{$endif}
{$ifdef DEBUG}
TNTEventService.LogEventMessage('MQRead',
'MQMessage length '+inttostr(MQMessage.MessageLength), EVENTLOG_INFORMATION_TYPE, 15900);
{$endif}
-------------------------------------------------------------------------------
MessageLength is 0?
Queue message depth is -2? (but there is definitely a message on the queue)
and (Queue.CompletionCode = MQCC_OK) is obviously False.
I believe I have ported the COM+ objects correctly and the object timeout is set to 0.
The settings (checked) for the local DTC on the Windows 2008 server R2 (64 bit) are
Allow Remote Clients
Allow Remote Administration
Transaction Manager Communication
Allow inbound
Allow outbound
No Authentication Required
Enable XA Transactions
Enable SNA LU 6.2 Transactions
DTC logon Account
NetworkService
As a final question is it possible for me to perhaps build the COM+ objects as 64 bit components (in Delphi XE2) and get them to work? I am guessing this would this require the use of a different MQ dll?
I am pretty new to MQ Websphere so please forgive my lack of knowledge.
Any help of advice greatly appreciated (when trying to port this MQ code).
This all seems to work fine (reading from the same queues) on a Windows 2003 Server R2 (32 bit).
Thanks
Stef |
|
Back to top |
|
 |
JasonE |
Posted: Wed Feb 08, 2012 4:02 am Post subject: |
|
|
Grand Master
Joined: 03 Nov 2003 Posts: 1220 Location: Hursley
|
Try going to the mqm group and explicitly adding 'Network Service'... May or may not work (I am aware of an issue on Windows 7 around this for a different reason). |
|
Back to top |
|
 |
drummerboyuk |
Posted: Fri Feb 10, 2012 8:17 am Post subject: |
|
|
Newbie
Joined: 08 Feb 2012 Posts: 7
|
Thanks for your reply.
The error I reported initially has thankfully gone away. I rebooted the server and suddenly it started working. So I guess I can confirm as you suggested the old MQAX200.DLL does appear to work (be supported) on a Windows 2008 64 bit server (when using 32bit COM+).
However unfortunately I now appear to have an issue with the MS DTC and am getting the 'New transaction cannot enlist in the specified transaction coordinator' (when the COM+ object running on the server tries to create a transaction). Does anyone have an experience of this issue on a Windows 2008 64 server?
Thanks for your help
Stef |
|
Back to top |
|
 |
JasonE |
Posted: Mon Feb 13, 2012 4:45 am Post subject: |
|
|
Grand Master
Joined: 03 Nov 2003 Posts: 1220 Location: Hursley
|
Anything in the mq logs (qmgr or system) or the system or application event viewer? What exact error do you get, and where do you see it. I am aware of one new issue on Window7 and probably 2008R2, but there is a specific error you should see in the qmgr error logs if that's the case. |
|
Back to top |
|
 |
drummerboyuk |
Posted: Thu Feb 16, 2012 9:39 am Post subject: |
|
|
Newbie
Joined: 08 Feb 2012 Posts: 7
|
This is the error in the event viewer....
Exception New transaction cannot enlist in the specified transaction coordinator
Errors in the CM trace files.....
02-16-2012 16:42:32:566 : [ 658. 418] 0x800706d9 [ TRACE_CM] [ TRACE_ERROR] CRpcIOManagerClient::SetRpcSecurity (d:\w7rtm\com\complus\dtc\dtc\cm\src\iomgrclt.cpp@559): [Remote:SW340355 e192f87d] Call to RpcEpResolveBinding failed
02-16-2012 16:42:32:566 : [ 658. 418] 0x80000171 [ TRACE_CM] [ TRACE_ERROR] CRpcIOManagerClient::SecurePokeWrapper (d:\w7rtm\com\complus\dtc\dtc\cm\src\iomgrclt.cpp@1127): [Remote:SW340355 e192f87d] Call to SetRpcSecurity failed
02-16-2012 16:42:32:566 : [ 658. 418] 0x80000171 [ TRACE_CM] [ TRACE_ERROR] CRpcIOManagerClient::Poke (d:\w7rtm\com\complus\dtc\dtc\cm\src\iomgrclt.cpp@1004): [Remote:SW340355 e192f87d] SecurePokeWrapper call failed
02-16-2012 16:42:32:566 : [ 658. 418] 0x00000000 [ TRACE_CM] [ TRACE_INFO] CRpcIOManagerClient::Poke (d:\w7rtm\com\complus\dtc\dtc\cm\src\iomgrclt.cpp@1047): Secure Poke failed for LRPC and falling back to unsecure mode... Setting RPC security again!
02-16-2012 16:42:32:566 : [ 658. 418] 0x800706d9 [ TRACE_CM] [ TRACE_ERROR] CRpcIOManagerClient::PokeWrapper (d:\w7rtm\com\complus\dtc\dtc\cm\src\iomgrclt.cpp@1186): [Remote:SW340355 e192f87d] Exception raised in the rpc call C_PokeW
Thanks for your help
Stef |
|
Back to top |
|
 |
JasonE |
Posted: Fri Feb 17, 2012 5:20 am Post subject: |
|
|
Grand Master
Joined: 03 Nov 2003 Posts: 1220 Location: Hursley
|
Sorry, out of ideas... If it were me I'd start with MQ trace, then DTC trace, then Proc Mon to try to work out what is going on, but its tough to do this if you havent dont it before... |
|
Back to top |
|
 |
drummerboyuk |
Posted: Tue Feb 28, 2012 9:36 am Post subject: |
|
|
Newbie
Joined: 08 Feb 2012 Posts: 7
|
Eventually sorted this problem after a lot of going round in circles trying things. Issue was with the Oracle client 32bit (10g) drivers. Installed a new 32bit Oracle client driver (11g) with the appropriate options and the problem thankfully went away. So perhaps the 32 bit 10g drivers have issues (when interfacing with the MS DTC) on Windows 2008 server 64 bit? More investigation would be needed to be sure. It may have just been the version of the drivers we were trying to use. |
|
Back to top |
|
 |
JasonE |
Posted: Tue Feb 28, 2012 10:10 am Post subject: |
|
|
Grand Master
Joined: 03 Nov 2003 Posts: 1220 Location: Hursley
|
For anyone reading this (and you'll all have to wait for it to close in order to see it outside of IBM), IC81688 is the known problem I was talking about for windows 7 / 2008R2 users having DTC issues. |
|
Back to top |
|
 |
|