Konnte nicht execute JDBC batch update; uncategorized SQLException-für SQL
Brauche ich etwas Hilfe, lassen Sie mich Ihnen sagen, meine Geschichte, wir haben zwei test-Umgebungen, in einer von Ihnen die web-app richtet sich an eine Datenbank in postgres, die app läuft Prima hier in der Umgebung wir haben zwei Datenbanken, eine Sklavin und eine der wichtigsten ein, und die app zeigt einen Fehler im Zusammenhang mit der Datenbank.
Gibt es eine Tabelle namens Diskussionen und die andere ist benannt network_discussion, wenn ich gerettet eine Diskussion, die ich sofort gespeichert network_discussion, aber in der zweiten Umgebung nicht funktioniert, ich dachte, es war etwas im Zusammenhang mit einem Zugriff GEWÄHREN, aber anscheinend ist dies nicht so ist, ist der error-trace:
2012-09-15 15:10:27,162|TP-Processor12|ERROR|mp_sites|web|mpmvstage|/home/matchpoint-web/yfroot||Hibernate operation: Could not execute JDBC batch update; uncategorized SQLException for SQL [insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (?, ?, ?, ?, ?)]; SQL state [null]; error code [0]; Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted. Call getNextException to see the cause.; nested exception is java.sql.BatchUpdateException: Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted. Call getNextException to see the cause.
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Could not execute JDBC batch update; uncategorized SQLException for SQL [insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (?, ?, ?, ?, ?)]; SQL state [null]; error code [0]; Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted. Call getNextException to see the cause.; nested exception is java.sql.BatchUpdateException: Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted. Call getNextException to see the cause.
java.sql.BatchUpdateException: Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted. Call getNextException to see the cause.
at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2512)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1314)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:347)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2574)
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:500)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:473)
at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:267)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:623)
at com.netblue.matchpoint.service.DiscussionService$$EnhancerByCGLIB$$b685dad0.addOrGetDiscussions(<generated>)
at com.netblue.matchpoint.filter.DiscussionFilter.doFilter(DiscussionFilter.java:30)
at com.netblue.matchpoint.sitecontroller.MpBaseSiteController.getFilteredParams(MpBaseSiteContr
weiter geht es, ich meine das error-trace), weiterhin mehr auf, so dass jede Hilfe zu mir eine Idee, wäre toll, ich nachvollziehen, diese schon in google, aber keine Ergebnisse, danke.
Ich tatsächlich bekommen es behoben, ich erkläre es in einer Antwort...
InformationsquelleAutor user1652761 | 2012-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich tatsächlich löste sich der ärger, es war wirklich schmerzhaft, aber Gott sei Dank konnte ich. Wie ich schon sagte, es funktioniert in einem gewissen Umfeld mit einer Datenbank, sondern in der anderen Umgebung nicht funktioniert, das Problem war, ich hatte mehrere speichern und abhängiger registriert, aber die erste dauert einige Zeit gespeichert, so dass, wenn ich gerettet zweiten register (verschiedene Tabellen, die zweite abhängig von der ersten) die Daten für den Schlüssel war nicht bereits gespeichert, so konnte ich nicht speichern, die in Kaskade als üblich ist, weil es dauern würde, zu ändern, eine Menge code, denn dies ist kein 'beginnen von null,' Entwicklung, also das, was ich Tat, war, zu Graben, mehr in den code und wo die Daten genau gespeichert, und setzen Sie dort das speichern der in einem anderen register. Also im Grunde, wenn Sie die Ablaufverfolgung, die seltsame Fehler, ist nichts besonderes als beschädigte Daten versuchen zu bekommen, gespeichert in der DB.
InformationsquelleAutor user1652761
Wenn
BatchUpdateException.getNextException
nicht hilft (oder es gibt einfach zurücknull
) es ist auch möglich,deaktivieren Sie die Dosierung in den Ruhezustand: sethibernate.jdbc.factory_class=org.hibernate.jdbc.NonBatchingBatcherFactory
im hibernate-session-Konfiguration (dies sollte natürlich nur getan werden, um das Problem zu lösen und sollte nicht für immer).InformationsquelleAutor MartinGrotzke