In reply to hcglu:
The active/passive configuration is a little bit strange. You should look to the UVM Reference Manual. It say to make the setting you have to use a command like this:
uvm_config_int::set(this, "*dma_agnt*", "is_active", UVM_PASSIVE);
And in the agent you are simply using
get_is_active()
See the your code here