#wso2 #wso2ei #wso2si
#wso2 #wso2-enterprise-integrator #wso2-streaming-integrator
Вопрос:
Я попытался настроить подключение источника данных к MySQL при развертывании.yaml WSO2 SI, чтобы я мог использовать его в своих приложениях Siddhi. Он работал нормально, как обычно, но когда я перезапускаю MySQL, источник данных не может повторно подключиться к БД, поэтому мое приложение Siddhi выдает следующие ошибки.
Как я могу настроить источник данных, чтобы он мог автоматически повторно подключаться после перезапуска базы данных.
Спасибо, Луонг.
[2020-11-12 19:32:43,627] ERROR {io.siddhi.extension.io.cdc.source.polling.strategies.DefaultPollingStrategy} - Error occurred while processing records in table SweetProductionTable. {mode=polling, app=CDCWithPollingMode, stream=insertSweetProductionStream} java.sql.SQLException: Connection is closed
at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection.lambda$getClosedConnection$0(ProxyConnection.java:493)
at com.sun.proxy.$Proxy73.prepareStatement(Unknown Source)
at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:315)
at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
at io.siddhi.extension.io.cdc.source.polling.strategies.DefaultPollingStrategy.printEvent(DefaultPollingStrategy.java:142)
at io.siddhi.extension.io.cdc.source.polling.strategies.DefaultPollingStrategy.poll(DefaultPollingStrategy.java:86)
at io.siddhi.extension.io.cdc.source.polling.CDCPoller.run(CDCPoller.java:202)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Ответ №1:
Это ошибка siddhi-io-cdc. Приложение Siddhi с режимом опроса CDC выдает ошибки при перезапуске исходной базы данных. Эти сбои, вызванные ошибкой в классе DefaultPollingStrategy, printEvent(connection) не проверяет соединение перед его использованием, сначала необходимо getConnection() .
Ответ №2:
В конце URL-адреса подключения к mysql вы можете добавить следующее
amp;amp;autoReconnect=true
Например:
jdbc:mysql://localhost:3306/wso2_api_stat_alt?useSSL=falseamp;ampautoReconnect=true
Комментарии:
1. Спасибо, Шанака, я пробовал, как вы предложили, но он не смог подключиться повторно.
2. Вы можете воспроизвести эти ошибки, выполнив следующие действия: 1. Настройте источник данных на MySQL 2. Используйте источник данных в CDC @ Souce в приложении Siddhi 3. Перезапустите MySQL -> Ошибки, вызванные закрытием соединения с БД. Я обнаружил, что WSO2SI использует пул соединений Hikari, но он не может повторно подключиться к БД после потери соединения. Знаете ли вы, как настроить Hiraki CP, чтобы он мог автоматически повторно подключать все потерянные соединения в пуле?