Today we received the message “Error in Relation”. All Servoy foundsets went blank and some clients locked up. This error would only repeat itself in the client. I would post my error messages from the App server , but after a restart my errors are wiped out. The only error that stood out in the admin page before restarting the app server is a java exception due to a broken pipe. Below is what I found in the applcation server folder in the server.log file about the time the error occurred( 12:45 pm ).
INFO: Found file /commons-logging.jar1227890742000.gz
Jul 14, 2010 9:12:00 AM org.apache.catalina.core.ApplicationContext log
INFO: content-encoding=gzip : outFile=/home/servoy/servoy/application_server/server/work/Catalina/localhost/lib/commons-logging.jar1227890742000.gz
Exception in thread “RMI TCP Connection(idle)” java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.concurrent.SynchronousQueue$TransferStack.snode(SynchronousQueue.java:280)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:322)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:944)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)
at java.lang.Thread.run(Thread.java:619)
Jul 14, 2010 12:46:10 PM org.apache.catalina.core.ApplicationContext log
App server
Using Ubuntu 6.06
servoy 4.1.2
clients
win xp
servoy 4.1.2
After I restarted the app server the error went away. I had to restart app server because our whole facility was down.
I would appreciate any and all help.
where
-Xms defines the minimum memory
-Xmx defines the maximum (even if you have many GigaBytes of RAM)
-XX:MaxPermSize= is the memory used by class cache (which is never GC’ed on Sun’s JVM).
Right now, using the default you are limited to 256m of heap memory which can be low depending on the server load…
Try increasing to -Xmx512m or even more.
Don’t know what happened in between, maybe some relations were already cached and your clients were using it?
The only information you have provided here points to memory error, so…
With that amount of memory, I would increase the min/max heap anyway.
If your server’s JVM is 32-bit you will be limited to less than 2gig anyway.
I increased the app server max memory to -Xmx1024m. Hopefully this will clean up the issues with the Garbage Collector.
Is there any way that I can capture the errors from the Servoy Admin page when problems arise? Is the info on the admin page only for clients and when I restart the app server it wipes them out. I understand the log in /home/servoy/application_server/server.log is for the app server, but where is the log from the admin pages being stored.
How come I can’t see the following events when I access /home/servoy/applcation_server/server.log. I copied the errors below out of the servoy admin page. Am I missing something here???
2010-07-15 15:13 TaskExecuter[43] ERROR com.servoy.j2db.dataprocessing.ClientManager Error flushing message buffer to client d9087768-f3b0-490e-be44-430ca8c8cb2a
java.rmi.ConnectIOException: non-JRMP server at remote endpoint
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:230)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy9.isAlive(Unknown Source)
at com.servoy.j2db.dataprocessing.Zab.Zd(Zab.java:138)
at com.servoy.j2db.dataprocessing.Zy.run(Zy.java:16)
at com.servoy.j2db.util.TaskExecuter.run(TaskExecuter.java:16)
at java.lang.Thread.run(Thread.java:619)
2010-07-15 15:13 TaskExecuter[44] ERROR com.servoy.j2db.dataprocessing.ClientManager Error flushing message buffer to client d9087768-f3b0-490e-be44-430ca8c8cb2a
java.rmi.ConnectIOException: non-JRMP server at remote endpoint
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:230)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy9.isAlive(Unknown Source)
at com.servoy.j2db.dataprocessing.Zab.Zd(Zab.java:138)
at com.servoy.j2db.dataprocessing.Zy.run(Zy.java:16)
at com.servoy.j2db.util.TaskExecuter.run(TaskExecuter.java:16)
at java.lang.Thread.run(Thread.java:619)
2010-07-15 15:12 TaskExecuter[46] ERROR com.servoy.j2db.dataprocessing.ClientManager Error flushing message buffer to client d9087768-f3b0-490e-be44-430ca8c8cb2a
java.rmi.ConnectIOException: non-JRMP server at remote endpoint
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:230)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy9.isAlive(Unknown Source)
at com.servoy.j2db.dataprocessing.Zab.Zd(Zab.java:138)
at com.servoy.j2db.dataprocessing.Zy.run(Zy.java:16)
at com.servoy.j2db.util.TaskExecuter.run(TaskExecuter.java:16)
at java.lang.Thread.run(Thread.java:619)
those should also be in the log.
Or some log4j properties in the servoy.properties file are configured differently so that ClientManager isnt logged to the file and it is logged to the AdminPage.
You could for example try to add this line in the servoy.properties file:
I tried all the following options but could not get them to log to Servoy.log. The errors were visible in Servoy Admin. I intentionally violated a constraint by attempting to delete a parent record that has children. I report the backend db error to the user so they will know that they should investigate this data before attempting to delete. FYI I shutdown the server to ensure that the app server would read the changes to servoy.properties.