Gemeinsamer Betrieb Clipper und Xbase ntx
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 153
- Registriert: Do, 06. Apr 2006 10:51
- Danksagung erhalten: 3 Mal
Gemeinsamer Betrieb Clipper und Xbase ntx
Hallo Gemeinde,
eine alte Clipperanwendung wurde nach Xbase migriert, es soll jedoch für eine gewiese Zeit beide Anwendungen parallel eingesetzt werden.
Nun habe ich die Xbase-Exe gestartet und zuerst alle Indexdateien (NTX) neu erstellt.
Wenn ich nun mit der Clipper-Exe starte bekomme ich an Programmstellen mit z.B. DbGoto( xy ) einen
Error DBFNTX/1210 Dateifehler festgestellt
Was mache ich falsch ?
bzw. muß ich bei der Erstellung des Index-Dateien im Xbase Programm etwas beachten ?
Gruß Peter
eine alte Clipperanwendung wurde nach Xbase migriert, es soll jedoch für eine gewiese Zeit beide Anwendungen parallel eingesetzt werden.
Nun habe ich die Xbase-Exe gestartet und zuerst alle Indexdateien (NTX) neu erstellt.
Wenn ich nun mit der Clipper-Exe starte bekomme ich an Programmstellen mit z.B. DbGoto( xy ) einen
Error DBFNTX/1210 Dateifehler festgestellt
Was mache ich falsch ?
bzw. muß ich bei der Erstellung des Index-Dateien im Xbase Programm etwas beachten ?
Gruß Peter
Gruss Peter
- BJelinek
- Rekursionen-Architekt
- Beiträge: 221
- Registriert: Sa, 02. Jun 2012 20:57
- Wohnort: 73257 Köngen
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 3 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Hallo Peter,
bei gemischtem Betrieb lasse ich die NTX-Dateien
vom Clipper-Programm erstellen.
Die NTX-Dateien unterscheiden sich voneinander, auch in der Größe.
Xbase kommt damit zurecht. umgekehrt Clipper nicht.
Wenn dann nur noch Xbase, NTX-Dateien löschen und vom Xbase-Programm erstellen
lassen.
bei gemischtem Betrieb lasse ich die NTX-Dateien
vom Clipper-Programm erstellen.
Die NTX-Dateien unterscheiden sich voneinander, auch in der Größe.
Xbase kommt damit zurecht. umgekehrt Clipper nicht.
Wenn dann nur noch Xbase, NTX-Dateien löschen und vom Xbase-Programm erstellen
lassen.
Grüße
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Hallo Peter,
bei mir läuft ein Programm im Hybridmosua.
Teile noch in Clipper, Teile in Xbase.
Indizierung erfolgt über XBase, ein Zugriff von Clipper aus ist problemlos möglich
und läuft fehlerfrei.
Folgende Einstellungen vornehmen:
SET Optimize OFF
SET Smartfilter OFF
SET Rushmore OFF
Gruß Stefan
bei mir läuft ein Programm im Hybridmosua.
Teile noch in Clipper, Teile in Xbase.
Indizierung erfolgt über XBase, ein Zugriff von Clipper aus ist problemlos möglich
und läuft fehlerfrei.
Folgende Einstellungen vornehmen:
SET Optimize OFF
SET Smartfilter OFF
SET Rushmore OFF
Gruß Stefan
-
- Rekursionen-Architekt
- Beiträge: 153
- Registriert: Do, 06. Apr 2006 10:51
- Danksagung erhalten: 3 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Hallo Bernd und Stefan,
viellen Dank für eure Hilfe.
habe zuerst Stefans Vorschlag in das xBase Programm eingebaut und alles von xBase aus neu indizieren lassen.
Ergebniss: nach wie vor stürzt das Clipper Programm bei DbGoTo( xy) ab.
dann habe ich wie von Bernd vorgeschlagen alle Indexe im Clipper Prg aufbauen lassen.
Ergebniss: es geht !
Unsicherheit: ich weiß noch nicht ob das xBase Programm sauber mit den Clipper Indexen umgeht.
Testbetrieb läuft !
Falls also noch jemand über den Problembereich etwas weiß, bitte Info !
Gruß Peter
viellen Dank für eure Hilfe.
habe zuerst Stefans Vorschlag in das xBase Programm eingebaut und alles von xBase aus neu indizieren lassen.
Ergebniss: nach wie vor stürzt das Clipper Programm bei DbGoTo( xy) ab.
dann habe ich wie von Bernd vorgeschlagen alle Indexe im Clipper Prg aufbauen lassen.
Ergebniss: es geht !
Unsicherheit: ich weiß noch nicht ob das xBase Programm sauber mit den Clipper Indexen umgeht.
Testbetrieb läuft !
Falls also noch jemand über den Problembereich etwas weiß, bitte Info !
Gruß Peter
Zuletzt geändert von Peter Schweizer am Mo, 03. Apr 2017 18:07, insgesamt 1-mal geändert.
Gruss Peter
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
ich empfehle ebenfalls das Indiezieren mit einer Cl*pper App zu machen. (auch wenn Alaska was anderes sagt)Peter Schweizer hat geschrieben:dann habe ich wie von Bernd vorgeschlagen alle Indexe im Clipper Prg aufbauen lassen.
Ergebniss: es geht !
von Stephan solltest du bei gemeinsamen Betrieb
Code: Alles auswählen
SET Optimize OFF
SET Smartfilter OFF
SET Rushmore OFF
Frage : VIO (ohne /PM:PM) oder Hybrid Modus ?
bei Cl*pper wurde ja mit "Wait-State" gearbeitet d.h. du hast evtl INKEY() ohne einen Wert.
solche Stellen können dafür sorgen das deine CPU 0 ( das ist die 1st CPU) bei 100% klebt ... INKEY(0.1) hilft meistens.
gruss by OHR
Jimmy
Jimmy
- Klaus Schuster
- Foren-Administrator
- Beiträge: 370
- Registriert: Do, 24. Jan 2008 10:01
- Wohnort: 90762 Fürth
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 9 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Hallo Peter,
ich setze verschiedene Xbase- und Clipper-Programme auf den selben Tabellen ohne Probleme parallel ein. Dies gelang erst nach langem Ringen mit folgender dbeSys:
Die NTX-Dateien werden ausschließlich durch eine Xbase-Applikation erstellt. Die Geschwindigkeitsteigerung ist enorm, ohne dass seit Jahren ein Problem auftrat.
ich setze verschiedene Xbase- und Clipper-Programme auf den selben Tabellen ohne Probleme parallel ein. Dies gelang erst nach langem Ringen mit folgender dbeSys:
Code: Alles auswählen
#include "Collat.CH"
#include "DbfDbe.CH"
#include "DMLB.CH"
#include "NtxDbe.CH"
#include "Set.ch"
PROCEDURE DbeSys
SET( _SET_COLLATION, COLLAT_GERMAN )
Set( _SET_DATEFORMAT, 'DD.MM.YYYY' )
// Engine für DBF-Dateien laden
IF ! DbeLoad( "DBFDBE", .T.)
MsgBox( "Database Engine DBFDBE nicht geladen", "DB-Fehler" )
ENDIF
// Engine für CDX-Dateien laden
IF ! DbeLoad( "CDXDBE" , .T.)
MsgBox( "Database Engine CDXDBE nicht geladen", "DB-Fehler" )
ENDIF
// Engines für Datensatz- und Index-Management zusammenfügen
IF ! DbeBuild( "DBFCDX", "DBFDBE", "CDXDBE" )
MsgBox( "Database Engine DBFCDX nicht erzeugt", "DB-Fehler" )
ENDIF
// Aenderungen an der Data-Komponente GELTEN FUER ALLE abgeleiteten DBEs
DbeInfo( COMPONENT_DATA, DBFDBE_LIFETIME, 0 )
DbeInfo( COMPONENT_DATA, DBFDBE_LOCKOFFSET, 10^9 )
// Aenderungen an der CDX-Order-Komponente
DbeInfo( COMPONENT_ORDER, DBE_LOCKMODE, LOCKING_EXTENDED )
DbeInfo( COMPONENT_ORDER, NTXDBE_LOCKOFFSET, 10^9 )
// Engine für NTX-Dateien laden
IF ! DbeLoad( "NTXDBE" , .T.)
MsgBox( "Database Engine NTXDBE nicht geladen", "DB-Fehler" )
ENDIF
// Engines für Datensatz- und Index-Management zusammenfügen
IF ! DbeBuild( "DBFNTX", "DBFDBE", "NTXDBE" )
MsgBox( "Database Engine DBFCDX nicht erzeugt", "DB-Fehler" )
ENDIF
// Aenderungen an der NTX-Order-Komponente
DbeSetDefault( 'DBFNTX' )
DbeInfo( COMPONENT_ORDER, NTXDBE_LOCKOFFSET, 10^9 )
// DBF-Data-Komponente + CDX-Order-Komponenten als aktive DBE festlegen
DbeSetDefault( 'DBFCDX' )
RETURN
Gruß Klaus
-
- Rekursionen-Architekt
- Beiträge: 153
- Registriert: Do, 06. Apr 2006 10:51
- Danksagung erhalten: 3 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Hallo Klaus
habe Deine dbesys Einträge eingebaut.
Jedoch ohne Erfolg.
Hallo Jimmy
ja der Schalter /PM:PM ist gesetzt.
Vielen dank für eure Ratschläge.
Gruß Peter
habe Deine dbesys Einträge eingebaut.
Jedoch ohne Erfolg.
Hallo Jimmy
ja der Schalter /PM:PM ist gesetzt.
Vielen dank für eure Ratschläge.
Gruß Peter
Gruss Peter
- Klaus Schuster
- Foren-Administrator
- Beiträge: 370
- Registriert: Do, 24. Jan 2008 10:01
- Wohnort: 90762 Fürth
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 9 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Hast Du anschliessend die alten Indexdateien gelöscht und neue erstellt?
Gruß Klaus
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
was mich wundert bei "der" DBESYSKlaus Schuster hat geschrieben:Dies gelang erst nach langem Ringen mit folgender dbeSys:Code: Alles auswählen
... // Engine für CDX-Dateien laden IF ! DbeLoad( "CDXDBE" , .T.) MsgBox( "Database Engine CDXDBE nicht geladen", "DB-Fehler" ) ENDIF // Engines für Datensatz- und Index-Management zusammenfügen IF ! DbeBuild( "DBFCDX", "DBFDBE", "CDXDBE" ) MsgBox( "Database Engine DBFCDX nicht erzeugt", "DB-Fehler" ) ENDIF -> hier bist du noch auf DBFCDX // Aenderungen an der Data-Komponente GELTEN FUER ALLE abgeleiteten DBEs DbeInfo( COMPONENT_DATA, DBFDBE_LIFETIME, 0 ) DbeInfo( COMPONENT_DATA, DBFDBE_LOCKOFFSET, 10^9 ) // Aenderungen an der CDX-Order-Komponente DbeInfo( COMPONENT_ORDER, DBE_LOCKMODE, LOCKING_EXTENDED ) DbeInfo( COMPONENT_ORDER, NTXDBE_LOCKOFFSET, 10^9 ) -> das ist aber NICHT Cl*pper // DBF-Data-Komponente + CDX-Order-Komponenten als aktive DBE festlegen DbeSetDefault( 'DBFCDX' )
DBFCDX kennt Cl*pper nicht. wenn du Comix oder Sixdrive meinst dann FOXCDX.
DbInfo() sollten IMHO immer nach der entsprechenden DBE eingesetzt werden wobei "default" Werte (10^9) überflüssig sind.
auch "LOCKING_EXTENDED" kennt Cl*pper nicht, deshalb würde ich es im Zweifel nicht verwenden.
DBFDBE_LIFETIME auf 0 zu setzten ist eine gute Idee wenn man Threads verwendet
Fazit : wer eine Cl*pper App auf Xbase++ umstellen will muss nicht die original DBESYS verändern sondern seinen Cl*pper Code ordentlich "anpassen"
gruss by OHR
Jimmy
Jimmy
- Klaus Schuster
- Foren-Administrator
- Beiträge: 370
- Registriert: Do, 24. Jan 2008 10:01
- Wohnort: 90762 Fürth
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 9 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Das stimmt. Es gibt jedoch Dbf-Dateien die ausschließlich unter Xbase zum Einsatz kommen; für diese kommt DBFCDX zum Einsatz.DBFCDX kennt Cl*pper nicht. wenn du Comix oder Sixdrive meinst dann FOXCDX.
Werden Dateien geöffnet, die auch mit Clipper verwandt werden, wird mit dbUseArea( .T., 'DBFNTX',..) die DBFNTX herangezogen.
Fazit : wer eine Cl*pper App auf Xbase++ umstellen will muss nicht die original DBESYS verändern sondern seinen Cl*pper Code ordentlich "anpassen"[/quote]
Was verstehst Du unter einer ordentlichen Anpassung von Clipper?
Gruß Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Habt Ihr tatsächlich geprüft, dass die Sperren funktionieren ?
1. Wenn bei Clipper eine die OBJ für 2 GB eingelinkt wurde, muss der Lockoffset in Xbase auch angepasst werden. Hierzu gibt es unterschiedliche Angaben welche Zahl verwendet werden soll (HEX 7FFFFFFF oder 80000000 ?)
2. Unter Windows 7 müssen die Cache Werte für Metadaten gelöscht werden (also das cachen abgeschaltet), und zwar auf jeder Maschine die eine EXE ausführt (auch Terminalserver), ich meine das macht der SMB2 Patch (bin mir aber nicht sicher).
3. SMB Einstellungen (welche hab ich vergessen ) müssen stimmen, wurde häufig schon beschrieben hier.
1. Wenn bei Clipper eine die OBJ für 2 GB eingelinkt wurde, muss der Lockoffset in Xbase auch angepasst werden. Hierzu gibt es unterschiedliche Angaben welche Zahl verwendet werden soll (HEX 7FFFFFFF oder 80000000 ?)
2. Unter Windows 7 müssen die Cache Werte für Metadaten gelöscht werden (also das cachen abgeschaltet), und zwar auf jeder Maschine die eine EXE ausführt (auch Terminalserver), ich meine das macht der SMB2 Patch (bin mir aber nicht sicher).
3. SMB Einstellungen (welche hab ich vergessen ) müssen stimmen, wurde häufig schon beschrieben hier.
Gruß
Hubert
Hubert
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Kann nur sagen dass es bei meinen Anwendern mit den o.a. Einstellungen läuft.
Auf über 110 Installationen seit über 2 Jahren.
Verwendete Clipper Version 5.1
Gruß Stefan
Auf über 110 Installationen seit über 2 Jahren.
Verwendete Clipper Version 5.1
Gruß Stefan
-
- Rekursionen-Architekt
- Beiträge: 153
- Registriert: Do, 06. Apr 2006 10:51
- Danksagung erhalten: 3 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Hallo an alle,
zum Einsatz kommt ein Clipper 5.2
alle Index-Dateien wurden selbstverständlich neu erstell.
Inzwischen scheint es zu gehen( Erste tests sind gut).
Wie ich leidvoll erkennen mußte war aus irgendeinem Grund, der nicht nachvollziehbar ist, die prg Datei die lediglich die dbesys enthielt
aus der project.xpj verschwunden.
Ich habe zwar wie Stefan vorgeschlagen hatte die dbesys angepasst, jedoch keine positive Reaktion erfahren dürfen.
Erst ein nochmaliges debuggen hat dann die fehlende dbesys in der exe zutage gefördert.
Zu Deutsch: so ein sch........!
Nochmals vielen Dank an Alle die sich mit mir den Kopf zerbrochen haben.
Gruß Peter
zum Einsatz kommt ein Clipper 5.2
alle Index-Dateien wurden selbstverständlich neu erstell.
Inzwischen scheint es zu gehen( Erste tests sind gut).
Wie ich leidvoll erkennen mußte war aus irgendeinem Grund, der nicht nachvollziehbar ist, die prg Datei die lediglich die dbesys enthielt
aus der project.xpj verschwunden.
Ich habe zwar wie Stefan vorgeschlagen hatte die dbesys angepasst, jedoch keine positive Reaktion erfahren dürfen.
Erst ein nochmaliges debuggen hat dann die fehlende dbesys in der exe zutage gefördert.
Zu Deutsch: so ein sch........!
Nochmals vielen Dank an Alle die sich mit mir den Kopf zerbrochen haben.
Gruß Peter
Gruss Peter
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: Gemeinsamer Betrieb Clipper und Xbase ntx
Ich verwende DBESYS nicht, da ich bei den von Clipper und Xbase genutzten Dateien nur mit NTX arbeite.
Es reicht also die Einstellung:
SET Optimize OFF
SET Smartfilter OFF
SET Rushmore OFF
Gruß Stefan
Es reicht also die Einstellung:
SET Optimize OFF
SET Smartfilter OFF
SET Rushmore OFF
Gruß Stefan