Истечение времени ожидания подключения к базе данных в приложении CVP
-
Привет всем, У меня есть приложение CVP, которое выполняет простой запрос при каждом вызове для извлечения данных о вызывающем абоненте. Решение работает как ожидается, однако примерно через неделю (не всегда в одно и то же время) начинают появляться ошибки, и в журнале ошибок приложения ErrorLog я вижу следующее: The error was: A built-in element encountered an exception of type com.audium.server.AudiumException. Connection reset by peer: socket write error The root cause was: com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: socket write error Я изменил приложение CVP, чтобы оно вручную указывало на резервный сервер базы данных в случае сбоя основной базы данных, однако я получаю ошибку, гласящую, что оно не может подключиться к jdbc, хотя оно существует в файле context.xml. The error was: A built-in element encountered an exception of type com.audium.server.AudiumException. There was a problem looking up the JNDI data source 'gshbckp'. The root cause was: javax.naming.NameNotFoundException: Name [gshbckp] is not bound in this Context. Unable to find [gshbckp].
com.audium.server.AudiumException: A built-in element encountered an exception of type com.audium.server.AudiumException. Перезапуск служб VXML устраняет эту проблему. Я связался с TAC, которые говорят, что проблема связана с базой данных, в то время как наша команда по базам данных указывает на проблему с конфигурацией приложения. Ниже приведен файл context.xml: <Resource auth="Container" name="jdbc/gsh" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://dbserver:1433;user=user;password=;DatabaseName=DB" connection-creation-retry-attempts="5" type="javax.sql.DataSource"
/> <Resource auth="Container" name="jdbc/gshbckp" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://dbserver2:1433;user=user;password=;DatabaseName=DB" connection-creation-retry-attempts="5" type="javax.sql.DataSource"
/> Я подключаюсь к SQL Server 2019 standard с помощью файла mssql-jdbc-6.4.0.jre7.jar. Буду очень благодарен за любую помощь. -
Я удивлен, что TAC не обнаружила эту проблему, потому что один из моих бывших студентов столкнулся с ней много лет назад и сказал мне, что для ее устранения нужно удалить атрибут factory — он не позволяет VXMLServer восстановить соединение после потери связи с SQL. В моем руководстве для студентов есть следующая информация: После 11.5: НЕ используйте этот метод factory, так как он приводит к тому, что VXML Server не восстанавливает соединение при перезапуске SQL factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
-
Вы пробовали без раздела «connection-creation-retry-attempts="5"», чтобы увидеть, есть ли какие-то улучшения/различия? Кроме того, какая это версия CVP?
-
Привет,
@janinegraves
, я предполагаю, что это тот дефект, о котором ты говоришь? https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo75092 -
Это решило мою проблему с SQL 2019 и CVP 12.6. Добавлю, что я только что обновил свое приложение vxml с помощью скрипта updateapp.sh после изменения context.xml, и изменения были применены. Я не перезапускал службу VXML, но сделаю это в нерабочее время. Спасибо, Дженин, как всегда, ты была спасительницей, когда дело касалось приложений CVP VXML.
-
Рад слышать, что это помогло!
-
Спасибо вам обоим за ответ.
@bill.king1
Я сначала удалил эту запись, а затем добавил ее для тестирования.
@janinegraves
В настоящее время мы используем CVP v11.6 и предположили, что ваше замечание относится к v12+. Я удалю эту запись и попробую еще раз. -
Обязательно перезапустите VXML Server после внесения любых изменений в файл context.xml.
-
Устранение этой проблемы, Джанин, сработало. Оказалось, что поскольку я настроил базу данных SQL как группу доступности для обеспечения избыточности, при переключении на резервный сервер иногда происходило отключение от базы данных. Удаление строки из контекстного файла помогло. Спасибо!
-
Здравствуйте, Чад, не могли бы вы поделиться примером вашего XML-файла, потому что у меня возникает странная ошибка? Хотя у меня есть несколько типов баз данных, я действительно пытаюсь заставить работать MS SQL, но получаю ошибку «INVALID_CHARACTER_ERR: Указан недопустимый или нелегальный символ XML».
-
Ахмед, Не могли бы вы поделиться со мной своим xml-файлом, чтобы я мог его посмотреть? Также сообщите мне, какую версию SQL/CVP вы используете.
-
Я использую CVP 12.6 с SQL 2016. Ниже прикреплен мой файл context.xml в формате zip.
-
Ахмед, я предполагаю, что вы видите это как ошибку Java в журналах ошибок приложения? Tomcat не любит специальные символы, поэтому я рискну предположить, что символ «@» в вашем пароле может быть причиной проблемы. Вы можете либо попробовать заменить этот символ, либо полностью его опустить. Я предлагаю второе, чтобы обеспечить подключение.
-
Спасибо, Чад. Я также пробовал использовать простой пароль «password», но получаю ту же ошибку.
-
Ахмед, я удалил пробелы из своего файла context.xml и заменил их разрывами строк (как у вас) и получил ту же ошибку, что и вы: «недопустимый символ в XML». Поэтому я почти уверен, что если вы добавите пробел между каждым атрибутом, как здесь, это решит вашу проблему. type="javax.sql.DataSource" DriverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://onl-mssql.voicelab.local:1433;DatabaseName=Cisco;user=sa;password=@DBAadmin;encrypt=true;trustServerCertificate=true"/>
Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.
Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост может стать ещё лучше 💗
Зарегистрироваться Войти