cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Odd error
Date Tue, 07 Feb 2012 19:28:00 GMT
The simplest thing you can do is add log4J jar to your app, and add this somewhere on app startup
(e.g. a filter or servlet init method, etc) : 

    BasicConfigurator.configure();

To fine-tune logging you may switch to PropertyConfigurator. But start with BasicConfigurator
- it should log everything and give you an idea what's going on.

Andrus

On Feb 7, 2012, at 9:07 PM, Joe Baldwin wrote:
> I would do it, if I understood it.  However, I tried to tackle Cayenne logging about
a year ago and could never figure it out.  I couldn't even figure out how to turn it off.
 It just continued to perform the default behavior.
> 
> If you give me the exact commands and tell me exactly where to place those commands,
I will follow your directions.
> 
> 
> On Feb 7, 2012, at 1:00 PM, Andrus Adamchik wrote:
> 
>> Can you enable Cayenne SQL logging? You'll see all the SQL executed prior to the
exception.
>> 
>> http://cayenne.apache.org/doc30/configuring-logging.html
>> 
>> 
>> On Feb 7, 2012, at 8:49 PM, Joe Baldwin wrote:
>> 
>>> Michael,
>>> 
>>> I have new info that makes this problem look even screwier.  (Please refer to
the error msgs below).
>>> 
>>> So, you might say: "so what, ... this looks like the same error".  Yes, it does!
However, I just got this error after I restarted tomcat and tried to login to my app.  There
is ABSOLUTELY no code that attempts to add/update a Product entity during a login.
>>> 
>>> Is it possible, that there is a cached operation that is attempting to be committed?
 (Sort of like a printer trying to print a job that you have already deleted.)
>>> 
>>> I have never heard of a DBMS/JDBC-lib/ORM attempting to do this, but then again,
I do not have control over the server and the techsupport dudes sound like they are very inexeprienced.
>>> 
>>> Joe
>>> 
>>> 
>>> 
>>> 
>>> Stacktrace:
>>> 	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
>>> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
>>> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
>>> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
>>> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>> 	org.apache.cayenne.conf.WebApplicationContextFilter.doFilter(WebApplicationContextFilter.java:93)
>>> 
>>> root cause
>>> 
>>> org.apache.cayenne.CayenneRuntimeException: [v.3.0.1 Aug 25 2010 19:42:04] Commit
Exception
>>> 	org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1134)
>>> 	org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1045)
>>> 	cms.SessionLogger.log(Unknown Source)
>>> 	cms.SessionLogger.log(Unknown Source)
>>> 	org.apache.jsp.staff.admin.main.AdminLoginVerify_jsp._jspService(AdminLoginVerify_jsp.java:85)
>>> 	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
>>> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
>>> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
>>> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>> 	org.apache.cayenne.conf.WebApplicationContextFilter.doFilter(WebApplicationContextFilter.java:93)
>>> 
>>> root cause
>>> 
>>> com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot
add or update a child row: a foreign key constraint fails (`eagle1_om28`.`product`, CONSTRAINT
`product_ibfk_2` FOREIGN KEY (`packageTypeOid`) REFERENCES `packagetype` (`oid`))
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Feb 7, 2012, at 11:48 AM, Michael Gentry wrote:
>>> 
>>>> Hi Bryan,
>>>> 
>>>> I can confirm that the commit order varies.  We were seeing the issue
>>>> on the same environment, though.  When the AshwoodEntitySorter built
>>>> the object graph, it would vary from run-to-run.  Once built, it is
>>>> cached.  If it happens to build a proper order, you are good to go at
>>>> least until you restart.  For our particular issue, we had a deep
>>>> object graph cycle that didn't throw any exceptions.  The
>>>> AshwoodEntitySorter doesn't work so well with cycles.  Once we removed
>>>> that relationship, the problem went away.
>>>> 
>>>> mrg
>>>> 
>>>> 
>>>> On Mon, Feb 6, 2012 at 7:18 AM, Bryan Lewis <jbryanlewis@gmail.com>
wrote:
>>>>> This error reminds me of something we see in our shop.  If multiple related
>>>>> entities are being committed together, Cayenne can sometimes commit them
>>>>> out of order which can cause FK constraint violations.  The commit order
>>>>> seems to be indeterminate; it can work as expected on a dev machine and
>>>>> fail in production.
>>>>> 
>>>>> Look at the SQL issued just before the error.  On one server you might
see
>>>>> the packagetype being inserted before the product, but the other way
around
>>>>> on the other server.  If this is the problem, the fix is to subclass
the
>>>>> AshwoodEntitySorter as has been discussed a couple of times in the list.
>>>>> 
>>>>> 
>>>>> 
>>>>> On Sun, Feb 5, 2012 at 6:48 PM, Joe Baldwin <jfbaldwin@earthlink.net>
wrote:
>>>>> 
>>>>>> 
>>>>>> Here is the current error (which is really odd because it is working
just
>>>>>> fine on my dev server)
>>>>>> 
>>>>>> com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
>>>>>> Cannot add or update a child row: a foreign key constraint fails
>>>>>> (`eagle1_om28`.`product`, CONSTRAINT `product_ibfk_2` FOREIGN KEY
>>>>>> (`packageTypeOid`) REFERENCES `packagetype` (`oid`))
>>>>>> 
>>> 
>> 
> 
> 


Mime
View raw message