По какой-то странной причине каждый раз, когда я удаляю / вставляю информацию в таблицу AGENT_MAPPING_TABLE процесс в контейнере не распознает новую информацию, поэтому я должен ОСТАНОВИТЬ И ПЕРЕЗАПУСТИТЬ контейнер.
Это мой код:
private void initializeAgentCodeMailMapping() {
agentCodeMailMapping.clear();
Connection conn = null;
try {
conn = getSqlServerDataSource().getConnection();
//Get all customers
String sql = "SELECT agent_code, email FROM AGENT_MAPPING_TABLE";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
String agentCode = rs.getString(1);
String agentMail = rs.getString(2);
agentCodeMailMapping.put(agentCode, agentMail);
}
} catch (SQLException e) {
logger.error(e.getMessage(),e);
}finally {
try {
if (conn != null)
conn.close();
} catch (Exception e) {
logger.error("Error while closing the connection");
}
}
}
Маршрут Apache:
<route id="getEmailByAgentCode">
<from id="_from6" uri="direct:getEmailByAgentCode"/>
<recipientList id="_recipientList4">
<simple>sqlServer:select EMAIL from AGENT_MAPPING_TABLE where AGENT_CODE=:#AGENT_CODE?outputType=SelectOne</simple>
</recipientList>
<setHeader headerName="AGENT_EMAIL" id="_setHeader16">
<simple>${body}</simple>
</setHeader>
<log id="_log9" message="Agent email readed '${body}'"/>
</route>
Таблица AGENT_MAPPING_TABLE хранится в базе данных MySQL. Я не знаю, почемуэто происходит, но это довольно раздражает: /
Что не так?