We are still testing this driver (latest) and having issues.
We only use it for READ ONLY selects on Foxbase 2.10 DOS apps. We use Lucee (Coldfusion/Railo CFML) on Tomcat 8 64bit on Windows Server 2012.
Often our old Foxbase app cannot access certain dbf's (usually when they need to modify a table) and the only resolution is to stop/start Tomcat... so that means it must be that Tomcat/the Hxtt driver are holding some kind of lock/connection to a particular dbf file? We are not using any lock on Hxtt as we are only reading the dbf's (i.e. SELECT)?
This is intermittent, but consistent. We have no ability to modify the Foxbase app legacy code.
As I understand it, read only code (SELECT's) do not use ANY Hxtt locking? So, what are the circumstances that the Hxtt driver will lockup-up a dbf on a read? We do NOT use lockType because we are only reading files.
Also, barring any way to avoid this "lock-up" is there a query or something that can be run to force close all of these Tomcat/Hxtt connections rather than the destructive restarting Tomcat?
|
So I can say with certainty that the Hxtt DBF driver "locks" up these DBF files during the course of the SELECT (read-only) query and for a few seconds afterward.
I have tried all kinds of combinations of connection string paremeters I've read about, but still get the dreaded message:
"No database in USE. Enter file name:"
each time I use our Foxpro app while Hxtt is running a simple SELECT on a table needed by the Fox app.
What can we try here?
|
>Often our old Foxbase app cannot access certain dbf's (usually when they need to modify a table)
Your old Foxbase application should be using exclusive file open mode. So It happen if you has not closed those connection or tables in .
1st. Use delayedClose=0 connection property to avoid the delayed close then your issue will be solved if you close your DBF connection in time.
2nd. com.hxtt.sql.dbf.DBFDriver.releaseAll() can release all resource if you wish to force release all opening table files.
|
OK, we will try "delayedClose=0" today, though I am rather certain we had tried this and it did not work...
Re: "com.hxtt.sql.dbf.DBFDriver.releaseAll()" - how does one "call" this? We are using this driver for a datasource in a ColdFusion/Railo/Lucee application.
|
Re: "com.hxtt.sql.dbf.DBFDriver.releaseAll()" - how does one "call" this? We are using this driver for a datasource in a ColdFusion/Railo/Lucee application
Any advice on this would be greatly appreciated?
|
>Re: "com.hxtt.sql.dbf.DBFDriver.releaseAll()" - how does one "call" this?
It's a code line feature:(
>>each time I use our Foxpro app while Hxtt is running a simple SELECT on a table needed by the Fox app.
>Any advice on this would be greatly appreciated?
delayedClose=0 can make sure that HXTT DBF released the file at once if you close that connection or resultSet object. If you met that issue still, it means that your Foxpro applicaiton is using exclusvie table lock, and HXTT DBF is using that file in shared mode too.
|