2013-08-12 1 views
2

Я использую входящую конечную точку JDBC, с целью извлечь значения из mysql и, наконец, поместить ее в файл. Я могу получить значения в БД. Но мой поток работает неограниченное время. Может кто-нибудь мне помочь. Пожалуйста, найдите мою конфигурацию xml. Заранее спасибоПростой поток: с использованием JDBC и файла (в Mule), но работает в Loop

<jdbc-ee:mysql-data-source name="MySQL_Data_Source" user="root" password="root" url="jdbc:mysql://localhost:3306/mydb" transactionIsolation="UNSPECIFIED" doc:name="MySQL Data Source"/> 
<jdbc-ee:connector name="Database" dataSource-ref="MySQL_Data_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database" transactionPerMessage="false"/> 
<flow name="JDBCFlowFlow1" doc:name="JDBCFlowFlow1"> 
    <jdbc-ee:inbound-endpoint queryKey="employeeSelect" queryTimeout="-1" pollingFrequency="1000" connector-ref="Database" doc:name="Database"> 
     <jdbc-ee:query key="employeeSelect" value="select * from employeedetails"/> 
    <jdbc-ee:transaction action="NONE"/> 
    </jdbc-ee:inbound-endpoint> 
    <logger message="---------------Result: #[payload]------------------------" level="INFO" doc:name="Logger"/> 
    <file:outbound-endpoint path="C:\Documents and Settings\Desktop\mule\OUTPUT FILE1" responseTimeout="10000" doc:name="File"/> 
</flow> 

ответ

0

Согласно документации Mule в JDBC транспорта:

«Inbound SELECT, запросы запросы, которые выполняются периодически (в соответствии с установленным PollingFrequency на разъеме).»

Поэтому поведение, которое вы испытываете, следует ожидать.

Возможная стратегия, позволяющая избежать периодического опроса, заключается в создании входящей оконечной точки кварца, где «repeatCount» установлен в 1 и позволяет компоненту мула заботиться о фактическом извлечении базы данных.

+0

Спасибо @geby за ответ. Но я не хочу периодически записывать запись в БД. Достаточно одного раза, если он работает без цикла. Таким образом, мы не можем использовать JDBC в качестве входящей конечной точки для выбранных запросов (без использования кварца), если они запускаются в цикле ?. Также прочтите документ Mulesoft. – star

+0

Ну, вам нужен способ запуска потока. Вы можете либо опросить базу данных с помощью конечной точки jdbc: inbound-end, либо вы можете использовать кварц для планирования конечной точки jdbc: outbound-endpoint. В качестве альтернативы вы можете поставить другой источник сообщения перед конечной точкой jdbc: outbound-endpoint, такой как http, чтобы запустить его с помощью api или аналогичного, или вы могли бы написать компонент для получения конечной точки и вручную запустить/остановить ее или что-то еще. Какая у вас информация - как и когда вы хотите запустить этот поток? –

+0

Спасибо @RyanCarter, я получил ответ из вашего краткого объяснения. Я новичок в Mule и изучаю процессоры сообщений как своего рода POC, и я застрял в вышеупомянутом сценарии. Я пробовал вышеупомянутый сценарий и прорабатывал его. – star

0

Использование компонента Poll с выражением Cron поможет любому такому scnearios, потому что вы можете запланировать интервал опроса по мере необходимости. Нижняя ссылка помогает вам определить выражение cron в соответствии с требованием.

http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

 Смежные вопросы

  • Нет связанных вопросов^_^