Хорошо, я добавил мою конфигурацию весны xml для большего объяснения моей ситуации.Как я могу найти точку завершения транзакции весной?
Во-первых, я агрегировал 7 каналов Во-вторых, агрегатор выпускает объединенный канал, объявленный как канал публикации. Третьи, Каждые 7 подписных каналов для выбора внутренней базы данных для каждого сообщения. Forth, Каждый канал вставляет данные во внешнюю базу данных с помощью адаптера jdbc-outbound-channel.
Ниже я приложил каждую конфигурацию xml, связанную .. Спасибо.
<int:bridge input-channel="request-write-to-openPMSQueueChannel"
output-channel="writetoOpenPMSChannel">
<int:poller fixed-rate="5000" max-messages-per-poll="-1">
<int:transactional propagation="REQUIRED"
transaction-manager="transactionExternalDatabaseManager" />
</int:poller>
</int:bridge>
<int:chain input-channel="writetoOpenPMSChannel"
output-channel="writetoOpenPMS007Channel">
<int:service-activator method="exectue007">
<bean id=""
class="com.sds.redca.core.module.analyzer.convert.ModelingConvertSVC">
</bean>
</int:service-activator>
<int:splitter ref="fromListToRowSplitter" />
</int:chain>
<int:chain input-channel="writetoOpenPMSChannel"
output-channel="writetoOpenPMS006Channel">
<int:service-activator method="exectue006">
<bean id=""
class="com.sds.redca.core.module.analyzer.convert.ModelingConvertSVC">
</bean>
</int:service-activator>
<int:splitter ref="fromListToRowSplitter" />
</int:chain>
<int-jdbc:outbound-channel-adapter channel="writetoOpenPMS001Channel"
query="INSERT INTO IF_RSRC
(PJT_ID, DT_INPUT, RSRC_ID, RSRC_TYPE_ID, RSRC_DETAILTYPE_ID, RSRC_NM, CNFG_PJT_NM, RSRC_PATH_NM, LST_RGSTR_ID, LST_RGST_DTM, FINAL_RVSN_NO, YN_USE)
VALUES
(:payload[PJT_ID], :headers[timeStamp], :payload[RSRC_ID], :payload[RSRC_TYPE_ID], :payload[RSRC_DETAILTYPE_ID], :payload[RSRC_NM], :payload[CNFG_PJT_NM],
:payload[RSRC_PATH_NM], :payload[LST_RGSTR_ID], :payload[LST_RGST_DTM], :payload[FINAL_RVSN_NO], :payload[YN_USE])"
data-source="outboundDataSource" />
<int-jdbc:outbound-channel-adapter channel="writetoOpenPMS002Channel"
query="INSERT INTO IF_RSRC_RELATION
(PJT_ID, DT_INPUT, MAIN_RSRC_ID, SUB_RSRC_ID, RELATION_TYPE_CODE_ID)
VALUES
(:payload[PJT_ID], :headers[timeStamp], :payload[MAIN_RSRC_ID], :payload[SUB_RSRC_ID], :payload[RELATION_TYPE_CODE_ID])"
data-source="outboundDataSource" />
Но проблема в том, что я должен вызвать какое-либо событие сразу после того, когда 7 вставные работы успешно завершена. Как я могу получить точку, в которой 7 транзакций вставки завершены для запуска некоторого пост-события?
Как вы сказали, я добавил мой вверх по течению конфигурации. пожалуйста помогите. Спасибо за внимание :) – verystrongjoe
Обновлен asnwer в соответствии с вашей конфигурацией. –
Спасибо вам за подробный ответ. Но, все же, я не могу знать, где я могу поставить код события post post. Можете ли вы дать более подробное объяснение? – verystrongjoe