Till recently, there was a strange issue seen in peak time with my production WebLogic Server. I have a bunch of Web Services deployed in CXF in WebLogic server. The message flow is as below: -
External Load balancer --> OSB --> External Load balancer --> (CXF in) Web Logic
While up to 95 to 98% of the requests sent to WebLogic had been processed successfully, the remaining requests were timed out in 30 seconds by WebLogic server. When I looked at the access log generated in the WebLogic server, all timed out requests had recorded with HTTP status code 500. It took a while to understand, isolate and resolve the issue.
I did a thread dump analysis and saw several hogging threads with a kind of trace given below:
"[ACTIVE] ExecuteThread: '43' for queue: 'weblogic.kernel.Default (self-tuning)'" RUNNABLE native
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
weblogic.servlet.internal.PostInputStream.read(PostInputStream.java:142)
weblogic.utils.http.HttpChunkInputStream.readChunkSize(HttpChunkInputStream.java:115)
weblogic.utils.http.HttpChunkInputStream.initChunk(HttpChunkInputStream.java:74)
weblogic.utils.http.HttpChunkInputStream.skip(HttpChunkInputStream.java:203)
weblogic.utils.http.HttpChunkInputStream.skipAllChunk(HttpChunkInputStream.java:378)
weblogic.servlet.internal.ServletInputStreamImpl.ensureChunkedConsumed(ServletInputStreamImpl.java:35)
weblogic.servlet.internal.ServletRequestImpl.skipUnreadBody(ServletRequestImpl.java:194)
weblogic.servlet.internal.ServletRequestImpl.reset(ServletRequestImpl.java:152)
weblogic.servlet.internal.MuxableSocketHTTP.requeue(MuxableSocketHTTP.java:195)
weblogic.servlet.internal.VirtualConnection.requeue(VirtualConnection.java:329)
weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1538)
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1455)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
After further investigation, I found that the WebLogic server was not receiving the message within the default POST TIMEOUT (30 seconds) configured in the WebLogic server. Increasing the time out value to 45 or 60 seconds did not help. It only aggravated the performance issue.
Let's look at how the issue was resolved. When you define a business service in Oracle Service Bus (OSB), you would have seen a parameter namely "Use Chunked Streaming Mode" under " " section. The default value was configured as "Enabled". Apparently, the load balancer was not able to handle requests with chuncked encoding in peak time. It was unable to transmit the request message to the WebLogic server within the configured post timeout period. It can be validated against the thread dump shown above. After changing the value from "Enabled" to "Disabled", the 500 error has been eliminated permanently and now the server is in good health.
Thanks for reading this post and hope you liked the tip. Please feel free to post your comment here.
External Load balancer --> OSB --> External Load balancer --> (CXF in) Web Logic
While up to 95 to 98% of the requests sent to WebLogic had been processed successfully, the remaining requests were timed out in 30 seconds by WebLogic server. When I looked at the access log generated in the WebLogic server, all timed out requests had recorded with HTTP status code 500. It took a while to understand, isolate and resolve the issue.
I did a thread dump analysis and saw several hogging threads with a kind of trace given below:
"[ACTIVE] ExecuteThread: '43' for queue: 'weblogic.kernel.Default (self-tuning)'" RUNNABLE native
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
weblogic.servlet.internal.PostInputStream.read(PostInputStream.java:142)
weblogic.utils.http.HttpChunkInputStream.readChunkSize(HttpChunkInputStream.java:115)
weblogic.utils.http.HttpChunkInputStream.initChunk(HttpChunkInputStream.java:74)
weblogic.utils.http.HttpChunkInputStream.skip(HttpChunkInputStream.java:203)
weblogic.utils.http.HttpChunkInputStream.skipAllChunk(HttpChunkInputStream.java:378)
weblogic.servlet.internal.ServletInputStreamImpl.ensureChunkedConsumed(ServletInputStreamImpl.java:35)
weblogic.servlet.internal.ServletRequestImpl.skipUnreadBody(ServletRequestImpl.java:194)
weblogic.servlet.internal.ServletRequestImpl.reset(ServletRequestImpl.java:152)
weblogic.servlet.internal.MuxableSocketHTTP.requeue(MuxableSocketHTTP.java:195)
weblogic.servlet.internal.VirtualConnection.requeue(VirtualConnection.java:329)
weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1538)
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1455)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
After further investigation, I found that the WebLogic server was not receiving the message within the default POST TIMEOUT (30 seconds) configured in the WebLogic server. Increasing the time out value to 45 or 60 seconds did not help. It only aggravated the performance issue.
Let's look at how the issue was resolved. When you define a business service in Oracle Service Bus (OSB), you would have seen a parameter namely "Use Chunked Streaming Mode" under " " section. The default value was configured as "Enabled". Apparently, the load balancer was not able to handle requests with chuncked encoding in peak time. It was unable to transmit the request message to the WebLogic server within the configured post timeout period. It can be validated against the thread dump shown above. After changing the value from "Enabled" to "Disabled", the 500 error has been eliminated permanently and now the server is in good health.
Thanks for reading this post and hope you liked the tip. Please feel free to post your comment here.
Hi Ayyappan,
ReplyDeleteThanks for the details post.I also faced a similar kind of issue in One of our Axis2 WS deployed on Oracle Weblogic 12c. When the load for the WS is more we get Http status 500 in the access logs which causes alarms to be triggered .Also in this WS we notify the client about the error scenario with SOAP Exceptions.Though the number of Soap Exception is quite low compared to the HTTP 500 for the service. Also in the Axis2 war file ,in axis2.x,l configuration we have the below HTTP transport values given as Chunked by default. So if the value is changed from Chunked will the occurrence of HTTP 500 reduced.
axis2.xml configuration :
HTTP/1.1
chunked
HTTP/1.1
chunked
Sorry the configurations of axis.xml is missed in previous query.
ReplyDeleteHTTP/1.1
chunked
ReplyDeleteIt's very nice post,keep update at
Oracle SOA Online Course
I wish to show thanks to you just for bailing me out of this particular trouble. As a result of checking through the net and meeting techniques that were not productive, Same as your blog I found another one Oracle OSB 12c.Actually I was looking for the same information on internet for Oracle OSB 12c and came across your blog. I am impressed by the information that you have on this blog. Thanks once more for all the details.
ReplyDeleteperde modelleri
ReplyDeleteSms Onay
mobil ödeme bozdurma
NFT NASIL ALİNİR
Ankara evden eve nakliyat
trafik sigortası
DEDEKTOR
Kurma Web Sitesi
aşk kitapları
SMM PANEL
ReplyDeletesmm panel
iş ilanları
instagram takipçi satın al
hırdavatçı
beyazesyateknikservisi.com.tr
servis
tiktok jeton hilesi
Good content. You write beautiful things.
ReplyDeletemrbahis
sportsbet
vbet
vbet
mrbahis
sportsbet
hacklink
korsan taksi
taksi
dijital kartvizit
ReplyDeletereferans kimliği nedir
binance referans kodu
referans kimliği nedir
bitcoin nasıl alınır
resimli magnet
O3D4NB
bitlis
ReplyDeleteurfa
mardin
tokat
çorum
XEAT5Y
görüntülü.show
ReplyDeletewhatsapp ücretli show
D34QG
van evden eve nakliyat
ReplyDeletesivas evden eve nakliyat
çankırı evden eve nakliyat
bartın evden eve nakliyat
erzincan evden eve nakliyat
X0J
ordu evden eve nakliyat
ReplyDeletebursa evden eve nakliyat
konya evden eve nakliyat
osmaniye evden eve nakliyat
bitlis evden eve nakliyat
İWNLC
https://istanbulolala.biz/
ReplyDeleteDARCMS
hatay evden eve nakliyat
ReplyDeleteısparta evden eve nakliyat
erzincan evden eve nakliyat
muğla evden eve nakliyat
karaman evden eve nakliyat
LJ3
urfa evden eve nakliyat
ReplyDeletemalatya evden eve nakliyat
burdur evden eve nakliyat
kırıkkale evden eve nakliyat
kars evden eve nakliyat
XH2V
8EB38
ReplyDeleteNevşehir Lojistik
Kayseri Lojistik
Ağrı Lojistik
Antalya Evden Eve Nakliyat
Gümüşhane Parça Eşya Taşıma
115CF
ReplyDeleteManisa Parça Eşya Taşıma
Ardahan Evden Eve Nakliyat
Tokat Lojistik
Iğdır Parça Eşya Taşıma
İzmir Evden Eve Nakliyat
6EF61
ReplyDeleteUşak Şehirler Arası Nakliyat
Iğdır Parça Eşya Taşıma
Trabzon Parça Eşya Taşıma
Çerkezköy Halı Yıkama
Zonguldak Lojistik
Kocaeli Evden Eve Nakliyat
Binance Güvenilir mi
Çerkezköy Oto Elektrik
Edirne Şehir İçi Nakliyat
CCA3F
ReplyDeleteKayseri Parça Eşya Taşıma
Iğdır Evden Eve Nakliyat
Ankara Evden Eve Nakliyat
Batman Parça Eşya Taşıma
Niğde Evden Eve Nakliyat
Çerkezköy Korkuluk
Silivri Çatı Ustası
Kocaeli Şehir İçi Nakliyat
Bingöl Evden Eve Nakliyat
BF685
ReplyDeleteÇerkezköy Sineklik
Adana Şehir İçi Nakliyat
Adana Şehirler Arası Nakliyat
Maraş Lojistik
Ardahan Şehirler Arası Nakliyat
Bartın Şehirler Arası Nakliyat
Hakkari Lojistik
Nevşehir Şehirler Arası Nakliyat
Çorlu Lojistik
F3388
ReplyDeleteAnkara Boya Ustası
dianabol methandienone
https://steroidsbuy.net/
deca durabolin
order testosterone propionat
buy sustanon
buy clenbuterol
Etimesgut Boya Ustası
Kars Lojistik
59C3D
ReplyDeleteresimlimag.net
Coin Kazanma
Yeni Çıkacak Coin Nasıl Alınır
Bitcoin Hesap Açma
Binance Nasıl Üye Olunur
Binance Neden Tercih Edilir
Kripto Para Kazma
Coin Nasıl Üretilir
Coin Kazma Siteleri
0ADA2
ReplyDeletesightcaresite.com
10981
ReplyDeletekocaeli rastgele canlı sohbet
kayseri sesli sohbet mobil
görüntülü sohbet siteleri ücretsiz
malatya bedava sohbet uygulamaları
muş görüntülü sohbet kadınlarla
şırnak en iyi ücretsiz sohbet uygulamaları
kocaeli rastgele görüntülü sohbet ücretsiz
kilis rastgele sohbet
uşak görüntülü sohbet kadınlarla
3B54E
ReplyDeletekilis en iyi ücretsiz görüntülü sohbet siteleri
balıkesir canli sohbet
Ankara Sohbet Siteleri
yozgat parasız sohbet siteleri
rastgele görüntülü sohbet
tekirdağ canlı sohbet siteleri
Aksaray Yabancı Canlı Sohbet
manisa telefonda kadınlarla sohbet
isparta ücretsiz sohbet uygulamaları
7B2EC
ReplyDeletebingx
kucoin
toptan mum
biberiye sabunu
btcturk
bybit
en iyi kripto para uygulaması
bitcoin hesabı nasıl açılır
binance 100 dolar
250E1
ReplyDeletebitcoin seans saatleri
btcturk
kripto telegram grupları
binance 100 dolar
bybit
probit
toptan sabun
probit
bitrue
86486
ReplyDeletebkex
en az komisyon alan kripto borsası
mobil proxy 4g
bitget
en düşük komisyonlu kripto borsası
kripto ne demek
binance referans
probit
bitexen
2FF97
ReplyDeletepapaya meyvesi
binance 100 dolar
August 2024 Calendar
cointiger
huobi
binance ne demek
September 2024 Calendar
binance
en iyi kripto grupları telegram