PxPlus User Forum

Twitter Twitter Twitter

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - keith.mcbride

Pages: [1]
Off Topic / Re: When designing your data base, did you use ERD's?
« on: February 14, 2020, 09:08:44 AM »
I have used them off and on in the past (1990s), but normally for documenting what as done vs during design. Visio at on point had some tools to pull in the schema from SQL Server and to assist in the design which made it much easier.

My issue was once you got over 10 or 15 tables it was too big and unwieldy to be useful unless you printed it out in multiple sheets and taped them on the wall.  Then it would be out of date the next day.
If you kept it up to date it could be useful in an environment with many programmers and useful as a way to document the tables you have. It just has to be someone's job to  keep it up.

A good homework assignment, should anyone decide to accept it,  would be a tool to read the PVX dictionary and have a side file to hold the relationships between tables. Then you could create an ERD from that. The auto layout is the hard part.


Programming / Re: Generic Input
« on: January 20, 2020, 02:31:28 PM »
Since you are setting mode$ to the HTA() of eom your check in the until should be

UNTIL mode$="0D"

instead of comparing to $0D$

Thin Client/WindX / Re: Clear screen from bash
« on: October 07, 2019, 09:23:15 AM »
In a terminal window, the command "clear" will clears the screen. You can see if it will do the same in Windx

Ken, Interesting question.  I wrote the following program:

0100 BEGIN
0110 OPEN (1)"*MEMORY*"
0120 OPEN (2)"/tmp/test"
0200 FOR i=1 TO 10
0205 WRITE (1,KEY=STR(i:"00"))i
0210 NEXT i
0215 c=10
0300 SELECT i FROM 1 BEGIN "" END STR(c:"00")
0305 PRINT (2)"I=",i," C=",c
0310 c-=1

If the END is only evaluated once at the beginning then I expect it to read all 10 records, ignoring the new value of C
If the END is evaluated each iteration, then I would expect the program to stop reading somewhere around record 6 or 5.

The results:
I= 1 C= 10
I= 2 C= 9
I= 3 C= 8
I= 4 C= 7
I= 5 C= 6
I= 6 C= 5
I= 7 C= 4
I= 8 C= 3
I= 9 C= 2
I= 10 C= 1

It would appear that the end is only evaluated once at the beginning of the SELECT


Registration and Setup / Re: linux install on virtualized system
« on: April 11, 2019, 11:35:50 AM »
Our hosts are older Dell Poweredge 610 with 8 CPUs at 2.6 G and around 100 GB memory. We assign upto 8 CPUs and 22 GB memory to the VM running the software. Centos 7 is very efficient and works well with VMware, we are almost never pushing the hardware.

We update Centos but not frequently, our maintenance window is late Saturday afternoon to early Sunday morning, otherwise we have production going on.

We were concerned about Tintri, but they have been purchased by a company called DDN and received a healthy cash infusion.

We use a company called Veristor (which is headquartered here in Atlanta) who provide a one stop solution. They are VMware partners, and hardware agnostic when it comes to storage and networking. We bought both our former Dell Equalogix and current Tintri solutions from them and they also mapped out and setup the networking for the hosts and storage arrays. Veristor was  the low price bidder on our initial purchase of hardware.

Veristor provides a one call support service we use. If there is a problem we call Veristor and they troubleshoot or call in the right support people to get it fixed. I have called them at 2 in the morning to fix an issue and it is nice not having to call two or three vendors who all say the problem is somewhere else.

For disaster recovery with replicate data in real-time from our VMs to Veristor's data center. In a disaster we boot up the VMs at their data center and point our network to them.

Let me know if you have any other questions.

Keith McBride

Registration and Setup / Re: linux install on virtualized system
« on: April 10, 2019, 05:26:07 PM »
We are running Centos 7 (Redhat open source linux version) on VMware  with 375 users (just updated to 425 users) with no performance issues. The system seems very snappy and we have no complaints from users.
The key is disk I/O, we use  networked attached storage, originally Dell Equalogix, now Tintri with 10 gig ethernet connections.
We have used VMware Live Motion to move the system from one host to another to balance out loads or do maintenance with no issues. There is only a 1 or 2 second lag while it is moving.
We use Veem for backups. It starts a snapshot of the running system, does the backup from that.

We have been using virtualized servers for 10 years and have been pleased with the  results.

Keith McBride
Halperns Steak & Seafood

Language / Memory file with alternate keys doesn't work
« on: October 30, 2018, 01:06:57 PM »
We upgraded over the weekend from Version 7.1 on SUSE to PVX 2017 (version 14) on Centos 7.
We have several programs using memory files to sort data.
Example: OPEN (cust_list)"*MEMORY*;KEYDEF=10,[""RANK"":2:1:14:""B.2D""]"

On these we write records to the memory file
FIN(cust_list,"NUMREC") would show the expected number of records (23,000) record is just 10 character customer Number + total amount
The file is at the end, a re positioning read (like READ (cust_list,kno="RANK",key="") ) does not re position the file
and using KEF, KEL or other type functions creates a segmentation fault. pvxtrace.log entry below

