The method Jim suggests allows the DBMS to notify a middle-tier client of new activity. mv.NET also has this functionality built-in using the mvDBRPC class. Both methods should be compared - every option has pros and cons.
With mvDBRPC you simply write data to any jBase file with your normal BASIC code. A middle-tier .NET process polls for updates. The polling period is determined by the polling process but is typically from 1 second (need to be careful about that) to 30 seconds. The "middle-tier" can be on the localhost or a separate server, the term simply means it's a communications component. When data is available on the server, it's extracted at the polling interval, an event is fired by the mvDBRPC object, and from there you can do whatever you want. It looks like the data is being pushed from the server even though it's really pulled from the mvDBRPC object running in a non-blocked background thread. If you have multiple Excel processes that need access to this data, they can in-turn poll this middle-tier for updates unique to them. Controls need to be in place to ensure all clients get all data required - this is the sort of stability that message queuing provides. However, mvDBRPC will allow a *nix server to push out data (and requests for data) and you can't do this (easily) with message queues. Again, each method has different merits. As an example of how mvDBRPC can be used, we use it in all of our components that: - make the DBMS call to external web services - retrieve web pages - query/update external relational databases - and push data into Microsoft Outlook An alternative with other connectivity methods is to use your own code to poll, but then you need to manage threads and ensure transactions aren't missed or double-processed. You really don't "need" mv.NET at all, it's simply convenient to reduce development time for these types of interfaces. Do you _really_ need second by second updates? That can be server intensive. As I believe Jim was suggesting, you can extract data from jBASE to a middle-tier by whatever method you choose, and stage it there for query from clients. Data extraction from the server should be discoupled from query processing from clients. In other words, I don't personally think every client query should hit the server - but it depends on how you write the code. How fast is it? Minimize the data you're extracting and it should be OK. Don't return entire items to the middle-tier and then parse for required data, only send the data required to the middle-tier. Cost? The cost for mv.NET is tiny compared to that of other products and compared to the time=money cost of writing your own components. NTMS, I won't offer to sell you mv.NET. I know you're working with BlueFinity. But if you need assistance with development and you are not asking them for services, I will offer to help with that. For anyone else - I welcome inquiries for mv.NET, related components, and services. For anyone who uses mv.NET in an end-user environement, feel free to download mvExec - completely free from our freeware site. It's a simple utility that uses mv.NET to allow you to execute queries and programs on your jBASE DBMS from anywhere. No code required. remove.pleaseNebula-RnD.com/freeware Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Read about PickWiki: remove.pleaseNebula-RnD.com/blog/tech/mv/2009/01/wiki1.html --~--~---------~--~----~------------~-------~--~----~ Please read the posting guidelines at: http://groups.google.com/group/jBASE/web/Posting%20Guidelines IMPORTANT: Type T24: at the start of the subject line for questions specific to Globus/T24 To post, send email to [email protected] To unsubscribe, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jBASE?hl=en -~----------~----~----~----~------~----~------~--~---
