code: public static Object issueRequest(
      MessageProcessor MP,
      ControlMessage msg, 
      SIBUuid8 remoteUuid, 
      long retry, 
      int tries, 
      long requestID)
    {       
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "issueRequest", new Object[] {MP, msg, remoteUuid, new Long(retry), new Integer(tries), new Long(requestID)});
       
      // Short circuit ME rechability test
      if (!MP.getMPIO().isMEReachable(remoteUuid))
      { 
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "issueRequest", null); 
        return null; 
      } 
        
      // Prepare the request map
      Object[] awaitResult = new Object[1];
      synchronized (_requestMap)
      {
        _requestMap.put(new Long(requestID), awaitResult);
      }
      
      synchronized (awaitResult)
      {
        // Now send the request, setup the retry alarm, and wait for a result
        MP.getMPIO().sendToMe(remoteUuid, SIMPConstants.CONTROL_MESSAGE_PRIORITY, msg);
        ResendRecord retryRecord = new ResendRecord(MP, msg, remoteUuid, retry, tries, requestID);
        MP.getAlarmManager().create(retry, _alarmHandler, retryRecord);
        
        while (true)
          try
          {
            awaitResult.wait();
            break;
          }
          catch (InterruptedException e)
          {
            // No FFDC code needed
            // We shouldn't be interrupted, but if we are loop around and try again
          }
      }
        
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "issueRequest", awaitResult[0]);
        
      return awaitResult[0];
    }
docs: Issue a general request, wait for the reply, then return it.
  
  @param msg The ControlMessage to send.
  @param me The ME to send the request to.
  @param retry The retry interval (in milliseconds) for the request.
  @param tries The number of times to attempt to send the request.
  @param requestID The unique ID of the request
  @return The result of sending the request, either null for a timeout, or
  some valid return code for the actual request.