I have a query that runs like this:

Select * from
table1,
table2
where
table1.field1 = table2.field1 and
table1.field2 = table2.field2 and
table1.field3 = table2.field3 and
table1.field4 = table2.field4 and
order by
table2.field1,
table2.field2,
table2.field3,
table2.field4

But when i run parallel instances of my application (approx 20), this query is dead-locking on itself. Which is surprising.

I expect that all instances of my application should lock records in the same order specified by the 'order by' clause. But apparently that is not happening.
I'm using Oracle version 11g