UVM Phase Jumping

In reply to tfitz:

In class my_driver, I have following objects and function:

uvm_domain driver_domain = uvm_domain::get_uvm_domain(); // to be set to my_driver class
uvm_domain get_driver_domain; // handle to get the assigned domain
string driver_domain_name; // string to display domain assigned
uvm_domain driver_domains[string]; // to display all available domains of my_driver

function void my_driver:: build_phase( uvm_phase phase );
super.build_phase( phase );
uvm_report_info(get_full_name()," my_driver:: build_phase()",UVM_NONE);
define_domain(driver_domain);
this.set_domain(driver_domain,1);
driver_domain_name = phase.get_domain_name();

uvm_domain:: get_domains(driver_domains);
$display(" number of available domains is %d",driver_domains.size());
$display(“driver is in domain: %s” ,driver_domain_name);
endfunction : build_phase

What I am trying to do is set a domain (other than uvm_domain and uvm_common_domain) to build_phase of my_driver. So available domains for this phase should be 3. And this phase should be in driver_domain.

But it is displaying as if available domains for this are 2. And this phase is in common domain.

I am trying to set different domains to different components(my_diver and my_monitor). Now i am having one agent only.