In reply to jj_bukhari:
Your problem is in the config_db set command:
uvm_config_db#(virtual intf)::set(null,"*.agent_h","intf_h",intf_h);
Your code restricts the virtual interface to a component which has at the end of its hierarchical path ‘agent_h’.
Replacing the 2nd argument with awildcard ‘*’ will work.