org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget Interface Reference

Inheritance diagram for org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget:

org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget org.openmobileis.test.database.TestDummyFODBSyncTarget List of all members.

Detailed Description

Title: OpenMobileIS project source
Description: For each Terminal synchronized collection you have to register a FODBSyncTarget.

This target act has a database connector for the synchro service. To specify the temp directory where generated db file (during complete synchronisation) is use the property :org.openmobileis.database.fastobjectdb.synchro.server.generateddb.installpath

Author:
Philippe Delrieu
Since:
JDK 1.1
Version:
1.0.

Definition at line 44 of file FODBSyncTarget.java.

Public Member Functions

String getCollectionName ()
 
Returns:
the name to the terminal FODB collection.

void setSendSynchroMetaData (Object metadata) throws OpenMSPException
 Synchro meta data added to the synchro on the terminal side are given be the synchro process.
Object getCollectionObjectWithId (String id) throws OpenMSPException
 It is use by the synchro service to get an object from the database when it has to be updated on the terminal.
void updateCollectionObject (Object obj) throws OpenMSPException
 Implement the update part of the database.
void deleteCollectionObject (String id) throws OpenMSPException
 Implement the delete part of the database.
SynchroConflicResolver getConflicResolver ()
 When a conflic is detected, the synchro service use this conflic resolver to determine the action to do.
Array getAllCollectionObject () throws OpenMSPException
 It's call when a complete synchronisation is done to fill the terminal database with all object.
SynchroAtomicObject[] getAllModifiedAtomicObjectSince (long syncnumber) throws OpenMSPException
 Return all atomic object uid modified since specified syncnumber.
int getUpdateMaxNbRow ()
 Return the max number of row that update file can contains If more than max row must be updated on the PDA, a complete synchronisation will be started, the database file will be send.
void updateSynchroDB (FastObjectDB db) throws OpenMSPException
 call by synchronisation service during complete synchronisation to update the generated db collection.
void connect (Credential cred) throws UserNotFoundException, ServiceException
 call at the beginning of the collection synchronisation.
void disconnect ()
 call at the end of the collection synchronisation.


Member Function Documentation

void org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.setSendSynchroMetaData ( Object  metadata  )  throws OpenMSPException

Synchro meta data added to the synchro on the terminal side are given be the synchro process.

This method is call before all other synchro method.

Parameters:
metadata 
Exceptions:
OpenMSPException 

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Object org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.getCollectionObjectWithId ( String  id  )  throws OpenMSPException

It is use by the synchro service to get an object from the database when it has to be updated on the terminal.

Returns:
the collection object with the specified ID.

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Referenced by org.openmobileis.database.fastobjectdb.synchro.server.FODBOpenMSPSynchroTargetWrapper.getTargetObjectWithId().

void org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.updateCollectionObject ( Object  obj  )  throws OpenMSPException

Implement the update part of the database.

Call by the synchro service when a object has been modified on the terminal. There's only an update method, no insert because on the server side we can't know if it's an update on an insert. Because of synchronisation problems, a created object on the terminal can be synchronized two time. So for each modified object on the terminal you have to validate if it's already exist.

Parameters:
obj is the instance of the modified object.
Exceptions:
OpenMSPException : throws when there is a database update problem. The synchro collection will be in error in the terminal synchro journal. The object will come back in the next synchronisation.

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Referenced by org.openmobileis.database.fastobjectdb.synchro.server.FODBOpenMSPSynchroTargetWrapper.updateTargetWithSynchroObject().

void org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.deleteCollectionObject ( String  id  )  throws OpenMSPException

Implement the delete part of the database.

Call by the synchro service when a object has been deleted on the terminal.

Parameters:
id is the identifiant of the deleted object.
Exceptions:
OpenMSPException :throws when there is a database delete problem. The synchro collection will be in error in the terminal synchro journal. The id will come back in the next synchronisation.

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Referenced by org.openmobileis.database.fastobjectdb.synchro.server.FODBOpenMSPSynchroTargetWrapper.deleteTargetForSynchroObjectId().

SynchroConflicResolver org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.getConflicResolver (  ) 

When a conflic is detected, the synchro service use this conflic resolver to determine the action to do.

We provide default conflic resolver behaviours.

See also:
org.openmobileis.synchro.algo.replication.AlwaysUpdateClientSynchroConflicResolver

org.openmobileis.synchro.algo.replication.AlwaysUpdateServerSynchroConflicResolver

Returns:
Return the conflic resolver use to manage synchro conflic.

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Referenced by org.openmobileis.database.fastobjectdb.synchro.server.FODBOpenMSPSynchroTargetWrapper.getSynchroConflicResolver().

Array org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.getAllCollectionObject (  )  throws OpenMSPException

It's call when a complete synchronisation is done to fill the terminal database with all object.

If no complete synchronisation can occurs (getUpdateMaxNbRow() always return -1), the method is never call. So no implementation is needed. Complete synchronisation is a convenient way to optimize the terminal synchronisation. some time it's make less time to generate the Terminal complete collection on the server side than to synchronize all modifications.

Returns:
Return all the object of the collection for the user that initiate the collection.
Exceptions:
OpenMSPException : throws when there is a problem to invalidate the synchronisation. The synchro collection will be in error in the terminal synchro journal.

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

SynchroAtomicObject [] org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.getAllModifiedAtomicObjectSince ( long  syncnumber  )  throws OpenMSPException

Return all atomic object uid modified since specified syncnumber.

Syncnumber is a number incremented for each synchro request. It can be converted to a timestamp with the SyncNumberManager. It's preferable to use number increment for synchronisation than timestamp to avoid desynchronized clock problem. Terminal and server can be desynchronized at the system cloc level of a few second. A synchronisation can elapse less than a few second. This can leads to synchronisation problem that can be difficult to track.

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Referenced by org.openmobileis.database.fastobjectdb.synchro.server.FODBOpenMSPSynchroTargetWrapper.getAllModifiedAtomicObjectSince().

int org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.getUpdateMaxNbRow (  ) 

Return the max number of row that update file can contains If more than max row must be updated on the PDA, a complete synchronisation will be started, the database file will be send.

If return -1 (default implementation) max row in not taken into account (ie always update file)

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Referenced by org.openmobileis.database.fastobjectdb.synchro.server.FODBOpenMSPSynchroTargetWrapper.getUpdateMaxNbRow().

void org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.updateSynchroDB ( FastObjectDB  db  )  throws OpenMSPException

call by synchronisation service during complete synchronisation to update the generated db collection.

Use to modifiy db objects before the db files are send to the Terminal. Empty is nothing has to ne done.

Parameters:
db the database collection (thedb contains only the synchronized collection).

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

void org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.connect ( Credential  cred  )  throws UserNotFoundException, ServiceException

call at the beginning of the collection synchronisation.

Parameters:
cred : synchronisation credential
Exceptions:
UserNotFoundException 
ServiceException 

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Referenced by org.openmobileis.database.fastobjectdb.synchro.server.FODBOpenMSPSynchroTargetWrapper.connect().

void org.openmobileis.database.fastobjectdb.synchro.server.FODBSyncTarget.disconnect (  ) 

call at the end of the collection synchronisation.

Parameters:
cred : synchronisation credential
Exceptions:
UserNotFoundException 
ServiceException 

Implemented in org.openmobileis.database.fastobjectdb.db.test.TestFODBSyncTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmAccountSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLabelSynchroTarget, org.openmobileis.examples.mycrm.data.jdbc.MyCrmLeadsSynchroTarget, org.openmobileis.examples.server.synchro.BaseDataFODBSyncTarget, org.openmobileis.modules.common.database.jdbc.JDBCTerminalUserFODBSyncTarget, and org.openmobileis.test.database.TestDummyFODBSyncTarget.

Referenced by org.openmobileis.database.fastobjectdb.synchro.server.FODBOpenMSPSynchroTargetWrapper.disconnect().


The documentation for this interface was generated from the following file:
Generated on Mon Dec 4 11:03:38 2006 for OpenMobileIS by  doxygen 1.5.1-p1