IntroductionThe following diagrams aim to describe the composition of the Fractal components of Petals ESB. By naming convention, if not specified, the default name of the interface 'server' is "service".
|
Table of contents
Contributors
No contributors found for: authors on selected page(s)
|
Fractal tips
Composite startup
The sub-components of a Fractal composite are started sequentially, so you MUST declare the sub-component in the right order in the Fractal ADL.
Diagrams
Each Fractal diagram is drawn using the following legend:
Petals Composite
System Composite
Container Composite
A component SharedLibraryLifeCycleImpl is instantiated each time a JBI shared library is installed into the JBI container. It is dynamically created.
A component ComponentLifeCycleImpl and Installer is instantiated each time a JBI component is installed into the JBI container. It is dynamically created.
A component ServiceAssemblyLifeCycleImpl is instantiated each time a JBI service assembly is deployed into the JBI container. It is dynamically created.
JBI Management Composite
JBI Messaging Composite
Communication Composite
Transporter Composite
NioTransportProtocol
PreExtensionsManager composite
Each pre-extension is instantiated dynamically before internal components when Petals ESB is started according to the content of the Petals ESB classloader.
EmbeddedRegistryOverlay composite
PostExtensionsManager composite
Each post-extension is instantiated dynamically after internal components y when Petals ESB is started according to the content of the Petals ESB classloader.
Autoloader composite
Artifact repository composite
WsApi composite
Known problems
Deadlock when starting a composite
Symptoms:
The startup of Petals blocks into the startup of the Fractal composite into the thread "main" with a similar thread dump:
"main" prio=10 tid=0x00007f83d4007800 nid=0x981 in Object.wait() [0x00007f83db58f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000c038a388> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0) at java.lang.Object.wait(Object.java:485) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.incrementFcInvocationCounter(BasicControllerMixin.java:4216) at org.objectweb.fractal.julia.generated.Cec3b28ec_0.startScanner(INTERCEPTOR[DirectoryScanner]) - locked <0x00000000c038a388> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0) at org.objectweb.fractal.julia.generated.Cc2597297_0.startScanner(INTERFACE[DirectoryScanner]) at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.start(AutoLoaderServiceImpl.java:221) at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.startFc(AutoLoaderServiceImpl.java) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcContentState(BasicControllerMixin.java:8128) at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcStarted(BasicControllerMixin.java:8068) - locked <0x00000000c038adc8> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0) at org.objectweb.fractal.julia.generated.C18c4c884_0.setFcStarted(INTERFACE[LifeCycleCoordinator]) at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc$$0(BasicControllerMixin.java:4097) at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc(BasicControllerMixin.java:5095) at org.objectweb.fractal.julia.generated.C18c4c884_0.startFc(INTERFACE[LifeCycleCoordinator]) at org.ow2.petals.kernel.server.FractalHelper.startComponent(FractalHelper.java:356) at org.ow2.petals.kernel.server.PetalsServerImpl.startPetalsComposite(PetalsServerImpl.java:412) at org.ow2.petals.kernel.server.PetalsServerImpl.start(PetalsServerImpl.java:186) at org.ow2.petals.launcher.PetalsLauncher.launchPetalsServer(PetalsLauncher.java:154) at org.ow2.petals.launcher.PetalsLauncher.main(PetalsLauncher.java:391)
Solution:
Update the ADL of the Fractal composite to set the sub-components in the right order.