/[cvs]/nfo/perl/libs/Data/Transfer/Sync.README.text
ViewVC logotype

Annotation of /nfo/perl/libs/Data/Transfer/Sync.README.text

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations)
Sun Jan 19 02:01:55 2003 UTC (21 years, 5 months ago) by joko
Branch: MAIN
Changes since 1.2: +9 -13 lines
+ updated

1 joko 1.3 NEWS
2     2003-01-18 - integration with Torus
3    
4     please look at http://www.netfrag.org/horde/chora/cvs.php/perl/scripts/outlook2ldap/
5    
6     2002-10-10 - initial check-in
7    
8 joko 1.1 DESCRIPTION
9     Data::Transfer::Sync is a module providing a generic synchronization
10     process across arbitrary/multiple storages based on a ident/checksum
11     mechanism. It sits on top of Data::Storage.
12    
13     REQUIREMENTS
14     For full functionality:
15     Data::Storage
16     Data::Transform
17     Data::Compare
18     ... and all their dependencies
19    
20     AUTHORS / COPYRIGHT
21     The Data::Storage module is Copyright (c) 2002 Andreas Motl. All rights
22     reserved.
23    
24     You may distribute it under the terms of either the GNU General Public
25     License or the Artistic License, as specified in the Perl README file.
26    
27     SUPPORT / WARRANTY
28     Data::Storage is free software. IT COMES WITHOUT WARRANTY OF ANY KIND.
29    
30     BUGS
31     When in "import" mode for windows file - DBD::AutoCSV may hang.
32 joko 1.3 Hint: Maybe the source node contains an ident-, but no checksum-column?
33 joko 1.1
34     USER LEVEL ERRORS
35     Mapping
36    
37     - - - - - - - - - - - - - - - - - - - - - - - - - -
38     info: BizWorks::Process::Setup->syncResource( source_node Currency mode PULL erase 0 import 0 )critical: BizWorks::Process::Setup->startSync: Can't access mapping for node "Currency" - please check BizWorks::ResourceMapping.
39     - - - - - - - - - - - - - - - - - - - - - - - - - -
40     You have to create a sub for each node used in synchronization inside named Perl module. The name of this sub _must_ match
41     the name of the node you want to sync. This sub holds mapping metadata to give the engine hints about how
42     to access the otherwise generic nodes.
43     - - - - - - - - - - - - - - - - - - - - - - - - - -
44    
45     DBD::AutoCSV's rulebase
46    
47     - - - - - - - - - - - - - - - - - - - - - - - - - -
48     info: BizWorks::Process::Setup->syncResource( source_node Currency mode PULL erase 0 import 0 )
49     info: Data::Transfer::Sync->syncNodes: source=L/Currency <- target=R/currencies.csv
50    
51     Execution ERROR: Error while scanning: Missing first row or scanrule not applied. at C:/home/amo/develop/netfrag.org/nfo/perl/libs/DBD/CSV.p
52     m line 165, <GEN9> line 1.
53     called from C:/home/amo/develop/netfrag.org/nfo/perl/libs/Data/Storage/Handler/DBI.pm at 123.
54    
55     DBI-Error: DBD::AutoCSV::st fetchrow_hashref failed: Attempt to fetch row from a Non-SELECT statement
56     notice: Data::Transfer::Sync->syncNodes: No nodes to synchronize.
57     - - - - - - - - - - - - - - - - - - - - - - - - - -
58     DBD::AutoCSV contains a rulebase which is spooled down while attempting to guess the style of the csv file regarding
59     parameters like newline (eol), column-seperation-character (sep_char), quoting character (quote_char).
60     If this spool runs out of entries and no style could be resolved, DBD::CSV dies causing this "Execution ERROR" which
61     results in a "DBI-Error" afterwards.
62     - - - - - - - - - - - - - - - - - - - - - - - - - -
63    
64     Check structure of source node
65    
66     - - - - - - - - - - - - - - - - - - - - - - - - - -
67     info: Data::Transfer::Sync->syncNodes: source=L/Currency <- target=R/currencies.csv
68     critical: Data::Transfer::Sync->syncNodes: Can not synchronize: No ident found in source node, maybe try to "import" this node first.
69     - - - - - - - - - - - - - - - - - - - - - - - - - -
70     If lowlevel detection succeeds, but no other required informations are found, this message is issued.
71     "Other informations" might be:
72     - column-header-row completely missing
73     - ident column is empty
74     - - - - - - - - - - - - - - - - - - - - - - - - - -
75    
76     Modify structure of source node
77    
78     - - - - - - - - - - - - - - - - - - - - - - - - - -
79     info: Data::Transfer::Sync->syncNodes: source=L/Currency <- target=R/currencies.csv
80     info: Data::Transfer::Sync->_prepareNode_MetaProperties( descent source )
81     warning: Data::Transfer::Sync->_prepareNode_MetaProperties: node is lacking meta properties - will try to alter...
82     SQL ERROR: Command 'ALTER' not recognized or not supported!
83    
84     SQL ERROR: Command 'ALTER' not recognized or not supported!
85     - - - - - - - - - - - - - - - - - - - - - - - - - -
86     The Engine found a node which structure does not match the required. It tries to alter this automatically - only when doing "import" -
87     but the DBD driver (in this case DBD::CSV) gets in the way croaking not to be able to do this.
88     This could also appear if your database connection has insufficient rights to modify the database structure.
89     DBD::CSV croaks because it doesn't implement the ALTER command, so please edit your columns manually.
90     Hint: Add columns with the names of your "ident" and "checksum" property specifications.
91     - - - - - - - - - - - - - - - - - - - - - - - - - -
92    
93     Load source node by ident
94    
95     - - - - - - - - - - - - - - - - - - - - - - - - - -
96     info: Data::Transfer::Sync->_prepareNode_DummyIdent( descent source )
97     pcritical: Data::Transfer::Sync->_modifyNode failed: "source" node is empty.
98     - - - - - - - - - - - - - - - - - - - - - - - - - -
99     The source node could not be loaded. Maybe the ident is missing. Please check manually.
100     Hint: Like above, the ident and/or checksum columns may be missing....
101     - - - - - - - - - - - - - - - - - - - - - - - - - -
102    
103     TODO
104     - sub _resolveIdentProvider
105     - wrap _doModifySource and _doTransferTarget around a core function which can change virtually any type of node
106     - split this module up into Sync.pm, Sync/Core.pm, Sync/Compare.pm and Sync/Compare/Checksum.pm
107     - introduce _compareNodes as a core method and wrap it around methods in Sync/Compare/Checksum.pm
108     - introduce Sync/Compare/MyComparisonImplementation.pm
109     - some generic deferring method - e.g. "$self->defer(action)" - to be able to accumulate a bunch of actions for later processing
110     - this implies everything done is _really_ split up into generic actions - how else would we defer them???
111     - example uses:
112     - fetch whole checksum list from node
113     - remember source ident retransmits
114     - remember: this is convenient - and maybe / of course faster - but we'll loose "per-node-atomic" operations
115     - feature: mechanism to implicit inject checksum property to nodes (alter table / modify schema)
116     - expand statistics / keep track of:
117     - touched/untouched nodes
118     - full sync
119     - just do a push and a pull for now but use stats for touched nodes in between to speed up things
120     - introduce some new metadata flags for a synchronization partner which is (e.g.) of "source" or "target":
121     - isNewNodePropagator
122     - isWriteProtected
123 joko 1.3

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed