red Car [
https://community.jboss.org/people/redCar] created the discussion
"Re: WorkerThread exception occured .... InvocationTargetException /
SocketTimeoutException"
To view the discussion, visit:
https://community.jboss.org/message/725850#725850
--------------------------------------------------------------
Hallo,
now we have tried to attach jboss to another network interface. We enabled a second
network card with another ip. Then I started the jboss with -b <another IP>.
I wondered, that this do not help. I thought, Ports are unique to a network-card-ip.
Now I have installed the JBoss on another server where he can work alone. This works fine.
But I'm looking for another solution.
Is there any possibility, to reduce the number of request-ports?
At the moment I am experimenting with pooled Invoker.
In conf/standardjboss.xml I have changed the sections for stateless and statefull ejb:
| | <invoker-proxy-binding> |
| | <name>stateful-pooled-invoker</name> |
| | <invoker-mbean>jboss:service=invoker,type=pooled</invoker-mbean> |
| | <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory> |
| | <proxy-factory-config> |
| | <client-interceptors> |
| | <home> |
| | <interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor> |
| | <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor> |
| |
<interceptor>org.jboss.proxy.ejb.SecurityContextInterceptor</interceptor> |
| | <interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
|
| | <interceptor
call-by-value="false">org.jboss.invocation.InvokerInterceptor</interceptor>
|
| | <interceptor
call-by-value="true">org.jboss.invocation.MarshallingInvokerInterceptor</interceptor>
|
| | </home> |
| | <bean> |
| |
<interceptor>org.jboss.proxy.ejb.StatefulSessionInterceptor</interceptor> |
| | <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor> |
| |
<interceptor>org.jboss.proxy.ejb.SecurityContextInterceptor</interceptor> |
| | <interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
|
| | <interceptor
call-by-value="false">org.jboss.invocation.InvokerInterceptor</interceptor>
|
| | <interceptor
call-by-value="true">org.jboss.invocation.MarshallingInvokerInterceptor</interceptor>
|
| | </bean> |
| | </client-interceptors> |
| | </proxy-factory-config> |
| | </invoker-proxy-binding> |
| | <invoker-proxy-binding> |
| | <name>stateless-pooled-invoker</name> |
| | <invoker-mbean>jboss:service=invoker,type=pooled</invoker-mbean> |
| | <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory> |
| | <proxy-factory-config> |
| | <client-interceptors> |
| | <home> |
| | <interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor> |
| | <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor> |
| |
<interceptor>org.jboss.proxy.ejb.SecurityContextInterceptor</interceptor> |
| | <interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
|
| | <interceptor
call-by-value="false">org.jboss.invocation.InvokerInterceptor</interceptor>
|
| | <interceptor
call-by-value="true">org.jboss.invocation.MarshallingInvokerInterceptor</interceptor>
|
| | </home> |
| | <bean> |
| |
<interceptor>org.jboss.proxy.ejb.StatelessSessionInterceptor</interceptor> |
| | <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor> |
| |
<interceptor>org.jboss.proxy.ejb.SecurityContextInterceptor</interceptor> |
| | <interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
|
| | <interceptor
call-by-value="false">org.jboss.invocation.InvokerInterceptor</interceptor>
|
| | <interceptor
call-by-value="true">org.jboss.invocation.MarshallingInvokerInterceptor</interceptor>
|
| | </bean> |
| | </client-interceptors> |
| | </proxy-factory-config> |
| | </invoker-proxy-binding> |
| | <container-configuration> |
| | <container-name>Standard Stateless SessionBean</container-name> |
| | <call-logging>false</call-logging> |
| |
<invoker-proxy-binding-name>stateless-pooled-invoker</invoker-proxy-binding-name>
|
| | <container-interceptors> |
| |
<interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</interceptor>
|
| | <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor> |
| |
<interceptor>org.jboss.ejb.plugins.security.PreSecurityInterceptor</interceptor>
|
| | <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
|
| | <!-- CMT --> |
| | <interceptor
transaction="Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
|
| | <interceptor
transaction="Container">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor>
|
| | <interceptor
transaction="Container">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
|
| | <!-- BMT --> |
| | <interceptor
transaction="Bean">org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor</interceptor>
|
| | <interceptor
transaction="Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
|
| | <interceptor
transaction="Bean">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor>
|
| |
<interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
|
| | </container-interceptors> |
| |
<instance-pool>org.jboss.ejb.plugins.StatelessSessionInstancePool</instance-pool>
|
| | <instance-cache></instance-cache> |
| | <persistence-manager></persistence-manager> |
| | <container-pool-conf> |
| | <MaximumSize>100</MaximumSize> |
| | </container-pool-conf> |
| | </container-configuration> |
and
| | <container-configuration> |
| | <container-name>Standard Stateful SessionBean</container-name> |
| | <call-logging>false</call-logging> |
| | <!--
invoker-proxy-binding-name>stateful-unified-invoker</invoker-proxy-binding-name
--> |
| |
<invoker-proxy-binding-name>stateful-pooled-invoker</invoker-proxy-binding-name>
|
| | <container-interceptors> |
| |
<interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</interceptor>
|
| | <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor> |
| |
<interceptor>org.jboss.ejb.plugins.security.PreSecurityInterceptor</interceptor>
|
| | <!-- CMT --> |
| | <interceptor
transaction="Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
|
| | <interceptor
transaction="Container">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor>
|
| | <interceptor
transaction="Container">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
|
| | <!-- BMT --> |
| | <interceptor
transaction="Bean">org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor</interceptor>
|
| | <interceptor
transaction="Bean">org.jboss.ejb.plugins.TxInterceptorBMT</interceptor>
|
| | <interceptor
transaction="Bean">org.jboss.ejb.plugins.CallValidationInterceptor</interceptor>
|
| |
<interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
|
| | <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
|
| |
<interceptor>org.jboss.ejb.plugins.StatefulSessionSecurityInterceptor</interceptor>
|
| | </container-interceptors> |
| |
<instance-cache>org.jboss.ejb.plugins.StatefulSessionInstanceCache</instance-cache>
|
| |
<persistence-manager>org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager</persistence-manager>
|
| | <container-cache-conf> |
| |
<cache-policy>org.jboss.ejb.plugins.LRUStatefulContextCachePolicy</cache-policy>
|
| | <cache-policy-conf> |
| | <min-capacity>50</min-capacity> |
| | <max-capacity>1000000</max-capacity> |
| | <remover-period>1800</remover-period> |
| | <max-bean-life>1800</max-bean-life> |
| | <overager-period>300</overager-period> |
| | <max-bean-age>600</max-bean-age> |
| | <resizer-period>400</resizer-period> |
| | <max-cache-miss-period>60</max-cache-miss-period> |
| | <min-cache-miss-period>1</min-cache-miss-period> |
| | <cache-load-factor>0.75</cache-load-factor> |
| | </cache-policy-conf> |
| | </container-cache-conf> |
| | <container-pool-conf> |
| | <MaximumSize>100</MaximumSize> |
| | </container-pool-conf> |
| | </container-configuration> |
With this configuration change I hoped, that I get a pooled connection for ejb 3.0.
But it seems, that there is something wrong because I still get information, that each
request starts a new WorkerThread with a different port:
2012-03-23 09:26:11,359 INFO [STDOUT] (WorkerThread#1[192.168.1.24:2025]) sayHallo: + 90
2012-03-23 09:26:11,374 INFO [STDOUT] (WorkerThread#0[192.168.1.24:2026]) sayHallo: + 91
2012-03-23 09:26:11,374 INFO [STDOUT] (WorkerThread#1[192.168.1.24:2027]) sayHallo: + 92
2012-03-23 09:26:11,374 INFO [STDOUT] (WorkerThread#0[192.168.1.24:2028]) sayHallo: + 93
Next notice was, that ~ port 4500 the client port is created from ~ 1000 to 4500 and so
on.
But after ~ 4000 fast calls to my test method I get a new exception:
org.jboss.remoting.CannotConnectException: Can not get connection to server. Problem
establishing socket connection for InvokerLocator [socket://HELIOTROP:3873/?]
at
org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:776)
at
org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:165)
at org.jboss.remoting.Client.invoke(Client.java:1724)
at org.jboss.remoting.Client.invoke(Client.java:629)
at
org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at
org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at
org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
at $Proxy3.invoke(Unknown Source)
at
org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
at
org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
at $Proxy2.sayHallo(Unknown Source)
After this exception I can call my ejb.method again until the next exception.
This exception I also will get, if I use the unchanged standardjboss.xml configuration.
My question:
Is something wrong with my pooled Invoker configuration?
Is this CannotConnectException normal, that I have to expect, or is this only occuring
with my special test?
Where can I configure the parameter for the pooled Invoker? For example port and
pool-size?
Thank you,
Werner
--------------------------------------------------------------
Reply to this message by going to Community
[
https://community.jboss.org/message/725850#725850]
Start a new discussion in JBoss Remoting at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=1&...]