Currently, if there's a SQLException generated, it seems to fall
right out of the server and get passed back to the client.  This doesn't
seem like the right behavior - shouldn't the container intercept the
exception so it can take some cleanup actions?  What would happen to the
stateless session instance and transaction and stuff?  But perhaps it is
doing so and rethrowing the original exception - it just seems like there
would be a different stack trace in that case.

        But assuming the container is doing the right thing, how should
the DB pool behave?  The connection needs to be returned to the pool.
Presumably, I need to delistResource on the transaction with the code for
failure.  But will the Transaction follow up by calling rollback() or
forget() on the XAResource?  This is critical for the 1.0 JDBC wrappers -
I need to know whether to rollback and return the underlying connection to
the pool immediately or wait for the rollback() signal to do it.

Thanks,
        Aaron


Reply via email to