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
ExtensionsManager composite
Each extension is instantiated dynamically when Petals ESB is started according to the content of the Petals ESB classloader.
Extensions
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.