Posted: Thu Jun 26, 2008 1:27 pm Post subject: Concurrent Client and Server connections
Newbie
Joined: 26 Jun 2008 Posts: 2
The environments on which my application will run vary significantly
* Sometimes only having access to the MQ Client
* Sometimes only to the MQ Server (including both clustered/non-clustered queue managers)
* Sometimes needing access to both client connections (e.g. to a remote hub not associated with any local queue manager) and server connections
So it is not enough to build two DLLs (one for Client and one for Server). I must be able to create either (and both) kinds of connections on the fly - depending on the environment and/or application needs.
My personal development environment is Visual Studio 2008 (on Windows Server 2003 SP2) with MQ 6.0 Server installed locally. However, some downstream developers may only have access to the MQ 6.0 Client on XP or Windows 2003. Obviously developers with only access to a client connection will not be able to exercise server functionality (e.g. distributed XA durable transaction support) until such time they move their code to an appropriate environment.
I thought to have my C++ DLL load both client and server C++ DLLs (imqc23vn.dll and imqs23vn.dll). However, the documentation seems only to address linking to either (but not both) DLL(s). I was considering attempting to delay load the DLLs and try to fix up the symbols. Is this possible? If so, where would I find suitable guidance for the task?
An alternative approach to dynamically loading the two IBM C++ DLLs (i.e. imqc23vn.dll imqs23vn.dll) - and trying to fix up the symbols - would be to independently ‘wrap’ them in separate DLLs (e.g. raymqc32vn.dll and raymqs32vn.dll) that I could dynamically load (perhaps referencing a raymqcommon.dll containing enumerations, constants, etc.). Does anyone see any issues with this approach? That is, is there some intrinsic structure of the IBM DLLs that keeps them from correctly operating in the same process (if linked to and loaded by two separate DLLs)?
Are the IBM MQ.NET wrappers doing something similar to this?
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