Topic
2 replies Latest Post - ‏2009-12-17T08:39:14Z by Dennis_te_Lintelo
Dennis_te_Lintelo
Dennis_te_Lintelo
3 Posts
ACCEPTED ANSWER

Pinned topic Domino connection pooling properties

‏2009-12-16T17:02:07Z |
Does anyone know where to set the specific properties for the domino connection pooling

bowstreet.domino.numOrbs
bowstreet.domino.session.pooling.originalImplementation

I cannot find anywhere the name/location of the file where I must set these properties.

Also, if anyone has experience in tuning these parameters or knows of any other settings to increase performance, please let me know. At the moment we are experiencing some performance issues with our domino portlets. We are on portlet factory version 6.1.2.2.
Thanks.
Dennis
Updated on 2009-12-17T08:39:14Z at 2009-12-17T08:39:14Z by Dennis_te_Lintelo
  • SystemAdmin
    SystemAdmin
    334 Posts
    ACCEPTED ANSWER

    Re: Domino connection pooling properties

    ‏2009-12-16T20:53:19Z  in response to Dennis_te_Lintelo
    They should be set in web-inf/config/override.properties.

    Looks like the PF documentation didn't mention where to put them.

    Regarding performance:
    The orb pooling (seeing numOrbs) was added to enhance the performance of the Domino builders, which use Domino DIIOP (corba) to communicate.

    If numOrbs is not set, it will default to 5.

    This means the builder will pool N orbs (which each have a tcp/ip connection to Domnio corba). As each request comes in, the builder will select an orb from the pool in a round robin fashion in order to spread the load. In effect, one orb can be servicing multiple users (which performs much better than creating a new lotus.domino.Session object -- and an expensive tcp/ip connection! -- for each request.)

    If one user performs a Domnio transaction that takes a long time to return, then the other users on that same orb who are waiting for a Domino service call will have to wait. So one thing to check would be to ensure your Domino transactions -- such as retrieving view data -- are fast. If your Domino data isn't changing often, I would recommend using the Cache Control builder or the Result Caching section of the Service Operation builder to cache the results. (The latter is most recommended, since developing your models in a consumer/provider fashion with Service Def and Service Op builders is also a best practice)

    Also, monitor the performance of your Domino server when you notice performance problems with the web app. Is the Domino Server's CPU pegged? If so, this could be your bottleneck and I would recommend performance tuning DIIOP on your Domino server. Also monitor other stats, such as mem and disk i/o on the Domino server.

    By the way, you should probably not use the originalImplementation property. This is there so you can switch back to the original way we did connection pooling, which was to pool the lotus.domino.Session object in an apache commons pool only when the builder is using shared credentials. (If each user uses a different uname/pw, then the pool wouldn't be used). Overall, the use of orb pooling performs better anyway.

    Let me know how it goes.

    Sam
    • Dennis_te_Lintelo
      Dennis_te_Lintelo
      3 Posts
      ACCEPTED ANSWER

      Re: Domino connection pooling properties

      ‏2009-12-17T08:39:14Z  in response to SystemAdmin
      Thanks for your answer Sam.

      Best approach probably would be using the result caching section of the service operation builder.
      I will also ask our domino administrator to have a look at the DIIOP performance tuning.

      Regards,
      Dennis