ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ API Support » PUT failing with 6101 when DLL is registered as a COM+ app.

Post new topic  Reply to topic
 PUT failing with 6101 when DLL is registered as a COM+ app. « View previous topic :: View next topic » 
Author Message
kmeeks
PostPosted: Wed Oct 09, 2002 8:43 am    Post subject: PUT failing with 6101 when DLL is registered as a COM+ app. Reply with quote

Newbie

Joined: 09 Oct 2002
Posts: 2
Location: Redondo Beach, CA

I have an ATL/COM+ DLL which works correctly when executed as a local DLL.

However a simple PUT fails with a 6101 error code when I put the DLL under a COM+ application.

I've tried linking the DLL with the following:

a) imqb23in.lib imqb23vn.lib imqs23in.lib imqs23vn.lib

b) imqb23vn.lib imqc23vn.lib

I've tried compiling with VC++ 6 and VC++ 7

I have MQSeries V5.2 installed.
_________________
http://www.intltechventures.com

Consultings, Systems Integration, and Custom Software Development

"What can we do to help?"
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
kmeeks
PostPosted: Wed Oct 09, 2002 12:11 pm    Post subject: Solution found... Reply with quote

Newbie

Joined: 09 Oct 2002
Posts: 2
Location: Redondo Beach, CA

On the off chance that someone else, somewhere, sometime, may encounter the exact set of conditions - I'm posting the solution to the problem I reported this morning...but first - a recount of some of the test results under various conditions:

****************************************************
****************************************************
****************************************************


Result with mqInterface.dll as a COM+ DLL, with mqInterfaceps.dll registered

queue.setOpenOptions( MQOO_OUTPUT | MQOO_INQUIRE |MQOO_FAIL_IF_QUIESCING);
...
...
...
PMO.setOptions(PMO.options() + MQPMO_SET_IDENTITY_CONTEXT);

Tue Oct 08 12:26:44 2002 : Writer::writeMessage() queueStatus = 0 queueMode = 1 openStatus = 1 PMO.options = 1220

Tue Oct 08 12:26:48 2002 *****ERROR*****:: ImqQueue::put ended with reason code 6101
:Reason = 6101



****************************************************
****************************************************
****************************************************

Result with mqInterface.dll as COM+ DLL without mqInterfaceps.dll registered


queue.setOpenOptions( MQOO_OUTPUT | MQOO_INQUIRE |MQOO_FAIL_IF_QUIESCING);
...
...
...
PMO.setOptions(PMO.options() + MQPMO_SET_IDENTITY_CONTEXT);


Tue Oct 08 12:30:26 2002 : Writer::writeMessage() queueStatus = 0 queueMode = 1 openStatus = 1 PMO.options = 1220

Tue Oct 08 12:26:48 2002 *****ERROR*****:: ImqQueue::put ended with reason code 6101
:Reason = 6101



****************************************************
****************************************************
****************************************************

Result with mqInterface.dll as a local DLL

queue.setOpenOptions( MQOO_OUTPUT | MQOO_INQUIRE |MQOO_FAIL_IF_QUIESCING);
...
...
...
PMO.setOptions(PMO.options() + MQPMO_SET_IDENTITY_CONTEXT);

Tue Oct 08 12:33:35 2002 : Writer::writeMessage() queueStatus = 0 queueMode = 1 openStatus = 1 PMO.options = 1220

==> (Put is successful)


****************************************************
****************************************************
****************************************************

From the IBM documentation


6101 X’17D5’ MQRC_REOPEN_INQUIRE_ERROR

An open object does not have the correct ImqObject open options and requires one or more additional options. An implicit reopen is required but closure has been prevented.

Closure has been prevented because one or more characteristics of the object need to be checked dynamically prior to closure, and the open options do not already include MQOO_INQUIRE.

This reason code occurs in the WebSphere MQ C++ environment.
Corrective action: set the open options explicitly to include MQOO_INQUIRE.


****************************************************
****************************************************
****************************************************


Result with mqInterface.dll as a COM+ DLL, with mqInterfaceps.dll registered
(note change in PMO.options value)

queue.setOpenOptions( MQOO_OUTPUT | MQOO_INQUIRE |MQOO_FAIL_IF_QUIESCING);
...
...
...
[removed previous code to set MQPMO_SET_IDENTITY_CONTEXT]

Wed Oct 09 10:29:15 2002 : Writer::writeMessage() queueStatus = 0 queueMode = 1 openStatus = 1 PMO.options = 196

==> (Put is successful)



****************************************************
****************************************************
****************************************************

Result with mqInterface.dll as a COM+ DLL, with mqInterfaceps.dll registered


queue.setOpenOptions( MQOO_OUTPUT | MQOO_INQUIRE | MQOO_SET_IDENTITY_CONTEXT | MQOO_FAIL_IF_QUIESCING);
...
...
...
PMO.setOptions(PMO.options() + MQPMO_SET_IDENTITY_CONTEXT);

Wed Oct 09 12:17:28 2002 : Writer::writeMessage() queueStatus = 0 queueMode = 1 openStatus = 1 PMO.options = 1220

==> (Put is successful)


****************************************************
****************************************************
****************************************************

CONCLUSION:

MQSeries recognition of PMO options behaves differently on the PUT call to MQSeries when executed under a local DLL versus a DLL registered as a COM+ application.

Although the MQSeries documentation indicates that setting MQOO_SET_IDENTIY_CONTEXT is required (if you wish to use the Application ID field) - it appears that it is not required when the API is invoked via a local DLL encapsulated call to MQSeries PUT.
_________________
http://www.intltechventures.com

Consultings, Systems Integration, and Custom Software Development

"What can we do to help?"
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ API Support » PUT failing with 6101 when DLL is registered as a COM+ app.
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.