Error In Relation

Questions, answers, tips and ideas on Servoy Client

Error In Relation

Postby lhale » Wed Jul 14, 2010 10:42 pm

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.
lhale
 
Posts: 108
Joined: Mon Mar 17, 2008 3:49 pm

Re: Error In Relation

Postby ptalbot » Wed Jul 14, 2010 11:03 pm

Looks like you run into some java out of memory exception.

You should increase the java memory allocated to the servoy server, if you used the default, which is
Code: Select all
java -Djava.awt.headless=true -Xmx256m -Xms64m -XX:MaxPermSize=128m etc...

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.
Patrick Talbot
Freelance - Open Source - Servoy Valued Professional
https://www.servoyforge.net
Velocity rules! If you don't use it, you don't know what you're missing!
User avatar
ptalbot
 
Posts: 1654
Joined: Wed Mar 11, 2009 5:13 am
Location: Montreal, QC

Re: Error In Relation

Postby lhale » Wed Jul 14, 2010 11:16 pm

If the out of memory error occurred around 9:00AM, why would it surface as an "Error in Relation" message at 12:45PM?

Below are the settings for my app server:

java -Djava.awt.headless=true -Xmx512m -Xms64m -XX:MaxPermSize=128m

Client is using:

servoy.initialClientHeap:
servoy.maxClientHeap: 256


I have 7 Gigs of Memory Plus 10 Gigs of swap for our Ubuntu Server.
lhale
 
Posts: 108
Joined: Mon Mar 17, 2008 3:49 pm

Re: Error In Relation

Postby ptalbot » Wed Jul 14, 2010 11:38 pm

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.
Patrick Talbot
Freelance - Open Source - Servoy Valued Professional
https://www.servoyforge.net
Velocity rules! If you don't use it, you don't know what you're missing!
User avatar
ptalbot
 
Posts: 1654
Joined: Wed Mar 11, 2009 5:13 am
Location: Montreal, QC

Re: Error In Relation

Postby lhale » Thu Jul 15, 2010 4:29 pm

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.

Thanks for all your help.
lhale
 
Posts: 108
Joined: Mon Mar 17, 2008 3:49 pm

Re: Error In Relation

Postby jcompagner » Thu Jul 15, 2010 6:48 pm

thats the same log
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Error In Relation

Postby lhale » Thu Jul 15, 2010 11:49 pm

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)
lhale
 
Posts: 108
Joined: Mon Mar 17, 2008 3:49 pm

Re: Error In Relation

Postby jcompagner » Fri Jul 16, 2010 10:32 am

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:

log4j.loggercom.servoy.j2db.dataprocessing.ClientManager=WARN
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Error In Relation

Postby lhale » Fri Jul 16, 2010 8:34 pm

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.

log4j.debug=false/true (tried both)
log4j.logger.com.servoy.j2db.util.Debug=ERROR/WARN (tried both)
log4j.logger.com.servoy.j2db.dataprocessing.ClientManager=ERROR/WARN (tried both)

Thanks
lhale
 
Posts: 108
Joined: Mon Mar 17, 2008 3:49 pm

Re: Error In Relation

Postby jcompagner » Mon Jul 19, 2010 10:19 am

i dont know exactly then this should work fine:

log4j.debug=true
log4j.logger.com.servoy.j2db.util.Debug=INFO
log4j.logger.com.servoy.j2db.dataprocessing.ClientManager=INFO
log4j.logger.org.apache.wicket=WARN
log4j.rootCategory=INFO, file, configservlet

Now it will log even a bit more
But configservlet (the admin page) is exactly the same configured as the file so it should display the same stuff.
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet


Return to Servoy Client

Who is online

Users browsing this forum: No registered users and 6 guests