Code Monkey home page Code Monkey logo

coresubscriber's People

Contributors

jarped avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

kvold

coresubscriber's Issues

Unødvendig slash i changelogPath

Hvis man spesifiserer en temp-mappe slik "/data/temp/" ved kjøring av en synkroniseringsjobb og jobben feiler legges det til en ekstra unødvendig slash etter "temp/" i "changelogPath" i "abortedChangelog". Prøvd på en Centos 7-maskin.

F.eks:

<abortedChangelog changelogId="e9c15359-b057-43fd-97ef-cc5156d2f044" changelogPath="/data/temp//T01Bygning_Fylke_;e9c15359-b057-43fd-97ef-c5156d2f044S1550889241632000P1551061082958000Fg" endIndex="1551061082958000" transaction="" />

Bedre feilmelding når en Deegree-service/featurestore har en feil

En mappingfil var satt opp feil i Deegree, noe som gjorde at featurestore, og tilhørende service ikke fungerte.
CORESubscriberen ga da følgende feilmelding:

    One or more errors occurred. (Error while copying content to a stream.):^M            
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)        
   at CORESubscriber.Changelog.Send(XNode transactionDocument) in /data/CORESubscriber/CORESubscriber/Changelog.cs:line 127 
   at CORESubscriber.Changelog.PrepareAndSendTransaction(XElement transaction) in /data/CORESubscriber/CORESubscriber/Changelog.cs:line 103
   at System.Collections.Generic.List`1.ForEach(Action`1 action)                          
   at System.Collections.Generic.List`1.ForEach(Action`1 action)                          
   at System.Collections.Generic.List`1.ForEach(Action`1 action)                          
   at CORESubscriber.Program.SynchronizeDataset(XObject subscribed) in /data/CORESubscriber/CORESubscriber/Program.cs:line 123 
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToList()                     
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)                        
   at CORESubscriber.Program.SynchronizeSubscribedDatasets() in /data/CORESubscriber/CORESubscriber/Program.cs:line 92
   at CORESubscriber.Program.Main(String[] args) in /data/CORESubscriber/CORESubscriber/Program.cs:line 19

Ulempen er at denne feilmeldingen ikke gjør det umiddelbart klart at feilen ligger i Deegree. Det kunne ha vært greit med en ekstra beskjed som ba brukeren om å sjekke Deegree-oppsettet?

Vise posisjon i pågående synkronisering

Det hadde vært kjekt om man kunne få logget hvilken porsjon/transaksjonsfil som subscriberen jobber med til et hvert tidspunkt. Slik kan man enklere følge med fremgangen og få et inntrykk av hvor mye det er som gjenstår.

F.eks. noe slikt:

Working on transaction 247/470.
<wfs:TransactionSummary xmlns:wfs="http://www.opengis.net/wfs/2.0">
  <wfs:totalInserted>5000</wfs:totalInserted>
  <wfs:totalUpdated>0</wfs:totalUpdated>
  <wfs:totalReplaced>0</wfs:totalReplaced>
  <wfs:totalDeleted>0</wfs:totalDeleted>
</wfs:TransactionSummary>
Working on transaction 248/470.
<wfs:TransactionSummary xmlns:wfs="http://www.opengis.net/wfs/2.0">
  <wfs:totalInserted>5000</wfs:totalInserted>
  <wfs:totalUpdated>0</wfs:totalUpdated>
  <wfs:totalReplaced>0</wfs:totalReplaced>
  <wfs:totalDeleted>0</wfs:totalDeleted>
</wfs:TransactionSummary>

Subscriberen har filstier som er relative til mappen man befinner seg i når subscriberen kjøres

Det ser ut som om COREsubscriber er avhengig av at man befinner seg i et visst sub-directory når det kjøres. Ellers klarer ikke COREsubscriber å finne de andre filene den er avhengig av.

Når jeg f.eks. befinner meg i /data og kjører COREsubscriber direkte derfra får jeg slike problemer (kjører i en Centos 7 maskin):

Retrieving provider info: "/data/CORESubscriber/CORESubscriber/bin/Release/netcoreapp2.1/ubuntu-x64/CORESubscriber add "https://providerurl" "username" "password" "/data/lufthavn_5973_i5.xml""
stdout: Could not find a part of the path '/data/Queries/GetCapabilities.xml'.

Hvis jeg derimot beveger meg til

/data/CORESubscriber/CORESubscriber/

og så kjører programmet derfra vil det fungere:

bin/Release/netcoreapp2.1/ubuntu-x64/CORESubscriber add "https://providerurl" "username" "password" "/data/lufthavn_5973_i5.xml""

Stringbuilder klarer ikke å laste inn xml-objektene i minne

Ved synkronisering av FKB-vann får jeg beskjed om at programmet ikke har nok minne:

<wfs:TransactionSummary xmlns:wfs="http://www.opengis.net/wfs/2.0">
  <wfs:totalInserted>10000</wfs:totalInserted>
  <wfs:totalUpdated>0</wfs:totalUpdated>
  <wfs:totalReplaced>0</wfs:totalReplaced>
  <wfs:totalDeleted>0</wfs:totalDeleted>
</wfs:TransactionSummary>
Insufficient memory to continue the execution of the program.

Fra errorlog:

    Insufficient memory to continue the execution of the program.:^M
   at System.Text.StringBuilder.ExpandByABlock(Int32 minBlockCharCount)
   at System.Text.StringBuilder.Append(Char* value, Int32 valueCount)
   at System.Text.StringBuilder.Append(Char[] value, Int32 startIndex, Int32 charCount)
   at System.IO.StreamReader.ReadToEnd()
   at CORESubscriber.Changelog.GetChangelogXml(FileInfo fileInfo) in /data/CORESubscriber/CORESubscriber/Changelog.cs:line 67
   at CORESubscriber.Changelog.DoTransactions(FileInfo fileInfo) in /data/CORESubscriber/CORESubscriber/Changelog.cs:line 77
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at CORESubscriber.Program.SynchronizeDataset(XObject subscribed) in /data/CORESubscriber/CORESubscriber/Program.cs:line 123
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToList()
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at CORESubscriber.Program.SynchronizeSubscribedDatasets() in /data/CORESubscriber/CORESubscriber/Program.cs:line 92
   at CORESubscriber.Program.Main(String[] args) in /data/CORESubscriber/CORESubscriber/Program.cs:line 19

Det ser ut som om Stringbuilder ikke klarer å lese inn alle objektene i xml-filen, muligens en geometri som er for stor for Stringbuilder sin interne begrensning. For det er flere titalls ledige GB minne på serveren. Løsningen er kanskje å skrive til en fil i stedet for minne slik det er beskrevet her:
https://stackoverflow.com/questions/19087821/insufficient-memory-exception-even-if-30-gb-memory-is-free

Muligheter for å kjøre flere ${providerSettings}.xml-filer

Det hadde vært nyttig å kunne angi flere ${providerSettings}.xml-filer som så ble kjørt en etter en (eventuelt parallelt).
Dette fordi synkronisering og endringer i ${providerSettings}.xml kjøres automatisk hos oss. Hvert datasett har sin egen kopi av ${providerSettings}.xml for å redusere risikoen for at en feil i en skriptoperasjon påvirker andre datasett.

Kjøringen av så mange ${providerSettings}.xml-filer er selvfølgelig lett å løse hos oss med en loop over alle filene, men støtte for en liste av slike filer er noe som kunne ha vært "kjekt å ha" en gang i fremtiden.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.