Jump to content

George Macken

Member Since 05 Jun 2001
Offline Last Active May 29 2013 08:30 AM

Topics I've Started

Occasional function crashes are possibly SSEL related

16 January 2009 - 02:14 PM


We are experiencing occasional function crashes are possibly SSEL related.

PROIV Kernel 5.5r556 and Oracle running on Win2003.
All of the Business Application tables are in the ORACLE DB.
There could be on averge 30-40+ users on system at same time and generally when we check there are adequate Memory and Disk available on the server.

Occasionally some functions crash, these functions are very commonly used every day.
At present I dont have any screenshot/detail from the client-user side.
On the Server the following message is generated

Message from HostMonitor (host changed status)

Test : Application Log - ProIV Error on MSGSRV-LSYS2
Method: check NT Event Log
Status : Bad
Date : 15/01/2009 15:35:09
Reply : Message not found. Insertion strings:Access Violation at 00418ef0:
Stack Trace
00418ef0:PRO32SRV: 0x18ef0
Module Base not found: Error from Operating System(Attempt to access invalid address. (0x1e7))
004138f1:PRO32SRV: 0x138f1
Module Base not found: Error from Operating System(Attempt to access invalid address. (0x1e7))
004139fb:PRO32SRV: 0x139fb
Module Base not found: Error from Operating System(Attempt to access invalid address. (0x1e7))
004139d0:PRO32SRV: 0x139d0
Module Base not found: Error from Operating System(Attempt to access invalid address. (0x1e7))

ProIV Server: User Thread exception: Code c0000005, Address 418ef0.
Attempt to read data at address 8a1fea8.
Client address
Kernel User ThreadId 4b8:

Current ProIV function POSX01U1 ls 2 fldno 2

Recurrences : 1
Last status: Ok
Total tests: 214572
Alive ratio : 99.73 %
Dead ratio: 0.27 %

Folder: Event Logs

In the above a function name and LS is identified, Whenever we get these errors the function name and LS always refere to a function-LS that has a SSEL present in the LS/LU, for the purpose of either Select/Sort of the data to be returned. The problem has mainly occured with Update or Global Update type functions. As mentioned the problem occurs only occasionally, thankfully not too frequently.

Note: We dont always SQL in DEF LGC to achieve Sort Select as sometimes it is easier to achieve this thru the SSEL-logic. Also, our application has been developed over many years and is portable across DBs and therefore not commonly using SQL statements. Anyways we dont believe the problem to be SQL related.

If a function has a SSEL present in any LS(s) then pro-iv service creates a temp-workfile in PROTEMP directory on server which it uses to build index/keys of the records selected. This file seems to be created immediately upon load/run of the function and the file deleted when the function completes.

The error information seems to be pointing to the system failing at functons with SSEL and temp workfile probly at point of either tempfile created / accessed / deleted in these functions. In one occurrence of this type of error occurring the LS with the SSEL would never have been accessed as it is conditional for specific type of transactions/data, this therefore indicates that the problem is with either the create / delete of the temp file.

I could be completely mistaken about the cause of error being related to the SSEL tempfile but the errors generally only refer to function and LS/LU that has a SSEL.

For the moment we are going to code around this by using a combination of either SQL and physical workfile/tempfile defined within the DB to build selection lists and remove completely the SSEL from the functions where the error occurs. This will either resolve the problem or rule out SSEL as cause of the problem.

If any of you have had similar problems then did you identify cause/solution for these errors.

any suggestions appreciated



Changing the value in @TERM

22 July 2008 - 04:38 PM


Pro-IV Ver 5.5, Win2003, ORACLE 9i

I am considering overwriting the value in @TERM (with a unique value).

see this link, where changing @TERM is refered to

"We are running on 2 Windows pro-iv servers and one SQL database server for a number of years without any problems.

The only thing you have to consider is that @TERM will hold a unique value per pro-iv server, but the two servers might give you the same @TERM value. To overcome this problem, our logon screen adds a 1 or a 2 (depending on if started up from server 1 or server 2) to @TERM, to make it unique again. We use a lot of workfiles keyed on @TERM. "

what are your experiences of changing the value in @TERM, does it cause any problems



DEV or RUN User ? is this identified by an environment variable

24 January 2007 - 01:12 PM


I recollect that in some earlier postings on the RC there is a list or partial list of environment variables, I just cannot find these postings at the moment.

My current query ... is there an environment variable available to LOGIC that identifies if the User is connected as DEV or RUN ?




08 November 2006 - 09:34 AM

PRO-IV Version 5.5 - oracle version 9i - Win 2003


Name Null? Type

----------------------------------------- -------- ----------------------------






On the pro-iv file - the file is External ORA

Field SL_LASTKEY is defined as Numeric LEN 12

External NUMBER Storage Format 12.0

We Seem to be having a problem with this field once the value becomes 7 digits.

In an update function we can write a value of 7 digits to the file however when we read back the record - I try display the field as a screen field (using display code 12.0 LEN 12) or even via a UMSG(CONV(SL_LASTKEY)) the value displayed is truncated.

ORACLE contents


------------ ------------ ---------- ---- ---------

DOCXTRACTCNT 999998534357 1465642 ROC 07-NOV-06

However in PRO-IV SL_LASTKEY is returned/retrieved from the DB as 14656 for both the screen field and UMSG.

Anybody got any ideas what could be wrong here.



c-isam datafile viewer

07 November 2006 - 05:40 PM


I am working on a C-ISAM database and carrying out an exercise to analyse the files/tables to identify the fields columns that have the largest values stored.

We are looking to see if some fields are close to their defined field size, trying to ensure the field will not blow-out at some point in time.

On an ORACLE DB this exercise was achieved by

SELECT Key_columns, MAX(column_name) from (table_name).

repeated for each numeric amount column in each table.

For C-ISAM on AIX how could we achieve this without having to write too much code, we could write pro-iv programmes to do it but it would be drudgery.

Is there a third-party viewer/tool thru-which a c-isam table "filename.dat" could be viewed, like columns in a spreadsheet that would allow the data be sorted by clicking on a column. Or that the tool easily converts a c-isam file to a comma delimited textfile which could then be viewed/analysed in spreadsheet.

I'd appreciate any thoughts/help with this, I will take a google to see what's available, but thought it would be best to see if anyone else here has done something similar.