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
Anilkalle
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,
ChinnaBhaskar -- 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,
ChinnaBhaskar -- 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
accessKentI 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,
nandanif 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
KSKHello 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 -
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,
SunilWell 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
-
How do i put my itunes account on a different computer
how do i transfer my itunes account onto a new computer
-
Pic related
-
Can anyone help me if Flex 3 can be seen by search engines. I have a pure Flex 3, database generated web site and have tested many options with no search engine results found. I tried hidden text and found search engine results very quickly before I
-
How to use lens profile from Lightroom 5 in Lightroom 4
I'm using Lightroom 4.4 on a five-year-old iMac. I haven't been able to upgrade to LR 5 because it requires an operating system upgrade, but the technicians at the Apple Store say my machine is too old for the upgrade. I just bought a new Sony 18-1
-
Can i shut my phone off if I am not with it?
can i shut my phone off if i left it somewhere so the battery wont completely die?