Getting the follwing errors in the Server log in our production environment:
2006-04-10 15:24 : Error flushing message buffer to client f4f33c14-c86e-11da-aee7-bfbc9b208d70, Connection refused to host: 10.10.100.40; nested exception is: java.net.ConnectException: Connection timed out
2006-04-10 15:24 : java.rmi.ConnectException: Connection refused to host: 10.10.100.40; nested exception is:
java.net.ConnectException: Connection timed out
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at com.servoy.j2db.UserClient_Stub.notifyDataChange(Unknown Source)
at com.servoy.j2db.dataprocessing.ak.try(Unknown Source)
at com.servoy.j2db.dataprocessing.j$e.run(Unknown Source)
at com.servoy.j2db.util.ap.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at com.servoy.j2db.util.a.d.createSocket(Unknown Source)
… 9 more
2006-04-10 16:56 : Error flushing message buffer to client c2d6dba1-c884-11da-aee7-bfbc9b208d70, Exception creating connection to: 192.168.16.83; nested exception is: java.io.InterruptedIOException: SocketPool empty timeout
2006-04-10 16:56 : java.rmi.ConnectIOException: Exception creating connection to: 192.168.16.83; nested exception is:
java.io.InterruptedIOException: SocketPool empty timeout
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at com.servoy.j2db.UserClient_Stub.notifyDataChange(Unknown Source)
at com.servoy.j2db.dataprocessing.ak.try(Unknown Source)
at com.servoy.j2db.dataprocessing.j$e.run(Unknown Source)
at com.servoy.j2db.util.ap.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.InterruptedIOException: SocketPool empty timeout
at com.servoy.j2db.util.a.b.a(Unknown Source)
at com.servoy.j2db.util.a.d.createSocket(Unknown Source)
… 9 more
Any idea what it is and if it’s relevant?
I’m not getting any complaints that stuff is not working or that there are problems with the connection, but if I see errors in the log, I’m not happy…
It seems to happen a couple of times a day. On this server, we have about 3 to 7 clients connecting daily.
Server Information
Servoy version R2 2.2.4-build 336, repository version 27
JDK Information
java.vm.name=Java HotSpot™ Client VM
java.vm.version=1.5.0_02-b09
java.vm.info=mixed mode, sharing
java.vm.vendor=Sun Microsystems Inc.
Operating System Information
os.name=Linux
os.version=2.4.20-8smp
os.arch=i386
I have seen this appearing after installing 2.2.4 too.
No user complaints.
I am not too unhappy with the log file though since a lot of error messages disappeared like ‘snow for the sun’ after updating. So I can live with it but sure would like to know where it comes from…
Connection errors can occur for many reasons and need not be a problem. Generally they can happen for a number of reasons: when a client computer goes to sleep (but leaves Servoy Client running); when a Servoy Client crashes (i.e. the java VM crashes); when a client is hard killed (on UNIX and Mac I think this is possible, I don’t know about Windows); when a NAT router drops a connection (the server then might try to talk directly to an unreachable client, but will recover as soon as the client sends a message to the server).
OK, so no need to worry, unless customers start complaining
Odd thing is that after I posted this topic, we had to restart the Application Server for some reason and since that restart (10 days 16 hours 9 minutes 37 seconds ago and counting…), we haven’t gotten these errors anymore.
One sure way to get these errors is to start Servoy Client and put your laptop in sleep mode. Or on a PC, start Servoy Client and pull out the plug. The Application Server will not be able to flush messages to the client (since it went poof without unregistering), and it will keep trying for some time (around 10 minutes) before giving up and unregistering the client.
I’m also getting the same error.
It is also throwing “No licence or trial licence left” to the client.
But I’m having 10 licence in the server & there is no client connected to the server at that time.
2006-04-27 16:00 : Loading servoy.properties from C:\Program Files\Servoy\servoy.properties
2006-04-27 16:00 : Loading - Done
2006-04-27 16:02 : java.rmi.ConnectException: Connection refused to host: 192.168.0.3; nested exception is:
java.net.ConnectException: Connection timed out: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at com.servoy.j2db.UserClient_Stub.getClientInfo(Unknown Source)
at com.servoy.j2db.dataprocessing.j.a(Unknown Source)
at com.servoy.j2db.dataprocessing.SQLEngine.register(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at com.servoy.j2db.util.a.d.createSocket(Unknown Source)
... 18 more
2006-04-27 16:15 : com.sybase.jdbc2.jdbc.SybSQLException: ASA Error -195: Column 'client_id' in table 'servoy_client_stats' cannot be NULL
at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2636)
at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1996)
at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)
at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:204)
at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:187)
at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1615)
at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate(SybStatement.java:1598)
at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate(SybPreparedStatement.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.servoy.j2db.persistence.datasource.p.invoke(Unknown Source)
at $Proxy1.executeUpdate(Unknown Source)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:207)
at com.servoy.j2db.dataprocessing.j$h.a(Unknown Source)
at com.servoy.j2db.dataprocessing.j$h.a(Unknown Source)
at com.servoy.j2db.dataprocessing.j$1.run(Unknown Source)
at com.servoy.j2db.util.ap.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Are there clients listed in the Clients page of the admin pages? (There should be.) Generally if you have one of these disconnects it takes a while for the client to dissappear. You can also send a “shutdown” to the client, and it should be gone in at most 10 minutes.
There is however also a bug in 2.2.4 which can cause zombie clients in some obscure cases which is fixed in 2.2.5 which will be released today or the beginning of next week. I also believe the client_id error shown in your stack trace is fixed in this release.