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 Installation/Configuration Support » MQ API Exit module field on Windows

Post new topic  Reply to topic
 MQ API Exit module field on Windows « View previous topic :: View next topic » 
Author Message
RogerLacroix
PostPosted: Wed Jan 16, 2013 2:17 pm    Post subject: MQ API Exit module field on Windows Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3264
Location: London, ON Canada

All,

Platform:
- Windows 7 64-bit (and Windows Server 2008 64-bit)
- WMQ v7.1.0.2 Server

I have a little head-scratcher that I cannot figure out. In the manual, under Configuring API Exits for "Module" it says:

Quote:
Specifies the module that contains the code for the API exit. If this field contains the full path name of the module it is used as is. If this field contains just the module name, the module is located using the same method as channel exits; that is, using the value in the Exit default path field on the Exits page of the queue manager properties dialog.

Normally, I set the Module value explicitly like: C:\Capitalware\MQA\mqa.dll where mqa.dll is a Windows 32-bit DLL.

My question is where do I store the 64-bit version of the mqa DLL?

The reason I am asking is that I have a customer that is receiving IBM.WMQ.MQException: MQRC_API_EXIT_LOAD_ERROR error message (no FDC). The developer "thinks" that they build their .NET application as a 64-bit application. Hence, the error would make sense because a 64-bit application cannot load a 32-bit DLL.

Any tips or pointers would be really helpful (other than using the Exit default path).

Regards,
Roger Lacroix
Capitalware Inc.
_________________
Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter
Back to top
View user's profile Send private message Visit poster's website
gbaddeley
PostPosted: Wed Jan 16, 2013 2:55 pm    Post subject: Reply with quote

Jedi Knight

Joined: 25 Mar 2003
Posts: 2538
Location: Melbourne, Australia

Quote:
Normally, I set the Module value explicitly like: C:\Capitalware\MQA\mqa.dll where mqa.dll is a Windows 32-bit DLL.
My question is where do I store the 64-bit version of the mqa DLL?

Hi Roger. How about giving it a different name, eg. mqa64.dll ? Or use a different directory, following the standard that MQ uses, exits, exits64, bin, bin64, lib, lib64 etc. MQ also has separate default exit paths for locating 32 and 64 bit exit modules.
_________________
Glenn
Back to top
View user's profile Send private message
RogerLacroix
PostPosted: Wed Jan 16, 2013 3:40 pm    Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3264
Location: London, ON Canada

gbaddeley wrote:
How about giving it a different name, eg. mqa64.dll ?

I don't think that would work.

gbaddeley wrote:
Or use a different directory, following the standard that MQ uses, exits, exits64, bin, bin64, lib, lib64 etc.

I was thinking of doing that. i.e. Changing the install directory to C:\Capitalware\MQA\exits\mqa.dll and C:\Capitalware\MQA\exits64\mqa.dll but the question is will MQ parse the Module value and look in the correct place.

gbaddeley wrote:
MQ also has separate default exit paths for locating 32 and 64 bit exit modules.

Yes, the Exit default path.
Code:
ExitPath:
   ExitsDefaultPath=C:\Program Files (x86)\IBM\WebSphere MQ\exits
   ExitsDefaultPath64=C:\Program Files (x86)\IBM\WebSphere MQ\exits64

I really wanted the API exits to be in my own directories.

Regards,
Roger Lacroix
Capitalware Inc.
_________________
Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter
Back to top
View user's profile Send private message Visit poster's website
mvic
PostPosted: Thu Jan 17, 2013 8:43 am    Post subject: Reply with quote

Jedi

Joined: 09 Mar 2004
Posts: 2080

RogerLacroix wrote:
I really wanted the API exits to be in my own directories.

Is this a Windows-only thing? Does the same restriction affect you on AIX etc.?
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Thu Jan 17, 2013 3:08 pm    Post subject: Reply with quote

Jedi Knight

Joined: 25 Mar 2003
Posts: 2538
Location: Melbourne, Australia

Does the API exit module need to be the same bit depth as the queue manager processes? (So it would be 64 bit in all supported environments except 32 bit Linux and 32 bit Windows) What process actually loads and calls the module?

And if used on the Client side, it needs to be the same bit depth as the application program?
_________________
Glenn
Back to top
View user's profile Send private message
RogerLacroix
PostPosted: Thu Jan 17, 2013 3:40 pm    Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3264
Location: London, ON Canada

mvic wrote:
RogerLacroix wrote:
I really wanted the API exits to be in my own directories.

Is this a Windows-only thing? Does the same restriction affect you on AIX etc.?

No. Unix and Linux have standard exits/ exits64/ directories under the MQ install directory.

gbaddeley wrote:
Does the API exit module need to be the same bit depth as the queue manager processes?

No. The API exit needs to match the application bit depth. API Exits are a little different from a channel security exit.

gbaddeley wrote:
What process actually loads and calls the module?

API Exits are loaded by the MQ process - which exact one, I do not know.

gbaddeley wrote:
And if used on the Client side, it needs to be the same bit depth as the application program?

Yes. Standard OS stuff.

Regards,
Roger Lacroix
Capitalware Inc.
_________________
Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter
Back to top
View user's profile Send private message Visit poster's website
RogerLacroix
PostPosted: Thu Jan 24, 2013 2:11 pm    Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3264
Location: London, ON Canada

All,

After talking with someone at IBM, the answer is that the 32-bit and 64-bit API Exits on Windows must be stored in the "default exit path". There is no way to override or specify your own path when using both 32-bit and 64-bit API Exits.

Regards,
Roger Lacroix
Capitalware Inc.
_________________
Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Installation/Configuration Support » MQ API Exit module field on Windows
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.