Как использовать выбор на MULE, чтобы увидеть, работает ли база данных перед отправкой сообщения?

На каждом сообщении, полученном мулом, я регистрирую его в базе данных и маршрутизирую сообщение, но если база данных по какой-то причине не работает, она просто прекращает маршрутизацию службы, возможно ли проверить базу данных по выбору, например, если это возможно подключиться перед отправкой сообщения?

код:

<jdbc:connector name="jdbcConnector" dataSource-ref="WSA" validateConnections="false" queryTimeout="10" pollingFrequency="10000" doc:name="Database"> 
    <jdbc:query key="wsadb" value="insert into inbound_messages (payload, timestamp, agent, ip_from, endpoint, soap_operation) values ('', now(), #[groovy: return message.getInboundProperty('user-agent').toString()], #[groovy: return message.getInboundProperty('MULE_REMOTE_CLIENT_ADDRESS').toString()], #[groovy: return message.getInboundProperty('http.request').toString()], '');"></jdbc:query>  
</jdbc:connector>

<flow name="log-request" doc:name="log-request"> 
    <vm:inbound-endpoint path="log-request.in" doc:name="VM"></vm:inbound-endpoint>  
    <logger message="#[groovy: return message.getInboundProperty('user-agent').toString()], #[groovy: return message.getInboundProperty('MULE_REMOTE_CLIENT_ADDRESS').toString()], #[groovy: return message.getInboundProperty('http.request').toString()]" level="INFO" doc:name="Logger"></logger>
    <!--choice doc:name="Choice"-->
        <jdbc:outbound-endpoint exchange-pattern="one-way" queryKey="wsadb" responseTimeout="10000" queryTimeout="-1" connector-ref="jdbcConnector" doc:name="Persist raw message"></jdbc:outbound-endpoint>
    <!--/choice-->
</flow>

1 ответ

Решение

Рассмотрите возможность использования до успешного роутера:
http://www.mulesoft.org/documentation/display/current/Routing+Message+Processors

Другие вопросы по тегам