Skip to main content

Konfiguration

Server-Konfiguration

Der Server kann über die ServerConfiguration konfiguriert werden. Zugriff darauf erhält man über ConfigurationManager.getServerConfiguration(). Mittels setServerConfiguration(ServerConfiguration serverConfiguration) kann eine eigene ServerConfiguration gesetzt werden, sofern ein eigenes Konfigurationsframework eingebunden werden soll. In der Regel ist dies aber nicht notwendig, da die Einstellungen auch direkt auf der bestehenden ServerConfiguration geändert werden können. Standardmäßig wird eine DefaultServerConfiguration zurückgegeben.

  • Tile Caching: Über die Methoden setTileCachingEnabled(boolean tileCachingEnabled)/isTileCachingEnabled() wird definiert, ob die auf dem Server gerenderten Kacheln dort gecached werden sollen. In der DefaultServerConfiguration ist dieser Wert standardmäßig auf false gesetzt.

  • Kompressionslevel des Tile Renderings bei Http-Requests: Über die Methoden setTileCompressionType(TileCompressionType tileCompressionType)/getTileCompressionType() wird definiert, wie der erzeugte PNG- oder WebP-Datenstrom beim TileRendering in den OutputStream für den Client geschrieben werden soll. Hierbei wird unterschieden zwischen ImageIO ("Best Compression", Default bis jadice 5.11.0.0), PNGJ in den Ausprägungen "Best Compression" und "Best Speed" und WebP in den Ausprägungen "Lossy" (Default) und "Lossless". Wenn WebP verwendet wird, prüft der Server bei einem Tile-Request, ob der Client WebP anzeigen kann. Ist das nicht der Fall, wird automatisch PNG über ImagIO (höchste Kompatibilität) zurückgeliefert. Die Werte sind über die Enum ServerConfiguration.TileCompressionType definiert.

  • Eine Einstellung, die vom Integrator an der Server-Konfiguration vorbei vorgenommen werden kann, ist die ScreenResolution. Diese wird über die Methode GraphicsEnvironment.setUserDefinedScreenResolution(int resolution) direkt auf dem GraphicsEnvironment der jadice document platform vorgenommen. Der aktuell eingestellte Wert kann also serverseitig zu jeder Zeit wie beschrieben gesetzt und über GraphicsEnvironment.getScreenResolution() abgefragt werden. Hintergrund dieser Konfiguration ist, dass an einigen Stellen in der jadice document platform die Auflösung über das GraphicEnvironment und nicht über die BaseRenderSettings) abgefragt wird. Auf dem lokalen Rechner gibt dies die Auflösung des Rechners (bei Windows in der Regel 96) zurück. Auf Servern wird in der Regel aufgrund einer HeadlessException jedoch der Wert 72 verwendet. Um dieses Verhalten zu vereinheitlichen, wird der Wert im jadice web toolkit auf 96 voreingestellt (davon ausgehend, dass die meisten Clients Windows PCs mit genau dieser Auflösung sind).

  • Über ConfigurationManager.getServerConfiguration().getNetworkConfiguration() können Details zur NetworkConfiguration eingestellt werden. Die verschiedenen Konfigurationsparameter sind unter Serverseitig nachzulesen.

  • Thread Pools: jadice web toolkit verwendet im Wesentlichen zwei Thread Pools für Aufgaben wie beispielsweise das asynchrone Rendern von Tiles. Die Größe der Thread Pools richtet sich nach der Anzahl der CPUs im System. Um die Größe der Pools anzupassen, stehen über die ServerConfiguration die Methoden setGeneralPoolCoreSize()/setGeneralPoolMaxSize() und setTileRendererPoolCoreSize()/setTileRendererPoolMaxSize() bereit. Achtung: Eine falsche Konfiguration dieser Werte kann negative Auswirkungen auf das Gesamtsystem haben. Weiterführende Informationen finden Sie in dem Knowledge-Base-Artikel Thread Pools and Concurrency.

  • Filter: Die Filter NoCacheFilter, CacheFilter und TileCacheFilter (siehe hier) können über die Methoden setCacheFilterEnabled(), setNoCacheFilterEnabled() und setTileCacheFilterEnabled() aktiviert bzw. deaktiviert werden.

Client-Konfiguration

Analog zum Server wird der Client über die ClientConfiguration konfiguriert. Auf die ClientConfiguration kann über ClientConfigurationManager.getClientConfiguration() zugegriffen werden. Über die Methode ClientConfigurationManager.setClientConfiguration(ClientConfiguration clientConfiguration) kann eine eigene Implementierung einer ClientConfiguration gesetzt werden. Dies ist aber in der Regel nicht notwendig, da die Einstellungen auch direkt auf der bestehenden ClientConfiguration geändert werden können. Standardmäßig wird eine DefaultClientConfiguration zurückgegeben.

  • Clientseitige Verwendung von IconFonts: setIsIconFontUsed(boolean). Siehe hierzu Eigene Icons in Buttons

  • Anzahl der parallelen Renderanfragen: Bei der Kachelübertragung muss die Anzahl der parallelen Serverrequests begrenzt werden, ansonsten könnte ein einziger Client den Server mit Anfragen überlasten. In der DefaultClientConfiguration wird die Anzahl der parallelen Tileanfragen auf 6 begrenzt. Dieser Wert kann über die Methode setMaxParallelTileRequests(int maxRequestCount) angepasst werden.

  • Darstellungsqualität: Zur Unterstützung hochauflösender Displays, aber auch zur Vermeidung von Unschärfe der Kacheln bei erhöhtem Browserzoom, wird die Device Pixel Ratio des Clients beim Kachelrendering mit einbezogen. Da dies bei hochauflösenden Bildschirmen zu lange Wartezeiten führen kann (da die Kacheln je nach Display dann 2 - 3 mal so groß gerendert werden müssen, wie sie angezeigt werden), kann über die ClientConfiguration eine Quality angegeben werden. Dies ist ein prozentualer Wert zwischen 0 und 100, der angibt, zu wieviel Prozent die Device Pixel Ratio miteinberechnet werden soll. Somit kann ein Kompromiss aus Renderzeit und Kachelschärfe erreicht werden. Per Default ist die Quality 0. Somit wird ohne weitere Konfiguration die Device Pixel Ratio nicht mit einbezogen. Der Wert kann über setQualityEnhancement(int qualityInPercent) gesetzt werden.

  • Soll der minimale bzw. maximale Zoomfaktor begrenzt werden, so geht dies über die Methoden setMinZoomFactor(float minZoom) bzw. setMaxZoomFactor(float maxZoom). Zum Abfragen der Werte werden die Methoden getMinZoomFactor() bzw. getMaxZoomFactor() bereitgestellt. Standardmäßig werden keine Zoombegrenzungen gesetzt.

  • Fokusverhalten des Browsers beim Annotations-Texteditor: Über setFocusTextEditor(boolean) kann das Fokusverhalten des Browsers in Bezug auf den Text Editor von textbasierten Annotationen gesteuert werden. Bei true wird das scrollverhalten des Browsers beim Fokussieren auf die eigenen Scrollbalken übernommen. Bei false wird das Scrollverhalten des Browsers ignoriert und zurückgesetzt. Für Internet Explorer muss true verwendet werden.