Re: Serializable transactions and SQLException

Поиск
Список
Период
Сортировка
Искать
От
Oliver Jowett
Тема
Re: Serializable transactions and SQLException
Дата
Msg-id
41815066.1060308@opencloud.com
Ответ на
Список
Дерево обсуждения
Serializable transactions and SQLException Giampaolo Tomassoni <g.tomassoni@libero.it>
Re: Serializable transactions and SQLException Oliver Jowett <oliver@opencloud.com>
Re: Serializable transactions and SQLException Kris Jurka <books@ejurka.com>
Re: Serializable transactions and SQLException Giampaolo Tomassoni <g.tomassoni@libero.it>
Re: Serializable transactions and SQLException Kris Jurka <books@ejurka.com>
Re: Serializable transactions and SQLException Giampaolo Tomassoni <g.tomassoni@libero.it>
Giampaolo Tomassoni wrote:
> Dears,
> 
> I would like to develop java code using the pgsql-jdbc driver on serializable 
> isolated transactions. The (general) pgsql manual states that this, of 
> course, may cause concurrent updating transaction failures to inform the 
> client to retry the transaction as a whole.
> 
> This is said to be reported by the error message:
> 
> 	ERROR:  Can't serialize access due to concurrent update
> 
> 
> Great. I want to cope with it. But what's the SQLException.getSQLState() value 
> associated to this? Or is it a SQLException.getErrorCode()? Is this value 
> something 'standard', in the sense that, ie., if I need to switch to Oracle 
> it works fine? Is there a better way to identify 'please, retry' suggestions 
> than browsing the SQLException object?

Your best bet is to use a 7.4 or later server and inspect the SQLState 
of the exception.

To find out what SQLState to expect, either try it and see, or take a 
look at src/include/utils/errcodes.h in the server source tree and pair 
it up with the appropriate ereport() call you are interested in. For 
transaction serialization failures it is 
ERRCODE_T_R_SERIALIZATION_FAILURE which has a SQLState of 40001.

SQLStates are somewhat standardized around SQL99. The comments in 
errcodes.h say:

>>  * The SQL99 code set is rather impoverished, especially in the area of
>>  * syntactical and semantic errors.  We have borrowed codes from IBM's DB2
>>  * and invented our own codes to develop a useful code set.

I have no idea what Oracle does in this area.

-O
В списке pgsql-jdbc по дате отправления
От: skeize@gmail.com (skeize@gmail.com)
Дата:
От: Oliver Jowett
Дата:
FAQ