Came across this is a Distributed Systems Doc:

When you issue a SELECT statement across a database link, a transaction lock is placed on the rollback segment. To release the segment you must issue a COMMIT or ROLLBACK.

e.g.

SELECT a, b, c
FROM table1@link;

COMMIT;
Why? I can understand how, maybe, a 'SELECT FOR UPDATE' might lock rollback, but why a 'simple' SELECT?

BTW - The quote is from the Ora9.2 guide to 'Developing Applications for a Distributed System'.