JBoss WebServices and Invokers
rohit.macherla Mar 31, 2011 5:08 AMHi 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.