Inhaltsverzeichnis

MessageSizeMax anpassen

MessageSizeMax ist eine Einstellung in Ice, die die maximale Größe einer Nachricht in KiB (Kibibyte) angibt. Genauere Informationen gibt es auf der Herstellerseite unter https://www.zeroc.com/doc/Ice-3.4.1/manual/PropRef.50.11.html#51122.

Ice wird als Schnittstelle zwischen dem Mumble-Server (Murmur) und einem beliebigen anderen Script/Programm verwendet, z. B. einem Admin-Interface, einem Mumble-Viewer oder Sonstigem.

Hat man einen sehr großen Server (bezogen auf Kommentare und Bilder) und benutzt z. B. die Funktion getTree() in Ice, dann kann die resultierende Nachricht - die den kompletten Kanalbaum samt Beschreibungen, etc. beinhaltet - größer sein als der Wert von MessageSizeMax und man bekommt je nach Programmiersprache eine Fehlermeldung wie:

In diesem Fall muss man den Wert erhöhen.

Um den Wert effektiv zu erhöhen, muss man ihn an beiden Endpunkten der Ice-Verbindung erhöhen, also sowohl am Endpunkt des Mumble-Servers als auch am Endpunkt des Scripts/Programms, über das man Daten mit dem Mumble-Server austauscht.

MessageSizeMax am Endpunkt Mumble-Server erhöhen

Auf dem Mumble-Server (Murmur) kann man mittlerweile die Größe von MessageSizeMax selbst festlegen. Die Voreinstellung in der mitgelieferten .ini-Konfigurationsdatei ist auf 65535 gesetzt - das entspricht 64 MebiByte, da die Angabe in KiB ausgewertet wird. Das reicht selbst für sehr große Server.

Möchte man den Wert noch größer einstellen, so gibt es zwei Möglichkeiten:

  1. Man macht das über Argumente beim Start des Mumble-Servers, die dann an Ice durchgereicht werden: Ice-Argumente an Ice durchreichen....
  2. Man ändert in der .ini-Konfigurationsdatei ganz unten im Bereich [Ice] die folgende Zeile:
    Ice.MessageSizeMax=65536

Diese Einstellung gilt nur für den Endpunkt Mumble-Server, der Endpunkt des Scripts/Programms muss man auch noch anpasst werden, siehe nächster Punkt.

MessageSizeMax am Endpunkt Script/Programm erhöhen

Allgemein

Wie man ganz allgemein Ice-Einstellungen in seinen Programmen festlegt, steht in folgender Liste zu den von Ice unterstützten Programmiersprachen: https://doc.zeroc.com/display/Ice/Setting+Properties.

Mumble Moderator (MuMo)

Siehe hier.

Python

Ice.loadSlice("--all -I/usr/share/Ice/slice /usr/share/Ice/slice/Murmur.ice")

props = Ice.createProperties([])
props.setProperty("Ice.MessageSizeMax", "65535")
id = Ice.InitializationData()
id.properties = props

ice = Ice.initialize(id)

Mumble-Django

Im aktuellen Mumble-Django 2.4 (wahrscheinlich auch entsprechend bei älteren Versionen) muss die Datei mumble-django/pyweb/mumble/MumbleCtlIce.py bzw. in Debian Squeeze nach Zeile 86 die folgende Zeile in derselben Einrückung eingefügt werden:

prop.setProperty("Ice.MessageSizeMax", "65535")

Am Ende sollte man das hier haben:

...
    prop = Ice.createProperties([])
    prop.setProperty("Ice.ImplicitContext", "Shared")
    prop.setProperty("Ice.MessageSizeMax", "65535")

    idd = Ice.InitializationData()
...

Nach einem Restart von Mumble-Django sollte nun wieder alles funktionieren.

Ein entsprechender Bugreport wurde bereits eingereicht :).

PHP

In die entsprechende php.ini eintragen:

ice.options=”--Ice.MessageSizeMax=65535″

Und danach den Server neustarten.

Offizielle Dokumentation bei Zeroc

Hier ist die offizielle Dokumentation zu MessageSizeMax: https://www.zeroc.com/doc/Ice-3.4.1/manual/PropRef.50.11.html#51122.