|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
issue with messageId call |
« View previous topic :: View next topic » |
Author |
Message
|
sarath |
Posted: Thu Sep 15, 2005 4:24 am Post subject: issue with messageId call |
|
|
Novice
Joined: 10 Jun 2005 Posts: 16
|
Hi All,
I am upgrading my application from solaris 2.6 to solaris 2.9 and the compiler from 4.2 to forte 6.2.
Also i am upgrading the MQSeries 5.0 to MQSeries 5.3.
After doing the upgradation i am facing one issue. its processing some of the request and getting hanged always
at specific location.
The application is getting hanged at below call,
RWCString mid((char*)(msg.messageId().dataPointer()), msg.messageId().dataLength());
where msg is of type ImqMessage and this statement will copy the content of the dataPointer into the RWCString mid.
Below are the debug traces. In the setMqMd function the first thing i am doing is copying the msg into the string variable mid( After successfully reading the message from the queue). Later has to validate the message.
This msg.messageId().dataPointer() making mq calls ImqMtr::messageId, ImqBin::set...)internally and the control is not coming back. so the process was getting hanged. Same piece of code working fine with solaris 2.6 and MQSeries 5.0.
[14] realloc(0x7ad480, 0x744f8, 0xfe6f8174, 0xfecbc000, 0x0, 0xfe6f803c), at 0xfec47384
[15] t_splay(0x0, 0x5, 0xfecc283c, 0x90, 0x7ad480, 0x6a7e00), at 0xfec47b58
[16] _smalloc(0x18, 0x0, 0xfe6f7eec, 0xfecbc000, 0x0, 0x1), at 0xfec46c94
[17] lsearch(0x18, 0x1, 0x1, 0xfe6f7eec, 0x0, 0x6a7e00), at 0xfec46b74
[18] __Cimpl::emit_error(0x18, 0x18, 0x13b88, 0xff382d20, 0xff1ea08c, 0x18), at 0xff1d6528
[19] ImqBin::setDataLength(0x1, 0x18, 0xff3979b4, 0xfe6f74a4, 0x0, 0x6f1480), at 0xff3793f8
[20] ImqBin::set(0x1, 0xfe6f7eec, 0x18, 0xfe6f74a4, 0x0, 0x6f1480), at 0xff379370
[21] ImqMtr::messageId(0xfe6f7b9c, 0xfe6f7ea4, 0x1, 0xfe6f7ebc, 0x7, 0x80a9d0), at 0xff37fb2c
=>[22] QueueBase::setMqMd(this = 0x72a760, msg = CLASS, mqmd = CLASS, put = false), line 733 in "QueueBase.C"
Any Ideas how to go about this. Also any know bugs in MQ 5.3?
Thanks in Advance,
Sarath. |
|
Back to top |
|
 |
wschutz |
Posted: Thu Sep 15, 2005 5:49 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Just a thought.. did you recompile and re-link your programs with the v5.3 libraries? _________________ -wayne |
|
Back to top |
|
 |
sarath |
Posted: Thu Sep 15, 2005 6:07 am Post subject: |
|
|
Novice
Joined: 10 Jun 2005 Posts: 16
|
Yep, I did all those things.... |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Sep 15, 2005 7:06 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
RWCString mid((char*)(msg.messageId().dataPointer()), msg.messageId().dataLength());
where msg is of type ImqMessage and this statement will copy the content of the dataPointer into the RWCString mid. |
Error # 1 -- Treating the messageId which is a byte[] as a char[]
Enjoy  |
|
Back to top |
|
 |
sarath |
Posted: Wed Sep 21, 2005 3:10 am Post subject: |
|
|
Novice
Joined: 10 Jun 2005 Posts: 16
|
Thanks alot.
tryed alot further ......
here i am giving the dbx traces...
t@8 (l@ stopped in TQMgr::readFromQueue at line 1242 in file "MQObj.C"
1242 if (queue->get(*msg, *p_option))
(dbx) cont
Read from unallocated (rua) on thread 8:
Attempting to read 4 bytes at address 0xfa5b08
which is 32 bytes past end of heap block of size 48 bytes at 0xfa5ab8
This block was allocated from:
[1] operator new() at 0xf2106e24
[2] ImqStr::setStorage() at 0xfc11295c
[3] ImqStr::assign() at 0xfc1117e4
[4] MqQInfo::MqQInfo() at line 261 in "MqInfo.C"
t@8 (l@ stopped in ImqQue::get at 0xfd510fc0
0xfd510fc0: get+0x0020: ba,a 0xfd4fb3c4
Current function is TQMgr::readFromQueue
1242 if (queue->get(*msg, *p_option))
(dbx) where -l
current thread: t@8
[1] libimqc23as.so:ImqQue::get(0xf97cf0, 0xf03f735c, 0xf03f6eb8, 0xfc1287e8, 0xfc1279b4, 0xfa5b00), at 0xfd510fc0
=>[2] NMPSRequestScheduler:TQMgr::readFromQueue(this = 0xf301d8, queue = 0xf97cf0, msg = 0xf03f735c, mqrc = 2, options = (nil)), line 1242 in "MQObj.C"
basically its going into the mq library calls and control is not coming back.
i.e libimqc23as.so:ImqQue::get
Any Ideas??
Also, Just want to know is there any known bugs for MQSeries 5.3?? y because the unallocated read happening from the library call. I applied all the patches related to the compiler but still facing the issue.
Thanks |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Sep 21, 2005 4:00 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Looks like a memory problem (reading beyond the allocated stack) ....
Might be a linking error ?
Sorry out of my depth here.  |
|
Back to top |
|
 |
hopsala |
Posted: Wed Sep 21, 2005 4:08 pm Post subject: |
|
|
 Guardian
Joined: 24 Sep 2004 Posts: 960
|
I think you're delving too deep into this, and may not find your way out; such problems are usually solved by either uninstall-reinstall or applying CSDs, try it before going any further... |
|
Back to top |
|
 |
sarath |
Posted: Mon Sep 26, 2005 6:26 am Post subject: |
|
|
Novice
Joined: 10 Jun 2005 Posts: 16
|
yep...Reinstalled again and tryed. But struck at the same place. |
|
Back to top |
|
 |
hopsala |
Posted: Mon Sep 26, 2005 7:35 am Post subject: |
|
|
 Guardian
Joined: 24 Sep 2004 Posts: 960
|
Sorry to ask such a silly question, but when you say "reinstall" I hope you mean "reboot, complete uninstall, reboot, manual check that nothing remains, only then install" - coz that's what you should do...
Otherwise, my only guess is that "Read from unallocated (rua) on thread 8:" means that your giving the procedure a pointer instead of a reference or a normal variable, possibly you're giving the wrong address. |
|
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
|
|
|
|