12. marts 2003 - 22:14Der er
15 kommentarer og 2 løsninger
c5 / større problem ! !
Efter at have læst i et andet indlæg i denne gruppe, aktiverede jeg startup-parameteren "-p-" til c5, da vi altid har haft problemet med, at c5 kører meget langsomt - vi er dog også pt. altid 15-20 brugere på.
Og man må sige, at det gik meget hurtigere - alle i virksomheden var ganske tilfredse.
Så gik der et par timer... Nu kan intet faktureres mere. Ved forsøg på fakturering af ordre fremkommer følgende fejl:
1|Ordre: '303145' Ordrelinie med RecID '-214704619' eksisterer ikke 2|Ordre: '303145' Ordrelinie med RecID '-214703724' eksisterer ikke 3|Ordre: '303145' Ordrelinie med RecID '-214704619' eksisterer ikke 4|Ordre: '303145' Ordrelinie med RecID '-214704619' eksisterer ikke 5|Ordre: '303145' Ordre '' har ikke samme valuta. 6|Ordre: '303145' Ordre '' har ikke samme momskode. 7|Ordre: '303145' Vare '' Faktureret må ikke overstige antal 8|Ordre: '303145' Ordrelinie med RecID '-214703724' eksisterer ikke 9|Ordre '303145' Ordrelinie med RecId '-214703724 ' og Løbenummer '1133737' eksisterer ikke.
Osv osv...
Skal selvf. ikke kunne sige at det skyldes den parameter, men da den fjerner brug af sync/commit, kunne det jo tænkes at det gør databasen ustabil (og den er ret stor efterhånden, > 2GB). Jeg har indtil videre kørt "fix" på databasen og reindexeret OrdKart og OrdLinie, men lige lidt hjalp det. Nogle der har forslag? Det skulle _meget_ gerne op at køre igen inden 09:00 i morgen tidlig(!)
Skidt. C5 har en gammel svaghed, hvor den committer ordkart, men ikke linierne. Når der så er flere brugere på, så får den blandet de forskellige ordre og ordrelinier sammen. Når ordre 1 så bliver faktureret, og linierne ryger i arkiv, så kan den næste have problemer med sine linier i forhold til sin ordre.
Du har to muligheder - og ingen af dem er sjove. Indlæs backup fra i forgårs, og gårsdagens arbejde tastes igen. Eller slet ordre/linier indtil der er nogenlunde styr på det igen. Sidstnævnte kræver at du udskriver alle fejlmeddelelserne fra check, så I har noget at samle op på.
Næste punkt er, at I nok burde gå over til en SQL-database i stedet for Native, når jeres db er så stor, og med så mange bruger. Native er fænomænal i hastighed ved få brugere, mens SQL er det ved mange brugere. Samtidig er det min erfaring, at over 2Gb ikke er natives stærke side.
Og inden din chef nu piver over omkostningen, så kan du jo agumenter med at regnskabet trods alt er firmaets hjerte, og uden hjerte - ingen patient.
Jeg kan se at min RecID for er på 2122586288 et par uger for "ulykken". Kan den have skiftet fortegn fordi den er blevet for stor? Og, i så fald, kan man ændre dens størrelse og hvor?
Nu har jeg så lige fundet ud af, at det åbenbart er et "kendt" problem fra Microsoft/Navision/Damgaards side. Databaser over 2GB der når en RecID på lidt over 2 giga, skifter åbenbart til negativt fortegn, og det har databasen åbenbart ikke godt af(!).
Nu er jeg så ved at fixe det ved at rette nogle felter og derefter eksportere/importere HELE databasen. Det tager jo sin tid....
ps. en anelse forstyrrende at man ikke får disse informationer; specielt da vi for cirka 14 dage siden købte koder til at have en database større en 2GB... Det virker nærmest som et grundlag for et ubehageligt sagsanlæg.
Det er en kendt bug under 1.60. De har ikke noget at gøre med -p- parameteren. Det har noget at gøre med at jeres database er rundet 2GB i størrelse. Det er et tilfælde at det er sket på samme tid.
Recid har skiftet fortegn fordi at databasen er rundet 2GB.
Problemet rettes ved at: 1) Forlænge feltet 'Afdeling' i TmpKontoSum til 11 tegn. 1) Rette QTX'en DebRente i Pre-body-linie 154 (ca) Int2Str til Uint2Str og 2) rette MACROEN Forms i lokalmacroen NotatPreKey. Her ændres Int2Str til Uint2Str
Du skal for Guds skyld ikke gå igang med at eksportere/importere! Det er slet ikke nødvendigt.
Databasen som sådan har ikke noget problem med at håndtere negative RecID. Problemet er en lille ting i applikationen, som er rettet i de nyere versioner. Prblemet kommer først når databasen runder 4GB.
Nice nok du fik det løst og lækkert at have læst dette indlæg, da vi har en database på knap 1,8 GB det er jo altid rart at vide hvad der sker bag det næste sving. :)
Okay, det kan jeg jo godt se.. Har bare været lidt stresset siden i går eftermiddags. Endnu engang tak; send mig din adresser per e-mail og der er et par flasker på vej.
... og endnu et lille et; selv om svaret selvf. er accepteret: Jeg bruger (via ODBC) RecID hvis der skal et notat på en ordre-linie. Dvs. finder Ordreliniens RecID og sætter et notat ind i Notat med dette RecID. Der skal jeg vel så have rettet noget i min kode eller? Jeg går ud fra at Uint2Str står for Unsigned?
Hej Broholm. Den kendte jeg godt nok ikke - den med det negative recId og løsningen. Tak for den, det kunne jo være at man stadig har en kunde, der ikke er opdateret :-)
... pt kommer der samme notat på alle ordrelinier i vores system
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.