У нас есть приложение JAVA, которое подключается к DB2 через openJPA для извлечения данных. Предшествующий почти каждый SQL вызова, мы получаем довольно бесполезный вызов, который поставляется в качестве отдельной сделки: «Выбрать текущий SQLID ОТ SYSIBM.SYSDUMMY1»Выполняя почти каждый вызов, мы получаем довольно бесполезный вызов, который приходит как отдельная транзакция. SELECT CURRENT SQLID FROM SYSIBM.SYSDUMMY1
DBA говорит, что он не имеет ни малейшего представления, почему это выше бесполезный SQL оператор вызывается перед почти каждым вызовом.
Любая идея, почему этот запрос вызван? Есть ли что-нибудь, что я могу сделать, чтобы пропустить это?
Прошло некоторое время. Я застрял в этой проблеме, когда администратор базы данных жаловался на резкое увеличение количества транзакций, поражающих DB2.
Любая помощь будет оценена по достоинству. Спасибо
Вероятно, запрос проверки соединения, выполненный реализацией пула соединений, чтобы убедиться, что соединение не прошло, прежде чем передать код приложения. См. «[Как проверить подключение к базе данных db2] (http://stackoverflow.com/questions/4733356/how-to-test-the-connection-to-a-db2-database)». – Andreas
См. Также «[DBCP - validationQuery для разных баз данных] (http://stackoverflow.com/q/10684244/5221149)» и «[Что такое validationQuery в отношении баз данных и JNDI?] (Http: // stackoverflow. com/q/15393954/5221149) « – Andreas
Итак, он говорит, что запрос проверки выполняется источником данных, чтобы проверить, что соединение все еще открыто, прежде чем возвращать его. Посредством источника данных по умолчанию выполняется этот запрос каждый раз? В любом случае я могу ограничить этот запрос, поскольку он создает накладные расходы на DB2. Это происходит из-за наводнения DB2, и это является главной задачей. – user3262365