Hi, Now am able to get the message in the argument of the basic program. I have used *STORE_VBS(Message,buff); *as when i looked into jsystem.h STORE_BBS is defined as STORE_VBS. Thanks again.
Bensly On Fri, May 20, 2011 at 1:56 AM, pat <[email protected]> wrote: > Replace : > > *(char *)Message = &buff; **//Added Code part* > > with : > > STORE_BBS(Message,buff); > > [ or 'STORE_BBS(Message,&buff);' as appropriate ] > > Pat. > > On May 19, 6:10 am, "Bensly Trying Harder:-(" <[email protected]> > wrote: > > Hi Jim, > > > > Thanks for your help.:-) I made the following changes and the code works > > better. > > > > MQS_API INT32 MQGet (DP_MPTR INT32 QMgr, INT32 QNum, INT32 MsgMax, > > INT32 WaitPeriod, VAR * Message) > > > > ... > > > > *MQBYTE buff[MsgMax]; //Added Code part* > > > > *// STRING_RESIZE_VBI(Message, MsgMax); Commented* > > > > ... > > > > MQGET(QManagers[QMgr].QMHeader.HQMcon , > > > > QManagers[QMgr].Queues[QNum].QHandle , > > > > &MDescriptor > , > > > > &GetOptions > , > > > > MsgMax > > , > > > > * buff > > ,* > > > > (PMQLONG)&MsgLen > , > > > > &QManagers[QMgr].Queues[QNum].CompletionCode , > > > > &QManagers[QMgr].Queues[QNum].ReasonCode > > > > ); > > > > SetMQFail(DP_MPRM 0); > > > > *buff[MsgLen] = '\0'; **//Added Code part* > > > > *(char *)Message = &buff; **//Added Code part* > > > > *// STRING_RESIZE_VBI(Message, MsgLen); Commented* > > > > return MsgLen; > > > > Now am able to get the message in *Var MESSAGE *without facing any trap > > errors*. *Now am having problem in getting the message value in the BASIC > > program that called this function. What i have is a Basic program that > calls > > this function with the functions argument. And am expecting to get the > value > > of Message from the argument passed. Is there any more coding that needs > to > > be done? Thanks in advance for the help. > > > > Bensly > > > > > > > > > > > > > > > > On Wed, May 18, 2011 at 9:18 PM, Jim Idle <[email protected]> > wrote: > > > So you are overwritng memory that you have not allocated or not > allocated > > > at the correct size or are using an incorrect pointer, which is what I > said > > > originally. You are doing an MQGET and passing the address of the VAR > struct > > > and not its pointer to the string buffer for a start. > > > > > Jim > > > > > *From:* [email protected] [mailto:[email protected]] *On > Behalf > > > Of *Bensly Trying Harder:-( > > > *Sent:* Tuesday, May 17, 2011 9:39 PM > > > > > *To:* [email protected] > > > *Subject:* Re: T24: Error Trap 2 faced while STRING_RESIZE_VBI is > > > executed. > > > > > Hi Pat > > > > > If the problem is with the 'Message VAR' not having been initialized, > the > > > TRAP error 2 should have been thrown the first time i use * > > > STRING_RESIZE_VBI* right? I have analysed further and found that the > > > problem may not be with STRING_RESIZE_VBI. Am facing the error after > the MQ > > > function MQGET has been called. I face the same error if i am using > some > > > other JBASE functions apart from *STRING_RESIZE_VBI* like > *STORE_VBS(Message (STRING > > > *)"")* also. > > > > > The following is the part of code in the C function. > > > > > MQS_API INT32 MQGet (DP_MPTR INT32 QMgr, INT32 QNum, INT32 > MsgMax, > > > INT32 WaitPeriod, VAR * Message) > > > > > ... > > > > > STRING_RESIZE_VBI(Message, MsgMax); > > > > > ... > > > > > MQGET(QManagers[QMgr].QMHeader.HQMcon , > > > > > QManagers[QMgr].Queues[QNum].QHandle , > > > > > &MDescriptor > , > > > > > &GetOptions > > > , > > > > > MsgMax > > > , > > > > > Message > > > , > > > > > (PMQLONG)&MsgLen > , > > > > > &QManagers[QMgr].Queues[QNum].CompletionCode , > > > > > &QManagers[QMgr].Queues[QNum].ReasonCode > > > > > ); > > > > > SetMQFail(DP_MPRM 0); > > > > > *STRING_RESIZE_VBI(Message, MsgLen);* > > > > > return MsgLen; > > > > > In the above code part '...' signifies coding have been done related to > > > MQGET, but not of VAR Message. > > > > > Bensly > > > > > On Wed, May 18, 2011 at 6:22 AM, pat <[email protected]> wrote: > > > > > My guess is the the 'Message VAR' has not been initialised, or has > > > been 'overwritten', prior to 'RESIZING' > > > > > The 'Fatal error at trap location 2' occurs when attempting to > > > ( incorrectly ) 'manipulate' a 'File VARiable' > > > > > Can you post the C code for the function in which you are using the > > > 'STRING_RESIZE_VBI(Message, MsgMax);' ? > > > > > Pat. > > > > > On May 12, 6:49 am, Bensly <[email protected]> wrote: > > > > T24 Error faced: > > > > > > JDIAG OUTPUT: > > > > jdiag - jBASE diagnostic '$Revision: 1.15 $' > > > > > > System Information > > > > ================== > > > > > > System : AIX che-aix3 1.6 00CEB51C4C00 > > > > OS Release : 6.1.0.0 > > > > UNIX User : jdavidar (uid 205, euid 205) > > > > Tty name : /dev/pts/15 > > > > Time : Wed May 12 11:04:35 2010 > > > > > > Environment > > > > =========== > > > > > > JBCPORTNO : Not Set > > > > JBCRELEASEDIR : '/opt/jbc503' > > > > JBCGLOBALDIR : '/opt/jbc503' > > > > JEDIFILENAME_SYSTEM : '/opt/jbc503/src/SYSTEM' > > > > SYSTEM File is (DICT) : '/opt/jbc503/src/SYSTEM]D' > > > > RELEASE Information : Major 5.0 , Minor 3 , Patch 0081 > (Change > > > > 49612) > > > > Spooler dir (JBCSPOOLERDIR) : '/opt/jbc503/jspooler' > > > > JBCEMULATE : 'prime' > > > > Object path (JBCOBJECTLIST) : '/usr/mqm/lib64:/env/sem/bnk/bnk.run/ > > > > globuspatchlib:/env/sem/bnk/bnk.run/lib:/env/sem/bnk/bnk.run/ > > > > globuslib:/env/sem/bnk/bnk.run/lib:/env/sem/bnk/bnk.run/vinlib:/env/ > > > > sem/bnk/bnk.run/semlib' > > > > jBASE Compiler Run-time : '/opt/jbc503/config/system.properties' > > > > Program dir (JBCDEV_BIN) : '/env/sem/bnk/bnk.run/sembin' > > > > Subroutine dir (JBCDEV_LIB) : '/env/sem/bnk/bnk.run/semlib' > > > > Max open files : 65534 > > > > > > I have the following code part in a C code and have created shared > > > > libraries for this code and calling this C from a basic routine. The > > > > code is to get message from a MQ Server. > > > > > > STRING_RESIZE_VBI(Message, MsgMax); // > > > > Allocate memory to the maximum size defined. have MsgMax as 1000. > > > > > > The above line will be called multiple times as the "MsgMax" varies > > > > each time. The first time the code part gets executed it was > > > > successful but the next time it is called the following error is > > > > thrown. > > > > > > ** Error [ FATAL ] ** > > > > Fatal error at trap location 2 > > > > > > Also the value in the variable "Message" is lost. Does anyone know > how > > > > to overcome the above error. > > > > > > Any help will be appreciated and thanks in advance. > > > > > -- > > > > > Please read the posting guidelines at: > > >http://groups.google.com/group/jBASE/web/Posting%20Guidelines > > > > > IMPORTANT: Type T24: at the start of the subject line for questions > > > specific to Globus/T24 > > > > > To post, send email to [email protected] > > > To unsubscribe, send email to [email protected] > > > For more options, visit this group at > > >http://groups.google.com/group/jBASE?hl=en > > > > > -- > > > Please read the posting guidelines at: > > >http://groups.google.com/group/jBASE/web/Posting%20Guidelines > > > > > IMPORTANT: Type T24: at the start of the subject line for questions > > > specific to Globus/T24 > > > > > To post, send email to [email protected] > > > To unsubscribe, send email to [email protected] > > > For more options, visit this group at > > >http://groups.google.com/group/jBASE?hl=en > > > > > -- > > > Please read the posting guidelines at: > > >http://groups.google.com/group/jBASE/web/Posting%20Guidelines > > > > > IMPORTANT: Type T24: at the start of the subject line for questions > > > specific to Globus/T24 > > > > > To post, send email to [email protected] > > > To unsubscribe, send email to [email protected] > > > For more options, visit this group at > > >http://groups.google.com/group/jBASE?hl=en > > -- > Please read the posting guidelines at: > http://groups.google.com/group/jBASE/web/Posting%20Guidelines > > IMPORTANT: Type T24: at the start of the subject line for questions > specific to Globus/T24 > > To post, send email to [email protected] > To unsubscribe, send email to [email protected] > For more options, visit this group at > http://groups.google.com/group/jBASE?hl=en > -- Please read the posting guidelines at: http://groups.google.com/group/jBASE/web/Posting%20Guidelines IMPORTANT: Type T24: at the start of the subject line for questions specific to Globus/T24 To post, send email to [email protected] To unsubscribe, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jBASE?hl=en
