Author |
Message
|
HelenKryzhnyaya |
Posted: Thu Dec 11, 2014 9:17 am Post subject: Faulting module name: imqs23vn.dll |
|
|
Newbie
Joined: 11 Dec 2014 Posts: 8
|
Hello, I have a C++ application that is putting a message on a queue from a file. Code was compiled in Visual Studio 6 and works fine with any version of MQ. The latest one that we have - 7.500.300.14023. I am trying to recompile the code in Visual Studio 2013. It compiles and works as it should but in the Event Viewer I see an Error that occurred as a result of the Application execution and it says the following:
Faulting application name: repl_q2file.exe, version: 0.0.0.0, time stamp: 0x54860884
Faulting module name: imqs23vn.dll, version: 7.500.300.14023, time stamp: 0x52e165bf
Exception code: 0xc0000005
Fault offset: 0x00009fb4
Faulting process id: 0xc44
Faulting application start time: 0x01d014c89d50d676
Faulting application path: C:\Program Files (x86)\BBYApps\BBY-Repl\Programs\repl_q2file.exe
Faulting module path: C:\Program Files (x86)\IBM\WebSphere MQ\bin\imqs23vn.dll....
Even when I comment everything out in the main function, it still gives me that fault at the end. When I try to run the executable from cmd window, it gives me a window that says:
repl_q2file.exe stopped working
A problem caused the program to stop working correctly. Please close the program.
I tried a lot of different things, but the outcome is the same.
The really baffling part is why I still get the fault when all the code is commented out...? Maybe it has to do with settings on the VS 2013 project?
I would be really jumping with joy if somebody heard of similar behavior and at least point me in the right direction that will solve the problem
Thank you for your help in advance.
Helen |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Dec 11, 2014 10:19 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
|
Back to top |
|
 |
HelenKryzhnyaya |
Posted: Thu Dec 11, 2014 2:48 pm Post subject: |
|
|
Newbie
Joined: 11 Dec 2014 Posts: 8
|
Thank you very much for your response. I think I already made sure that all the ducks are in the row in terms of 32 bit inputs, but I can look one more time. Also I will try to compile an MQ sample and see if that works.
I will let you know what was the outcome Thank you! |
|
Back to top |
|
 |
HelenKryzhnyaya |
Posted: Tue Dec 16, 2014 3:06 pm Post subject: |
|
|
Newbie
Joined: 11 Dec 2014 Posts: 8
|
Hello,
Since the last time we talked I tried a lot of things, but it still faults.
I even tried to build the sample C++ project based on imqsput.cpp and it faults as well. So maybe it is the way I am setting up the project and\or using incorrect dll's??? But I followed the instructions how to create a project from the website.
This one: http://wedowebsphere.de/node/48067
or this one
http://www.ibm.com/developerworks/websphere/library/techarticles/1407_gabhane/1407_gabhane.html
I copied the include files from the computer where MQ is installed:
C:\Program Files (x86)\IBM\WebSphere MQ\tools\cplus\include
and libraries from:
C:\Program Files (x86)\IBM\WebSphere MQ\tools\Lib
to my computer where I am running VS 2013 and indicated the path to them in the project settings. While linking it is finding the correct libraries as well as header files.
Do not know what else I can try....
Any help will be a life savior
Helen. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Dec 17, 2014 5:51 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Quote: |
The article assumes that you have WebSphere MQ and Microsoft Visual Studio 2010 installed on your machine. |
So those are basically links to the same article, and consequently they both assume that you have MQ installed on the machine running Visual Studio.
HelenKryzhnyaya wrote: |
I copied the include files from the computer where MQ is installed:
C:\Program Files (x86)\IBM\WebSphere MQ\tools\cplus\include
and libraries from:
C:\Program Files (x86)\IBM\WebSphere MQ\tools\Lib |
Regardless of whether this compiles or not, you will still need the full MQ client or server installed on the machine that is actually intending to run the program.
But the above solution you mention of copying the include and lib files is not a supported method. Again, regardless of whether it works or not...
So if you're trying to run the compiled program on the machine that has VisualStudio on it, and that machine doesn't have the full MQ install (either client or server), then that explains your problem. The libraries can't link to the other resources they need to actually do something at runtime. |
|
Back to top |
|
 |
