Tomcat问题:从服务器成功收到的最后一个数据包是66,913,221毫秒。

时间:2015-12-17 05:58:40

标签: java mysql spring hibernate tomcat

我在centos上安装了tomcat并部署了一个java web应用程序。我正在使用mysql db。每天早上,当我尝试以第一个用户身份登录时,它会向我发出以下错误:

  

您的登录尝试失败,请重试。   原因:org.hibernate.exception.JDBCConnectionException:从服务器成功收到的最后一个数据包是66,913,221毫秒之前。成功发送到服务器的最后一个数据包是66,913,221毫秒。比服务器配置的'wait_timeout'值长。您应该考虑在应用程序中使用之前过期和/或测试连接有效性,增加服务器配置的客户端超时值,或使用Connector / J连接属性“autoReconnect = true”来避免此问题。

在此之后,当我尝试重新登录时,它允许我这样做。

我在context.xml中包含以下内容

<Resource name="jdbc/CAR" auth="Container" type="javax.sql.DataSource"
           maxActive="100" maxIdle="30" maxWait="30000"
           username="root" password="" driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://130.1.18.2:3306/car" validationQuery="SELECT 1" testOnBorrow = true/>

对此有任何帮助,我将不胜感激。感谢

3 个答案:

答案 0 :(得分:2)

尝试将 autoReconnect = true 参数添加到jdbc字符串,以便在不接收数据包时使其保持活动状态。在你的情况下,它将是

    jdbc:mysql://130.1.18.2:3306/car?autoReconnect=true

答案 1 :(得分:1)

或者如果可以,您可以更改为其他数据库池。我之前遇到同样的问题,而且autoReconnect对我不起作用。现在我正在使用HikariCP。这个问题消失了。

答案 2 :(得分:0)

add_action( 'init', 'create_custom_taxonomies', 0 );

function create_custom_taxonomies() {
$labels = array(
    'name'              => _x( 'Brands', 'taxonomy general name' ),
    'singular_name'     => _x( 'Brand', 'taxonomy singular name' ),
    'search_items'      => __( 'Search Brands' ),
    'all_items'         => __( 'All Brands' ),
    'parent_item'       => __( 'Parent Brand' ),
    'parent_item_colon' => __( 'Parent Brand:' ),
    'edit_item'         => __( 'Edit Brand' ),
    'update_item'       => __( 'Update Brand' ),
    'add_new_item'      => __( 'Add New Brand' ),
    'new_item_name'     => __( 'New Brand Name' ),
    'menu_name'         => __( 'Brand' ),
);
$args = array(
    'hierarchical'      => true,
    'labels'            => $labels,
    'show_ui'           => true,
    'show_admin_column' => true,
    'query_var'         => true,
    'rewrite'           => array( 'slug' => 'brand' ),
);
register_taxonomy( 'brand', 'products' , $args );
 }


//creating a custom post type that is using 'brand' taxonomy
function create_post_type() {
register_post_type( 'products',
    array(
    'labels' => array(
        'name' => __( 'Products' ),
        'singular_name' => __( 'Product' ),
        'add_new' => _x('Add New', 'products'),
        'add_new_item' => __('Add New Product'),
        'edit_item' => __('Edyt Product'),
        'new_item' => __('New Product'),
        'view_item' => __('View Product'),
        'search_items' => __('Search Product'),
        'not_found' =>  __('Nothing found'),
    ),
    'taxonomies' => array('brand'),
    'supports' => array('title', 'editor', 'thumbnail'),
    'public' => true,
    'has_archive' => true,
    'show_ui' => true,
    )
);

}
add_action( 'init', 'create_post_type' );

根据我的知识不起作用, array (size=5) 'category' => string 'category' (length=8) 'post_tag' => string 'post_tag' (length=8) 'nav_menu' => string 'nav_menu' (length=8) 'link_category' => string 'link_category' (length=13) 'post_format' => string 'post_format' (length=11) 有自己的连接关闭超时。如果autoReconnect=true 关闭连接,Mysql会将其标记为ORM