var sidebar_align = 'right';
var content_container_margin = parseInt('290px');
var sidebar_width = parseInt('270px');
Unanswered: ORACLE 9i RAC and COM+
I have an application that uses COM+ to access a 9i RAC database.
When I try to run the application I get a distributed lock error message which can only be cleared using force commit.
Oracle say this is because COM+ is splitting the transaction into a "prepare" and "commit" and that the prepare is going to one node of the RAC database and the commit going to the other.
Does anybodyelse have experience of this behaviour?
If you are not doing load balancing then what you can do is only use one node, but if that node fails then switchover to the other node.
Use TAF to do automated failover of connections using the tnansames.ora
see for more info
or the oracle RAC manuals on TAF.
Yes - we are running on one node to get round the problem however this means
a. I've got one node doing nothing
b. I will have to manually failover if node1 fails.
I've switched off load_balancing etc - the tnsnames entry is
# (ADDRESS = (PROTOCOL = TCP)(HOST = selhurstpk)(PORT = 1521))
# (ADDRESS = (PROTOCOL = TCP)(HOST = bescotst)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = withdean)(PORT = 1522)))
(SERVICE_NAME = fnmp.vodafone.ie)
where withdean is the cluster alias - the other commented out entries are the other node names.
Look at the link I provided as it shows how to setup the tnsnames.ora so that it always goes to one node but failsover only if the first node fails.
To do load balancing there are a few ways of doing it
1) Do it by application i.e. if you have multiple apps then do it so that say OLTP users always go to one node, but the reporting app goes to the other node.
2) If you have multiple app servers arrange it so that half the servers go to one node and the other half go to the other node (if you have 2 database nodes)