ProtocolDecoderException: No appropriate message decoder

Added by eggmaster about 1 year ago

Hi,

bei meiner SIMON Kommunikation tritt gelegentlich folgende Exception auf:

[NioProcessor-2] ERROR de.root1.simon.Dispatcher - exception Caught. thread=NioProcessor-2 session=0x00000001. Exception:
org.apache.mina.filter.codec.ProtocolDecoderException: No appropriate message decoder: 00 00 00 02 00 00 00 36 AC ED 00 05 73 72 01 00 0E 6A 61 76 61 2E 6C 61 6E 67 2E 4C 6F 6E 67 78 72 01 00 10 6A 61 76 61 2E 6C 61 6E 67 2E 4E 75 6D 62 65 72 78 70 00 00 00 00 01 8F B7 E1 00 00 00 36 AC ED 00 05 73 72 01 00 0E 6A 61 76 61 2E 6C 61 6E 67 2E 4C 6F 6E 67 78 72 01 00 10 6A 61 76 61 2E 6C 61 6E 67 2E 4E 75 6D 62 65 72 78 70 00 00 00 00 00 1A CB 18 (Hexdump: 00 00 00 02 00 00 00 36 AC ED 00 05 73 72 01 00 0E 6A 61 76 61 2E 6C 61 6E 67 2E 4C 6F 6E 67 78 72 01 00 10 6A 61 76 61 2E 6C 61 6E 67 2E 4E 75 6D 62 65 72 78 70 00 00 00 00 01 8F B7 E1 00 00 00 36 AC ED 00 05 73 72 01 00 0E 6A 61 76 61 2E 6C 61 6E 67 2E 4C 6F 6E 67 78 72 01 00 10 6A 61 76 61 2E 6C 61 6E 67 2E 4E 75 6D 62 65 72 78 70 00 00 00 00 00 1A CB 18)
at org.apache.mina.filter.codec.demux.DemuxingProtocolDecoder.doDecode(DemuxingProtocolDecoder.java:176)
at org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocolDecoder.java:176)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:230)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:943)
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:109)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:535)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:697)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:651)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:640)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1097)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Anschließend kommt es dann zu folgender Exception:

de.root1.simon.exceptions.SimonException: An error occured while reading a message for remote object 'SimonRemoteInstance[Client$Monitor|ip=localhost/127.0.0.1:8652;sessionID=1;remoteObjectHash=1814577197]'. Error message: Error while decoding invoke request
at de.root1.simon.ProcessMessageRunnable.processError(ProcessMessageRunnable.java:741)
at de.root1.simon.ProcessMessageRunnable.run(ProcessMessageRunnable.java:161)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at de.root1.simon.LookupTable.getMethod(LookupTable.java:401)
at de.root1.simon.codec.base.MsgInvokeDecoder.decodeBody(MsgInvokeDecoder.java:67)
at de.root1.simon.codec.base.AbstractMessageDecoder.decode(AbstractMessageDecoder.java:97)
at org.apache.mina.filter.codec.demux.DemuxingProtocolDecoder.doDecode(DemuxingProtocolDecoder.java:188)
at org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocolDecoder.java:176)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:230)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:943)
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:109)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:535)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:697)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:651)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:640)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1097)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
... 3 more

Hier wurde scheinbar das Binding aufgehoben (keine Ahnung warum) und die entsprechende bindings-Map in LookupTable liefert <null>.
Leider weiß ich so garn nicht wo ich nach dem Fehler suchen soll, zumahl das ganze nicht so einfach zu reproduzieren ist.
Ich nutze SIMON 1.3.0, allerdings trat dies bereits bei 1.2.1 auf.

Grüße,
Daniel


Replies (24)

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Die obige Exception besagt, dass Daten empfangen wurden, die nicht in das Protokoll von SIMON passen. Resultat ist, dass die Session geschlossen wird und damit die Verbindung für tot erklärt wird.

Eine Nachricht hat in SIMON folgenden Header:

Byte 0: Art der Nachricht
Byte 1..4: Sequenz-Nummer der Nachricht
Byte 5..8: Länge des Bodys
Byte 9..x: Body

Der Fehler oben loggt die Bytes der Nachricht raus:

00 = MSG_NAME_LOOKUP
00 00 02 00 = Sequenz 512
00 00 36 AC = 13996 Bytes im Body

