Insert statements fail after 'call Nextval' in PostgreSQL cluster
-----------------------------------------------------------------

         Key: SEQUOIA-975
         URL: https://forge.continuent.org/jira/browse/SEQUOIA-975
     Project: Sequoia
        Type: Bug

  Components: Core  
    Versions: Sequoia 2.10.9    
 Environment: Windows, Hibernate, PostgreSQL and Spring
    Reporter: Love Singhal


I am currently facing this issue and is a blocker for me. 

I have a Spring and Hibernate based Java server which is connected to 
PostgreSQL database. I want to add database clustering to it using sequoia. The 
server uses sequences to generate various Ids. One sequence 
'hibernate_sequence' is automatically used by the Hibernate framework. 
I installed a sequoia cluster of two databases with two controllers. To enable 
synchronization of sequences, I changed the sql query 'select nextval' to 
'{call nextval.. }' as mentioned in the documents. For hibernate, I defined the 
new SQL dialect which changes the nextVal query string. 
However, I am finding that the database statements that do an insert statement 
along with the 'call nextval' statement in the same transaction fail 
consistently. The error returned in the logs and to the server is: 

>  uncategorized SQLException for SQL [insert into category (name, description, 
> prefix, server_path, category_id) values (?, ?, ?, ?, ?)]; SQL state [null]; 
> error code [0]; Batch failed for request 0: insert into category (name, 
> description, prefix, server_path, category_id) values (?, ?, ?, ?, ?) 
> (org.continuent.sequoia.common.exceptions.driver.DriverSQLException: Message 
> of cause: write request 562949953421404 failed:
Backend ras - BackendWorkerThread for backend 'localhost2' with RAIDb level:1 
failed (ERROR: current transaction is aborted, commands ignored until end of 
transaction block)

The ras is the name of the virtual database. 
All kinds of insert requests (not necessarily, in the category table) are 
failing when they are called along with the call nextval statement. The call 
nextval statement always succeeds. The error is also same for all kinds of 
inserts. Everytime, backend localhost2 has some problem. I tried to locate the 
cause of the problem in the logs but could not find anything that specifies the 
cause (even after setting up everything to DEBUG log level). I cant do a '{call 
nextval}' in a separate transaction as these calls are automatically made by 
hibernate. 

When I revert back the '{call nextval' statement to 'select nextval', things 
work fine until some primary key gets duplicated (sequences in the two 
databases become unequal). Also, the update calls along with '{call nextval'  
seem to succeed. 
I am now stuck with this issue and could not proceed any further with 
clustering. Please help. 


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   https://forge.continuent.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to