Test the Server Load balancer for connecting WebLogic to Oracle RAC

Source: Internet
Author: User

For stress testing, the middleware uses WebLogic 816
The database version is 11.1.0.6 RAC.
The stress testing tool is LoadRunner 8.0
. Test a single instance and Rac
The load of each node in the environment.

 

 

In WebLogic
A multi-pool is configured on, and WebLogic
The server Load balancer policy is provided to separate the Concurrent Server Load balancer policies to two nodes.

However, the test shows that
After a while, all the pressure will be loaded to one node, and there will be no pressure on the other node.

Through the query results in the database
Results:

SQL> select inst_id, status,
Count (*)
2 from GV $ session
3 where username = 'ndmain'
4 group by inst_id, status;

Inst_id status count (*)
----------------------------
1 inactive 6
1 Active 1
2 active 147
2 inactive 3

WebLogic
Set the concurrency to 150.
While LoadRunner
Concurrency: 200
, Oracle
Each
Sessions of instances
Is 600
.

We can see that the pressure is basically exhausted.
Instance 2 in the full set
. Instance 1
If the stress test runs for a long enough time, instance 1 may be idle for a short period of time.
Active on
The connection can reach about 2 or 30, but is soon released.

SQL> select inst_id, status,
Count (*)
2 from GV $ session
3 where username = 'ndmain'
4 group by inst_id, status;

Inst_id status count (*)
----------------------------
1 active 20
1 inactive 54
2 active 121
2 inactive 28

Tested multiple times and the results are very similar.
Like, the pressure is almost completely concentrated on a node. But not necessarily every time the pressure is on node 2
,
Probably in WebLogic
After the service is restarted, the next test starts.
The pressure is concentrated to node 1.
. This indicates that the problem is not the hardware of the two nodes.
Is not balanced.

This test runs for a long time.
And insert
Statement, you can see two nodes
There are very few active
. At this time, because the transaction processing is very short, no
WebLogic may be enabled in a short time
So this situation
No problem.

SQL> select inst_id, status,
Count (*)
2 from GV $ session
3 where username = 'ndmain'
4 group by inst_id, status;

Inst_id status count (*)
----------------------------
1 inactive 50
1 Active 1
2 active 1
2 inactive 98

WebLogic
Load-balancing
The policy seems to be faulty, causing pressure skew on the two nodes. Probably because WebLogic
The version is too low, causing problems.
Upgrade to the latest version 10.3.
But the test results remain.

Since Weblogic is used in the previous test
Load-balancing
Strategy, tried a HING-AVAILABILITY
It is found that this policy is more consistent with its own name, but there are also some problems.
This policy takes precedence over mutries.
Pool
If the first connection pool can be connected, the second connection pool will not be used. Many connection timeout errors occur even if there are too many concurrent users.
And will not try to use the second connection pool. When instance 1 is disabled in the background
, Resulting in Connection Pool 1
The connection to WebLogic fails.
Open
Use the second connection pool. Once instance 1
Start WebLogic
Connection Pool 1 Detected
Available. All connections will be connected immediately from connection pool 2
Move up to Connection Pool 1
, Restore to instance 1
Off
Before closing. Based on the above situation, WebLogic
Only implement
The connection pool priority settings, rather than the true high-availability
.

It's a long journey. Let's continue with weblogic.
Load-balancing
. Because upgrading to the latest version cannot solve this problem, you have to search on the network and find many similar
Case. However, no solutions were found.

However, in Metalink
An article in this article mentions that WebLogic
Url = "JDBC: oracle: thin @"
Use Oracle directly later
Tnsnames. ora
Medium
.

For example, configure url = "JDBC: oracle: thin @

(Description =
(Address =
(Protocol = TCP) (host = 172.0.2.58) (Port = 1521 ))
(Address = (Protocol = TCP) (host = 172.0.2.59) (Port = 1521 ))
(Load_balance = yes) (CONNECT_DATA = (Server = dedicated)
(SERVICE_NAME = rac11g.us.oracle.com ))"

This method actually bypasses WebLogic
Instead of using RAC.
The test results are as follows:

SQL> select inst_id, status,
Count (*)
2 from GV $ session
3 where username = 'ndmain'
4 group by inst_id, status;

Inst_id status count (*)
----------------------------
1 active 75
1 inactive 6
2 active 75
2 inactive 5

Oracle
The implementation of load balancing is still relatively good, basically the load difference between the two nodes is very small. It is also applicable to scenarios with low load:

SQL> select inst_id, status,
Count (*)
2 from GV $ session
3 where username = 'ndmain'
4 group by inst_id, status;

Inst_id status count (*)
----------------------------
1 inactive 8
1 Active 1
2 active 2
2 inactive 7

Test results show that
What is the ideal Server Load balancer? It is best to use Oracle
Negative
Load Balancing policy instead of Weblogic
Load-balancing provided by multiple pools
Policy.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.