From what I can see within that section of the deadlock graph you have a procedure, msdb.dbo.dispatcher_sp_addqueueitem that is deadlocking with another, IdwData.dbo.bcpInJob. It also lists another proc, IdwData.dbo.wait_for_checkpoints and two ad hoc statements. Focus on the first two to start with. Line 47 in the first proc is conflicting with Line 58 in the second. That's your starting point. Remember, deadlocks are primarily a performance issue. You need to understand why you're holding transactions open so long they get the chance to conflict with each other. You can reduce some of the conflict by ensuring that locking is done in the same order for every query. This means accessing tables in the same order, TableA, TableB, TableC, etc. If you mix the order TableA, TableC, TableB... you may see deadlocks in long running transactions. Beyond that, I don't see enough to tell you specifically what the issue is.