I created an app using autoit that would automate tasks in my windows environment. Mostly manipulating the file system etc, but most importantly I needed to capture information on each machine and store the found information on the server so that I can then manually analyze it. I got about 300 machines writing to multiple ini files and log files but along the way I learned a very good lesson. Because of how windows locks on to files I found that I'd often loose information and or would have inconsistent data. The more systems I'd have writing to the files the more I would see this. My application stays running on each client, on a sleep timer, I have a random sleep timer set yet I still run into some trouble with clients writing at the same time.
Since I learned this the hard way I wanted to take on a new challenge but I am stuck. The reason why I created .ini files was for me to be able to look at the data on my server from each client and perform different tasks based on the data I found stored on the server. So I must have that two way communication available at all times. I understand that using SQLLite for multiple writes is plagued by the same file locking issues as .ini files etc....
I am looking for suggestions. I am looking for something that doesn't require installation on the client. Sending flat files like .dll's or .exe files is fine as long as it doesn't require installation on the clients.
I started to look into FireBird but it seems like this requires installation on the client for it to work.
I started to look into SQLLite but I have a few concerns and really unsure on how to proceed. My questions are
1. I would want 1 SQLLite db file, how will I circumvent the file locking issues if I am continuously reading and writing to a single file?
Even if I figure out a way to do some sort of queuing through some sort of xmlhttp send to a php script that writes to a sqlLite file, I'll still be constantly reading it.
Thanks for the ideas and taking the time to read this.