Fixed problem causing service to become unavailable whilst in use, still doesn not pass tests, this is probably due to picking up own transactions, although the filtering by thread id seems to stop a recursive loop