исключение jdbc MySQLTransientConnectionException с определенным запросом в производственном процессе - PullRequest
0 голосов
/ 13 июля 2011

У меня есть архитектура Spring + hibernate + mysql + jstl, работающая в рабочей среде Linux CENTOS.

Я добавил модуль кварца (schedualer), мой друг кварц каждые 10 секунд проверяет папку на наличие новых файлов, и, если он находит ее, проверяет и загружает файлы в базу данных и перемещает файл. Работающие программы можно найти в моем MacBook, однако в процессе работы я получаю ошибку jdbc при попытке загрузить данные в базу данных, но все остальное, что связано с базой данных, работает нормально.

Я загружаю файл в базу данных с помощью JAVA вроде:

String queryString = "LOAD DATA INFILE  '"+path+"' INTO TABLE  `branch_to_product` FIELDS TERMINATED BY  ';' ENCLOSED BY  '\"' ESCAPED BY  '\\\\' LINES TERMINATED BY  '\\n'(\n" +
            "`product_model` ,  `branch_to_product_monthly_rotation` ,  `branch_to_product_quantity`\n" +
            ")";

    Query query = getSession().createSQLQuery(queryString);

Если я запускаю sql из phpmyadmin's, он также выполняет поиск.

Это ошибка, которую я вижу в журналах:

[Loaded com.mysql.jdbc.SQLError from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded com.mysql.jdbc.NotImplemented from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded com.mysql.jdbc.exceptions.MySQLTransientConnectionException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded com.mysql.jdbc.exceptions.MySQLDataException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded com.mysql.jdbc.exceptions.MySQLSyntaxErrorException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded com.mysql.jdbc.exceptions.DeadlockTimeoutRollbackMarker from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded com.mysql.jdbc.exceptions.MySQLTransactionRollbackException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded java.sql.SQLRecoverableException from /usr/local/jdk1.6.0_22/jre/lib/rt.jar]
[Loaded com.mysql.jdbc.exceptions.jdbc4.CommunicationsException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]  
[Loaded org.apache.tomcat.dbcp.pool.PoolUtils from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/naming-factory-dbcp.jar]  
[Loaded org.apache.tomcat.dbcp.pool.KeyedObjectPool from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/naming-factory-dbcp.jar]  
[Loaded org.apache.tomcat.dbcp.pool.PoolUtils$KeyedObjectPoolMinIdleTimerTask from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/naming-factory-dbcp.jar]  
[Loaded org.apache.tomcat.dbcp.pool.PoolUtils$ObjectPoolMinIdleTimerTask from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/naming-factory-dbcp.jar]  
[Loaded sun.net.ConnectionResetException from /usr/local/jdk1.6.0_22/jre/lib/rt.jar]  
[Loaded org.hibernate.action.BulkOperationCleanupAction from file:/usr/local/jakarta/apache-tomcat-5.5.33/shared/lib/hibernate.jar]  
0
[Loaded org.hibernate.exception.JDBCExceptionHelper from file:/usr/local/jakarta/apache-tomcat-5.5.33/shared/lib/hibernate.jar]  
09:19:25,633 ERROR JDBCExceptionReporter:72 - Access denied for user 'jardinde_fp'@'localhost' (using password: YES)  
09:19:25,633 ERROR JDBCExceptionReporter:72 - Access denied for user 'jardinde_fp'@'localhost' (using password: YES)  

Ответы [ 2 ]

0 голосов
/ 13 июля 2011

Добавил слово LOCAL в запрос и сработало!

String queryString = "LOAD DATA LOCAL INFILE  '"+path+"' INTO TABLE  `branch_to_product` FIELDS TERMINATED BY  ';' ENCLOSED BY  '\"' ESCAPED BY  '\\\\' LINES TERMINATED BY  '\\n'(\n" +
            "`product_model` ,  `branch_to_product_monthly_rotation` ,  `branch_to_product_quantity`\n" +
            ")";

    Query query = getSession().createSQLQuery(queryString);
0 голосов
/ 13 июля 2011

У вас есть простая ошибка аутентификации:

ОШИБКА JDBCExceptionReporter: 72 - Доступ запрещен для пользователя 'jardinde_fp' @ 'localhost' (с использованием пароля: ДА)

Убедитесь, что учетные данные для приложения разрешены сервером.

Эти строки в журналах, которые вы разместили, просто показывают, что JVM загружает эти файлы классов из их JAR-файлов, они не являются ошибкой или реальной проблемой (JVM загружает классы в первый раз, когда она находит / выполняет коды, которые ссылаются на них, и она должна пройти полный граф ссылок):

[Loaded com.mysql.jdbc.SQLError из файла: / usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]
[Загружен com.mysql.jdbc.NotImplemented from file: / usr / local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]
[Загружен com.mysql.jdbc.exceptions.MySQLTransientConnectionException из файла: / usr / local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...