Caching is fine but you may need to persist the data in filesystem at regular intervals(?)
Note:According to the specs 'the data must continue to be manipulated for reports using another custom-written application
I've just implemented a RAF Pool.
I've implemented a read/write lock on the file level.
When you say a RemoteObject and DataAccessObject for each client is that a newly registered and binded object for each client then?
Therefore I gave up the syncronizing on RAF solution and now I'm starting to think in providing a Data instance to each client. This will certainly solve the multiple RAF accesses problem as each client will have its own Data instance and so a file pointer.
Is it possible to provide a new remote object (RemoteServicesImpl ) to each client? Or all clients are handled by the same object? How can I provide one Data object to each Client?
3. To provide one of two additional method in the DataAdaptor: getRecordCount() or getAllRecords()
But i am not sure if it is right.
To summarize: You have one remote object that is a factory, one instance of some file access class that is on the server side and which does not implement Remote, and for each client there is one other remote object obtained by the remote factory.
Note that when an object returned by a Remote object implements Remote itself it is not serialized back to the client: It becomes a remote object on the server side. Use a remote factory that creates the remote objects to access the database.
What is the method signature of your lock and unlock methods in the interface provided by Sun? I ask because there are two different strategies, depending on whether or not your interface uses lock cookies...