Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


En fråga.. Uppdatera ett program.

Postades av 2004-10-04 01:16:55 - Simon Edström, i forum operativ/teknik, Tråden har 6 Kommentarer och lästs av 1471 personer

Hejsan, jag har skrivit en proxy server och jag skulle vilja i efterhand kunna uppdatera denna eftersom..
Jag vill inte att alla mina klienter som är anslutna ska förlora kontakten med det dom håller på med.
Så jag undrar hur ska jag göra för att kunna uppdatera programmet i körning?

// Mvh Simon


Svara

Sv: En fråga.. Uppdatera ett program.

Postades av 2004-10-04 17:22:54 - Oskar Johansson

Vilket språk/teknik använder du?

En variant är att du skriver programmet så att programmet slutar ta emot nya anslutningar; på så vis kan du starta en ny instans fast av den uppdaterade versionen som tar emot nya anslutningar medan den gamla inte gör det.

Nackdel: Du kan inte använda samma sökväg till programmet hela tiden då exe-filen används när den ska ersättas. Dessutom kommer inte aktiva anslutningar att köras i det nya programmet

Om du kör t.ex. .net så kan du ha ett huvudprogram som sköter socketshanteringen. Sedan har du en dll som innehåller resten. Den kan laddas in dynamiskt i en egen AppDomain. Om du laddar dll:en på ett sätt som jag tror kallas Shadow så kopieras dll:en innan den exekveras vilket gör att du kan skriva över originalet. När du sedan ska uppgradera så kopierar du bara över den nya dll:en. I ditt program har du sedan lite kod som kollar om dll:en är en nyare version än den som används. Om så är fallet så skapar du en ny AppDomain till som allt nytt hamnar i. Den gamla lever kvar.

Eftersom att du skapar den nya instansen i en egen AppDomain så kan du när den gamla inte har några aktiva anslutningar längre skrota den. När du gör det så tas den gamla dll:en också bort ifrån minnet.

Fördel: Flexibelt! ;)
Nackdel: Precis som första; de aktiva anslutningarna kommer köras i gamla; endast nya kommer köras i nya


Svara

Sv: En fråga.. Uppdatera ett program.

Postades av 2004-10-04 17:50:56 - Mikael Johansson

Jag har inte en susning om detta, men rent logist, borde det inte gå att göra så att när du ska uppdatera så lägger det sig en "spökfil" som gör samma saker som den befintliga, sen kör den filen medans du uppdaterar den andra och när den är uppdaterad tar den över igen.

Som sagt, kan inget om det, men teoretiskt borde det väl fungera?


Svara

Sv: En fråga.. Uppdatera ett program.

Postades av 2004-10-04 19:07:05 - Oskar Johansson

När han säger att han inte vill avbryta användaren så tolkat jag det som att han inte vill stänga en socket. Sockets går inte att föra över programgränserna vilket behövs i din lösning ;) Det finns ingen bra lösning på ett sådant problem :/


Svara

Sv: En fråga.. Uppdatera ett program.

Postades av 2004-10-04 19:25:40 - Thomas Roman

Jag löste samma problem förut genom att dela upp programmet i 2 delar. En del som enbart tar hand om uppkopplingarna och en annan del som innehåller själva programmet.
Del 1 och Del 2 kommunicerar sen med varandra på något sätt (jag löste det genom winsock, vilket kanske inte är den bästa lösningen).

Exempel:
En användare ansluter till Del 1.
Del 1 skickar över alla data som den får från användaren till Del 2.
Del 2 tar hand om datan och skickar ett svar till Del 1.
Del 1 skickar vidare svaret till användaren.
(osv)

På det här sättet går det att stänga ner Del 2 och uppdatera den utan att förlora alla klienter som sitter på Del 1.


Thomas


Svara

Sv: En fråga.. Uppdatera ett program.

Postades av 2004-10-04 19:54:35 - Oskar Johansson

Hänger som sagt på vilken teknik det handlar om; i t.ex. .net finns det bättre sätt :)


Svara

Sv: En fråga.. Uppdatera ett program.

Postades av 2004-10-04 20:38:18 - Simon Edström

Råkade skicka det till fel Forum.. Jag skulle skicka det till Visual Basic Forum för det är det jag använder.. ;) Men det är juh även ett svar..
Jag är inte så high på Visual Basic eller programmering, jag var tvungen att ha en IRC Proxy och då lärde jag mej IRC RFCn så jag skulle uppskatta om det finns en länk eller värkligen en välbeskriven lösning ;)
// Mvh Simon


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 642
27 958
271 741
534
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies