MySQL timeout while processing large LOAD DATA INFILE

I'm using the MySQL connector for JDBC, processing a large CSV file using "LOAD DATA LOCAL INFILE" to insert records into a database running on another server within the local subnet.

After about a minute I get an error:

Communications link failure
Last packet sent to the server was 53123ms ago

I'm assuming there's some kind of timeout (understandable, some of the files I'm working with have over one million records).  I'm not sure where the problem is, or how to fix it:

- JDBC connection pool settings?
- MYSQL on the target server has "wait_timeout" set to 28800 (documented as seconds, not ms)
LVL 1
Nick75Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Maheshwar RSoftware DeveloperCommented:
0
Nick75Author Commented:
omah - do you mean "setQueryTimeout()", "                  setLocalInfileInputStream()" or something else?
0
Maheshwar RSoftware DeveloperCommented:
yes just set setQueryTimeout to a maximum value.
0
IT Pros Agree: AI and Machine Learning Key

We’d all like to think our company’s data is well protected, but when you ask IT professionals they admit the data probably is not as safe as it could be.

Nick75Author Commented:
I was hopeful that was going to be it, but unfortunately no:

    log.debug(sql);
    stmt.setQueryTimeout(60 * 30);  // should give me half an hour, but fails after 30 seconds
    stmt.execute( sql );

2010-04-28 22:22:33,109 DEBUG: LOAD DATA LOCAL INFILE '/temp/my_file.txt' INTO TABLE my_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES (col1, col2, col3) SET col4=4, col5=5
2010-04-28 22:23:03,391 ERROR: Failed to update database: Communications link failure

Last packet sent to the server was 30255 ms ago.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 30255 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3246)
    at com.mysql.jdbc.MysqlIO.sendFileToServer(MysqlIO.java:3338)
    at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2508)
    at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1746)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2135)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
    at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:734)
0
Mick BarryJava DeveloperCommented:
that looks like the connection is being dropped server side so perhaps check the server settings.
0
Nick75Author Commented:
Anything significant here?

