Skip to main content

Problem:

  • Product Name: VisiBroker
  • Product Version: 7.0 and later
  • Product Component: Server Engine

A VisiBroker Server ORB is hosting 3 Objects, namely A, B and C.
You would like to configure a maximum of 500 worker threads to service Object A, and a maximum of just 100 worker threads to service the rest of the Objects (i.e. B and C)

By default, all the worker threads in a Thread Pool can service any Objects (i.e. A, B and C) hosted by the Server ORB.
Is it possible to fix the maximum number of worker threads to service a specific Object?

Resolution:

A possible way to satisfy this requirement is to use VisiBroker's Server Engine feature.
In this solution, you are required to configure the Server Engine properties and programmatically set the SERVER_ENGINE_POLICY in the POAs.

The simple VBC demo for Windows (se_threadMax_demo.zip) shows how this can be done.

In summary, the following are done at the Server side ORB:

  • Configure 2 Server Engines, named "ObjectA_Se" and "Other_Se". (Refer to server.props: vbroker.se.default=ObjectA_Se,Other_Se)
  • Creates 2 POAs, named POA_A and POA_Other. (Refer to Server.C)
  • Associate POA_A to ObjectA_Se by setting the SERVER_ENGINE_POLICY. (Refer to Server.C)
  • Associate POA_Other to Other_Se by setting the SERVER_ENGINE_POLICY. (Refer to Server.C)
  • Activate "ObjectA" Servant in POA_A. (Refer to Server.C)
  • Activate "ObjectB" and "ObjectC" Servants in POA_Other. (Refer to Server.C)
  • Set the "threadMax=500" property for ObjectA_Se (Refer to server.props: vbroker.se.ObjectA_Se.scm.scm1.dispatcher.threadMax=500)
  • Set the "threadMax=100" property for Other_Se (Refer to server.props: vbroker.se.Other_Se.scm.scm2.dispatcher.threadMax=100)

With this design and configuration:

  • A maximum of 500 worker threads in ObjectA_Se's Thread Pool will service only POA_A, which is managing ObjectA.
  • A maximum of 100 worker threads in Other_Se's Thread Pool will service only POA_Other, which is managing ObjectB and ObjectC".

 

Support Incident # 2782865

 


#Security
#VisiBroker
#serverengine
#Performance
#SERVER_ENGINE_POLICY
#threadMax
#threadpool