是否有可能在某些连接器断开时将流量调高,如postgre?

时间:2013-12-04 17:56:49

标签: database mule choice

我使用mule创建了一个软件,它记录了它正在做什么(将一个WS计算)记录到一个数据库中,但是如果数据库已关闭,那么在放入数据库服务器之后,日志只会显示连接被拒绝它工作得很好,是否有任何选项或方法来配置我的骡子软件,以便它可以重新启动并正常工作,即使数据库已关闭,因为它的可选程序没有被重新加入程序?

代码:

<jdbc:postgresql-data-source name="WSA" user="${database.user}" password="${database.pass}" url="${database.url}" transactionIsolation="UNSPECIFIED" doc:name="PostgreSQL Data Source"> </jdbc:postgresql-data-source>

<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>  
    <jdbc:outbound-endpoint exchange-pattern="one-way" queryKey="wsadb" responseTimeout="10000" queryTimeout="10" connector-ref="jdbcConnector" doc:name="Persist raw message"></jdbc:outbound-endpoint>
</flow>

1 个答案:

答案 0 :(得分:1)

您需要在JDBC连接器中使用重新连接策略并将其设置为blocking =“false”:http://www.mulesoft.org/documentation/display/current/Configuring+Reconnection+Strategies