Skip to Content.
Sympa Menu

grouper-users - [grouper-users] Grouper changelog/flatmembership error

Subject: Grouper Users - Open Discussion List

List archive

[grouper-users] Grouper changelog/flatmembership error


Chronological Thread 
  • From: Colin Hudler <>
  • To: "" <>
  • Subject: [grouper-users] Grouper changelog/flatmembership error
  • Date: Wed, 23 Feb 2011 11:44:31 -0600

Greetings,

Today I decided to toy around with grouper ESB things, and get notifications over XMPP. I'm running 1.6.3 with a large registry on Oracle 11g2. It is a purely development server. I setup grouper-loader.properties like this:

changeLog.consumer.xmpp.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbConsumer
changeLog.consumer.xmpp.quartzCron = 0 * * * * ?
changeLog.consumer.xmpp.elfilter = event.eventType eq 'GROUP_DELETE' \|\| event.eventType eq 'GROUP_ADD' \|\| event.eventType eq 'MEMBERSHIP_DELETE' \|\| event.eventType eq 'MEMBERSHIP_ADD'
changeLog.consumer.xmpp.publisher.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbXmppPublisher
changeLog.consumer.xmpp.publisher.server = im.uchicago.edu
changeLog.consumer.xmpp.publisher.port = 5222
changeLog.consumer.xmpp.publisher.username = grouper_user
changeLog.consumer.xmpp.publisher.password = sekret
changeLog.consumer.xmpp.publisher.recipient =

changeLog.consumer.xmpp.publisher.addSubjectAttributes = uid

I took most of this from <https://spaces.internet2.edu/display/Grouper/Grouper+ESB+connector+configuration+examples>. I fired up gsh.sh -loader, and everything worked *really well*.. for a while. Every minute I got a huge batch (backlog?) of notification messages via jabber in json. Things went sour when some changes were made to grouper (via java API) while the consumer was running. The following was logged:

2011-02-23 11:19:54,077: [main] INFO EventLog.info(141) - - [70466727b03f4c4fb6e2799da6fa1da2,'GrouperSystem','application'] delete member: group='uc:Reference:email:routing:oncampus' list='members' subject='51884090U'/'person'/'ucmcdb
' (433ms)
2011-02-23 11:20:00,032: [DefaultQuartzScheduler_Worker-1] INFO EventLog.info(141) - - [2da2780ac728490a916b8ea833e24fc4,'GrouperSystem','application'] session: start (3ms)
2011-02-23 11:20:14,720: [DefaultQuartzScheduler_Worker-2] WARN JDBCExceptionReporter.logExceptions(77) - - SQL Error: 2291, SQLState: 23000
2011-02-23 11:20:14,721: [DefaultQuartzScheduler_Worker-2] ERROR JDBCExceptionReporter.logExceptions(78) - - ORA-02291: integrity constraint (GROUPER.FK_FLAT_MSHIP_OWNER_GROUP_ID) violated - parent key not found

2011-02-23 11:20:14,721: [DefaultQuartzScheduler_Worker-2] WARN JDBCExceptionReporter.logExceptions(77) - - SQL Error: 2291, SQLState: 23000
2011-02-23 11:20:14,721: [DefaultQuartzScheduler_Worker-2] ERROR JDBCExceptionReporter.logExceptions(78) - - ORA-02291: integrity constraint (GROUPER.FK_FLAT_MSHIP_OWNER_GROUP_ID) violated - parent key not found

2011-02-23 11:20:14,722: [DefaultQuartzScheduler_Worker-2] ERROR AbstractFlushingEventListener.performExecutions(301) - - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not insert: [edu.internet2.middleware.grouper.flat.FlatMembership]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2272)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2665)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:60)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
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 edu.internet2.middleware.grouper.hibernate.ByObject.saveBatch(ByObject.java:254)
at edu.internet2.middleware.grouper.hibernate.ByObjectStatic$8.callback(ByObjectStatic.java:518)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:500)
at edu.internet2.middleware.grouper.hibernate.ByObjectStatic.saveBatch(ByObjectStatic.java:505)
at edu.internet2.middleware.grouper.internal.dao.hib3.Hib3FlatMembershipDAO.saveBatch(Hib3FlatMembershipDAO.java:49)
at edu.internet2.middleware.grouper.changeLog.ChangeLogTempToEntity.processMembershipAdd(ChangeLogTempToEntity.java:581)
at edu.internet2.middleware.grouper.changeLog.ChangeLogTempToEntity.processMembershipAdd(ChangeLogTempToEntity.java:622)
at edu.internet2.middleware.grouper.changeLog.ChangeLogTempToEntity.access$800(ChangeLogTempToEntity.java:47)
at edu.internet2.middleware.grouper.changeLog.ChangeLogTempToEntity$1.callback(ChangeLogTempToEntity.java:108)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:500)
at edu.internet2.middleware.grouper.changeLog.ChangeLogTempToEntity.convertRecords(ChangeLogTempToEntity.java:85)
at edu.internet2.middleware.grouper.changeLog.ChangeLogTempToEntity.convertRecords(ChangeLogTempToEntity.java:153)
at edu.internet2.middleware.grouper.changeLog.ChangeLogTempToEntity.convertRecords(ChangeLogTempToEntity.java:153)
<...repeated many times...>
at edu.internet2.middleware.grouper.changeLog.ChangeLogTempToEntity.convertRecords(ChangeLogTempToEntity.java:153)
at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$4.runJob(GrouperLoaderType.java:755)
at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:344)
at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(GrouperLoaderJob.java:247)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (GROUPER.FK_FLAT_MSHIP_OWNER_GROUP_ID) violated - parent key not found

at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10055)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:213)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.BatchingBatcher.addToBatch(BatchingBatcher.java:34)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252)
... 63 more
2011-02-23 11:20:14,736: [DefaultQuartzScheduler_Worker-2] ERROR GrouperUtil.logErrorNextException(562) - - Next exception
java.sql.SQLException: ORA-02291: integrity constraint (GROUPER.FK_FLAT_MSHIP_OWNER_GROUP_ID) violated - parent key not found

This problem stays (the loader keeps logging it), and change notifications simply stopped coming through XMPP.



Archive powered by MHonArc 2.6.16.

Top of Page