Controlling the Threads

Several threads that are created by Sterling B2B Integrator for various purposes might not be required always and they can be controlled wherever required.

This enhances the Sterling B2B Integrator performance considerably.

Following are the concepts described in this topic:
  • Jetty Threads
  • JGroup Threads
  • JetSpeed Threads
  • Adapter Threads
  • Business Process Queue Threads
  • FIFOTaskListener and Queue Threads
  • RMI Threads
  • Timer Threads

Jetty Threads

Sterling B2B Integrator uses Jetty version 4.2.24. Jetty version 4.2.24 when compared to latest versions like Jetty version 6.1.8 offers limited control on the number of threads created. However, you can control the numbers of threads created by Jetty listeners. Further, the large numbers of SessionScavenger and ConduitStreamListener threads are not controlled by listener thread parameters. They are created for web applications and HTTP Servlet adapters.

You can control the number of threads created by Jetty Listeners by modifying the following configuration parameters in the noapp.properties_platform_ifcresources_ext file:

# specify the minimum number of threads for Socket Listeners for Jetty
jetty_min_threads = 5
# specify the maximum number of threads for Socket Listeners for Jetty
jetty_max_threads = 100
Note: You cannot modify the jetty_min_threads value. However, you can modify the jetty_max_threads value in the available range from 5 - 100.

JGroup Threads

JGroup is a reliable multicast communication toolkit and is used in Sterling B2B Integrator cluster environment. You cannot control the number of threads created by JGroup.

JetSpeed Threads

Jetspeed is the portal engine used in Sterling B2B Integrator dashboard interface. The jetspeedresources.properties file controls the number of threads created by JetSpeed.

You can control the number of threads created by JetSpeed by modifying the following configuration parameters in install/noapp/deploy/dashboard/webapp/WEB-INF/conf/JetspeedResources.properties file.

#Specify the initial number of threads to create
services.ThreadPool.init.count=5
#Specify the maximum number of threads to create
services.ThreadPool.max.count=20
#Specify the minimum number of threads to keep as spare until you hit the maximum
services.ThreadPool.minspare.count=5
Note: You cannot modify the services.ThreadPool.init.count value. However, you can modify the services.ThreadPool.max.count value in the available range from 5 - 20.

After modifying, you should remove the install/noapp/deploy/dashboard/webapp/WEB-INF/conf/JetspeedResources.properties from install/noapp/deploy/dashboard.war file to make your change take effect.

Adapter Threads

Several Jetty and Timer threads are created by adapters. You can disable the adapters that are not required to run your business processes thereby controlling the number of threads created by the adapters.

The following adapters can be disabled to reduce the number of threads created:
Note: Disabling an adapter in the following list can reduce at least one or two threads in most cases.
  • FIFO Routing
  • FIFO Error Queue Listener
  • HTTP Communications Adapter
  • B2B HTTP Communications Adapter
  • SFTP Client Adapter
  • FTP Client Adapter
  • Map Test Http Server
  • ebXML Http Server Adapter
  • MBI Http Server Adapter
  • SOA Http Server Adapter
  • SOA SSL Http Server Adapter
  • RN Http Server Adapter
  • Http Server Adapter
  • SWIFTNet Http Server Adapter

Business Process Queue Threads

Sterling B2B Integrator creates nine regular business process queues and one internal queue called wait queue for wait service. You cannot control the number of threads created for business processes.

FIFOTaskListener and Queue Threads

The FIFORouting adapter creates and controls ten queues for FIFO processing. Each FIFO queue creates a FIFO task listener and every task listener creates a consumer at startup. You can configure the number of queues to reduce the number of threads. Additionally, you can disable the FIFORouting adapter if you are not using it thereby turning off all the queues created by the adapter.

You can control the number of threads by modifying the following configuration. The number of queues configured depends on the system load.

#In customer_overrides.properties,additional queues can be added by adding,
for example:
#fifo.workflow.taskqueue.11=FIFO.GIS.QUEUE.11
#fifo.workflow.taskqueue.12=FIFO.GIS.QUEUE.11
#Note, queues cannot be reduced in customer_overrides.properties
but the names can be changed and must be unique
workflow.taskqueue.1=FIFO.GIS.QUEUE.1
workflow.taskqueue.2=FIFO.GIS.QUEUE.2
workflow.taskqueue.3=FIFO.GIS.QUEUE.3
workflow.taskqueue.4=FIFO.GIS.QUEUE.4
workflow.taskqueue.5=FIFO.GIS.QUEUE.5
workflow.taskqueue.6=FIFO.GIS.QUEUE.6
workflow.taskqueue.7=FIFO.GIS.QUEUE.7
workflow.taskqueue.8=FIFO.GIS.QUEUE.8
workflow.taskqueue.9=FIFO.GIS.QUEUE.9
workflow.taskqueue.10=FIFO.GIS.QUEUE.10

RMI Threads

The RMI threads are system generated threads for JNDI. You cannot control the number of RMI threads.

Timer Threads

The timer threads are created when Sterling B2B Integrator starts. It is not recommended to control these threads as they are necessary for Sterling B2B Integrator to run smoothly.

The following timer threads are created when Sterling B2B Integrator starts:
  • Check Sterling B2B Integrator component licenses and generate messages for users when one or more licenses is about to expire.
  • Roll the log service files.
  • Gather YCP statistics used by the entity framework.
  • Monitor resources and detect database connections or database connection leaks.
  • Schedule business processes.
  • JNDI service timer.