Broken Pipe in Connection Pooling

Hi! am getting broken pipe exception in connection pooling when am deploying my application in UNIX but my application is working fine if i use NetBeans, Tomcat5.5, Oracle & Windows OS. Can anyone help me. Thanks in adv

Launch the Console application in any of the following ways:
☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
☞ Open LaunchPad. Click Utilities, then Console in the icon grid.
Select
/var/log ▹ cups ▹ error_log
from the hierarchical list on the left side of the Console window. If you don't see that list, select
View ▹ Show Log List
from the menu bar. Then select the messages from the time of the last failed printing attempt. Copy them to the Clipboard by pressing the key combination command-C. Paste into a reply to this message (command-V).
If there are runs of repeated messages, post only one example of each. Don’t post many repetitions of the same message.
When posting a log extract, be selective. In most cases, a few dozen lines are more than enough.
Please do not indiscriminately dump thousands of lines from the log into this discussion.

Similar Messages

  • Infamous SocketException: Broken Pipe

    Hello,
    As with many of the other users on this forum I have been plagued by the Broken Pipe SocketException, very rarely, which seems to essentially block on the java.net.SocketOutputStream.socketWrite0(Native Method) for quite a long time (presumably the length of some timeout) during a flush. It is also typically accompanied by a "java.net.SocketException: Connection timed out" on the socket itself.
    I've read the many responses by EJP that this means:
    "This is caused by writing to a connection when the other end has already closed it.
    So you have a poorly defined or implemented application protocol."
    My main question is: Is it normal for these exceptions to occur, and we just need to write some layer that handles this?
    And a follow up: If so, would that layer be something along the lines of:
    - a separate thread on the server for each output stream, and if this thread blocks during flush (for whatever reason), either:
    - use a watchdog thread to close the output if some internal timeout has exceeded, or:
    - just let Java's connection timeout eventually occur and let the output thread die
    Or am I way off base here?
    One more thing: Any other advice / best architectural practices / help regarding this problem / reading suggestions would be extremely appreciated.
    Thanks.

    EJP wrote:
    Or else you are just streaming large amounts of data and the peer giving up is part oft the application protocol(for example, the peer is a browser and the user navigates away), in which case th correct action is to catch the exception and give up on the client.I believe this might be the case. The clients can (and typically do) receive the information I am sending. It is absolutely possible that they can navigate away during the transfer. It is fine for the purposes of the application to give up on this client. To give up on the client and not have flush() block my main thread, I would need a separate thread per client, for handling the outputstream, correct? ie. one for receive, another for send, per client.
    There is something seriously wrong with your statement that the peer gets a connection timeout when this side gets a broken pipe. Connection timeout happens when creating a connection: in fact it happens instead of creating a connection. So there is no connection yet, so no peer at all, so it is impossible for the other end to be writing to the connection at all, because there is no connection and no other end. Do you mean a read timeout?I get:
    ThreadID-1310 java.net.SocketException: Connection timed out
    ThreadID-1310 java.net.SocketException: Broken pipe
    On the server-side thread that holds the socket for this client. The Connection timed out happens from the Socket InputStream during a readByte(), Broken pipe happens from the Socket OutputStream during a flush().
    Init code:
    socket_ = serverSocket_.accept();
    in_ = new DataInputStream(new BufferedInputStream(socket_.getInputStream()));
    out_ = new DataOutputStream(new BufferedOutputStream(socket_.getOutputStream()));
    mainThread.add(this); // the output main thread with some synchronization
    start(); // the read thread belowReceive in the thread that throws Connection Timed out:
    run() {
      while(running) {
        try {
          byte index = in_.readByte();
        } catch (SocketException e) {
          System.err.println(getId() + ": " + e);
    }Send code in main thread that throws broken pipe:
        try {
          callingThread_.out_.flush()
        } catch (SocketException e) {
          System.err.println(callingThread_.getId() + ": " + e);
      }Both exceptions happen back to back. The Main thread keeps a back-pointer to the calling thread As you can see, both in_ and out_ are from the same socket on the original object. The user has absolutely been connected for a while before this occurs.
    Thanks again for the insight.

  • IO Exception Broken Pipe ORA-17002 while using connection pooling

    Hi
    We are experiencing "broken pipe ORA-17002 error" when using connection pooling. This seems to be a common error when implementing connection pooling, but I didn't find any solution anywhere.
    we are using Oracle 9i 9.2.0.1 JDBC thin driver
    Our database is Oracle 8.1.7 running on HP Unix
    The middle tier(Tomcat) runs on RedHat linux server
    We are using JDK1.3
    It seems the connections automatically get stale or bad after certain period of time.Iam checking to see if the connection is closed, before giving the connection from the pool to the appilcation.It seems its still open.But when I start using the connection to open a callable statement or setAutocommit to false, it says Broken pipe or No more data to read from the socket.
    We are implementing our own connection pooling class(we experimented with OracleConnectionCacheImpl but it too gave the same errors).
    Does anybody have a solution for this problem??
    Is there a workaround for this?I would like to know how connection pooling is implemented in most of the applications that use oracle database?Or do we need to explicitly test the connection before using it, and reopen a connection if that is bad??
    Thanks
    Anil

    kalle
    Thank you very much for your advice!!!
    Like you said, I started to check whether the connections are fine before giving them from the pool.I am executing a simple "select 'anil' from dual" and if its fine only then I return the connection. So far it seems to be fine. Also I am reopening the connections(closing the old ones and opening new connections) after every 12 hours.
    As far as the JDBC driver is concerned, I already tried with Oracle 8i driver, it gave the same problems. I read that 9i driver might solve this problem, so I changed to the latest 9i driver (classes12_g.zip).
    Sometimes before(before I started checking whether the connection is good )the application used to hang up at the point where I am issuing setAutoCommit(false).It never comes out from that statement.Is this something to do with theconnections being closed?
    What I am afraid is, will the appilation get hung up even after I check the connection with select query and then issue autocommit(false)??
    Or will it hang up while I check with a select query??
    As long as it doesn't hung up, I am fine. Because i am cathching the exceptions.
    Thanks In ADVANCE
    Anil

  • Broken pipe, DMLException: JBO-26061: Error while opening JDBC connection

    Hi,
    We are facing strange problem with oc4j903 container using bc4j getConnection() method.
    We are getting the following error intermitantly using bc4j getConnection() method.
    ApplicationModuleProvider JBO-30003: The application pool (bc4j_paris) failed to checkout an application module due to the following exception:
    oralce.jbo.DMLException: JBO-26061: Error while opening JDBC connection.
    and then it says ,
    java.sql.SQLException: Io exception: Broken pipe.
    It gets connection automatically in a matter of minutes.
    Has anybody faced these problem or anyone has the solution please help us out.
    Thanks,
    Chinna

    Bhaskar -- BC4J related questions are better directed to the JDeveloper forum; that's where the BC4J PMs and developers hang out.
    cheers
    -stevee

  • DMLException: JBO-26061: Error while opening JDBC connection, Broken pipe

    Hi,
    We are facing a strange problem with oc4j903 container using bc4j getConnection() method.
    We are getting the following error intermitantly using bc4j getConnection() method.
    ApplicationModuleProvider JBO-30003: The application pool (bc4j_paris) failed to checkout an application module due to the following exception:
    oralce.jbo.DMLException: JBO-26061: Error while opening JDBC connection.
    and then it says ,
    java.sql.SQLException: Io exception: Broken pipe.
    It gets connection automatically in a matter of minutes.
    Has anybody faced these problem or anyone has the solution please help us out.
    I appreciate your inputs.
    Thanks,
    Chinna

    Bhaskar -- BC4J related questions are better directed to the JDeveloper forum; that's where the BC4J PMs and developers hang out.
    cheers
    -stevee

  • Broken Pipe/Connection Reset By Peer IO Exceptions

    Can someone explain what causes a connection reset by peer exception vs.
              a Broken Pipe IO exception? I realize they are generally caused by
              someone hitting stop, closing their browser, hitting a different link,
              etc.. but I was trying to understand what might cause a connection
              reset by peer exception vs. a broken pipe exception. I've added code to
              my servlet to suppress the "Connection Reset By Peer" socket exceptions
              but I'm wondering if I should do the same with Broken Pipe. Also, are
              there are other types of similar exceptions that can occur when users
              get impatient.. Thanks
              Kirk
              

    I do not have an idea about your application server but i do know how i solved it in weblogic. Just see whether this is helpful to you.
    Points to be sure of........
    1) Make sure that when ever you request a connection from a pool, after you are done with it return it. If you are not returning it and trying to use that reference again, this problem will occur.
    2) Look at the capabilities of your app server. Set the connection pool such that
    a) All the connections are checked at regular interval with some default select statement from any table in the database.
    b) Connections are check when the connection is checked out and returned to the pool.
    I the connection object is not ready , close it and create a new one. The app server which manages the pool should implement these feature so that when you get the connection - its the tested and working object.
    If your app server does not support - then think of ways you testing it before you using it(Anyway this is not the good solution).

  • Connection reset by peer:/Broken pipe using JTurbo JDBC Driver

    I am using the JTurbo JDBC driver to connect to a SQL Server 7.0 database. I am using Connection Pooling. After roughly an hour or so, I am no longer to get connections from the pool. Exceptions thrown are "connection reset by peer", followed by "Broken pipe" exceptions on every subsequent getConnection call.
    Has anyone found a successfull resolution to this problem using the JTurbo JDBC driver for SQL Server 7.0? I have tried the "autoReconnection=true" option on the URL string for the driver, but this has had no effect.
    I am running the Resin app server, version 1.2.7, on Solaris 8 and connecting to a SQL Server database running on NT 4.0. The JVM on Solaris where the servlet is running is 1.3.1.
    Any help is greatly appreciated!
    Mark Crouch
    Lead Developer
    accessKent

    I do not have an idea about your application server but i do know how i solved it in weblogic. Just see whether this is helpful to you.
    Points to be sure of........
    1) Make sure that when ever you request a connection from a pool, after you are done with it return it. If you are not returning it and trying to use that reference again, this problem will occur.
    2) Look at the capabilities of your app server. Set the connection pool such that
    a) All the connections are checked at regular interval with some default select statement from any table in the database.
    b) Connections are check when the connection is checked out and returned to the pool.
    I the connection object is not ready , close it and create a new one. The app server which manages the pool should implement these feature so that when you get the connection - its the tested and working object.
    If your app server does not support - then think of ways you testing it before you using it(Anyway this is not the good solution).

  • Ssh configuration to avoid connection timeouts / broken pipes ?

    I'm running irssi through screen on my server via ssh. Recently, my parents' internet connection has become very dodgy, and because of this, my terminal freezes altogether once every 15 minutes or so, and resumes with some "broken pipe" message after a very long time (around 10 minutes). I usualy just kill the terminal when I notice the freezing and open a new one with another ssh connection, but this seems to be getting more and more frequent, so it's very annoying. I was wondering if there is a way to get around this? Server configuration, client configuration, a different ssh client ... ?
    By googling, I found that disabling "TCPKeepAlive" might do the trick, and so I did. It seemed to work at first, my connection was up for about half an hour, but then the same thing occured again
    The sadest part of this is that by using puTTY on my phone over 3G, the connection stays up forever, but with the wired broadband, it won't stay up for more than 15 minutes
    EDIT: This time I got this message: "Timeout, server <myaddress> not responding", after 29 minutes.
    Last edited by pauligrinder (2011-04-24 00:50:30)

    yep, this connection used to be reliable too, but now I get timeouts all the time, and also if I connect the Deluge-GTK to a daemon running on my server, it will randomly freeze and I have to reconnect to get it to work again. Luckily I'm getting out of here tomorrow
    Still, it would be nice to solve this problem, because I will be coming here every once in a while... I would call the ISP and complain (I don't think the problem can be with our routers, because ssh connections inside the LAN work just fine), but because it's easter, their customer support is closed Besides, I don't know how to explain the problem to them, because most likely they won't even know what ssh is...
    I tried rwd's configs, and they didn't help either. The only difference is that it seems to timeout faster now, instead of freezing the whole terminal for a long time...
    Last edited by pauligrinder (2011-04-25 14:13:11)

  • Error during RETR epilogue: FTPEx: 426 Data connection: Broken pipe

    Hi Experts,
    We have XI file to file transfer configured via the ftp...
    while im trying to upload the file from the source folder to target folder, im getting the following error: which i have tried to resolve but not able to...
    help in this regard will be greatly appreciated:
    "Could not process due to error: java.lang.IllegalStateException: Error during RETR epilogue: com.sap.aii.adapter.file.ftp.FTPEx: 426 Data connection: Broken pipe."
    Regards,
    nandan

    if I were you I would put the lines
    kkSocket.setSendBufferSize(1024);
    kkSocket.setSoTimeout (10000);
    kkSocket.setTcpNoDelay(true);
    before connecting to the server, not after the initial message was sent.

  • Broken Pipe error  when connecting to database

    Hi
    I have installed ODI and Oracle 10g database on my machine.
    But getting a Broken Pipe error while creating an entity in Oracle Data Profiling and Quality tool
    Or I can say while connecting database.
    It’s a runtime error.
    Server terminated the application in an unusual way.
    Any inputs are much appreciated.
    Thanks
    KSK

    Hello KSK.
    Did you receive or did you find any answer about this question?
    Please, let me know if yes or no. I have a workmate with the same problem and we didn't find any clue about the problem.
    Best regards.
    Ponte

  • 8500a all in one, and macbook pro wirelessly connected. Broken pipe ????

     i have an all in one 8500a and a mac pro wirelessly connected.  It has been fine for 7 months.  Now I am getting a message that says broken pipe, what do I do?  I have no idea what a pipe is.

    Hi,
    Try resetting the Printing System, then reconfigure the device:
    *Be aware that resetting the printer system will remove any existing print queue and reset any customized driver settings.
    Click the Apple menu, and then click System Preferences .
    Select Print & Fax.
    Right-click (or Ctrl + click) your product in the Printers list in the left panel, and then click Reset printing system .
    Click OK to confirm the reset.
    Type your user Name and Password .
    Click OK . The printing system resets.
    Now reconfigure the device by following the HP Setup Assistant, located under Applications > Hewlett Packard > Device Utilities.
    Now check if the problem been sorted.
    If the issue remains with no change, completely remove any installed HP Software by using Scrubber:
    **Please be aware that performing the next steps will remove any installed HP Software.
    1. Click on Go menu (Click the desktop, then look at the menu in the bar at the top of the page)
    2. Select Applications
    3. Select the Hewlett-Packard folder
    4. Double-click HP Uninstaller application
    5. Follow the uninstallation till prompted to select a device to uninstall
    6. Press and hold Control + Alt + Cmd keys on the keyboard simultaneously while you click on Uninstall
    7. approve any prompt to uninstall any HP Software.
    Repair the Mac OS Disc Permissions:
    1. Open the the Applications folder.
    2. Go to the Utilities folder.
    3. Double-click on Disk Utility.
    4. Select the hard drive containing the boot volume.
    5. Go to the First Aid tab and select Repair Disk Permissions.
    Note: This process may take several minutes depending on the Mac and amount of permissions that need to be repaired. The Progress Log will indicate when the proccess has been completed.
    Download and install the latest software below:
    Mac OS X v10.5 (Leopard) or v10.6 (Snow Leopard):
    http://ftp.hp.com/pub/softlib/software11/COL34340/mp-85024-2/OJ_AIO_08_8500_A910_Net_Full_Mac_WW_74....
    Mac OS X v10.7 (Lion):
    http://ftp.hp.com/pub/softlib/software12/COL40169/bi-97933-2/HP_Lion_Ink_SW_v12-1.13.22.dmg
    Finally make sure to install any available HP by clicking the Apple icon and then Software Update.
    Please let us know of any further issue,
    Shlomi
    Say thanks by clicking the Kudos thumb up in the post.
    If my post resolve your problem please mark it as an Accepted Solution

  • Connection reset by peer, broken pipe...

    This part of sockets is just needlessly confusing. Perhaps someone can shed some light on this?
    Sometimes I get an IOException with as message "Connection reset by peer". Other times, it's "broken pipe". What is the difference? Why isn't there a way other than parsing the exception message text to figure out if it's a client 'hanging up on you' unexpectedly or something else?
    Secondly, in my NIO server, all webbrowsers, but for some reason firefox especially, really likes to make a full request, than grab 0 to 99 bytes (the full return HTTP message size is much larger than that), and then silently hang up and immediately re-request the same resource again. Sometimes 10 to 15 times in a row. Firefox shows no errors of any kind when it does this. the read() operation on the socket returns -1 which is what ends up causing the close.
    Is this because '-1' doesn't really mean: The socket is closed, it actually just means: the socket INPUT is closed but you can still send?
    And if it is the latter, how the heck do I detect a connection in lockdown state in a non-blocking environment?

    Sometimes I get an IOException with as message
    "Connection reset by peer". Other times, it's "broken
    pipe". What is the difference? Why isn't there a way
    other than parsing the exception message text to
    figure out if it's a client 'hanging up on you'
    unexpectedly or something else?I agree: I would love there to be a ConnectionResetException. Anyway, practically any IOException on a socket operation means you should close it (and forget about it if you're a server).
    Secondly, in my NIO server, all webbrowsers, but for
    some reason firefox especially, really likes to make
    a full request, than grab 0 to 99 bytes (the full
    return HTTP message size is much larger than that),
    and then silently hang up and immediately re-request
    the same resource again.Maybe it is doing a HEAD request?
    Is this because '-1' doesn't really mean: The socket
    is closed, it actually just means: the socket INPUT
    is closed but you can still send?It actually means a one-way close originating from the other end, which could be the result of either a close or a shutdownOutput() by the peer. If it was a shutdownOutput() you can indeed still send.
    And if it is the latter, how the heck do I detect a
    connection in lockdown state in a non-blocking
    environment?What do you mean by 'lockdown state'? If you mean how do you detect when the peer finally closes after a shutdown, the answer is that you eventually get a connection reset when writing, which is where we came in. If you have a socket channel which has detected EOS as above and you don't have any more data to send to it, close it.

  • JDBC Connectivity - broken pipe received when SQL server resets the connect

    Hi,
    We have downloaded MICROSOFT SQL SERVER 2000 DRIVER for UNIX boxes
    when i try to connect using JDBC , with all parameters
    user id, driver, password etc
    at the sniffer(TCPIP) level when the jdbc connection is attempted
    i see a
    1) SYN packet to the SQL server from unix box
    2) ACK SYN from the SQL server to unix box
    3) ACK from unix box to server
    4) no activity for about a minute
    5) a RST( reset ) from SQL server to unix box.
    at this point i get the following
    stack trace
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Broken pipe or
    no reader on socket
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.submitRequest(Unknow
    n Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
    rce)
    at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
    ource)
    at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java, Compiled Cod
    e)
    at java.sql.DriverManager.getConnection(DriverManager.java, Compiled Cod
    e)
    at wu.database.WUDBAccess.getGiftGramConnection(WUDBAccess.java, Compile
    d Code)
    at wu.util.GiftMailClient.ConnectToDB(GiftMailClient.java, Compiled Code
    at wu.util.GiftMailClient.ProcessEmail(GiftMailClient.java, Compile
    the sniffer trace
    Frame source = (Network)
    Length = 66
    Time received = 09/24/2002 21:19:42.543
    Frame Relay
    Header = 1041
    0001 00.. 0100 .... = DLCI 68
    .... ..0. .... 000. = (Command)
    EtherType = 0800 IP
    Internet Protocol (IP)
    Source address = unix_server
    Destination address = SQL_server
    Type of service = 00
    Length = 60
    Identification = 58024
    Flags = 0000 (May fragment, Last fragment)
    Time to live = 28
    Protocol = 6 TCP
    Transmission Control Protocol (TCP)
    Source Port = 2175
    Destination Port = 8072
    Sequence = 2690569244
    Acknowledgement = 0
    Flags = 02 (SYN)
    Window size = 8192
    ============================= Frame Number 7 =============================
    Frame source = (User)
    Length = 66
    Time received = 09/24/2002 21:19:42.544
    Frame Relay
    Header = 1041
    0001 00.. 0100 .... = DLCI 68
    .... ..0. .... 000. = (Command)
    EtherType = 0800 IP
    Internet Protocol (IP)
    Source address = SQL_server
    Destination address = unix_server
    Type of service = 00
    Length = 60
    Identification = 47302
    Flags = 4000 (Don't fragment, Last fragment)
    Time to live = 126
    Protocol = 6 TCP
    Transmission Control Protocol (TCP)
    Source Port = 8072
    Destination Port = 2175
    Sequence = 60776554
    Acknowledgement = 2690569245
    Flags = 12 (ACK, SYN)
    Window size = 17520
    ============================= Frame Number 8 =============================
    Frame source = (Network)
    Length = 58
    Time received = 09/24/2002 21:19:42.607
    Frame Relay
    Header = 1041
    0001 00.. 0100 .... = DLCI 68
    .... ..0. .... 000. = (Command)
    EtherType = 0800 IP
    Internet Protocol (IP)
    Source address = unix_server
    Destination address = SQL_server
    Type of service = 00
    Length = 52
    Identification = 58025
    Flags = 0000 (May fragment, Last fragment)
    Time to live = 28
    Protocol = 6 TCP
    Transmission Control Protocol (TCP)
    Source Port = 2175
    Destination Port = 8072
    Sequence = 2690569245
    Acknowledgement = 60776555
    Flags = 10 (ACK)
    Window size = 8192
    ****************************************************8
    ============================= Frame Number 9 =============================
    Frame source = (User)
    Length = 52
    Time received = 09/24/2002 21:21:35.137
    Frame Relay
    Header = 1041
    0001 00.. 0100 .... = DLCI 68
    .... ..0. .... 000. = (Command)
    EtherType = 0800 IP
    Internet Protocol (IP)
    Source address = SQL_server
    Destination address = unix_server
    Type of service = 00
    Length = 40
    Identification = 47451
    Flags = 4000 (Don't fragment, Last fragment)
    Time to live = 126
    Protocol = 6 TCP
    Transmission Control Protocol (TCP)
    Source Port = 8072
    Destination Port = 2175
    Sequence = 60776555
    Acknowledgement = 623322721
    Flags = 04 (RST)
    Window size = 0
    Data (ASCII)
    0000 = 00 00 00 00 00 00 ......
    any help is welcome
    Regards,
    Sunil

    Well then, it beats me. I don't see what the problem could be in this case. :o(
    Get another driver and see what happens. I would recommend jTDS, because I'm one of the developers and I can help you debug it. It only supports basic things (such as forward-only result sets, prepared statements and callable statements) but it should be enough to see if you can connect to SQL Server. The address is http://jtds.sourceforge.net
    Alin.

  • Broken Pipe / Connection Reset Errors

    I know they come from the user hitting the stop button on his browser. They are benign and can be ignored. I just don't want to see them in my logs (or my email box) anymore. Anyone figure out how to disable the logging of these messages?
    ####<Jul 14, 2006 10:41:48 AM PDT> <Error> <HTTP> <test> <test-front_01> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1152898908905> <BEA-101017> <[weblogic.servlet.internal.WebAppServletContext@130c3e2 - name
    : 'singles_admin', context-path: '/singles_admin', version: 4.10.0.001] Root cause of ServletException.
    javax.servlet.jsp.JspException: ServletException in '/WEB-INF/jsp/common/header.jsp': Can't insert page 'menuheader.jsp' : Broken pipe
    at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:921)
    at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:460)
    at jsp_servlet._web_45_inf._jsp._common.__userlayout._jspService(__userlayout.java:470)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:165)
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:496)
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245)
    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
    at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
    at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:237)
    at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:300)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3151)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1973)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1880)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1310)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
    >

    What I did to prevent the same issue was ensure all servlets had try/catch blocks where I ignored broken pipe exceptions and all JSPs had error pages that similarly ignored broken pipe exceptions. Worked 90% of the time. Had a couple of places where custom tags were catching exceptions, logging them, then rethrowing them that I had to fix (hopefully InsertTag isn't doing this). I think I ended up with only one place where I still had a problem, which was somewhere inside of WLS. Happened when the user closed their browser as WebLogic was writing back a large response, I believe. We just made sure our responses were as small as possible to avoid this. Stripped out white space from our JSPs during compilation and put a lot into CSS.

  • Web Service Error: java.sql.SQLException: Io exception: Broken pipe

    Hi,
    I am using JDeveloper PL/SQL web service generator. After some time we start receiving the "java.sql.SQLException: Io exception: Broken pipe" exception when we invoke the web service. I've noticed that the error starts occuring once all the connections in the database have been closed.
    Here are the Data Source configurations I tried using:
    <data-source name="jdev-connection-SACS" class="com.evermind.sql.DriverManagerDataSource" location="jdbc/SACSCoreDS" xa-location="jdbc/xa/SACSXADS" ejb-location="jdbc/SACSDS" pooled-location="jdbc/MACSPooledDS" connection-driver="oracle.jdbc.driver.OracleDriver" username="xxx" password="xxxx" url="jdbc:oracle:thin:@test:1521:SACS" inactivity-timeout="30" connection-retry-interval="3" max-connections="5" min-connections="0" wait-timeout="20"/>
    AND I also tried:
    <data-source name="jdev-connection-SACS" class="com.evermind.sql.DriverManagerDataSource" location="jdbc/SACSCoreDS" xa-location="jdbc/xa/SACSXADS" ejb-location="jdbc/SACSDS" pooled-location="jdbc/SACSPooledDS" connection-driver="oracle.jdbc.driver.OracleDriver" username="xxxx" password="xxxx" url="jdbc:oracle:thin:@xxxx:1521:SACS" inactivity-timeout="30"/>
    That did not make any changes.
    I then changed ConnectionContext.KEEP_CONNECTION to ConnectionContext.CLOSE_CONNECTION in the <name>Base.sqlj:
    public void release() throws SQLException
    { if (__tx!=null && __onn!=null) __tx.close(ConnectionContext.CLOSE_CONNECTION);
    __onn = null; __tx = null;
    That did not help either. We are running these web services on the standalone OC4J and Oracle 8.1.7.2 database with the MTS installed on it.

    Hi,
    I don't use JDeveloper to develop stored procedure web services. However, I do use WebServicesAssembler.jar to generate stored procedure web services.
    I had the same problem as you did. After some research in this forum, I was informed that it's a bug in the web services generator itself. I was also informed that the newest version of WebServicesAssembler.jar is supposed to fix the problem.
    If you want, you can always write a batch job to restart the OC4J periodically. The command is
    dcmctl -ct oc4j -co home
    If I come across the posting containing the answer to your solution, I will forward it to you.
    Good luck
    Jack

Maybe you are looking for