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/

Reply via email to