`

解决java.net.SocketException: Broken pipe异常

    博客分类:
  • java
阅读更多
出现如下异常
解决的方式:参考hibernate配置文件:
	<!--MySql 驱动程序 eg. mysql-connector-java-5.0.4-bin.jar-->
	<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

	<!-- JDBC URL -->
	<property name="connection.url">
		jdbc:mysql://localhost/tonyshao?characterEncoding=gb2312&amp;zeroDateTimeBehavior=convertToNull
	</property>

	<property name="connection.username">user</property>
	<property name="connection.password">passport</property>

	<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
	<property name="hibernate.cache.use_query_cache">true</property>
	
	<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 
	<property name="hibernate.connection.pool_size">2</property>
	<!--连接关闭时默认将所有未提交的操作回滚。Default: false -->
	<property name="hibernate.connection.autocommit">false</property>
	
	<!-- c3p0 connection pooling properties -->
    <!-- 数据库连接对象最大持有时间,这个timeout一定要大于MYSQL默认的28800(秒) -->
    <property name="c3p0.timeout">30000</property>
    <!-- 最大可缓存数据库语句对象 -->
    <property name="c3p0.max_statements">50</property>
    <!-- 每隔28000s测试连接是否可用 -->
    <property name="c3p0.idle_test_period">28000</property>
    <property name="c3p0.acquire_increment">1</property>
 
Last packet sent to the server was 1 ms ago.

STACKTRACE:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: Broken pipe

STACKTRACE:

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 java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
	at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2692)
	at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2621)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1552)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1030)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
	at org.hibernate.loader.Loader.doQuery(Loader.java:662)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
3
7
分享到:
评论
3 楼 draem0507 2013-09-12  
kkqqcom 写道
跟hibernate鬼的关系。

1、可能并发过大,
2、可能并发时,多个线程读写一个channel
3、应该是linux系统

同意
2 楼 kkqqcom 2011-01-23  
合理的检查关闭连接可以降低,很难解决。
1 楼 kkqqcom 2011-01-23  
跟hibernate鬼的关系。

1、可能并发过大,
2、可能并发时,多个线程读写一个channel
3、应该是linux系统

相关推荐

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法 JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是...

    在Win7系统下抛出java.net.SocketException的解决办法

    解决上述问题的关键在于解决最初的`java.net.SocketException`异常,因为一旦解决了这一问题,后续的异常往往也会随之消失。具体步骤如下: 1. **配置JVM参数**:在启动JVM时添加参数`-Djava.net.preferIPv4Stack=...

    java.net.SocketException Connection reset 解决方法

    "java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...

    java.net.SocketException: No route to host 异常原因

    NULL 博文链接:https://zhoudan241.iteye.com/blog/1432014

    java.net.SocketException: Connection reset 解决方法

    Java中的`java.net.SocketException: Connection reset`是一个常见的网络编程错误,通常表示在TCP/IP通信过程中,连接突然中断。这个异常可能在客户端或服务器端发生,通常与数据传输的异常中断有关。 首先,我们来...

    http接口调用报错.rar

    接口调用报错:java.net.SocketException: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory

    Linux下打开的文件过多错误

    Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:

    Java Socket常见异常处理

    5. **java.net.SocketException: Broken pipe** 在`Connect reset by peer`异常之后继续尝试写操作时,可能会遇到此异常。同样,需要确保在连接断开后不再进行无效的读写操作,并及时关闭Socket。 编写网络程序时...

    java.net.SocketException(解决方案).md

    常见的问题

    Ice-3.7.4.msi for windows版

    Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574) at ...

    connection reset解决方案(亲测可用).md

    connection reset解决方案(亲测可用).md

    fastdfs使用java

    在Java中使用FastDFS,首先需要在项目中引入FastDFS的Java客户端库。配置client.conf文件,设置tracker服务器的地址和其他相关参数。接着创建FastdfsClient和FastdfsUtil类,前者用于与FastDFS服务器通信,后者封装...

    Socket长连接异常处理

    java.net.SocketException: Broken pipe 该异常可能发生在客户端和服务器端,原因是在连接断开后继续写数据。解决方法是确保在关闭连接前完成所有的数据传输,并检测对方的关闭连接操作。 编写网络程序时需要注意...

    javaerror处理资料

    java.net.SocketException: Broken pipe 此异常与第4种异常类似,都是因为远程主机突然断开了连接。区别在于前者更多出现在写操作时,而后者则更普遍。为了避免这类异常,可以定期检测Socket的状态,例如通过设置...

    System.SR.dll 无法显示错误信息

    System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ---&gt; System.Net.Sockets.SocketException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ...

    如何解决线程太多导致java socket连接池出现的问题

    3. 错误信息:当Socket连接池出现问题时,可能会出现错误信息,如"java.net.SocketException: No buffer space available (maximum connections reached?): listen failed"。 解决方法 要解决线程太多导致Socket...

    C# 服务器发送邮件失败实例分析

    “{“success”:false,”message”:”错误System.Net.Mail.SmtpException: Failure sending mail. —&gt; System.Net.WebException: The remote name could not be resolved: ‘smtp.163.com’ 分析: 邮件发送相关...

    JMeterPlugins-Standard.jar和JMeterPlugins-Extras.jar.rar

    “JMeterPlugins-Extras.jar”则更加专注于提供高级功能和特定场景的解决方案,其中包括: 1. **模块控制器**:Extras插件引入了模块控制器,允许用户在测试计划中重用已有的线程组,提高了测试计划的复用性和灵活...

    Google I/O 2013推荐Android 网络通信框架Volley

    5. **错误处理**:Volley提供了一套完整的错误处理机制,包括重试策略和错误回调,可以帮助开发者更好地理解和处理网络异常。 6. **强大的请求类型**:Volley支持GET、POST等多种HTTP方法,还可以处理HTTP头和POST...

    java网络编程示例

    import java.net.SocketException; public class UDPServer { public static void main(String[] args) { try { byte [] buffer = new byte[1024]; DatagramSocket socket = new DatagramSocket(4444); ...

Global site tag (gtag.js) - Google Analytics