Re: 2PC transaction id
От | Heikki Linnakangas |
---|---|
Тема | Re: 2PC transaction id |
Дата | |
Msg-id | Pine.OSF.4.61.0507012025270.496896@kosh.hut.fi обсуждение исходный текст |
Ответ на | Re: 2PC transaction id ("Barry Lind" <blind@xythos.com>) |
Список | pgsql-hackers |
On Fri, 1 Jul 2005, Barry Lind wrote: >> I oversimplified a bit. The TM *can* enlist multiple threads of control >> (= connection in JTA) to the same transaction branch. That's called >> "tightly-coupled threads", and they should then be treated as one >> local transaction in the RM. The calls will look like this: >> >> conn1.start(xid1, TMNOFLAGS); >> ... >> conn2.start(xid1, TMJOIN); >> ... >> conn1.end(xid1, TMSUCCESS); >> ... >> conn2.end(xid1, TMSUCCESS); >> >> connX.prepare(xid1); >> connX.commit(xid1, false); >> >> conn1 and conn2 must share locks and see each others changes. They >> mustn't deadlock each other. The JDBC driver can implement this in a > very >> straight-forward way by using the same physical connection for both > conn1 >> and conn2. Note that there's only one prepare, and it can be issued > using >> any connection. > > In your example above couldn't conn1 and conn2 be running in two > different JVMs? And thus your statement that 'the JDBC driver can > implement this in a very straight-forward way by using the same physical > connection' would not be true. I can't see a way for two JVMs (possibly > on different client machines even) to share the same physical > connection. I can't immediately think of a reason why they couldn't run in two different JVMs, but I also can't think of a reason why anyone would want to do that. Can you give a use case for that? Also, it would require an application server that would support that, and I don't think there is any. - Heikki
В списке pgsql-hackers по дате отправления: