Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Automation server suddenly fails
Message
From
29/11/2016 18:50:47
David Greene
Productive Solutions, LLC
California, United States
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Title:
Automation server suddenly fails
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012 R2
Network:
Windows Server 2012 R2
Database:
Visual FoxPro
Application:
Web
Miscellaneous
Thread ID:
01644116
Message ID:
01644116
Views:
56
We had to change web hosts from Arvixe recently but despite the same server environment we can't seem to get our VFP 9 automation tool to reindex dbf files (we don't use a DBC).
DCOMCNFG /32 for our tool is set for Default Authentication Level, Identity is set to "The launching user", allows Local Access and Local Launch for IIS_IUSRS, and Access Permissions show Local Access checked for IIS_IUSRS.

On the IIS side, the folder containing our data files is flagged for Read and Write, and the properties of the dbf and cdx files don't indicate read-only. The files read without any trouble and our asp pages using simple commands via OLEDB can write to our files as well. Our maintenance routine, which worked before the Thanksgiving weekend, produces a ComError 800a006e, VFP error 110, "File must be opened exclusively". The rub is that the file IS opened exclusively but dies when DELETE TAG ALL is executed. Here's the code:

*******************************************************************************
*Indexes license.dbf
procedure Verify as string
*******************************************************************************
local cOldErr as string, cCdx as String
cOldErr = on("error")
this.cError="" && .cError was created in the init method
on error this.cError = "ERROR WHILE INDEXING"
this.cDir="c:\inetpub\vhosts\oursite.com\httpdocs\datatbls\" && .cDir was created in the init method
this.cFile="license.dbf" && .cFile was created in the init method
cCdx=this.cDir+"license.cdx"

close tables all
select 0
use (this.cDir+this.cFile) Exclusive
if !empty(this.cError)
close tables all
on error &cOldErr
return "License file was busy. Please try later."
endif

set order to 0
delete tag all
close indexes
pack
erase (cCdx)
set collate to "GENERAL"
index on cUnitname tag cUnitname
index on access_pw tag access_pw
index on cUnitnum+str(comp_no,3,0) tag cUnitnum
set collate to "MACHINE"
index on trxDate tag trxDate
index on ncompid tag ncompid
index on cUnitno+str(comp_no,3,0) tag cUnitno
index on cIPAddr tag cIPAddr
index on lickey tag lickey
index on pkey tag pkey
close tables all
on error &cOldErr
return iif(empty(this.cError),"OK",this.cError)
endproc

This code runs just fine when executed locally in the VFP IDE, but after opening the DBF exclusively using the automation server an error occurs for DELETE TAG ALL.

Any ideas as to what we need to change to get this to work once again?
David Greene
Productive Solutions, LLC
Los Angeles
Next
Reply
Map
View

Click here to load this message in the networking platform