Servoy Server Rejects any More Users

Hi, We have an odd occurrence when our applications suddenly won’t allow anymore users into the system.

This is servoy 6.0.9 we have 75 logged in users, using the system fine. Another one tries to log in and they get rejected and the grey screen of death.

The java log shows

java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
	at java.net.Socket.connect(Socket.java:529)
	at java.net.Socket.connect(Socket.java:478)
	at java.net.Socket.<init>(Socket.java:375)
	at java.net.Socket.<init>(Socket.java:189)
	at com.sebster.tunnel.impl.fc.createSocket(fc.java:7)
	at com.sebster.tunnel.impl.wc.connect(wc.java:8)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:3)
	at com.sebster.tunnel.impl.qd.connect(qd.java:8)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:3)
	at com.sebster.tunnel.impl.o.<init>(o.java:8)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:3)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:9)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:12)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:301)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:299)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:253)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.<init>(ClientTunnelRMISocketFactoryFactory.java:241)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.servoy.j2db.smart.J2DBClient.initRMISocketFactory(J2DBClient.java:790)
	at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:727)
	at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:644)
	at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:668)
	at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:632)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1919)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1852)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1614)
	at com.sun.javaws.Launcher.run(Launcher.java:139)
	at java.lang.Thread.run(Thread.java:680)
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
	at java.net.Socket.connect(Socket.java:529)
	at java.net.Socket.connect(Socket.java:478)
	at java.net.Socket.<init>(Socket.java:375)
	at java.net.Socket.<init>(Socket.java:189)
	at com.sebster.tunnel.impl.fc.createSocket(fc.java:7)
	at com.sebster.tunnel.impl.wc.connect(wc.java:8)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:3)
	at com.sebster.tunnel.impl.qd.connect(qd.java:8)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:3)
	at com.sebster.tunnel.impl.o.<init>(o.java:8)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:3)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:9)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:12)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:301)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:299)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:253)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:265)
	at com.servoy.j2db.smart.J2DBClient.connectApplicationServer(J2DBClient.java:1777)
	at com.servoy.j2db.smart.J2DBClient.startApplicationServerConnection(J2DBClient.java:1758)
	at com.servoy.j2db.ClientState.applicationServerInit(ClientState.java:303)
	at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:733)
	at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:644)
	at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:668)
	at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:632)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1919)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1852)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1614)
	at com.sun.javaws.Launcher.run(Launcher.java:139)
	at java.lang.Thread.run(Thread.java:680)
Jan 10, 2014 3:53:11 PM com.servoy.j2db.util.Debug error
SEVERE: Error getting the service servoy.IApplicationServer from host episource6.episource.co.uk:1101
java.lang.NullPointerException
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:266)
	at com.servoy.j2db.smart.J2DBClient.connectApplicationServer(J2DBClient.java:1777)
	at com.servoy.j2db.smart.J2DBClient.startApplicationServerConnection(J2DBClient.java:1758)
	at com.servoy.j2db.ClientState.applicationServerInit(ClientState.java:303)
	at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:733)
	at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:644)
	at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:668)
	at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:632)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1919)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1852)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1614)
	at com.sun.javaws.Launcher.run(Launcher.java:139)
	at java.lang.Thread.run(Thread.java:680)

Our licenses are unlimited so its not a licensing problem.

Webclient connects fine

Could Tomcat have a setting somewhere. It look from this to me like it is the RMI port. Maybe there is a server setting that has a maximum number of port users?

On restart of the service it works fine.
Help?

Does anyone know how to fix this?

Thanks

David

Hi David,

this must be a problem on the specific machine that is trying to connect.
Did you try another machine?

Yes

It was a number of machines

And a simple telnet to port 1101 would connect

I was logged in when reported and my Servoy seamed to still work.

When I logged out and restarted if gray screened on mine.

I was told that others who were logged in had then frozen.

Restarting the server instance sorts it straight away.

It’s as if port 1101 just seizes up.

We also see this sometimes on our medical side which is on another Servoy instance on 1099.

The other Servoy server instances continue to work when one goes wrong so it appears to be related to the individual Servoy server instance.

I thought maybe the port gets blocked with the maximum threads, but don’t know whether it can be flushed or checked in any way

A nets tat showed 102 threads on 1101 some active some closed.

Clearly the RMI port just refuses to accept more connections.

I would say this happens once of twice per week