In reply to Arun_Rajha:
You missed cas3:
seq_item_port.get(req);
....
seq_item_port.put(rsp);
Case 3 can be used in case of pipelined or out-of-order transactions.
In your case 1 you are sending the rsp back twice, i.e. with item_done(rsp) and through the rsp_port. Doing this is not a good idea.