Help needed on SYSTEM ERROR: Memory violation. (49)

Hobby

New Member
Hai

I am new guy on progress. only 2 months of experience.I am facing a problem and it will be great help if someone can get me a solution.
The problem is , i am getting the following error.

SYSTEM ERROR: Memory violation. (49)
** Save file named core for analysis by Progress Software Corporati
on. (439)


I am getting this error when the call is returned to the calling procedure.
I am calling a appserver program asscropn.p from my oc routing osscropen.p
Below is the piece of code with calls the asscropn.p
RUN asscropn.p(INPUT g-ses-id,
INPUT v-query-name,
INPUT v-where-clause,
INPUT v-next-page,
INPUT v-item-type,
OUTPUT v-table-name,
OUTPUT o-tot-recs,
OUTPUT o-throttle,
OUTPUT o-ok,
OUTPUT v-message,
OUTPUT v-query-desc,
OUTPUT TABLE tt-querydef,
OUTPUT TABLE tt-queryopt,
OUTPUT TABLE tt-validate,
OUTPUT DATASET-HANDLE hdsData).
message "here 4".

I have put a message on the last line of program asscropn.p. That means the program is returning sucessfully from it rite? But i am not getting the message "here 4". I am getting the error i stated above. the strange thing is i am not getting this error always.. only at somtimes i am getting this error.
One more point is. i am using this program to open a screen in my application. So when i am opening a particular screen , sometimes i am getting this error , sometimes i am not.what could possibly be the issue here. Can anyone help. Because of this reason the appserver agent is in sending status.it is not returning back into available state.

Thanks
Rahul
 

GregTomkins

Active Member
I have no idea what is causing this, but if you haven't already, I would look at the AppServer log files; they are the #1 source of figuring out what is going wrong inside an AppServer call. They will be on the server hosting the AppServers and named something like this:

1. asbroker1.server.log - by far the most useful
2. asbroker1.broker.log - occassionally useful
3. ns1.NS1.log - rarely useful
 
I think this might be due to stack error. I think the procedure execution is overwritten in the stack and causing the problem. Please check the -s parameter in the start up script and try to increase the same.

Please use PROMON command to get more details regarding the issue.
 

RKR

Member
/*

RUN asscropn.p(INPUT g-ses-id,
INPUT v-query-name,
INPUT v-where-clause,
INPUT v-next-page,
INPUT v-item-type,
OUTPUT v-table-name,
OUTPUT o-tot-recs,
OUTPUT o-throttle,
OUTPUT o-ok,
OUTPUT v-message,
OUTPUT v-query-desc,
OUTPUT TABLE tt-querydef,
OUTPUT TABLE tt-queryopt,
OUTPUT TABLE tt-validate,
OUTPUT DATASET-HANDLE hdsData).

*/

This run-statement does not execute anything on an appserver, it simply runs a procedure in your session. It might be that you have left out the ON <server-handle> in your sample.

Besides this, if you call a procedure on an appserver you are running a procedure in another session. Passing handles to another session does not work. A handle in one session has no meaning in another session. If progress passes the number of this handle it might even point to another object.


There is a good chance that your problems will be solved when you replace the dataset-handle with the actual dataset. You will need the dataset definition in both your programs in the same way as with the temp-tables.
 

GregTomkins

Active Member
Passing handles to another session does not work.

I don't know about DATASET-HANDLEs, but this is definitely NOT true for TABLE-HANDLEs. You can surely pass one to an AppServer (separate session) and Progress has the smarts to figure out to pass along all the schema and data, not just the handle.
 
Top