Page 1 of 1

Kommunikationsproblem (timeouts)

Posted: Fri 17 Dec 2010, 17:18
by Zenox
Har med senaste version av server (Linux.0.9.0.33.RC2) och klient (Windows.0.9.0.19.RC2) fått timeouts väldigt ofta. Det sker var och varannan gång vid förfrågningar mot SwitchKingFrameworkServiceHost som ligger på servern port 8080.

Bra att känna till: Servern har bara port 8080 öppen (och några till som inte borde spela någon roll, ex 80, 443 mfl).

Jag startar igång servern så här:

Code: Select all

MONO_LOG_LEVEL=info MONO_LOG_MASK=dll /opt/mono-2.6/bin/mono SwitchKing.exe terminal 192.168.1.10 8080 8800
Sedan kopplar jag upp Windows klienten utan problem mot servern.

Kan trycka av och på ett par enheter några gånger men sedan fastnar hela klienten ihop. Den timar ur även när jag går in i Options för valfri enhet eller annat.

Efter klienten fryst i 1 minut får man det här felmeddelandet:

Code: Select all

Level 1) The request channel timed out while waiting for a reply after 00:00:59.9990000. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout. 
Level 2) The HTTP request to 'http://192.168.1.10:8080/SwitchKingFrameworkServiceHost' has exceeded the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout. 
Level 3) The operation has timed out

StackTrace for Level 1:

Server stack trace: 
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at SwitchKing.Client.GUI.SKSrv.FrameworkService.GetSchedulesByOwnerDeviceId(Int32 id)
   at SwitchKing.Client.GUI.frmDeviceOptions.frmDeviceOptions_Load(Object sender, EventArgs e)
Testar jag telnet in mot serverns port 8080 så får man svar, så tjänsten lever där i alla fall. Stänger jag ner klienten helt och startar om ger den ändå timeout direkt vid splashscreen i början. Startar man om servern på Linux och sedan kopplar upp sig går det igång som vanligt, tills man gjort några anrop igen.

Re: Kommunikationsproblem (timeouts)

Posted: Fri 17 Dec 2010, 17:47
by Martin
Vad står det i loggfilen? Något som kan kasta ljus över det hela?

Började detta med senaste versionen eller fanns det redan tidigare?

Re: Kommunikationsproblem (timeouts)

Posted: Fri 17 Dec 2010, 17:53
by Martin
Hur många datakällor och enheter har du och vad har du för typ av datakällor?

Re: Kommunikationsproblem (timeouts)

Posted: Fri 17 Dec 2010, 18:43
by Zenox
Har bara märkt det nu i senaste versionen. Samtidigt har jag ganska nyligen uppgraderat till Debian Squeeze istället för Debian Lenny för att få nyare paket. Använder samma version av Mono och kör jag tdtool flera gånger fungerar det hela tiden med.

Har 4 stycken enheter. Klistrar in tellstick.conf så du ser vilka:

Code: Select all

deviceNode = "/dev/tellstick"
device {
  id = 1
  name = "Lampor, Matrum"
  controller = 0
  protocol = "risingsun"
  model = "codeswitch"
  parameters {
    # devices = ""
    house = "1"
    unit = "1"
    # code = ""
    # system = ""
    # units = ""
    # fade = ""
  }
}
device {
  id = 2
  name = "Lampor, V-rum"
  controller = 0
  protocol = "risingsun"
  model = "codeswitch"
  parameters {
    # devices = ""
    house = "1"
    unit = "2"
    # code = ""
    # system = ""
    # units = ""
    # fade = ""
  }
}
device {
  id = 3
  name = "Motorvärmare, Garage"
  controller = 0
  protocol = "everflourish"
  model = "selflearning-switch:gao"
  parameters {
    # devices = ""
    house = "100"
    unit = "1"
    # code = ""
    # system = ""
    # units = ""
    # fade = ""
  }
}
device {
  id = 4
  name = "Julbelysning, V-rum"
  controller = 0
  protocol = "risingsun"
  model = "codeswitch"
  parameters {
    # devices = ""
    house = "4"
    unit = "1"
    # code = ""
    # system = ""
    # units = ""
    # fade = ""
  }
}
Skickar med server loggen också. Kollat litegrann men tror du kan hitta lättare i den.

Re: Kommunikationsproblem (timeouts)

Posted: Fri 17 Dec 2010, 18:48
by Martin
Krävs det att du gör någonting eller dör klienten självmant?

Jag har kört ett tag med klienten öppen och ett par datakällor och har skickat ett antal on/off men kan tyvärr inte se samma effekt... :|

Re: Kommunikationsproblem (timeouts)

Posted: Fri 17 Dec 2010, 19:09
by Zenox
Puh.

Jag körde med samma version av Mono (fast omkompilerad för Debian Squeeze då). Var och varannan gång klienten gjorde anrop till servern så hängde den tills servern blev omstartad.

Upptäckte att Mono 2.6.7 finns i APT så installerade den versionen istället. Nu fungerar allt klockrent. Testat att ta upp enheterna och slå av och på en massa gånger utan problem.

Måste blivit nått konstigt i kompileringen av Mono på Squeeze av någon anledning. Bättre att köra via pakethanteraren ivf som helst så får man uppgraderingar på köpet så nu blev allt jättebra :)

Himla tack för snabb feedback förresten, ni gör ett kanonjobb på det här projektet!

Re: Kommunikationsproblem (timeouts)

Posted: Fri 17 Dec 2010, 20:14
by Martin
Bra att det fixade sig & tack för de värmande orden :wave: