0 Replies Latest reply on Mar 31, 2011 5:08 AM by rohit.macherla

    JBoss WebServices and Invokers

    rohit.macherla

      Hi all,

      I need a little help in understanding how JBoss Invokers work. I am not sure I understood

      whatever I've read, so please let me know when I am wrong.

       

      I use JBoss 4.2.3 in my project and have JAX-WS webservices deployed in it (Consider one of

      these as WebService A). These WebServices are POJO based ones and form WebService clients to

      EJB based WebServices that my vendor offers (Consider one of these vendor WebServices V).

      Hence, I have WebService to WebService calls within same JVM, i.e., the invocation flow is:
      External system -> A -> V -> Database

       

      When a new request comes in for A, where does the invoker come in ? I thought that the

      internal WebService call from A to V uses the invoker, as V is an EJB based WebService and I

      have configured "Standard Stateless SessionBean" to use "stateless-rmi-invoker" which inturn

      uses "jboss:service=invoker,type=pooled" (That was what I've configured in standardjboss.xml).

       

      My jboss-service.xml for pooled invoker is:

       

      <mbean code="org.jboss.invocation.pooled.server.PooledInvoker"
            name="jboss:service=invoker,type=pooled">
            <attribute name="NumAcceptThreads">5</attribute>
            <attribute name="MaxPoolSize">300</attribute>
            <attribute name="ClientMaxPoolSize">300</attribute>
            <attribute name="SocketTimeout">240000</attribute>
            <attribute name="ServerBindAddress">${jboss.bind.address}</attribute>
            <attribute name="ServerBindPort">4445</attribute>
            <attribute name="ClientConnectAddress">${jboss.bind.address}</attribute>
            <attribute name="ClientConnectPort">0</attribute>
            <attribute name="ClientRetryCount">1</attribute>
            <attribute name="EnableTcpNoDelay">false</attribute>
      
      
            <!-- Customized socket factory attributes
            <attribute name="ClientSocketFactoryName">custom.client.factory</attribute>
            <attribute name="ServerSocketFactoryName">custom.server.factory</attribute>
            <attribute name="SslDomain">java:/jaas/pooledInvoker</attribute>
            -->
            <depends 
      optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>
         </mbean>
      

       

      However, when I take a look at the threaddump (via the JMX console jboss.system:type=ServerInfo listThreadDump()), I don't find any PooledInvokerThread instances in the thread dump. Does that mean that I am not using pooled invokers ?

       

      I am trying to see if there are any areas where I can tweak some parameters to improve the number of requests that JBoss can handle for my application. So, I just wanted to know if I am looking in the right areas.

       

      Thanks.