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

Reply via email to