Das passt nicht. Ein Name-Loopup enthält lediglich einen String der das Remote-Objekt angibt. Aber ein fast 14 Kilobyte großer Name für ein Remote-Objekt ist unnatürlich.

Die nachfolgenden Bytes ergeben einen wirren String, der an ein serialisiertes Objekt erinnert (siehe Anhang).

SIMON Nachrichten können nicht "von alleine" durcheinander geraten und gehen auch nicht von alleine kaputt. Ich kann's nicht exakt belegen, aber ich tippe auf Firewall, einen Virenscanner der einen Hook auf die Netzwerkkommunikation hat oder einen "transparenten Proxy" der da dazwischen pfuscht.

Kannst du ein Beispiel-Programm erstellen das den Fehler reproduziert?


Aus welcher Version stammt der Stacktrace der Exception?

folgende Zeile ist noch okay:

at de.root1.simon.codec.base.MsgInvokeDecoder.decodeBody(MsgInvokeDecoder.java:67)

Aber

at de.root1.simon.LookupTable.getMethod(LookupTable.java:401)

diese Zeile ist nicht in getMethod(), sondern computeMthodHashMap() ...

Das gilt sowohl für Version 1.2.1 als auch 1.3.0 ...

Kann es sein dass bei der irgendwas "schräg" ist?

Gruß
Alex

RE: ProtocolDecoderException: No appropriate message decoder - Added by eggmaster about 1 year ago

Hi Alex,

danke für deine superschnelle Antwort!
Der Stacktrace ist von 1.3.0.
Ich hatte das Statement in Zeile 383 aufgedröselt, weil ich wissen wollte was genau <null> ist. Sorry, hatte ich beim Stacktrace nicht mehr dran gedacht.
Die NPE ist ja nur eine Folge der geschlossenen Verbindung und von daher eher uninteressant. Wichtiger ist, warum die Gegenseite die Verbindung schließt.

Firewalls und Co würde ich erstmal ausschließen, da es Auftritt egal ob der Remote Part im Netzwerk läuft oder Lokal.

Die Gegenseite meldet folgendes:
2016.03.17 11:34:17 [pool-3-thread-1] ERROR de.root1.simon.SimonProxy - Problematic error while invoking 'SimonRemoteInstance[Client$Monitor|ip=localhost/127.0.0.1:8652;sessionID=1;remoteObjectHash=1814577197]#public abstract void de.potsdam.gfz.gms.shared.ProgressInterface.updateProgress(long,long)'. Shutting down server connection.

Das sieht nach den beiden Longs aus der nicht dekodierbaren Nachricht aus, kann aber auch täuschen.

Beispiel habe ich dir per eMail geschickt.

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Kann den Fehler reproduzieren. Verrückte Sache....
Hab bisweilen mal am Timing auf Client-Seite gedreht. Auch mit 1000ms Wartezeit lässt sich der Fehler reproduzieren. Das ist eigentlich ein gutes Zeichen. Werde das mal im Detail debuggen müssen.
Melde mich wenn ich mehr Details hab.

Gruß
Alex

RE: ProtocolDecoderException: No appropriate message decoder - Added by eggmaster about 1 year ago

Puh, hatte schon an mir gezweifelt. Falls du weiteren Input brauchst sag bescheid.

Grüße
Daniel

PS: Als Workaround hatte ich einfach die Exception gefangen und die Verbindung neu aufgebaut. Nach dem Neuaufbau der Verbindung trat der Fehler dann merkwürdigerweise nicht mehr auf. Vielleicht hilft das ja beim Debuggen. Scheint also nur bedingt an der Nebenläufigkeit zu liegen.

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Erste Erkenntnis:

Wenn ich Debug am Client und Server einschalte, gibt's keinen Fehler:

