How to Fix a Target with a Pending Status in OEM 12cR2

Aug 29, 2013 / By Rene Antunez

Tags: ,

The other day we had a situation with an OEM 12cR2. We performed maintenance in a 2-node cluster and both instances came up fine, but one of the instances in OEM’s Cluster Database target was showing a pending status. It goes to say that before the maintenance, both showed as up.

So the first thing we did was to bounce the agent and clear its state.

oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/bin
 oracle $ ./emctl stop agent;./emctl clearstate agent;./emctl start agent;./emctl upload agent

But with our luck, that neither helped nor changed anything. The next thing we did was to check if the agent was communicating with the OMS. We checked from the server where the agent resided to see if it was responding.

oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/bin
oracle $ emctl verifykey
Oracle Enterprise Manager Cloud Control 12c Release 2
Copyright (c) 1996, 2012 Oracle Corporation. All rights reserved.

-----------------------------------------------------
verifykey: Successfully Completed communication with agent
EMD pingOMS completed successfully

-----------------------------------------------------

We concluded that they were communicating, so that was another theory to discard… Then, we tried something that used to work in 11g: move the upload, state directories, and then bounce the agent, clearing the state.

oracle@testhost[oemagent] /u01/app/oracle/agent/agent12c/sysman/emd
oracle $ mv upload upload.27Aug2013

oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/sysman/emd
oracle $ mkdir upload

oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/sysman/emd
oracle $ mv state state.27Aug2013

oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/sysman/emd
oracle $ mkdir state

oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/bin
oracle $ cd /u01/app/oracle/agent/agent12c/bin
oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/bin
oracle $ ./emctl stop agent;./emctl clearstate agent;./emctl start agent;./emctl upload agent

But as you might have guessed by now, this didn’t help at all.

So the next thing we verified — and this is where we hit the jackpot — were the targets that the agent had registered. Here we saw that the Cluster Database wasn’t listed.

oracle@test[oemagent] /u01/app/oracle/agent/agent12c/bin
oracle $ emctl config agent listtargets | grep "CLUSTER_TEST" | wc -l

0

OEM12c has a great feature that allows you to resynch the agent via OEM. Here are the steps:

  • Go to Setup –> Manage Cloud Control –> Agents;
  • Click on the testdrv01 agent;
  • On the drop down menu from Agent, choose Resynchronization;
  • Be sure to select “Unblock agent on successful completion of agent resynchronization”.

Once you do that, you will see an output like below:

resyncState: IN executeCommand
 resyncState: validated parameters
 Starting resync RESYNC_20130827141300 for agent testhost:9999
 Getting list of all the Targets to remove from the the agent - testhost:9999
 Removing 27 targets from the agent
 Removing list of plugins from the agent
 Getting list of all the Targets from the repository for the agent - testhost:9999
 Pushing list of plugins to the agent
 Promoting list of targets to the agent
 Re-deploying Metric Extensions to the targets
 Saving target collections to the agent
 Cleaning state on the agent
 size of repos blackout list is 0
 Retrieving java callbacks from em_gcha_callbacks table
 Pdp settings syncronized successfully
 resyncState: resync of agent succeeded!

And voilà!!! Once we did this, we could see the CLUSTER_TEST in our target agent.

oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/bin
oracle $ emctl config agent listtargets | grep "CLUSTER_TEST"
[CLUSTER_TEST_test1, oracle_database]
[CLUSTER_TEST, rac_database]

When we had confirmed that the target that we wanted was present, we did an upload and verified the status of the agent. To our great pleasure, both targets were visible as up and running in OEM! :)

oracle@testhost [oemagent] /u01/app/oracle/agent/agent12c/bin
 oracle $ ./emctl upload agent; ./emctl status agent

I hope this can help you out when you face something like this! I can guarantee that the next time I’m faced with a similar situation, the first thing that I will do is grab a target list from the agent.

Note: The names and ports were changed to maintain anonymity.

8 Responses to “How to Fix a Target with a Pending Status in OEM 12cR2”

  • Meghna says:

    1)Agent is currently Blocked. It will not be able to upload any alerts or metric data to the Oracle Management Service(OMS) until it is unblocked manually. Please ensure that all issues related to Agent misconfiguration have been resolved before unblocking the Agent.
    2)System has detected that this agent never uploaded to the repository successfully. Repository does not have enough information to restore this agent.
    At time of resycronisation below error arise please suggest

    • Rene Antunez says:

      Hi Meghna

      Sorry I didn’t see this earlier, if you go to Setup –> Manage Cloud Control –> Agents, you can select the agent and from there you can block it or unblock it. From there I think you can try an upload

  • Joseph Crawford says:

    I was very pleased to find this thread. We have a similar experience with a twist. We have jobs scheduled out of Cloud Control that have the execution of “. oraenv” which work right up to the point of a node failover (we have an active/passive configuration). After failover, although the agent communicates with the targets, jobs that have “. oraenv” in the script execution fail with “oraenv not found.” Through trial and tribulation we likewise determined that we have to resyncronize the agent (including unblock), and like you, things fall back into place. Short of editing every script to fully path the “oraenv” we have no choice but to resyncronize after node failover.

    It would be nice if failover was flawless, but it’s good to know we can get things back in order.

  • Wallace Roberto says:

    Thanks!! this post helped me a lot!!!

  • Fayyaz says:

    I have installed an agent on Solaris 11, SPARC 64 bit on oem12c 12.1.0.3 OMS. Host and agent appears in console but with status pending. targets.xml file has only one line, can you comment what could be the reason of be at this state.

  • Stellios Kes says:

    You can also manually unblock using emcli:
    emcli resyncAgent -agent=”:3872″

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>