HXTT causing index/data corruption? |
Kevin Penrose |
2017-01-20 10:26:25 |
I am using the 5.2 version of HXTT DBF in a java client application. The client application accesses the FoxPro database through a Glassfish 4.1 server, which has a connection pool for the hxtt server set up to access the data though url jdbc:dbf://10.20.10.215:8050/C:/_groups/Rawmat/data. I have set lockType to VFP as a property on the JDBC connection pool.
HXTT is running as a windows service. Most of the queries are written using JPA compliant calls, some using CriteriaQuery and some using native queries.
I have had absolutely zero problems reading and writing data.
HOWEVER, on the FoxPro application side, there has lately been issues of data corruption, and indexes being damaged. We've been using the HXTT server since last July, but the problems seems to have only started happening in the last month or so; but management is convinced that HXTT is somehow responsible and is considering removing it from our production environment.
I have enabled logging for the HXTT server, and over the last 24 hours there haven't been any errors reported by HXTT, but we have again experienced a corrupt index in one of the database files.
I can provide any additional information needed, but I'm at a loss to pinpoint the cause. Any help you can provide would be greatly appreciated.
--Kevin
|
Re:HXTT causing index/data corruption? |
HXTT Support |
2017-01-21 00:46:16 |
First, you should download the latest package since you're using an older package on May, 2016.
> which has a connection pool for the hxtt server set up to access the data though url jdbc:dbf://10.20.10.215:8050/C:/_groups/Rawmat/data. I have set lockType to VFP as a property on the JDBC connection pool.
Secondly, you're using a DBFServer at 10.20.10.215, then you should set the jdbc url of DBFServer as jdbc:dbf://10.20.10.215:8050/C:/_groups/Rawmat/data?lockType=VFP . Because your client package can't assign more connection property than Server side.
|
Re:Re:HXTT causing index/data corruption? |
Kevin Penrose |
2017-01-21 09:05:16 |
So, I should set the url in the urlconfig file to have lockType? I have been setting the extra flags, like lockType, nullAsString and nullAsZero flags in the properties of the glassfish connection.
Should I also set the others in the urlconfig file also?
|
Re:Re:Re:HXTT causing index/data corruption? |
HXTT Support |
2017-01-21 17:05:59 |
Checked. Other connection properties can be assigned at client side.
> I have set lockType to VFP as a property on the JDBC connection pool.
What's your JDBC connection pool?
|
Re:Re:Re:Re:HXTT causing index/data corruption? |
Kevin Penrose |
2017-01-23 08:04:48 |
Sorry, not sure what you're asking. The JDBC connection pool is set up on the glassfish server, using the url with the lockType set and having connection properties of emptyStringAsNull set to false and emptyDecimalAsZero set to true.
The only difference I'm using now is that I have configured the urlconfig file for the window service to contain the lockType in the connection URL also.
|
Re:Re:Re:Re:HXTT causing index/data corruption? |
Kevin Penrose |
2017-01-23 08:06:20 |
I actually have a related question: Is data cached in the DBF driver? I have on occasion gotten return values that seem to be out of sync with the data in the tables; all data is still being accessed through a number of FoxPro 9.x applications concurrently with my java apps.
|
Re:Re:Re:Re:Re:Re:HXTT causing index/data corruption? |
HXTT Support |
2017-01-23 18:11:46 |
>Is data cached in the DBF driver? I have on occasion gotten return values
> that seem to be out of sync with the data in the tables; all data is still
> being accessed through a number of FoxPro 9.x applications concurrently
> with my java apps.
For lockType=VFP mode, it won't cache data. It's easy to checke whether HXTT DBF can see the modification or lock from your FoxPro 9.x application or other HXTT applications. You can install SQuirrel SQL Client, and start more than one SQuirrel instance. Then you can use HXTT DBF Client or HXTT?DBF Embedded url format to?build connection. With lockType=VFP, they should see each other.
|
Re:Re:Re:Re:Re:Re:Re:HXTT causing index/data corruption? |
Kevin Penrose |
2017-01-24 09:04:15 |
What do you mean by "see each other"? I have two squirrel instances running; each connecting to the server with lockType=VFP. Where can I find out if they "see each other"?
Summarizing my configuration: I have the HXTT DBF set up as a windows service, with the url in the urlconfig file including the ?lockType=VFP option. I have a glassfish server, which has a database connection pool which has a the connection url the same as that found in the config file for the windows service, i.e., the ?lockType=VFP is contained in the URL. For this connection pool, I have also set the emptyStringAsNull=false and emptyDecimalAsZero=true properties.
With this configuration, I have occasionally seen stale data, or incorrect data that is only corrected when I restart the windows service. Is there something in the configuration that I am missing?
|
Re:Re:Re:Re:Re:Re:Re:HXTT causing index/data corruption? |
Kevin Penrose |
2017-01-24 09:13:42 |
And you asked what my JDBC connection pool is. I'm still not sure I know what you were inquiring about.
|
Re:Re:Re:Re:Re:Re:Re:Re:HXTT causing index/data corruption? |
HXTT Support |
2017-01-24 16:24:30 |
> Where can I find out if they "see each other"?
For instance, run an update sql in on SQuirrel or your VFP, then you should see modified result in another Squirrel.
You should see record lock by "update yourTable set _LockFlag_=true where condition" and "select _LockFlag_,reco(),* from yourTable where condition"
Set Record Lock Manually. If you can set _LockFlag_ in on SQuirrel or VFP, and see it in another Squirrel, your lockType connection propery is working.
>what my JDBC connection pool
For instance, org.apache.tomcat.jdbc.pool , com.hxtt.sql.HxttConnectionPoolDataSource , and oracle.jdbc.pool.OracleDataSource .
|