In reply to Harjot:
I missed out on the set part . Please change it to ::
uvm_config_db #(int)::set(my_parent,"","low",100); // "*" changed to ""
Via the above change , the value is visible to following TB hierarchy ::
uvm_test_top ( your env in this case as it's argument to run_test )
In your initial code due to "*" during set , the value was visible to TB hierarchy :: uvm_test_top.* .
So only child components ( due to .* ) of env can fetch the value
The env itself isn't able to fetch it .
To successfully fetch using "*" during set ::
uvm_config_db #(int)::set(my_parent,"*","low",100);
Your get should look like ::
if( !uvm_config_db #(int)::get( get_child("a_h") ,"","low",_low ) ) // get in env
$display("Get is not successful ");
Although it's your env which fetches the value , it acts as child component of env during fetch