public static void main(String[] args) throws Exception {
System.setProperty("de.root1.simon.debug", "true");
....

Das würde auf ein Timing-Problem hindeuten. Aber einmal pro Sekunde eine Methode am Server aufrufen ist ja kein Stress.

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Auch ist es immer wieder dieselbe Nachricht die den Fehler auslöst ...

No appropriate message decoder: 00 00 00 02 00 00 00 36 AC ED 00 05 73 72 01 00 0E 6A 61 76

Ist schwer nachzuvollziehen wo der Fehler liegt wenn ich keine Debug-Ausgabe bekomme. Muss mal schauen wie ich das weiter runterbreche.

[update]
Schalte ich den Callback vom Server zum Client ab, läuft's... Muss also was in der Richtung sein.

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Bekommst du in deiner Ausgabe am Client auch immer wieder folgende Meldung?

M�r 17, 2016 2:41:49 PM org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor run

WARNUNG: Create a new selector. Selected is 0, delta = 0

??? Das entstammt der MINA Implementierung. Anscheinend gibt es hier eine Race-Condition wo der NIO Selector() etwas buggy ist und MINA deshalb einen neuen erzeugt. Mir scheint hier ist irgendwas in MINA nicht 100% synchronisiert so dass Daten verloren gehen.
Muss der Sache mal weiter nachgehen.

Das Problem lässt sich wohl temporär umgehen, wenn man im Server den progress-callback nicht ganz so häufig aufruft.

Seltsam ist aber, dass das in bisherigen Tests, auch extreme Lasttests nicht aufgefallen ist...

Bin weiter dran, wird aber ne Weile dauern, da offenbar kein einfaches Problem.

Gruß
Alex

RE: ProtocolDecoderException: No appropriate message decoder - Added by eggmaster about 1 year ago

Die "Create a new selector" Warning bekomme ich nicht, kann aber auch an meinen logging Einstellungen liegen.
Mich verwundert nur, dass wie bereits oben beschrieben der Fehler nur einmal Auftritt und nach dem Fangen der Exception und erneuten lookup alles in Butter ist.

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Mit der Exception ist die Session tot, damit auch die Socketverbindung. Wenn du das abfängst und einen neuen Lookup machst, dann machst du damit auch eine neue Socketverbindung. Klaro dass dann alles in Butter ist.

Schau mal wie dein Log eingestellt ist und ob du nicht auch diese Meldung bekommst.

Je häufiger die Meldung bei mir in der Konsole erscheint, desto näher rückt gefühlt die Exception.

In SIMON selbst kann ich das Problem nicht einfach durch ein fangen der Exception behandeln. An der Session bzw. Verbindung hängt ja ggf. eine Anwendungssession die ggf. neu aufgebaut werden muss.

Ich kann höchstens versuchen die tatsächliche Ursache zu finden. Bedingt durch das Timing ist das aber wirklich nicht einfach und wird viel Zeit kosten.
Ich werde mal die MINA Mailingliste befragen ob da jemand was weiß oder eine Idee hat. Da das Umfeld (mit SIMON und Co.) aber recht komplex ist, erwarte ich hier keine Detail-Infos :-(

Du könntest mal noch durchgeben welches OS und welche Java Version und Plattform du nutzt.

Heute Abend kann ich das ganze nochmal mit Linux testen um meine Theorie (dass es am neu-erstellen des Selectors liegt) zu untermauern und mehr Details für die MINA Entwickler zu haben.

Gruß
Alex

P.S. Schau auch mal ob bei die die Byte-Folge in der Exception auch immer die gleiche ist.... Bei mir scheint sie ausnahmslos identisch zu sein... Was schon sehr seltsam ist, da der Fehler nicht immer zur selben Zeit auftritt.

RE: ProtocolDecoderException: No appropriate message decoder - Added by eggmaster about 1 year ago

Das mit der neuen Socketverbindung ist klar, nur trat die MINA Exception dann nicht auf, obwohl ich mit dem Prozedere unverändert weiter gemacht habe.
Wobei ich gerade sehe, dass die Exception doch kommt, hat diesmal nur über eine Stunde gedauert. Ist also wahrscheinlich nicht relevant.

OS: Ubuntu 14.04
Java: Oracle JavaSE 1.8
Plattform: ? meinst du die IDE? da nutze ich Eclipse, tritt allerdings auch bei exportierten standalone jars auf.

Der HexDump ist immer: 00 00 00 02 00 00 00 36 AC ED 00 05 73 72 01 00 0E 6A 61 76 61 2E 6C ...

Bin jetzt nicht der Logging Spezi, wie/wo kann ich den Logging-Level für MINA angeben?
Habe alternativ gerade mal nen Breakpoint an die Stelle (AbstractPollingIoProcessor:1069) gesetzt wo die Warning ausgelöst wird.
Wurde aber nicht getriggert :-(

Falls ich sonst noch irgendwie helfen kann, einfach melden.

Grüße,
Daniel

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Hallo Daniel,

MINA Entwickler hab ich mittlerweile angeschrieben, aber noch keine Nachricht zurück erhalten. Ich muss da nochmal nachhaken.

Bzgl. Logging für MINA einschalten muss ich dir die Infos mal raus schreiben. Dauert aber eine Weile. Bin gerade im Urlaub und von da aus nur begrenzt handlungsfähig.

Gruß
Alex

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Hab noch keine brauchbare Antwort von MINA erhalten.

Wie bist du bis jetzt mit dem "Problem" verblieben?

RE: ProtocolDecoderException: No appropriate message decoder - Added by eggmaster about 1 year ago

Hi Alex,

zur Zeit registriere ich einen UncaughtExceptionHandler, mittels dem ich die SIMON/MINA Exception abfange und baue dann die Verbindung neu auf. Interessanterweise ist die Verbindung dann sehr viel stabiler und es dauert (je nach verursachtem Traffic) über eine Stunde (nach dem Start dauert es i.d.R. nur wenige Minuten) bis die Exception erneut kommt.

Grüße,
Daniel

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 year ago

Hallo Daniel,

das ist nicht wirklich "schön" (auch für mich nicht), aber solange es funktioniert, okay.

Man müsste das Problem wohl direkt mit Apache MINA (ohne SIMON) nachstellen damit sich da seitens MINA etwas regt... Aktuell schaut das aber nach beliebig viel Aufwand aus. Könnte sehr gut sein dass ohne SIMON eine Rahmenbedingung wegfällt und der Fehler sich dann nicht mehr reproduzieren lässt :-(

Ich werde es bei Gelegenheit nochmal auf der MINA Mailingliste ansprechen.

Gruß und Danke für's Feedback,
Alex

RE: ProtocolDecoderException: No appropriate message decoder - Added by eggmaster 10 months ago

Hi Alex,

hat sich an dieser Front eigentlich schon etwas getan?

Grüße,
Daniel

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian 10 months ago

Hallo Daniel,

leider nein. Ich hoffe dem Problem mit einem Update von MINA begegnen zu können. Aber aktuell hab ich schon die neuste MINA Version im Einsatz :-(

ist aber schon interessant, dass dieses Problem nur in bestimmten Konstellationen auftritt. Bis dato hab ich noch von keinem anderen SIMON User von diesem Problem berichtet bekommen.

Gruß
Alex

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian 10 months ago

Ich hab bei den MINA Entwicklern ein weiteres mal angefragt. Dieses mal scheint das Problem auf Interesse gestoßen zu sein. Ich werde denen mal den Testcode zum debuggen zukommen lassen.

Gruß
Alex

RE: ProtocolDecoderException: No appropriate message decoder - Added by eggmaster 10 months ago

Ist ok. Dann lassen wir uns mal überraschen, was die Jungs dazu sagen.

Grüße,
Daniel

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian 10 months ago

So, hab bereits ein Feedback.

Kurz zusammengefasst:

  • Der Fehler lässt sich bei den MINA Entwicklern reproduzieren, aber ohne die "Create a new selector" Meldung
  • So auf den ersten Blick hab ich in SIMON alles richtig gemacht
  • Man sollte ein Issue in deren Bugtracker dafür aufmachen (mach ich gleich noch), denn es ist definitiv ein Bug
  • Mein Code ist so umfangreich, dass es wohl mehrere Stunden bedarf für die Entwickler das Problem definitiv einzugrenzen/zu finden
  • Ein Tipp ist, dass ich im Code das leeren des Puffern sicherstelle (sollte eigtl. schon so sein)
  • Ein weiterer Tipp ist den ProtocolCodec umstellen von mulitplexing auf cumulative ... Ich weiß aber noch nicht wie heftig diese Umstellung sein wird

Bis dato also wenig positives für dich und dein Code-Problem :-(

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian 10 months ago

Das mit dem Cumulative ProtocolCodec hab ich mir eben angeschaut. Das macht die Sache "anders", aber nicht unbedingt "besser".

Statt einen Message-Decoder nach dem anderen zu fragen ob die Nachricht decodiert werden kann, würde das in einem switch/case enden. Das ist zwar einen ticken schneller, aber produziert auch mehr Code auf meiner Seite. Stattdessen bleib ich erstmal beim multiplexing Ansatz. Das macht meinen Code wartbarer und kürzer.
Wenn ich mal noch 1-5% mehr Leistung brauche, schaue ich mir das nochmal an.
Am eigentlichen Problem würde das sowieso nichts ändern.

Bleibt noch die Sache mit dem Puffer den ich prüfen soll und das Bugticket für MINA.

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian 10 months ago

Ich dachte mir, ich convertiere die Hex-Daten mal zu einem String und schau was draus wird. Vielleicht hat sich ja etwas leserliches darin versteckt (was bei einem Lookup ja durchaus möglich und zu erwarten ist. ?? = "nicht druckbare Zeichen"):

00 -> ??
00 -> ??
00 -> ??
02 -> ??
00 -> ??
00 -> ??
00 -> ??
36 -> 6
AC -> ¬
ED -> í
00 -> ??
05 -> ??
73 -> s
72 -> r
01 -> ??
00 -> ??
0E -> ??
6A -> j
61 -> a
76 -> v
61 -> a
2E -> .
6C -> l
61 -> a
6E -> n
67 -> g
2E -> .
4C -> L
6F -> o
6E -> n
67 -> g
78 -> x
72 -> r
01 -> ??
00 -> ??
10 -> ??
6A -> j
61 -> a
76 -> v
61 -> a
2E -> .
6C -> l
61 -> a
6E -> n
67 -> g
2E -> .
4E -> N
75 -> u
6D -> m
62 -> b
65 -> e
72 -> r
78 -> x
70 -> p
00 -> ??
00 -> ??
00 -> ??
00 -> ??
01 -> ??
8F -> ??
B7 -> ·
E1 -> á
00 -> ??
00 -> ??
00 -> ??
36 -> 6
AC -> ¬
ED -> í
00 -> ??
05 -> ??
73 -> s
72 -> r
01 -> ??
00 -> ??
0E -> ??
6A -> j
61 -> a
76 -> v
61 -> a
2E -> .
6C -> l
61 -> a
6E -> n
67 -> g
2E -> .
4C -> L
6F -> o
6E -> n
67 -> g
78 -> x
72 -> r
01 -> ??
00 -> ??
10 -> ??
6A -> j
61 -> a
76 -> v
61 -> a
2E -> .
6C -> l
61 -> a
6E -> n
67 -> g
2E -> .
4E -> N
75 -> u
6D -> m
62 -> b
65 -> e
72 -> r
78 -> x
70 -> p
00 -> ??
00 -> ??
00 -> ??
00 -> ??
00 -> ??
1A -> ??
CB -> Ë
18 -> ??

Hab noch kein Plan wo das java.lang.Long und java-lang.Number her kommen könnte. Aber ich finde es heraus.

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian 10 months ago

Scheint aus der Serialisierung der Methodenaufrufargumente zu kommen.

Da hier doch "lesbare" Teile "ankommen", gehe ich davon aus dass schon auf Senderseite (in diesem Fall Client) etwas schief läuft.

Da es immer an der selben Stelle (Sequenz 512?) passiert, gehe ich davon aus dass der Fehler irgendwo hier zu suchen ist:

AbstractMessageEncoder#putMessageToBuffer()

Dort wird in den ersten drei Codezeilen erstmal die Nachricht encodiert (msgBuffer).
Dann wird ein neuer Buffer erzeugt der Platz für Header UND encodierte Nachricht hat, und dann wird alles in diesen Buffer gesteckt.

Da kann sowohl die größe der Nachricht als auch die Nachricht selbst "verstümmelt" werden wenn etwas schief läuft.

Ist nur die Frage was. Ich schau mir das mal weiter an.

RE: ProtocolDecoderException: No appropriate message decoder - Added by eggmaster about 2 months ago

Hi Alex,

gibt es denn an dieser Front Fortschritte?

Grüße,
Daniel

RE: ProtocolDecoderException: No appropriate message decoder - Added by achristian about 1 month ago

Sorry,
weder kam nochmal etwas von seiten der MINA Entwickler, noch bin ich fündig geworden. Das wird unter der Haube recht schnell komplex und aufwendig, vor allem wenn es um solche Timing-Geschichten geht. Mit dem Debugger dran änder sich auch das Zeitliche verhalten ...
Bis dato hat auch kein weiterer Anwender dieses Problem berichtet, womit der Fehler nur diesen unter diesen etwas spezielleren Umständen zu Tage tritt.

Gruß
Alex

(1-24/24)