HelenKryzhnyaya |
Posted: Wed Dec 17, 2014 9:00 am Post subject: |
|
|
Newbie
Joined: 11 Dec 2014 Posts: 8
|
Thank you for the input!
Sorry if I did not make it clear the last time. I am running the compiled executable on the machine that has the full server MQ installation. The reason why I had to copy libraries and header files to the computer where I have VS 2013 installed is because I do not have MQ installation on it.
I can try and install MQ on the computer where I have VS 2013 and see if that makes a difference...
Thank you,
Helen. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Dec 17, 2014 9:01 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Yeah, again. It's not supported to compile your MQ programs on a machine that doesn't have MQ installed on it.
It can work, but since you're having trouble, it's a much better idea to move to a supported configuration and then try again. |
|
Back to top |
|
 |
HelenKryzhnyaya |
Posted: Wed Dec 17, 2014 2:20 pm Post subject: |
|
|
Newbie
Joined: 11 Dec 2014 Posts: 8
|
Hello,
When I installed MQ on my computer where I had VS 2013 installed and compiled the project that way, it worked fine
Thank you so very much for your help on this puzzle.
Helen. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Dec 18, 2014 5:38 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
|
Back to top |
|
 |
HelenKryzhnyaya |
Posted: Mon Dec 22, 2014 12:59 pm Post subject: |
|
|
Newbie
Joined: 11 Dec 2014 Posts: 8
|
Hello,
I am back again
After I with your help got rid of this fault, Miscrosoft's library started to fail at the end of the same executable. We worked it out with Microsoft: I had to install a 32 bit runtime dll (only 64 one was installed) and now that one is gone. But after I recompiled the executable, I am getting again the same fault in the IBM's library that I started with. I even compiled the amqsput example as a 32 bit (also switched to 64, but it did not help) and it does what it need to do - puts a message on a queue and at the end it faults.
I already cleaned out all the references to IBM's lib files except the installation ones on my computer where I have VS installed, I even installed the same SP=7.5.0.3 on my computer as we have on the computer that I am running the executable from and still the same result.
I looked at the version of the imqs23vn.lib file on my computer and it says that the file was created 12/19/2014 4:05p.m. and modified 11/22/2014 at 6:00 p.m. The imqs23vn.dll on the other computer where I am running the amqsput.exe from is 7.5.0.3 version and modified on 1/22/2014 6:00 p.m.
Right now I am out of ideas..
If you have some that I could try, I would be happy to do that.
Thank you again for listening.
Helen. |
|
Back to top |
|
 |
HelenKryzhnyaya |
Posted: Wed Dec 24, 2014 8:57 am Post subject: |
|
|
Newbie
Joined: 11 Dec 2014 Posts: 8
|
Merry Christmas and a Happy New Year!!!
Have some more input on this problem. As I indicated in my previous message, I compiled the imqsput.cpp(C++) file in a project, linked it with imqs23vn.lib and imqb23vn.lib and Debugged the execution on my computer where I have WMQ and VS 2013 installed. When I get to the very end of the main function: return (0); it gives me a window with a fault:
Unhandled exception at 0x4FAC9FB4 (imqs23vn.dll) in amqsput_test.exe: 0xC0000005: Access violation writing location 0x4FEE5840.
C project on the other hand works fine. Maybe because I am using mqm.Lib and not imqs23vn.Lib?
As I said before, the logic of imqsput.cpp is executed fully, I see the message on a queue, but right when it exits, it gives the fault. On the fault Window I see a link to 'Open Exception Setting' and when I click on it under Win32 Exceptions I see the following checked: An invalid handle was specified and Assertion failed. Maybe it has something to do with Microsoft's code, but why the message is saying that there was a fault in IBM's DLL?
Very interesting problem..
Anyhow, Merry Christmas! |
|
Back to top |
|
 |
HelenKryzhnyaya |
Posted: Wed Dec 24, 2014 9:25 am Post subject: |
|
|
Newbie
Joined: 11 Dec 2014 Posts: 8
|
I think I found how to handle this problem.
I noticed that if I do not specify any arguments for the amqsput_test.exe, it tells me that I need to specify them and finishes without faulting.
The difference in these 2 scenarios - the fault one uses return(0); and the non-fault one uses exit().
I changed return(0) to exit((int)0); and it worked fine.
The difference between return() and exit() is after return the objects are cleaned up and after exit() they are not.
But I would think that if I close and disconnect from the queue manager it is all already done. Maybe that is why it is giving the fault? Trying to delete what is already deleted? |
|
Back to top |
|
 |
|