Any Ideas

Keith McBride
Halperns Steak and Seafood

Oct 30 12:26 [<sigterm>:0] Segmentation fault
Oct 30 12:26 [<sigterm>:0]  - ERR=11 CTL=0 RET=258 LFA=32762 LFO=32762
Oct 30 12:26 [<sigterm>:0]  - Last path used: *MEMORY*;KEYDEF=10,["RANK":2:1:14:"B.2D"]
Oct 30 12:26 [<sigterm>:0] --- Program stack ---
Oct 30 12:26 [<sigterm>:0]  - STK(0) = line 15100 in /home/prod/prog/COMRCA
Oct 30 12:26 [<sigterm>:0]    - GO SUB... 15075
Oct 30 12:26 [<sigterm>:0]    - FOR...... 15020
Oct 30 12:26 [<sigterm>:0]    - GO SUB... 01000
Oct 30 12:26 [<sigterm>:0] --- Files ---
Oct 30 12:26 [<sigterm>:0]  - PTH(0) = /dev/pts/147
Oct 30 12:26 [<sigterm>:0]  - PTH(1) = /home/prod/sysprog/ZZP
Oct 30 12:26 [<sigterm>:0]     - Keyed file.  KEY:'WR      '
Oct 30 12:26 [<sigterm>:0]  - PTH(2) = /home/prod/data/OPF002
Oct 30 12:26 [<sigterm>:0]  - PTH(3) = /home/prod/data/OPG002
Oct 30 12:26 [<sigterm>:0]  - PTH(4) = /home/prod/data/AR3002
Oct 30 12:26 [<sigterm>:0]     - Keyed file.  KEY:<Start of file>
Oct 30 12:26 [<sigterm>:0]  - PTH(5) = /home/prod/data/AR6002
Oct 30 12:26 [<sigterm>:0]     - Keyed file.  KEY:<Start of file>
Oct 30 12:26 [<sigterm>:0]  - PTH(6) = /home/prod/data/PE1002
Oct 30 12:26 [<sigterm>:0]  - PTH(7) = /home/prod/data/OPF002
Oct 30 12:26 [<sigterm>:0]  - PTH(8) = /home/prod/data/AR1002
Oct 30 12:26 [<sigterm>:0]     - Keyed file.  KEY:<Start of file>
Oct 30 12:26 [<sigterm>:0]  - PTH(13) = /home/prod/data/ZZPARM
Oct 30 12:26 [<sigterm>:0]     - Keyed file.  KEY:'osecKAM'
Oct 30 12:26 [<sigterm>:0]  - PTH(14) = /dev/pts/147
Oct 30 12:26 [<sigterm>:0]  - PTH(32762) = *MEMORY*;KEYDEF=10,["RANK":2:1:14:"B.2D"]
Oct 30 12:26 [<sigterm>:0]  - PTH(32763) = *MEMORY*
Oct 30 12:26 [<sigterm>:0]  - PTH(32764) = *MEMORY*
Oct 30 12:26 [<sigterm>:0]  - PTH(32765) = *MEMORY*
Oct 30 12:26 [<sigterm>:0]  - PTH(32766) = *Pdf*
Oct 30 12:26 [<sigterm>:0]  - PTH(32767) = *MEMORY*;KEYDEF=10,["SALES":1:79:11:"D"]
Oct 30 12:26 [<sigterm>:0]  - PTH(64999) = *memory*;keydef=[1:1:30:C]+[2:1:30:C]+[3:1:30:C]
Oct 30 12:26 [<sigterm>:0]  - PTH(65000) = /home/prod/sysdata/FID
Oct 30 12:26 [<sigterm>:0]  - PTH(65002) = /home/prod/data/PFX002
Oct 30 12:26 [<sigterm>:0]  - PTH(65003) = /home/prod/syslib/_msglib.en
Oct 30 12:26 [<sigterm>:0]     - Keyed file.  KEY:<Start of file>
Oct 30 12:26 [<sigterm>:0] --- Err() Info ---
Oct 30 12:26 [<sigterm>:0]        Current Err:66 Prog: /home/prod/prog/COMRCS Stno: 1820 LFA: 99 LastPath: ZZT (pvxsub.c@1433)
Oct 30 12:26 [<sigterm>:0] --- Stack dump ---
Oct 30 12:26 [<sigterm>:0] /lib64/libc.so.6(+0x362f0) [0x7fb949ce02f0]
Oct 30 12:26 [<sigterm>:0] /lib64/libc.so.6(+0x155e41) [0x7fb949dffe41]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x410c03]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x410a6d]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x41056b]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x470e06]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x406a07]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x405665]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x403fee]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x403bbe]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x403a56]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x403841]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x4e4401]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x4e4339]
Oct 30 12:26 [<sigterm>:0] /lib64/libc.so.6(__libc_start_main+0xf5) [0x7fb949ccc445]
Oct 30 12:26 [<sigterm>:0] /usr/lib/pvx/pxplus() [0x403641]

Pages: [1]