From: | jwhiting(at)redhat(dot)com |
---|---|
To: | Christopher BROWN <brown(at)reflexe(dot)fr> |
Cc: | pgsql-jdbc <pgsql-jdbc(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Subject: | Re: Handling transaction failure due to concurrency errors |
Date: | 2018-03-08 10:59:32 |
Message-ID: | 1520506772.4589.10.camel@redhat.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Hi Christopher,
On a side note you should look at the Byteman project. Byteman makes
fault injection for testing purposes very easy.
In your case using Byteman gets round the effort involved to precisely
re-create a failure scenario. Testing when your re-try logic kicks in
(or not).
Jeremy
On Fri, 2018-03-02 at 16:27 +0100, Christopher BROWN wrote:
> Tom,
>
> That's what I was looking for, so thanks, I'll give it a go.
>
> Best regards,
> Christopher
>
>
>
> On 2 March 2018 at 16:21, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> > Christopher BROWN <brown(at)reflexe(dot)fr> writes:
> > > Thanks for the quick reply. OK for the explanation, and I don't
> > mind
> > > implementing the retry logic for this case... I just don't know
> > how to
> > > detect when my code encounters this case (as opposed to other
> > cases that
> > > can arise, such as unresolved foreign keys when importing data; I
> > don't
> > > want to get into an infinite retry loop because it will never
> > work in these
> > > other cases).
> >
> > Yes, you should only retry in this way for the specific case of a
> > serialization failure (SQLSTATE 40001).
> >
> > regards, tom lane
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Christopher BROWN | 2018-03-08 11:08:57 | Re: Handling transaction failure due to concurrency errors |
Previous Message | Bear Giles | 2018-03-05 22:40:11 | Re: TimeZone issue with 42.2.1 |