10.02.2013 Views

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 ...

SHOW MORE
SHOW LESS

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>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!