|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQ API Exit module field on Windows |
« View previous topic :: View next topic » |
Author |
Message
|
RogerLacroix |
Posted: Wed Jan 16, 2013 2:17 pm Post subject: MQ API Exit module field on Windows |
|
|
 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 |
|
 |
gbaddeley |
Posted: Wed Jan 16, 2013 2:55 pm Post subject: |
|
|
 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 |
|
 |
RogerLacroix |
Posted: Wed Jan 16, 2013 3:40 pm Post subject: |
|
|
 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 |
|
 |
mvic |
Posted: Thu Jan 17, 2013 8:43 am Post subject: |
|
|
 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 |
|
 |
gbaddeley |
Posted: Thu Jan 17, 2013 3:08 pm Post subject: |
|
|
 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 |
|
 |
RogerLacroix |
Posted: Thu Jan 17, 2013 3:40 pm Post subject: |
|
|
 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 |
|
 |
RogerLacroix |
Posted: Thu Jan 24, 2013 2:11 pm Post subject: |
|
|
 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 |
|
 |
|
|
 |
|
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
|
|
|
|