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 » General IBM MQ Support » issue with messageId call

Post new topic  Reply to topic
 issue with messageId call « View previous topic :: View next topic » 
Author Message
sarath
PostPosted: Thu Sep 15, 2005 4:24 am    Post subject: issue with messageId call Reply with quote

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
View user's profile Send private message
wschutz
PostPosted: Thu Sep 15, 2005 5:49 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail AIM Address
sarath
PostPosted: Thu Sep 15, 2005 6:07 am    Post subject: Reply with quote

Novice

Joined: 10 Jun 2005
Posts: 16

Yep, I did all those things....
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Sep 15, 2005 7:06 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
sarath
PostPosted: Wed Sep 21, 2005 3:10 am    Post subject: Reply with quote

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
View user's profile Send private message
fjb_saper
PostPosted: Wed Sep 21, 2005 4:00 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
hopsala
PostPosted: Wed Sep 21, 2005 4:08 pm    Post subject: Reply with quote

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
View user's profile Send private message
sarath
PostPosted: Mon Sep 26, 2005 6:26 am    Post subject: Reply with quote

Novice

Joined: 10 Jun 2005
Posts: 16

yep...Reinstalled again and tryed. But struck at the same place.
Back to top
View user's profile Send private message
hopsala
PostPosted: Mon Sep 26, 2005 7:35 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » issue with messageId call
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.