I have a multithreaded Pro*C program which calls anonymous stored procedures in each thread on separate connections and runtime contexts.
My anonymous procedure calls takes different time frames to return from the procedure and sometimes it even hangs indefinitely. My Oracle procedure takes just 0.05 seconds to return as it is shown in AWR logs but surprisingly the Pro*C call takes 5 seconds to return from procedure.
What is the processing activity involved between the Pro*C procedure call and actual Oracle procedure execution? Are any locks or other blocking issues?