Symptome

Der RMI-Zugriff auf das CRX-Repository wurde durch Setzen von rmi-Port auf 1234 in crx-author/web.xml aktiviert. Die Antwortzeit ist extrem lang; es dauert 74 Sekunden, bis JNDI das JCR RemoteRepository findet.

Ursache

Der in der Serverkonfiguration angegebene RMI-Port ist nur der Port der RMI-Registry, auf dem die Remote-Referenz gespeichert ist. Der aktuelle RMI-Service verwendet einen anderen Anschluss, der zurzeit nicht konfigurierbar ist; er wird nach dem Zufallsprinzip vom Betriebssystem ausgewählt.

Es ist jedoch auch möglich, über HTTP-Anforderungen auf den eigentlichen RMI-Service zuzugreifen, um den RMI-Port zu konfigurieren. Dies ist das Standard-Fallback, das Java verwendet, wenn auf den realen Service-Port nicht zugegriffen werden kann. Eine solche schwache Leistung kann auftreten, wenn das HTTP-Fallback verwendet wird.

Lösung

Es gibt keine alternative Fernzugriffsschicht und es scheint, dass der HTTP-Tunnel-Workaround nicht schnell genug ist. Die einzig sinnvolle Alternative wäre also, die Fähigkeit des Betriebssystems zu nutzen, den Bereich der dynamischen Ports einzustellen, den das Betriebssystem dem RMI-Dienst zuweisen kann. Unter Linux wird dies durch Änderung des Inhalts von /proc/sys/net/ipv4/ip_local_port_range erreicht. Das sollte ermöglichen, mit dem nativen RMI-Protokoll effizienter auf das Repository zuzugreifen.

Gilt für

CRX

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie