Database 在发送消息之前,如何在MULE上使用choice查看数据库是否已启动?

Database 在发送消息之前,如何在MULE上使用choice查看数据库是否已启动?,database,mule,choice,Database,Mule,Choice,在mule上收到的每一条消息中,我都会将其登录到数据库并路由消息,但如果数据库因某种原因关闭,它就会停止路由服务,是否可以使用choise检查数据库,比如在发送消息之前是否可以连接 代码: 考虑使用路由器直到成功: 这也行得通,我发现的方法就是将queryTimeout=“-1”改为queryTimeout=“10”,这样它就不会停止工作,等待答案:) <jdbc:connector name="jdbcConnector" dataSource-ref="WSA" validateCon

在mule上收到的每一条消息中,我都会将其登录到数据库并路由消息,但如果数据库因某种原因关闭,它就会停止路由服务,是否可以使用choise检查数据库,比如在发送消息之前是否可以连接

代码:


考虑使用路由器直到成功:

这也行得通,我发现的方法就是将queryTimeout=“-1”改为queryTimeout=“10”,这样它就不会停止工作,等待答案:)
<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>