On Mar 17, 2010, at 2:59 PM, Tobias Jordan wrote:

> Hello Ben,
> 
> Thanks a lot for responding! My problem is as follows: The database which is 
> currently a non-document based core data SQLite one is normally stored in the 
> local User Library of the user. (/Users/user/Library/Application 
> Support/MyApp/database.db
> 
> But there are cases in which two (or more) different physical machines must 
> have access to the database.

Don't do that.  Network file systems do not provide real time distributed cache 
coherency.  NFS is not a free version of Oracle.

> For example two designers working on a project and they both need the same 
> database so they can share their results. This means they create a new 
> database on their server and link my app to this database.

Each machine can have its own database and they can share their results with 
NSDistributedNotification or some other IPC/networking protocol.  You can hook 
into the NSManagedObjectContextDidSaveNotification to track when one of the 
peers has committed changes locally.

- Ben

> 
> As you've said, is there a way the data can be always immediately written to 
> disk so there's no 'last writer wins'?
> 
> I am not using NSDocument based techniques -- it is really just one core data 
> DB.
> 
> Thank you!
> 
> Regards,
> Tobias
> 
> 
> On Mar 17, 2010, at 10:29 PM, Ben Trumbull wrote:
> 
>>> I am wondering whether it is possible to create a database in core
>>> data that can be opened by more than one application at the same time.
>>> It is currently impossible to handle one SQLite database with two
>>> instances of the same app. The problem is if user1 quits the app, the
>>> data is saved but user2's instance of the app doesn't recognize this
>>> file system change and just overwrites its version in memory. So the
>>> data from user1 is gone. Is there a way I can handle this?
>>> 
>>> Second -- I am having more than two database versions now but still
>>> want to support my version 1.0 but the mapping model only allows one
>>> source model as well as only one target model. I would have to remove
>>> one version but that makes version 1.0 users' database unusable.
>>> 
>>> Has anyone gotten something like this to work?
>> 
>> Yes, several Apple frameworks use Core Data databases from multiple 
>> processes simultaneously with a single user account and single physical 
>> machine.
>> 
>> Do you mean "more than one application simultaneously on more than one 
>> physical computer over NFS/AFP/SMB" ?  Don't do that.
>> 
>> Or do you mean an NSDocument based application using Core Data & an SQLite 
>> store ?  NSDocuments intentionally behave like TextEdit.  Last writer wins, 
>> overwites everything.  If so, you should be using a non-document based Core 
>> Data project template.
>> 
>> - Ben
>> 
> 


- Ben



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to