This content has been marked as final. Show 3 replies
Here's some general information on load balancing:
1. With OSM order affinity, the managed server instance that receives the order (precisely, creates the OSM order) has sole ownership of the order. Other than specific circumstances, the ownership is not transferred, and thus processing of that order stays with that instance till completion.
2. The OSM web service (createOrder API) has no load balancing mechanism internally if HTTP is used as the transport. So if you only send orders to one managed server, that instance will create and thus own all these orders. In contrast, if you use JMS as the transport, it is load-balanced by the JMS distributed destination (provided you are not sending instead to member queues of the distribution destination).
Now, assuming you are using HTTP, you need to ensure that the Load Balancer is really round-robining on the 2 managed servers among HTTP messages of order submissions. Monitor your TCP pipes to verify.
A problem we've seen, is if you are using SoapUI with pre-emptive authentication disabled, the SOAP request without pre-emptive authentication will be rejected, causing a re-send. Because of LB, all orders ended up in one managed server, as the reject-then-accept SOAP message sequence becomes cyclic with odd-even round-robin. So, enable pre-emptive authentication to avoid that.
Btw, is your cartridge handling high-activity orders? If not, I have a suspicion that your pasted log message may be a red-herring.
OSM Product Management
First of all i wanna thank you for your answer. Can you tell me how i can find out if our cartridge is handling high-activity orders???
Secondly is there a way from the weblogic console to monitor the TCP traffic ????
We're using SoapUI to create test orders but we have activated pre-emptive authentication.. because when it was disable we couldn't send orders.
Edited by: Alexandros on Oct 25, 2012 11:28 PM
High-activity orders have a large number of tasks, and usually a large number of sub-processes and tasks that must be executed concurrently. High activity order processing is enabled by default -- see com.mslv.oms.handler.cluster.ClusteredHandlerFactory.HighActivityOrder.CollectionCycle.Enabled in oms-config.xml.
There are a few levels where you can monitor traffic. I assume you are not seeing any traffic in weblogic console already? For me, just to troubleshoot whether the traffic is coming in at all from the load balancer, I'd monitor at the TCP level, e.g. using tcpmon.
OSM Product Management