mysql> show variables;
+---------------------------------+-----------------------------+
| Variable_name                   | Value                       |
+---------------------------------+-----------------------------+
| automatic_sp_privileges         | ON                          |
| back_log                        | 50                          |
| binlog_cache_size               | 32768                       |
| bulk_insert_buffer_size         | 8388608                     |
| completion_type                 | 0                           |
| concurrent_insert               | 1                           |
| connect_timeout                 | 5                           |
| delay_key_write                 | ON                          |
| delayed_insert_limit            | 100                         |
| delayed_insert_timeout          | 300                         |
| delayed_queue_size              | 1000                        |
| ft_max_word_len                 | 84                          |
| ft_min_word_len                 | 4                           |
| ft_query_expansion_limit        | 20                          |
| ft_stopword_file                | (built-in)                  |
| group_concat_max_len            | 1024                        |
| have_archive                    | YES                         |
| have_bdb                        | NO                          |
| have_blackhole_engine           | YES                         |
| have_compress                   | YES                         |
| have_crypt                      | YES                         |
| have_csv                        | YES                         |
| have_dynamic_loading            | YES                         |
| have_federated_engine           | YES                         |
| have_geometry                   | YES                         |
| have_innodb                     | YES                         |
| have_isam                       | NO                          |
| have_merge_engine               | YES                         |
| have_ndbcluster                 | DISABLED                    |
| have_openssl                    | DISABLED                    |
| have_ssl                        | DISABLED                    |
| have_query_cache                | YES                         |
| have_raid                       | NO                          |
| have_rtree_keys                 | YES                         |
| have_symlink                    | YES                         |
| init_connect                    |                             |
| init_file                       |                             |
| init_slave                      |                             |
| innodb_additional_mem_pool_size | 1048576                     |
| innodb_autoextend_increment     | 8                           |
| innodb_buffer_pool_awe_mem_mb   | 0                           |
| innodb_buffer_pool_size         | 8388608                     |
| innodb_checksums                | ON                          |
| innodb_commit_concurrency       | 0                           |
| innodb_concurrency_tickets      | 500                         |
| innodb_data_file_path           | ibdata1:10M:autoextend      |
| innodb_data_home_dir            |                             |
| innodb_doublewrite              | ON                          |
| innodb_fast_shutdown            | 1                           |
| innodb_file_io_threads          | 4                           |
| innodb_file_per_table           | OFF                         |
| innodb_flush_log_at_trx_commit  | 1                           |
| innodb_flush_method             |                             |
| innodb_force_recovery           | 0                           |
| innodb_lock_wait_timeout        | 50                          |
| innodb_locks_unsafe_for_binlog  | OFF                         |
| innodb_log_arch_dir             |                             |
| innodb_log_archive              | OFF                         |
| innodb_log_buffer_size          | 1048576                     |
| innodb_log_file_size            | 5242880                     |
| innodb_log_files_in_group       | 2                           |
| innodb_log_group_home_dir       | ./                          |
| innodb_max_dirty_pages_pct      | 90                          |
| innodb_max_purge_lag            | 0                           |
| innodb_mirrored_log_groups      | 1                           |
| innodb_open_files               | 300                         |
| innodb_rollback_on_timeout      | OFF                         |
| innodb_support_xa               | ON                          |
| innodb_sync_spin_loops          | 20                          |
| innodb_table_locks              | ON                          |
| innodb_thread_concurrency       | 8                           |
| innodb_thread_sleep_delay       | 10000                       |
| interactive_timeout             | 28800                       |
| join_buffer_size                | 131072                      |
| key_buffer_size                 | 16777216                    |
| key_cache_age_threshold         | 300                         |
| key_cache_block_size            | 1024                        |
| key_cache_division_limit        | 100                         |
| large_files_support             | ON                          |
| large_page_size                 | 0                           |
| large_pages                     | OFF                         |
| license                         | GPL                         |
| local_infile                    | ON                          |
| locked_in_memory                | OFF                         |
| log                             | OFF                         |
| log_bin                         | OFF                         |
| log_bin_trust_function_creators | OFF                         |
| log_error                       |                             |
| log_queries_not_using_indexes   | ON                          |
| log_slave_updates               | OFF                         |
| log_slow_queries                | ON                          |
| log_warnings                    | 1                           |
| long_query_time                 | 2                           |
| low_priority_updates            | OFF                         |
| lower_case_file_system          | OFF                         |
| lower_case_table_names          | 0                           |
| max_allowed_packet              | 16776192                    |
| max_binlog_cache_size           | 4294967295                  |
| max_binlog_size                 | 104857600                   |
| max_connect_errors              | 10                          |
| max_connections                 | 100                         |
| max_delayed_threads             | 20                          |
| max_error_count                 | 64                          |
| max_heap_table_size             | 16777216                    |
| max_insert_delayed_threads      | 20                          |
| max_join_size                   | 18446744073709551615        |
| max_length_for_sort_data        | 1024                        |
| max_prepared_stmt_count         | 16382                       |
| max_relay_log_size              | 0                           |
| max_seeks_for_key               | 4294967295                  |
| max_sort_length                 | 1024                        |
| max_sp_recursion_depth          | 0                           |
| max_tmp_tables                  | 32                          |
| max_user_connections            | 0                           |
| max_write_lock_count            | 4294967295                  |
| multi_range_count               | 256                         |
| myisam_data_pointer_size        | 6                           |
| myisam_max_sort_file_size       | 2147483647                  |
| myisam_recover_options          | OFF                         |
| myisam_repair_threads           | 1                           |
| myisam_sort_buffer_size         | 8388608                     |
| myisam_stats_method             | nulls_unequal               |
| ndb_autoincrement_prefetch_sz   | 32                          |
| ndb_force_send                  | ON                          |
| ndb_use_exact_count             | ON                          |
| ndb_use_transactions            | ON                          |
| ndb_cache_check_time            | 0                           |
| ndb_connectstring               |                             |
| net_buffer_length               | 1048576                     |
| net_read_timeout                | 30                          |
| net_retry_count                 | 10                          |
| net_write_timeout               | 60                          |
| new                             | OFF                         |
| old_passwords                   | OFF                         |
| open_files_limit                | 1024                        |
| optimizer_prune_level           | 1                           |
| optimizer_search_depth          | 62                          |
| preload_buffer_size             | 32768                       |
| profiling                       | OFF                         |
| profiling_history_size          | 15                          |
| protocol_version                | 10                          |
| query_alloc_block_size          | 8192                        |
| query_cache_limit               | 1048576                     |
| query_cache_min_res_unit        | 4096                        |
| query_cache_size                | 33554432                    |
| query_cache_type                | ON                          |
| query_cache_wlock_invalidate    | OFF                         |
| query_prealloc_size             | 8192                        |
| range_alloc_block_size          | 2048                        |
| read_buffer_size                | 131072                      |
| read_only                       | OFF                         |
| read_rnd_buffer_size            | 262144                      |
| relay_log_purge                 | ON                          |
| relay_log_space_limit           | 0                           |
| rpl_recovery_rank               | 0                           |
| secure_auth                     | OFF                         |
| secure_file_priv                |                             |
| server_id                       | 0                           |
| skip_external_locking           | ON                          |
| skip_networking                 | OFF                         |
| skip_show_database              | OFF                         |
| slave_compressed_protocol       | OFF                         |
| slave_load_tmpdir               | /tmp/                       |
| slave_net_timeout               | 3600                        |
| slave_skip_errors               | OFF                         |
| slave_transaction_retries       | 10                          |
| slow_launch_time                | 2                           |
| sort_buffer_size                | 50331640                    |
| sql_big_selects                 | ON                          |
| sql_mode                        |                             |
| sql_notes                       | ON                          |
| sql_warnings                    | OFF                         |
| ssl_ca                          |                             |
| ssl_capath                      |                             |
| ssl_cert                        |                             |
| ssl_cipher                      |                             |
| ssl_key                         |                             |
| storage_engine                  | MyISAM                      |
| sync_binlog                     | 0                           |
| sync_frm                        | ON                          |
| system_time_zone                | EST                         |
| table_cache                     | 128                         |
| table_lock_wait_timeout         | 50                          |
| table_type                      | MyISAM                      |
| thread_cache_size               | 8                           |
| thread_stack                    | 131072                      |
| timed_mutexes                   | OFF                         |
| tmp_table_size                  | 33554432                    |
| tmpdir                          | /tmp                        |
| transaction_alloc_block_size    | 8192                        |
| transaction_prealloc_size       | 4096                        |
| tx_isolation                    | REPEATABLE-READ             |
| updatable_views_with_limit      | YES                         |
| version                         | 5.0.51a-3ubuntu5.5-log      |
| version_comment                 | (Ubuntu)                    |
| version_compile_machine         | i486                        |
| version_compile_os              | debian-linux-gnu            |
| wait_timeout                    | 28800                       |
+---------------------------------+-----------------------------+


0
Nick75Author Commented:
theGhost - No, it's not a "Last packet sent to the server was 0ms ago." problem - I can successfully process other smaller CSV files, it's just the larger ones that it gets stuck on.
0
Mick BarryJava DeveloperCommented:
> | max_allowed_packet              | 16776192                    |

thats one to check. how big is the file?
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Nick75Author Commented:
I changed "max_allowed_packet" in /etc/mysql/my.cnf to a larger value and it's working now, thanks.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
MySQL Server

From novice to tech pro — start learning today.