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 auffalse
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 MethodeGraphicsEnvironment.setUserDefinedScreenResolution(int resolution)
direkt auf demGraphicsEnvironment
der jadice document platform vorgenommen. Der aktuell eingestellte Wert kann also serverseitig zu jeder Zeit wie beschrieben gesetzt und überGraphicsEnvironment.getScreenResolution()
abgefragt werden. Hintergrund dieser Konfiguration ist, dass an einigen Stellen in der jadice document platform die Auflösung über dasGraphicEnvironment
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()
undsetTileRendererPoolCoreSize()
/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
undTileCacheFilter
(siehe hier) können über die MethodensetCacheFilterEnabled()
,setNoCacheFilterEnabled()
undsetTileCacheFilterEnabled()
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 MethodengetMinZoomFactor()
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. Beitrue
wird das scrollverhalten des Browsers beim Fokussieren auf die eigenen Scrollbalken übernommen. Beifalse
wird das Scrollverhalten des Browsers ignoriert und zurückgesetzt. Für Internet Explorer musstrue
verwendet werden.