I have a batch application made based on J2ee7 standard. J2ee batch application creates a new transaction before starting the reader and closes that transaction after writer call ends. Now from Reader I called one of my own service which is annotated as @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW). According the rule, the query inside the method should commit at the end of the call but its not doing it. The commit is happening at the end of the writer finishing its work. Any idea whats happening here and how can I fix it?