| 

.NET C# Java Javascript Exception

OptimisticLockingFailureException

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


OptimisticLockingFailureException

frank_b - 06.12.2009 15:10
Ich habe ein Problem beim Speichern von zwei Domain-Objekten. Ich möchte dass beim Auftreten einer OptimisticLockingFailureException alle Änderungen innerhalb der Transaktion rückgängig gemacht werden. Leider funktioniert das nicht so wie ich mir das vorgestellt habe. Ich speichere zuerst das "GrailsDomainObject1" (existiert noch nicht in der Datenbank) und dann das "GrailsDomainObject2" (existiert bereits in der DB). Tritt nun beim Speichern des "GrailsDomainObject2" eine OptimisticLockingFailureException auf setze ich die Transaktion manuell zurück. Das Problem ist dass das "GrailsDomainObject1" in der Datenbank bleibt. Anscheinend wird beim Speichern des "grailsDomainObject1" ein DB-COMMIT gemacht. Ein COMMIT sollte aber erst am Ende der Transaktion gemacht werden.

Hat jemand eine Lösung zu meinem Problem?
Danke

 def save = {
	GrailsDomainObject1.withTransaction { status -> 			
		
		def grailsDomainObject2 = GrailsDomainObject2.get(params.id)
		
		def grailsDomainObject1 = new GrailsDomainObject1()
		grailsDomainObject1.name = 'test'	
		
		grailsDomainObject2.addToGrailsDomainObject1(grailsDomainObject1)	
		
		try {
			
			if(grailsDomainObject1.save(flush : true) && grailsDomainObject2.save(flush : true)) {
				render(view: 'success')
				
			} else {
				status.setRollbackOnly()	
				render(view: 'error')
			}
			
		} catch (OptimisticLockingFailureException e) {	
			status.setRollbackOnly() 
			render(view: 'error')
		}
	}
} 


Re: OptimisticLockingFailureException

milkyman - 08.12.2009 07:50
Ja, während der Entwicklung ist das unproblematisch. Nur die LIVE-DB kann man damit nicht mal so eben umstellen, das muss dann schon per Hand erfolgen.

Bye,
Horst


MySQL vs. PostgreSQL

christian - 08.12.2009 10:03
milkyman schrieb:
-------------------------------------------------------
> Nur ist mysql
> nach wie vor der Defacto-Standard im OpenSource
> Bereich

Das stimmt zwar, aber deshalb ist MySQL ja noch lange nicht die beste Wahl. Wenn man in einem eigenen Projekt die Wahl hat, gibt es aus meiner Sicht keinen Grund, MySQL zu benutzen.

> Interessant übrigens, dass diese Diskussion immer
> wieder hoch kommt, obwohl GORM und Hibernate doch
> eigentlich dazu da sind, dass es dieses Thema
> nicht mehr gibt.

In der Theorie schon, aber dann bricht die Praxis wieder durch, weil bei MySQL manche Engines keine Transaktionen unterstützen. InnoDB unterstützt zwar Transaktionen, kann dafür aber keinen Volltextindex erstellen. Bei der Einhaltung des SQL-Standards gibt es bei MySQL auch größere Abweichungen. So wird z. B. ein zu langer String kommentarlos abgeschnitten, statt dass ein Fehler gemeldet wird. Es ist vielleicht Geschmacksache, aber ich finde die Benutzerverwaltung von MySQL auch nicht gerade gekonnt. Und seit Oracle Sun übernehmen will, ist die Zukunft von MySQL auch etwas unklar. Mir ist kein Vorteil von MySQL bekannt, der diese (und noch mehr) Nachteile von MySQL ausgleichen würde. Es gibt einige Vergleiche dazu im Web MySQL vs. PostgreSQL

Gruß
Christian


Re: MySQL vs. PostgreSQL

milkyman - 08.12.2009 14:43
Ja du hast schon recht.

Nur weil was (mysql) Standard ist, muss es nicht unbedingt besser sein.
Nur weil was (postgresql) besser ist, muss es noch lange nicht bevorzugt eingesetzt (=Standard) werden.

Eigentlich paradox. Aber stellt euch vor, was sonst aus MS würde... :-)

Bye,
Horst


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "OptimisticLockingFailureException" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.