esb_deploy - Progress Sonic ESB Deployment Guide 8.5 - Product ...
esb_deploy - Progress Sonic ESB Deployment Guide 8.5 - Product ...
esb_deploy - Progress Sonic ESB Deployment Guide 8.5 - Product ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 6: Adapting Imported Services to a Domain<br />
Setting the Number of Listener Threads<br />
The number of listeners for a BPEL Service needs to account for the expected number of<br />
concurrently active receives with corresponding replies. A receive with a corresponding<br />
reply blocks the listener thread until the reply is produced. A single process could have<br />
multiple receive/reply pairs; and could therefore block multiple listener threads. If there<br />
aren't enough listeners available a process could deadlock. Asynchronous interactions<br />
(one way with an invoke callback rather than a reply) do not tie up a listener thread.<br />
The optimal number of threads is one more than the number of threads required by each<br />
receive in a BPEL server instance times the number of allowed concurrent receives to the<br />
instance. For example, if the developer notes that a BPEL Service requires two threads<br />
and you expect no more than five receives to be running concurrently, set the number of<br />
listener threads to eleven.<br />
For more information, see the <strong>Progress</strong> <strong>Sonic</strong> Workbench User <strong>Guide</strong> in the Eclipse help.<br />
Invoking a BPEL Service from an Itinerary using <strong>ESB</strong>PEL or <strong>ESB</strong>WS<br />
A BPEL Service can be invoked from an itinerary using either an <strong>ESB</strong>PEL file or an<br />
<strong>ESB</strong>WS file:<br />
● Using an <strong>ESB</strong>PEL — Can invoke any process or partner link in a <strong>deploy</strong>ed BPAR. No<br />
need for a public WSDL or any binding information. Script executes in the BPEL<br />
Service on its listener thread.<br />
● Using an <strong>ESB</strong>WS — Requires concrete port and binding information in the BPEL<br />
Service's public WSDL. This WSDL must be authored (it is not generated). Script<br />
executes on the caller's thread.<br />
Tuning Classloader Memory<br />
Each BPEL Service <strong>deploy</strong>ed to a container has a classloader that loads its classes first.<br />
When you <strong>deploy</strong> multiple BPEL Services in one container, multiple copies of the same<br />
classes are loaded in memory. You can set the -XX:MaxPermSize JVM option to specify a<br />
larger memory allocation for class files.<br />
136 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>