Container-level locking
Talend ESB supports container-level locking. It allows bundles to be preloaded into the slave instance.
Thanks to that, switching to a slave instance is very fast as the slave instance already contains all required bundles.
The container-level locking is supported in both filesystem and database lock mechanisms.
The container-level locking uses the karaf.lock.level property:
karaf.lock.level=50
The karaf.lock.level property tells the Talend ESB instance how far up the boot process to bring the OSGi container.
All bundles with an ID equals or lower to this start level will be started in that Talend ESB instance.
As reminder, the bundles start levels are specified in etc/startup.properties, in the url=level format.
Level | Behavior |
---|---|
1 | A 'cold' standby instance. Core bundles are not loaded into container. Slaves will wait until lock acquired to start server. |
<50 | A 'hot' standby instance. Core bundles are loaded into the container. Slaves will wait until lock acquired to start user level bundles. The console will be accessible for each slave instance at this level. |
>50 | This setting is not recommended as user bundles will end up being started. |
Using 'hot' standby means that the slave instances are running and bind some ports. So, if you use master and slave instances on the same machine, you have to update the slave configuration to bind the services (ssh, JMX, etc) on different port numbers.