That's Matrix-style impossible. When you say "A creates some tables..." do you mean in a transaction (which was successfully committed) or not in a transaction? When thread B is said to "Create" a connection, you don't mean "takes an existing connection from the connection pool", right? You mean B physically opens the file, and finds it NOT having the same schema as A just created? Is the file accessed over a Network?