You can set the permissions for the table with:

GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE 
[SchemaName].openjpa_sequence_table TO [UserName];

*NOTE:  This Sequence Table was autogenerated by openJPA - you name might be 
different!


John
 

> -----Ursprüngliche Nachricht-----
> Von: Marco de Booij [mailto:mdeb...@scarlet.be] 
> Gesendet: Dienstag, 19. Juni 2012 22:08
> An: users@openjpa.apache.org
> Betreff: Re: Postgres sequence: current transaction is aborted
> 
> Hello Kevin,
> 
> Thanks for the help. Your work around solved my problem. I 
> made my application user the owner of the sequence and I was 
> able to insert my rows. I could not find how/if I could grant 
> the rights.
> 
> I hope that the 'final' solution works without this ALTER 
> SEQUENCE statement. I personally do not like to use the owner 
> of objects in a datasource. Applications should not be 
> allowed to change database objects. They only should change 
> data. However if you do not give a SQL script with your 
> application then you need to have openJPA creating the objects :-)
> 
> There is 1 big disadvantage. With increment of 50 you get big 
> holes in your primary keys. My first key was 53 (the current 
> value was 3 before I
> started) and after I restarted Tomee and inserted another row 
> the primary key went from 171 to 203. I set the 
> allocationSize to 2 for smaller holes.
> 
> Regards,
> 
> Marco
> 
> Op 19-06-12 00:06, Kevin Sutter schreef:
> > Hi Marco,
> > The trace from Postgres is helping to understand the issue. 
>  I think 
> > the basic problem is that the application doesn't have proper 
> > permissions to update (alter) the sequence:
> >
> > 2012-06-18 20:17:28 CEST ERROR:  must be owner of relation 
> > seq_i18n_codes
> > 2012-06-18 20:17:28 CEST STATEMENT:  ALTER SEQUENCE 
> > DOOS.SEQ_I18N_CODES INCREMENT BY 50
> >
> > If the permissions for this sequence can be set to allow for this 
> > "alter sequence..." statement, then you would be in the clear.  
> > Unfortunately, I am not a Postgres expert, so I don't know 
> the magic 
> > incantation to allow for this.  But, if this can be figured 
> out then 
> > you would be in much better shape.
> >
> > It looks like this whole issue is coming about due to the changes 
> > introduced with OpenJPA-1376 and OpenJPA-2069.  The 
> configuration of 
> > sequences was not properly implemented in the first place.  The 
> > parameters were not properly applied to the sequence creation.  As 
> > part of that fix, it was determined to always execute the "alter 
> > sequence.." statement to ensure that the sequence in the database 
> > matched the expectations of the sequence definition.  This "alter 
> > sequence.." statement must be acceptable to all of the other 
> > databases, just not Postgres due to the permissions thing.
> >
> > As a side issue...  Your idea of setting the allocationSize to 1 
> > should have been a good workaround.  Unfortunately, the 
> generation of 
> > the "alter sequence.." statement has a problem -- as you have 
> > discovered.  Since the allocationSize is not greater than 
> 1, we quit 
> > generating the "alter sequence.." statement and we end up with the 
> > syntax error as you reported below (OpenJPA-2196).  And, 
> since we blindly issue the "alter sequence.."
> > statement, there is not a way to disable the generation and 
> execution 
> > of this statement.  So, two issues surfaced with that workaround...
> >
> > All of this is saying that I don't have a quick answer for 
> you...  If 
> > the owner permission thing can be figured out for Postgres, that's 
> > going to be the quickest workaround.  Otherwise, it looks 
> like we have 
> > 2 or 3 problems that need a JIRA resolution.
> >
> > Kevin
> >
> > On Mon, Jun 18, 2012 at 3:17 PM, Marco de 
> Booij<mdeb...@scarlet.be>  wrote:
> >
> 
> 

Reply via email to