Zugriff auf die repqueue.adt

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1969
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 31 Mal

Zugriff auf die repqueue.adt

Beitrag von Werner_Bayern »

Servus,

Anfängerfrage: Wir haben 2 ADS Replikationsserver und jetzt geht's um die Auswertung der Queue, falls Fehler auftreten. Dann stoppt ja die Abarbeitung der Replikation. Wir arbeiten mit einem Datadictionary, dort ist die __subName auch automatisch enthalten. Mittels des Data Architecten kann diese auch geöffnet werden, per Xbase++ schaffe ich das nicht.

Ich möchte per SQL drauf zugreifen, bekomme aber bei:

Code: Alles auswählen

query("select * from repqueue where not empty(ErrorCode) order by EntryID desc"
die Fehlermeldung, dass ich diese nicht als free table öffnen kann...

Bei

Code: Alles auswählen

query("select * from __subName where not empty(ErrorCode) order by EntryID desc"
die Fehlermeldung:

Code: Alles auswählen

Xbase++ Version     : Xbase++ (R) Version 2.00.1542
default DBE         : ADSDBE
------------------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: L VALUE: .T.
          -> VALTYPE: O CLASS: dacSession
          -> VALTYPE: C VALUE: <CURSOR> ¤q</CURSOR>
          -> VALTYPE: C VALUE: queue
oError:canDefault   : J
oError:canRetry     : J
oError:canSubstitute: N
oError:cargo        : NIL
oError:description  : Datei kann nicht erzeugt werden
oError:filename     : 
oError:genCode      :         70
oError:operation    : DbUseArea
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :       8031
oError:subSystem    : BASE
oError:thread       :          3
oError:tries        :          1
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von ADSSQLSTATEMENT:QUERY(288)
Aufgerufen von ADSSQL:QUERY(2515)
Aufgerufen von CHECKREPQUEUE(1505)
Es muss irgendwas mit dem ADT-Format zu tun haben, da wir im DD ansonsten dbfntx haben, obwohl dort bei TableType adt eingetragen ist...
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 530
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 19 Mal
Danksagung erhalten: 89 Mal
Kontaktdaten:

Re: Zugriff auf die repqueue.adt

Beitrag von Marcus Herz »

Code: Alles auswählen

query("select * from repqueue where not empty(ErrorCode) order by EntryID desc"
da hast du dich wohl vertippt: repqueue -> __subname.
Probier mal einen alias:

Code: Alles auswählen

query("select * from __subName subname where not empty(ErrorCode) order by EntryID desc"
vielleicht hat ja Alaska mit dem doppelten __ ein Problem.
- Kann man die gleiche DacSession für 2 Dateitypen NTX/ADT konfigurieren? Bin ich mir nicht sicher.
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 486
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 37 Mal
Kontaktdaten:

Re: Zugriff auf die repqueue.adt

Beitrag von nightcrawler »

Hallo Marcus,
man sollte DBFNTX, DBFCDX und ADSADT komplett durchmischen können, da vom ADS bei allen ADD-gebundenen intern quasi ADT angenommen wird;)
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1969
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 31 Mal

Re: Zugriff auf die repqueue.adt

Beitrag von Werner_Bayern »

Servus Marcus,

repqueue war nur ein Test, hab ja beide Beispiele gepostet.

Leider hilft auch Dein Tipp mit dem Alias nichts, gleiche Fehlermeldung.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 486
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 37 Mal
Kontaktdaten:

Re: Zugriff auf die repqueue.adt

Beitrag von nightcrawler »

schau mal in die ads_err, ob der Fehler drt mit geloggt wird. Daraus kannst du zB den genauen Tabellennamen mit Endung und Pfad erkennen.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1969
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 31 Mal

Re: Zugriff auf die repqueue.adt

Beitrag von Werner_Bayern »

Servus Joachim,

nein, da wird nichts diesbezüglich protokolliert, was ich auch nachvollziehen kann: Es ist ja auch eine Xbase++ - Fehlernummer, vermutlich macht hier der ADS brav seinen Job.

Bekomme aber mit einem anderen DD (anderer Datenbestand) in diesem Zusammenhang den Fehler 7074, was will der mir sagen?
Error 7074: The table ID stored in the Advantage Data Dictionary file does no match the ID of the table being opened.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 486
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 37 Mal
Kontaktdaten:

Re: Zugriff auf die repqueue.adt

Beitrag von nightcrawler »

Hallo Werner,
Du hast ein Dictionary und diesem eine (ADT)-Tabelle untergeschoben, welche nicht mit diesem Data Dictionary erzeugt wurde. ADS führt bei ADT Tabellen hier die ID des Dictionaries mit, damit die Struktur auf jeden Fall passt.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1969
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 31 Mal

Re: Zugriff auf die repqueue.adt

Beitrag von Werner_Bayern »

Servus Joachim,

danke, hab den Datenbestand komplett gelöscht, ja, da stimmte wohl was mit der __SUB (view auf repqueue.adt) nicht mehr. Bleibt das Problem des Zugriffs per SQL...
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 530
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 19 Mal
Danksagung erhalten: 89 Mal
Kontaktdaten:

Re: Zugriff auf die repqueue.adt

Beitrag von Marcus Herz »

Code: Alles auswählen

DbeInfo( COMPONENT_DATA , ADSDBE_TBL_MODE, ADSDBE_ADT )
DbeInfo( COMPONENT_ORDER, ADSDBE_TBL_MODE, ADSDBE_ADT )
Hat das nicht geholfen?
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1969
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 31 Mal

Re: Zugriff auf die repqueue.adt

Beitrag von Werner_Bayern »

näh, Datei kann nicht erzeugt werden...

Andere Dateien aus dem DD kann ich problemlos über ein SQL-Query auslesen...

Habs an Alaska gemeldet.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 486
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 37 Mal
Kontaktdaten:

Re: Zugriff auf die repqueue.adt

Beitrag von nightcrawler »

Hallo Werner,
falls Xbase++ hier Schwierigkeiten mit den Dateinamen macht kannst Du zur Not immer noch eine View erstellen:

Code: Alles auswählen

CREATE VIEW WernersRepQueue AS SELECT * FROM __subname
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1969
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 31 Mal

Re: Zugriff auf die repqueue.adt

Beitrag von Werner_Bayern »

Servus Joachim,

danke, einen ähnlichen Tipp hat mir schon Marcus mit "as" gegeben.

Immerhin bekomme ich hier einen ADS-Fehler:
Error 7200: AQE Error: State = HY000; NativeError = 5054; [SAP][Advantage SQL Engine][ASA] Error 5054: The command cannot be completed with the current user permissions. Cannot create view object in the data dictionary
Also habe ich in den connect-String noch die UID aufgenommen. Dann kommt ein neuer Xbase++-Fehler:
Xbase++ Version : Xbase++ (R) Version 2.00.1542
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: L VALUE: .T.
-> VALTYPE: O CLASS: dacSession
-> VALTYPE: C VALUE: <CURSOR> </CURSOR>
-> VALTYPE: C VALUE: QUERY
oError:canDefault : J
oError:canRetry : J
oError:canSubstitute: N
oError:cargo : {NIL, 5120, Error 5120: The function is no longer available.}
oError:description :
oError:filename :
oError:genCode : 8999
oError:operation : DbUseArea
oError:osCode : 0
oError:severity : 2
oError:subCode : 5381
oError:subSystem : BASE
oError:thread : 1
oError:tries : 1
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von ADSSQLSTATEMENT:QUERY(288)
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 486
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 37 Mal
Kontaktdaten:

Re: Zugriff auf die repqueue.adt

Beitrag von nightcrawler »

Hallo Werner,
gehe in das Dictionary direkt über ADSSYS und lege dort die View an. Dann kannst Du in Xbase++ darauf zugreifen wie auf eine Tabelle.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 530
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 19 Mal
Danksagung erhalten: 89 Mal
Kontaktdaten:

Re: Zugriff auf die repqueue.adt

Beitrag von Marcus Herz »

Code: Alles auswählen

CREATE VIEW WernersRepQueue AS SELECT * FROM __subname
Das musst du im ARC als ADSSYS ausführen.
In Xbase dann

Code: Alles auswählen

query("select * from WernersRepQueue where not empty(ErrorCode) order by EntryID desc"
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1969
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 14 Mal
Danksagung erhalten: 31 Mal

Re: Zugriff auf die repqueue.adt

Beitrag von Werner_Bayern »

Servus,

die View kann ich anlegen, aber dann wieder gleicher Fehler beim select auf die View: Datei kann nicht erzeugt werden.

Es ist sicher ein Fehler in Xbase++. Alaska hat sich aber leider diesbezüglich noch nicht gemeldet, aber schon mal einen anderen Fehler beim Zugriff auf den ADS bestätigt: http://www.alaska-software.com/scripts/ ... PDRID=7464
es grüßt

Werner

<when the music is over, turn off the lights!>
Antworten