‘壹’ java.sql.SQLException:Io 错误:Broken pipe 什么意思
这是由于jdbc与数据库服务器断绝连接的时候报出来的,当需要数据库访问的时候,却连接不上
‘贰’ 服务器打不开,控制台解释是broken pipe,求解释及解决方法。急
程序之所以会出现broken pipe是因为写入端错误发生,导致程序异常退出间接导致broken pipe;解决方法是将段错误的原因修改就行了,即将sp = sp->next改成p = p->next。
broken pipe最直接的意思是:写入端出现的时候,另一端却休息或退出了,因此造成没有及时取走管道中的数据,从而系统异常退出。服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。
服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。
相关信息
服务器必须具有一定的“可扩展性”,这是因为企业网络不可能长久不变,特别是在当今信息时代。如果服务器没有一定的可扩展性,当用户一增多就不能胜任的话,一台价值几万,甚至几十万的服务器在短时间内就要遭到淘汰,这是任何企业都无法承受的。
为了保持可扩展性,通常需要在服务器上具备一定的可扩展空间和冗余件(如磁盘阵列架位、PCI和内存条插槽位等)。可扩展性具体体现在硬盘是否可扩充,CPU是否可升级或扩展,系统是否支持WindowsNT、linux或UNIX等多种可选主流操作系统等方面,只有这样才能保持前期投资为后期充分利用。
‘叁’ java.net.SocketException: Broken pipe
先从程序中自查checkoutTimeout。
其次java.net.SocketException: Broken pipe 做什么操作报出来的错误。
第三将链接数加大。
第四是否和数据量有关,ORACLE数据是否需要索引优化。
使用虚拟机是否有阻塞的现象,ORACLE是否存在监听假死。
你给的问题定位不了
‘肆’ java.sql.SQLException:Io 错误:Broken pipe 什么意思
java.sql.SQLException:Io 错误:Broken pipe 什么意思这个异常是由于以下几个原因造成。 1、客户端再发起请求后没有等服务器端相应完,点击了stop按钮,导致服务器端接收到取消请求。 通常情况下是不会有这么无聊的用户,出现这种情况可能是由于用户提交了请求,服务器端相应缓慢,比如业务逻辑有问题等原因,导致页面过了很久也没有刷新出来,用户就有可能取消或重新发起请求。2、Tomcat服务器在接受用户请求的时候,有其自身的处理能力,线程、服务器等各个资源限制,超出Tomcat承载范围的请求,就会被tomcat停掉,也可能产生该错误。 3、linux的线程机制会产生JVM出错的问题,特别是在连接高峰期间经常出现这样的问题,tomcat在linux下也出现类似情况。‘伍’ java.sql.SQLException:Io 错误:Broken pipe 什么意思
异由于几原造
1、客户端再发起请求没等服务器端相应完点击stop按钮导致服务器端接收取消请求 通情况聊用户现种情况能由于用户提交请求服务器端相应缓慢比业务逻辑问题等原导致页面久没刷新用户能取消或重新发起请求
2、Tomcat服务器接受用户请求候其自身处理能力线程、服务器等各资源限制超Tomcat承载范围请求tomcat停掉能产该错误
3、linux线程机制产JVM错问题特别连接高峰期间经现问题tomcatlinux现类似情况
‘陆’ java高手来帮忙解决一下错误,linux下的,服务器是tomcat
往一个socket写一个序列化对象写了2次,因为网络不稳定,所以有短开重新连接的机制,但是由于两太机器通过服务代理的方式传输,所以server无法发现客护短客户端退出,这样造成客户端列表里有一个机器一个端口的两个socket对象,这样往socket里写的时候就造成一个对象写两次的现象
‘柒’ java.net.SocketException: Broken pipe问题
有可能是linux的线程机制会产生JVM出错的问题,特别是在连接高峰期间经常出现这样的问题,tomcat在linux下也出现类似情况。
解决办法是在环境变量中设置:_JAVA_SR_SIGNUM=12 基本就可以解决。
sun的解释:
--posted by: cooper
Below is a clipping from Sun on working around JVM crashes under high
thread counts in the JVM 1.3 for Linux
On Linux, use a larger signal number for hotspot thread
suspension/resumption handler. The signal number being used is
specified by environment variable _JAVA_SR_SIGNUM. Setting it to a
number larger than SIGSEGV (11) will solve the problem. A good number
to use is 12, which is SIGUSR2. Using signal 16 to work around the
problem might have potential problems. So on tcsh, "setenv
_JAVA_SR_SIGNUM 12" can solve the problem.
‘捌’ java.net.SocketException: Broken pipe
网上搜的,能否解决问题,自己试试,你的程序报错太多
我在百才这里工作,在linux上面跑的程序也出现这样的情况,也在找原因,以下的给你参考一下吧
-----------------------------------------------------------------------------------------
原因是往一个socket写一个序列化对象写了2次,因为网络不稳定,所以有短开重新连接的机制,但是由于两太机器通过服务代理的方式传输,所以server无法发现客护短客户端退出,这样造成客户端列表里有一个机器一个端口的两个socket对象,这样往socket里写的时候就造成一个对象写两次的现象
产生这个问题的原因可能有以下几个:
1、mysql的驱动的问题,我的驱动是mysql-connector-java-3.1.11-bin.jar
如果有兴趣测试话,可以使用其他新版本的mysql驱动来试试吧。
2、防火墙和网络上的问题,或者服务器发生了crash(有意或无意导致)
同学们可以检查产生"java.net.SocketException: Broken pipe" 错误的时候服务器、网络是否有异常?
3、应用系统的数据库连接池导致,最大的可能就是程序上写的不严谨 吼吼!
新手在开发过程中都难避免的失误:忘记数据库连接的关闭(纯jdbc的操作中常见,不过这个还好找啦,压力测试中如果看到数据库连接数多或者干脆挂掉可以找出原因的);
另外就是提交事物时,在对数据操作中没有做明确的commit或者rollback,如果忘记了提交commit,在你尝试使用类似的resultset去操作或者做其他的操作时就有可以能出现这样的问题,这样的悬挂着连接一直要等到超时mysql将其kill掉。仔细检查你应用的事物中是否都做了明确的提交操作呢?或者干错使用Hibernate,试试C3P0、Proxool这样的连接池吧。
--------------------------------------------------------------------------------------------
解决的方式加上粗体到URL
jdbc:mysql://localhost:3306/mydatabase?autoReconnect=true%26amp;amp;
useUnicode=true%26amp;amp;characterEncoding=gb2312
--------------------------------------------------------------------------------------------
检查超时时间;
检查网络状态(代理、防火墙。。。)