If the blob store is transactional, the caller must provide a Transaction. Once provided, the connection will be valid for the life of the transaction, at the end of which it will be automatically {@link BlobStoreConnection#close close()}'d.
If the blob store is not transactional, the caller must provide null. Once provided, the connection will be valid until explicitly closed.
Implementations are expected to do any desired pooling of underlying connections themselves.
@param tx the transaction associated with this connection, or null ifthe blob store is not transactional @param hints A set of hints to allow the implementation to optimize theoperation (can be null) @return the connection to the blob store @throws UnsupportedOperationException if the blob store is transactionalbut a Transaction is not provided by the caller, or if the blob store is not transactional and a Transaction is provided by the caller. @throws IOException if an error occurred trying to open the connection.
| |
| |