Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.net.SocketException:石英管破裂,MySQL和Tomcat(Tomcat崩溃)_Java_Mysql_Quartz Scheduler_Socketexception_Job Scheduling - Fatal编程技术网

java.net.SocketException:石英管破裂,MySQL和Tomcat(Tomcat崩溃)

java.net.SocketException:石英管破裂,MySQL和Tomcat(Tomcat崩溃),java,mysql,quartz-scheduler,socketexception,job-scheduling,Java,Mysql,Quartz Scheduler,Socketexception,Job Scheduling,下面是堆栈跟踪。我读到管道破裂是因为连接未关闭8小时,连接自动关闭。我看到了。我无法在本地机器上复制 有没有办法在我的本地机器上复制这个 这会导致tomact崩溃吗?我使用的是非常旧的quartz jar 1.6.5和tomcat 6.0.18版本。这将是一个问题 请帮我解决这个问题 [Scheduler_QuartzSchedulerThread] WARN org.quartz.impl.jdbcjobstore.JobStoreTX - Failed to override connect

下面是堆栈跟踪。我读到管道破裂是因为连接未关闭8小时,连接自动关闭。我看到了。我无法在本地机器上复制

  • 有没有办法在我的本地机器上复制这个
  • 这会导致tomact崩溃吗?我使用的是非常旧的quartz jar 1.6.5和tomcat 6.0.18版本。这将是一个问题
  • 请帮我解决这个问题

    [Scheduler_QuartzSchedulerThread] WARN org.quartz.impl.jdbcjobstore.JobStoreTX - Failed to override connection auto commit/transaction isolation.
    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:2744)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
        at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5442)
        at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:237)
        at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.setAutoCommit(AttributeRestoringConnectionInvocationHandler.java:91)
        at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.invoke(AttributeRestoringConnectionInvocationHandler.java:65)
        at $Proxy4.setAutoCommit(Unknown Source)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:711)
        at org.quartz.impl.jdbcjobstore.JobStoreTX.getNonManagedTXConnection(JobStoreTX.java:72)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3757)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2729)
        at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:266)
    
    
    ** END NESTED EXCEPTION **
    
    
    
    Last packet sent to the server was 1 ms ago.
        at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2759)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
        at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5442)
        at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:237)
        at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.setAutoCommit(AttributeRestoringConnectionInvocationHandler.java:91)
        at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.invoke(AttributeRestoringConnectionInvocationHandler.java:65)
        at $Proxy4.setAutoCommit(Unknown Source)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:711)
        at org.quartz.impl.jdbcjobstore.JobStoreTX.getNonManagedTXConnection(JobStoreTX.java:72)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3757)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2729)
        at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:266)
    [Scheduler_QuartzSchedulerThread] WARN org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler - Failed restore connection's original auto commit setting.
    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:2744)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
        at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5442)
        at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:237)
        at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.restoreOriginalAtributes(AttributeRestoringConnectionInvocationHandler.java:134)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.cleanupConnection(JobStoreSupport.java:3551)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3774)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2729)
        at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:266)
    
    
    ** END NESTED EXCEPTION **
    
    
    
    Last packet sent to the server was 0 ms ago.
        at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2759)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
        at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5442)
        at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:237)
        at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.restoreOriginalAtributes(AttributeRestoringConnectionInvocationHandler.java:134)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.cleanupConnection(JobStoreSupport.java:3551)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3774)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2729)
        at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:266)
    [Scheduler_QuartzSchedulerThread] ERROR org.quartz.core.ErrorLogger - An error occured while scanning for the next trigger to fire.
    org.quartz.JobPersistenceException: Couldn't acquire next trigger: 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:2744)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1447)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:177)
        at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTriggerToAcquire(StdJDBCDelegate.java:2924)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2747)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport$36.execute(JobStoreSupport.java:2733)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3760)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2729)
        at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:266)
    
    
    ** END NESTED EXCEPTION **
    
    
    
    Last packet sent to the server was 1 ms ago. [See nested exception: 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:2744)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1447)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:177)
        at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTriggerToAcquire(StdJDBCDelegate.java:2924)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2747)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport$36.execute(JobStoreSupport.java:2733)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3760)
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2729)
        at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:266)
    
    
    ** END NESTED EXCEPTION **
    
    编辑: 我正在使用

    org.quartz.dataSource.QUARTZ_NO_TX.validateOnCheckout = true
    org.quartz.dataSource.QUARTZ_NO_TX.validationQuery = select 1
    
    关于我的石英特性

    autoreconnect=true
    

    是否有任何方法可以通过更改mysql属性来重现这一点。我只在我的服务器上获得此信息。

    我相信这与8小时后删除的内容有关

    编辑

    阅读文章

    确保您有以下集合(不确定确切的属性名称,但它们应该与下面提到的类似)

  • testWhileIdle=true
  • validationQuery=“选择1”
  • 地雷可杀伤性地雷=1800000
  • timeBetweenEvictionRunsMillis=1800000
  • numTestsPervictionRun=3

  • 您说您无法从提供的链接中的详细信息解决此问题。你到底试了什么?另外,你为什么不让它通宵运行以适应这8个小时呢?感谢奥尔德林的快速响应。我已经编辑了我尝试过的内容。我试着离开它几个小时,而不是8小时4到5小时,但我没有得到这个错误。有没有可能这会使tomcat服务器崩溃?当我加上这两句话时,我一开始就出错了。所以,只有我告诉他这不起作用。现在我把它修好了。。我将在测试服务器中尝试8个小时,并让您知道。。谢谢你的回复1.谢谢你的回复。问题是如何在quartz scheduler中避免这种情况。@Dilip Rajkumar,您需要正确配置应用程序服务器数据源。请参阅我的编辑。是的,aviad,我正在使用org.quartz.dataSource.myDS.validateOnCheckout=true org.quartz.dataSource.myDS.validationQuery=select 1进行尝试。我将在测试后通知您。谢谢阿维德。@Dilip Rajkumar,花了一些时间编辑。。。请复习。祝你好运,迪利普!以下是我的quartz org.quartz.dataSource.myDS.maxConnections=15 org.quartz.dataSource.myDS.validateOnCheckout=true org.quartz.dataSource.myDS.validationQuery=select 1 org.quartz.dataSource.myDS.testWhileIdle=true org.quartz.dataSource.myDS.minevictableidletimellis=1800000org.quartz.dataSource.myDS.timebetweenvictionrunsmillis=1800000 org.quartz.dataSource.myDS.numTestsPerEvictionRun=3