Ok...here is the scoop...
Rbase for DOS 6.5++
Win98 SE or DOS 6.22 stations
The program compares totals from different tables to check for data integrity,
using a declare cursor (I'll paste the program below)
SET STATIC made no difference.
I have not tried the others yet.
*(THIS PROGRAM WILL TRY TO FIND SPECIFIC ERRORS NOTED BY THE CLOSE DAY PROGRAM
CALLED OFFICE.009 )
CONNECT dbname
SET V VSTART = .#TIME
WRITE .VSTART
OUTPUT LPT1
SET ESCAPE ON
SET ERROR VARIABLE DERR
SET MESSAGES OFF
SET ERROR MESSAGES OFF
UPDATE PATINFO SET BALANCE = 0 WHE BALANCE FAILS
DROP CURSOR C#3
SET MESSAGES ON
SET ERROR MESSAGES ON
SET RULES OFF
SET BELL OFF
SET RULES ON
SET V VNAME TEXT
SET V VPATBAL CURRENCY
SET V VPATPREV CURRENCY
SET V TOTCHARG CURRENCY
SET V TOTPAID CURRENCY
SET TIME FOR HH:MM:SS.SSS
SET V VPNUM REAL
WRITE 'THINKING' AT 12 40
DECLARE C#3 CURSOR FOR SEL PATNUMBR OLDBALAN NEWBALAN FROM TRANSACT ORDER BY +
PATNUMBR TRANTIME = D
OPEN C#3
FETCH C#3 INTO VPNUM I1,VOLDBAL I2,VNEWBAL I3
SET VARIABLE VERR = .DERR
SET V VNEXT REAL
SET V VNEXT TO 0
WHILE VERR EQ 0 THEN
IF VNEXT EQ .VPNUM THEN
GOTO NEXT
ENDIF
SET V VNAME TO TOTLNAME IN PATINFO WHE PATNUMBR EQ .VPNUM
SET V VPATBAL TO BALANCE IN PATINFO WHE PATNUMBR EQ .VPNUM
SET V VPATPREV TO PREVBAL IN PATINFO WHE PATNUMBR EQ .VPNUM
IF ( .VPATBAL - .VNEWBAL ) NE 0 THEN
WRI 'CURRENT BALANCE ERROR WITH PATIENT#: '
WRI .VPNUM
WRI .VNAME
WRI ' '
ENDIF
COMPUTE TOTCHARG AS SUM CHARGE FRO TRANSACT WHE PATNUMBR EQ .VPNUM
COMPUTE TOTPAID AS SUM TPAID FRO TRANSACT WHE PATNUMBR EQ .VPNUM
IF ( .VPATPREV + .TOTCHARG - .TOTPAID ) NE .VPATBAL THEN
WRI 'TOTAL CHARGES AND PAIDS IN TRANSACT DON'T ACCOUNT FOR NEW BALANCE'
WRI .VPNUM
WRI .VNAME
WRI ' '
ENDIF
LABEL NEXT
SET V VNEXT TO .VPNUM
FETCH C#3 INTO VPNUM I1,VOLDBAL I2,VNEWBAL I3
SET VARIABLE VERR = .DERR
ENDWHILE
LABEL SKIP
SET ERROR VARIABLE DERR
SET V VCURBAL CURRENCY
SET V VCURBAL TO $100000
SET V VBALANCE CURRENCY
SET V VPREVBAL CURRENCY
SET V VPNUM REAL
DROP CURSOR C#3
DECLARE C#3 CURSOR FOR SEL PATNUMBR BALANCE PREVBAL FRO PATINFO
OPEN C#3
FETCH C#3 INTO VPNUM I1,VBALANCE I2,VPREVBAL I3
SET VARIABLE VERR = .DERR
WHILE VERR EQ 0 THEN
IF (.VBALANCE - .VPREVBAL) EQ 0 THEN
GOTO NEXTPAT
ENDIF
DROP CURSOR C#2
DECLARE C#2 CURSOR FOR SEL NEWBALAN FRO TRANSACT ORDER BY TRANTIME = D WHE +
PATNUMBR EQ .VPNUM
OPEN C#2
FETCH C#2 INTO VCURBAL I1
IF VBALANCE NE .VCURBAL THEN
WRI 'CHECK BALANCE AND PREVBAL FOR PATIENT #'
WRI .VPNUM
SET V VNAME TO TOTLNAME IN PATINFO WHE PATNUMBR EQ .VPNUM
WRI .VNAME
WRI ' '
ENDIF
LABEL NEXTPAT
FETCH C#3 INTO VPNUM I1,VBALANCE I2,VPREVBAL I3
SET V VERR = .DERR
IF VPNUM = 0 OR VPNUM FAILS THEN
RUN DEBUG.CMD
ENDIF
ENDWHILE
SET ESCAPE OFF
CLEAR VARIABLE VNAME TOTPAID TOTCHARG VPATPREV VPATBAL VPNUM VOLDBAL VNEWBAL +
VERR DERR
SET V VFINISH = .#TIME
WRITE .VSTART
WRITE .VFINISH
SET V VTOTAL = (.VFINISH - .VSTART)
SHO VAR VTOTAL
CLEAR VARIABLE VNAME VNEXT VCURBAL VBALANCE VPREVBAL VPRN I1 I2 I3 VFINISH
CLEAR VARIABLE VSTART VTOTAL
SET TIME FOR HH:MM:SS
The transact table generally has about 60 rows of data, the patinfo table has
about 20,000 rows of data.
The program takes 10 seconds to run off the server with 1 station attached, 40
seconds with 2 stations attached.
Any ideas?
Mike
Troy Sosamon wrote:
> Mike,
>
> I need more info to really help with this problem. I have run R:base on every
> version of Novell except the latest version 6.
>
> What version of R:base?
> What is the OS of the workstations?
> What is your program doing?
> One thing to keep in mind that once you add that second user to the database,
> now updates have to check for concurency control. Depending on the size of
> your tables and your indexes, updates, inserts, and deletes can get slow. If
> you are doing bulk updates on big tables, there is a lot of overhead checking
> for concurency. This is where the various settings can make big differences.
> Here are some settings I recomend:
>
> SET VAR MICRORIM_F2MAXBLK INT = 64
> SET VAR MICRORIM_F3MAXBLK INT = 256
> SET VAR MICRORIM_BTMAXBLK INT = 64
> SET VAR MICRORIM_SRTMAXBLK INT = 64
> SET STATIC ON
> SET ROWLOCKS ON
> SET QUALCOLS 10 -- page locking - large updates require fewer locks
> SET TRANSACT OFF
> SET MULTI ON
> SET WHILEOPT OFF -- very few apps gain from this, and it can cause problems
>
> Some of this stuff works a little differently depending on the version of
> R:base you are using. The static setting is good, that gives you some
> performance help because updates don't have to check for structure changes.
> Every version of R:base that comes out continues to be tweeked at the engine
> level for performance, and every release gets faster.
>
> You might want to check the Novell properties on the directory and on the
> database files. I don't have NW 6, so I don't know what to tell you to look
> for.
>
> Troy Sosamon
>
> >===== Original Message From [EMAIL PROTECTED] =====
> >We have also not had the problem on a Novell 4 server at several different
> >clients.
> >
> >=======================================
> >At 09:35 AM 2/25/2002 -0500, you wrote:
> >>My comment was not clearly written. The problem we have identified is
> >specific to W2K servers. We do not run Novell, but did not have the problem
> >on a Novell 4 test server.
> >>
> >>
> >>MJS <[EMAIL PROTECTED]> wrote:
> >>
> >>>The Server is NOVELL 6.0!
> >>>
> >>>SO......what's it gonna take to fix this?
> >>>
> >>>Mike
> >>>
> >>>Albert Berry wrote:
> >>>
> >>> We delved into this scenario quite a bit. M$ blames RBTI, RBTI could
> >not provide a solution either. 10:1 the server is W2K
> >>>
> >>> MJS <[EMAIL PROTECTED]> wrote:
> >>>
> >>> >Hi all,
> >>> >A strange thing (at least I think it's strange) showed up today in
> >Rbase. The
> >>> >database is on a server. I connect with just one station, and run a
> >program
> >>> >which uses a declare cursor to check data in a bunch of rows. The
> program
> >>> >completes in 10 seconds, plus or minus 1 second. I sometimes use this
> >program
> >>> >as a test for performance. Now....just for grins, I run Rbase on an
> >additional
> >>> >station, but I don't connect to the database... I just let the computer
> >sit at
> >>> >an R>. Keep in mind, these are the only 2 stations that are attached
> >to Rbase,
> >>> >1 connected to the database, 1 not connected to the database. Nobody
> >else is
> >>> >around, no other programs are being run on the server. I run the same
> >program
> >>> >again, same results, 9-11 seconds to finish. NOW.......I go to the
> second
> >>> >machine, and just do a
> >>> >CONNECT dbname (multi user is on, staticdb is on). No other programs are
> >>> >running. Now I run the same program again.....40 seconds!! 400%
> >longer!!!!
> >>> >Does this make sense? Network traffic should be about the same, so I
> don't
> >>> >think it;s a network issue. Any ideas or comments?
> >>> >
> >>> >TIA!
> >>> >
> >>> >Mike Sinclair
> >>> >
> >>> >================================================
> >>> >TO SEE MESSAGE POSTING GUIDELINES:
> >>> >Send a plain text email to [EMAIL PROTECTED]
> >>> >In the message body, put just two words: INTRO rbase-l
> >>> >================================================
> >>> >TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
> >>> >In the message body, put just two words: UNSUBSCRIBE rbase-l
> >>> >================================================
> >>> >TO SEARCH ARCHIVES:
> >>> >http://www.mail-archive.com/rbase-l%40sonetmail.com/
> >>> >
> >>> --
> >>>
> >>> __________________________________________________________________
> >>> Your favorite stores, helpful shopping tools and great gift ideas.
> >Experience the convenience of buying online with Shop@Netscape!
> >http://shopnow.netscape.com/
> >>>
> >>> Get your own FREE, personal Netscape Mail account today at
> >http://webmail.netscape.com/
> >>>
> >>> ================================================
> >>> TO SEE MESSAGE POSTING GUIDELINES:
> >>> Send a plain text email to [EMAIL PROTECTED]
> >>> In the message body, put just two words: INTRO rbase-l
> >>> ================================================
> >>> TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
> >>> In the message body, put just two words: UNSUBSCRIBE rbase-l
> >>> ================================================
> >>> TO SEARCH ARCHIVES:
> >>> http://www.mail-archive.com/rbase-l%40sonetmail.com/
> >>>
> >>>================================================
> >>>TO SEE MESSAGE POSTING GUIDELINES:
> >>>Send a plain text email to [EMAIL PROTECTED]
> >>>In the message body, put just two words: INTRO rbase-l
> >>>================================================
> >>>TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
> >>>In the message body, put just two words: UNSUBSCRIBE rbase-l
> >>>================================================
> >>>TO SEARCH ARCHIVES:
> >>>http://www.mail-archive.com/rbase-l%40sonetmail.com/
> >>>
> >>--
> >>
> >>
> >>
> >>
> >>__________________________________________________________________
> >>Your favorite stores, helpful shopping tools and great gift ideas.
> >Experience the convenience of buying online with Shop@Netscape!
> >http://shopnow.netscape.com/
> >>
> >>Get your own FREE, personal Netscape Mail account today at
> >http://webmail.netscape.com/
> >>
> >>================================================
> >>TO SEE MESSAGE POSTING GUIDELINES:
> >>Send a plain text email to [EMAIL PROTECTED]
> >>In the message body, put just two words: INTRO rbase-l
> >>================================================
> >>TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
> >>In the message body, put just two words: UNSUBSCRIBE rbase-l
> >>================================================
> >>TO SEARCH ARCHIVES:
> >>http://www.mail-archive.com/rbase-l%40sonetmail.com/
> >>
> >
> >================================================
> >TO SEE MESSAGE POSTING GUIDELINES:
> >Send a plain text email to [EMAIL PROTECTED]
> >In the message body, put just two words: INTRO rbase-l
> >================================================
> >TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
> >In the message body, put just two words: UNSUBSCRIBE rbase-l
> >================================================
> >TO SEARCH ARCHIVES:
> >http://www.mail-archive.com/rbase-l%40sonetmail.com/
>
> Troy Sosamon
> Denver Co
> [EMAIL PROTECTED]
>
> ================================================
> TO SEE MESSAGE POSTING GUIDELINES:
> Send a plain text email to [EMAIL PROTECTED]
> In the message body, put just two words: INTRO rbase-l
> ================================================
> TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
> In the message body, put just two words: UNSUBSCRIBE rbase-l
> ================================================
> TO SEARCH ARCHIVES:
> http://www.mail-archive.com/rbase-l%40sonetmail.com/
================================================
TO SEE MESSAGE POSTING GUIDELINES:
Send a plain text email to [EMAIL PROTECTED]
In the message body, put just two words: INTRO rbase-l
================================================
TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
In the message body, put just two words: UNSUBSCRIBE rbase-l
================================================
TO SEARCH ARCHIVES:
http://www.mail-archive.com/rbase-l%40sonetmail.com/