Solved

Stuck thread in application running in Welogic 10.3.5

Posted on 2014-09-18
13
371 Views
Last Modified: 2014-10-19
We have encountered Stuck thread in application running in Welogic 10.3.5, below is the cause found in the logs:
Caused By: java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at oracle.net.ns.DataPacket.send(DataPacket.java:200)
        at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:230)
        at oracle.net.ano.AnoComm.b(Unknown Source)
        at oracle.net.ano.Ano.negotiation(Unknown Source)
        at oracle.net.ns.NSProtocol.connect(NSProtocol.java:438)
        at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1056)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:538)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
        at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(ConnectionEnvFactory.java:350)
        at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:236)
        at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1249)
        at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1166)
        at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:450)
        at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:342)
        at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:419)
        at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:324)
        at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:94)
        at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:63)
        at weblogic.jdbc.jts.Driver.newConnection(Driver.java:915)
        at weblogic.jdbc.jts.Driver.createLocalConnection(Driver.java:327)
        at weblogic.jdbc.jts.Driver.connect(Driver.java:173)
        at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:364)
        at com.fortressit.ejb.EJB11.EJB11Context.getConnection(EJB11Context.java:144)
        at com.sns.base.util.DBConnection.getConnection(DBConnection.java:139)
0
Comment
Question by:SANJAY HALDAR
  • 7
  • 6
13 Comments
 
LVL 61

Expert Comment

by:gheist
Comment Utility
Database connection disconnected mid transaction, and exception was not handled...  
What makes you think there is a stuck thread? Was it normal before?
0
 

Author Comment

by:SANJAY HALDAR
Comment Utility
Thanks for the response.
Stuck thread noticed in one of our instance and we have seen the above mentioned traces in the logs. This API functions normally, is surge in the incoming request can trigger the broken pipe. What could the reason for the "Database connection disconnected mid transaction"
0
 
LVL 61

Expert Comment

by:gheist
Comment Utility
Any firewall around database? Like windows or iptables?
0
 

Author Comment

by:SANJAY HALDAR
Comment Utility
There is generic firewall for the network as always.
0
 
LVL 61

Expert Comment

by:gheist
Comment Utility
So that kills the connections, enjoy
0
 

Author Comment

by:SANJAY HALDAR
Comment Utility
you mean to say the firewall kills the connection, if yes, I have the following queries:

# If firewall is killing the  connections, then we should encounter the issue always.
# What is the background of proving that  firewall is killing the  connection, so that we can take up to the infra level.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 61

Expert Comment

by:gheist
Comment Utility
# it is not killing connection. it drops connection state and no longer forwards packets
# experience.
0
 

Author Comment

by:SANJAY HALDAR
Comment Utility
So, the deficiency which we have in the code is that the exception wasn't handled.
BTW, can it be ensured that firewall doesn't drop the connection state, any measure?
0
 
LVL 61

Expert Comment

by:gheist
Comment Utility
Dont use long idle connections.
0
 

Author Comment

by:SANJAY HALDAR
Comment Utility
Would it be possible for you to demonstrate a sample piece of code which ensures that the connections are not hold idle OR to avoid using the idle connection
0
 
LVL 61

Expert Comment

by:gheist
Comment Utility
socket was broken... What else you need.
0
 

Author Comment

by:SANJAY HALDAR
Comment Utility
Was your last comment relevant to my previous query
0
 
LVL 61

Accepted Solution

by:
gheist earned 500 total points
Comment Utility
Stack trace comes from:
at com.fortressit.ejb.EJB11.EJB11Context.getConnection(EJB11Context.java:144)
        at com.sns.base.util.DBConnection.getConnection(DBConnection.java:139)


so check that line and handle the exception when socket times out.
or close them before firewall does
or make some query on schedule
0

Featured Post

Zoho SalesIQ

Hassle-free live chat software re-imagined for business growth. 2 users, always free.

Join & Write a Comment

Goal:  To set up a secure SSH server for your home computer to make it accessible anywhere AND to use it as a port forwarding proxy. Steps 1.  WinSSHD version 5 is free for personal use.  So download and install it.  You can download it from the…
Have you ever stumbled upon a software that is so great that you just love? It happened to me. Love at first sight. Filezilla Server.   Ok its not the most advanced ftp server I've came across. But its a fairly simple piece of software to get the …
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now