• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Objects don't get initialized sometimes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Objects don't get initialized sometimes


  • Subject: Re: Objects don't get initialized sometimes
  • From: Kieran Kelleher <email@hidden>
  • Date: Mon, 11 Jan 2010 19:47:21 -0500

OK, I am going to make a guess here at the most common mistake when installing MySQL. Correct me if I am wrong, but did you configure MySQL before using it? If so, did you set InnoDB as the default database engine? If so, are all your developers using InnoDB?

Using the *DEFAULT* MyISAM Engine would be one explanation for half- saved data because MyISAM is *NOT* transactional. EOF *REQUIRES* a transactional-database for transactional EditingCOntext saves, so MySQL should be configured to use InnoDB. You can check your current db by doing a "SHOW CREATE TABLE <mytable>;" on any tables in the database. If it says "ENGINE=MyISAM" towards the end of the SHOW CREATE statement, you are in trouble. You will need to configure InnoDB in /etc/my.cnf *AND* convert all existing MyISAM tables to InnoDB (which is pretty easy). *ALL* tables in the DB must be InnoDB since MyISAM tables simply will never roll back, period. MyISAM engine was originally designed for logging applications AFAIK - yeah, logs! - not relational transactional databases! MySQL is really a half dozen databases under one umbrella and they all (mostly) work with the same SQL - so switching to InnoDB is like swapping out the older 4.7 V8 in your Toyota Tundra to the newer 5.7 V8 (more bells and whistles). I definitely prefer the 5.7 V8 ;-)

This article (from my now dead, soon-to-be-replaced-with-yet-another, blog) still applies to MySQL 5.0.X and latest OS X:
http://blog.greenislandconsulting.com/2009/07/install-mysql-5-on-os-x-leopard-server.html


If you are unsure of how to configure /etc/my.cnf for production, get the "Advanced MySQL" book form amazon. Easy to read and understand. Also changing the InnoDB memory allocations on an existing installation is not just a case of changing the /etc/my.cnf file - you need to do a few steps in addition, so Google that if you had InnoDB on the default settings, but not being used.

Even if my guess is wrong, I hope this will help some other WebObjects devs - DO NOT USE the DEFAULT MyISAM ENGINE - it will cause you great pain and suffering!!

HTH, Kieran

On Jan 11, 2010, at 5:14 PM, Gennady Kushnir wrote:

I am on MySQL 5.0.x
I don't use change notification framework.
Stack trace of exception says it is raised during ec.saveChanges().

May it be caused by using nested editing contexts?


Unfortunately I have no idea how to isolate a problem. I can not even reproduce it. Myself I have only seen it once "in action". Mostly I can only see it in logs. And I can't afford to limit functionality of a working system. Furthermore I assume it is in the most actively employed part of a system. As most errors take place there. But maybe it is only because the majority of saves are performed there...

Maybe I could diagnose the problem injecting some testing somewhere?
Maybe in editingContext subclass?


2010/1/11 Kieran Kelleher <email@hidden>:

On Jan 11, 2010, at 1:59 PM, Chuck Hill wrote:

On Jan 11, 2010, at 10:33 AM, Kieran Kelleher wrote:

On Jan 11, 2010, at 1:03 PM, Chuck Hill wrote:

On Jan 11, 2010, at 4:26 AM, Gennady Kushnir wrote:

Hello again.
I've got it that I was doing something wrong. I've found and removed
several commandments violations, employed MultiECLockManager for
properly locking everything... but I am still getting these errors!
How could I track where is that violation hidden within over 5000 rows
of code?

There are many, many ways in which things can be done wrong. I don't
know of any easy way to find the source. If you can isolate and reproduce
the problem in a minimum set of steps, that will reduce the amount of code
you have to look at.



These errors raise without any visible dependencies.
Users report that even when system says that it could not save
something (because of that strange error), actually data is saved and
can be reviewed after logging out and in again.

Something else is happening in your code then. Perhaps this is not from
a save? Nothing should get written to the database if this happens during a
saveChanges. Maybe this is happening in your app just after saveChanges()?

Hmmm ....... half-saving transactions is a common problem when you don't
use a transactional database and no "transaction rollback" is available when
ec fails during a save. What database engine are you using?


Now who would use a squirrelly mock database like that?!!?


Someone who acquires a Ferrari and drives it in first gear because they have
never used a "stick-shift" car before! :-P




:-P

Chuck

--
Chuck Hill             Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall
knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects











_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: Objects don't get initialized sometimes
      • From: Chuck Hill <email@hidden>
References: 
 >Re: Objects don't get initialized sometimes (From: Gennady Kushnir <email@hidden>)
 >Re: Objects don't get initialized sometimes (From: Chuck Hill <email@hidden>)
 >Re: Objects don't get initialized sometimes (From: Kieran Kelleher <email@hidden>)
 >Re: Objects don't get initialized sometimes (From: Chuck Hill <email@hidden>)
 >Re: Objects don't get initialized sometimes (From: Kieran Kelleher <email@hidden>)
 >Re: Objects don't get initialized sometimes (From: Gennady Kushnir <email@hidden>)

  • Prev by Date: Re: WO 5.4.3 vs WO 5.3.3
  • Next by Date: Re: Objects don't get initialized sometimes
  • Previous by thread: Re: Objects don't get initialized sometimes
  • Next by thread: Re: Objects don't get initialized sometimes
  • Index(es):
    • Date
    • Thread