Devin, What you're asking for is a contradicting requirement. One trades individual message transactional control (and necessary overhead) for the higher throughput with micro-batching (but lesser control). In short, you can't expect to rollback a message and not affect the whole batch.
However, if you 'commit' this batch as received by your processor, and take on the responsibility of storing, tracking and commit/rollback of those yourself for downstream connection.... But then, why? In general, one should leverage NiFi 'Scheduling' tab and have the micro-batching aspect controlled via the framework. Unless you really really have a very good reason to do it yourself. Hope this helps, Andrew On 3/7/16, 5:00 PM, "Devin Fisher" <[email protected]> wrote: >Question about rollbacks. I have a processor that is grabbing a list of >FlowFiles from session.get(100). It will then process each flow file one at >a time. I want to then be able if there is an error with a single FlowFile >to roll it back (and only this failed FlowFile) and transfer it to the >FAILED relationship. But reading the javadoc for ProcessSession I don't get >the sense that I can do that. > >Is my workflow wrong, should I only get one at a time from the session and >commit after each one? > >Devin
