Record locking

Bill Akers billa at mgmindustries.com
Wed Mar 31 05:27:27 PST 2004


GCC Consulting wrote:
> We all know that after doing a protected lookup using write filename should
> unlock the record to which the lookup was done.
> 
> System:
> filePro native 5.0.11
> Server Dell with 1GB RAM, mirrored 18K RPM drives, Windows server 2003, network
> 3com Hub 100Mbs.
> Workstations: various make clones all running Windows XP pro 900+ GHz to 2+ GHZ.
> 
> No internet connections - no service paks or updates applied.
> 
> I recently completed an upgrade of their order entry system including a
> procedure for getting the next available order number from a master file.  A
> procedure most of us use.
> 
> Problem arose in that the master file record was not being unlocked quickly
> enough causing no number to be retrieved or getting an error message that the
> record was locked by another process.
> 
> @wlf1 if: 1 = ""
>     then: GOTO get_num
>       if:
>     then: "other code"
>  ..........
> 10 Get_num if:
>       then: rn(8,.0)="1"
> 11	  if:
>        then: lookup emm = em_mast  r=rn    -np
> 12	  if:	 not emm
>        then: ERRORBOX "Master File Not Found";EXIT
> 13	  if:
> 	 then: po_num=emm(10);GOSUB chk_num			(chk_num does a
> lookup to the current file to insure that
> 14 	  if:								(this #
> hasn't been used and some other checks
> 	 then: purchase_order_number=po_num	
> 15	  if:
> 	 then: emm(10)= purchase_order_number+"1";wrtie emm
> 16	  if:
> 	 then: created_by=getenv("username")
> 17	  if:
> 	 then: SHOW "";display;end				'move to store #
> field
> 
> After having a problem with this code failing to work properly, I ran some
> tests.
> 
> On the serve I have both the production system and a development system.  I ran
> the following test using the development system only.
> 
> 1. Opened a work session to the order entry module
> 2. Opened another session to display the master file record 1 with the next
> order #.
> 3. Went into add new orders from the order menu
> 	a. Pressed enter from field 1, the first field entered, got a new order
> #
> 	b. Cursor in store # field, changed to master file session and pressed
> "X" to exit record.
> 	   Received a message that the record was locked by another process.
> 4. Returned to order entry screen and entered a store # and verified the proper
> store.
> 5. Repeated step 3 with the same results
> 6. Returned to order entry session and placed a quantity in the quantity field
> and pressed <enter>. This placed the cursor in the item # field.
> 7. Repeat step 3- this time the record was unlocked and I was able to exit to
> the menu.
>   	 
> Change the posting line to:
> 15	  if:
> 	 then: emm(10)= purchase_order_number+"1";write emm;sync emm
> 
> Repeated the above steps with the same results.
> 
> Changed the line again:
> 15	  if:
> 	 then: emm(10)= purchase_order_number+"1";wrtie emm;sync emm;close emm
> 
> Repeated above steps, this time the record was unlocked right away.
> 
> I added the code the yesterday and since then there have been no problems.
> However, one never knows.
> 
> There is some additional code for insuring (or at least trying to insure) that
> no order number is duplicated and that the correct "next Order #" is used.
> 
> Closing the master file doesn't cause any problems as most of the time is spent
> entering order details which can take from 1 to 10 minutes or more depending on
> the number of items being ordered.  
> 
> I mentioned this problem in the "chat room" and Nancy advised that she had seen
> a similar problem on Novel.  But this proved to be a write cash problem and was
> solved by using a short sleep before moving on.
> 
> This didn't seem to be my problem as I sat in the store # field for a few
> seconds before switching sessions and testing the exit from the master file.
> 
> Has anyone else, besides Nancy, seen this problem?
> 
> Richard Kreiss
> GCC Consulting 
> 

I saw a similar situation years ago running windows ?? over a lantastic 
network. I believe that I set PFSYNC to ON or ALL in filepro and did 
something to the network also to cause it to write the cache after each 
transaction was saved at the workstation. I could never go back and find 
what it was because it was so long ago but it definitely had to do with 
network and/or windows holding transactions in the cache until forced to 
write them to disk.

> 
> 
> 
> 
> 
> 	  
> 	  
> 
> 
> _______________________________________________
> Filepro-list mailing list
> Filepro-list at lists.celestial.com
> http://mailman.celestial.com/mailman/listinfo/filepro-list
> 
> .
> 



-- 
William Akers
MGM Industries, Inc.
Hendersonville TN USA



More information about the Filepro-list mailing list