In what context are you planning on using this technique? Are you using it in a standalone (stateful) program, or are you using it in a stateless environment?
Either way i'm unsure of the answer to your question. Why would you want a transaction to be open permanently? What happens if TCP/IP is interrupted, do you commit or rollback? Why don't you want to commit after each transaction set?