DBA Kevlar

Tips, tricks, (and maybe a few rants) so more DBAs become bulletproof!

# Easy EM12c Agent Deployment on Windows

One of the greatest advancements in EM12c from previous Enterprise Manager versions is the auto-deployment.  I have a number of clients with Windows environments and upon another recent search on Google, I found that there was a consistent and solid recommendation of installing Cygwin, (or another shell emulator installation) to utilize the auto-deploy.  There is a large amount of work that is required to perform the pre-requisites to then take advantage of the auto-deploy, so I’m thrilled when I see someone recommend using the silent installation with Windows installation.  I’m aware that I, along with others, have created posts that demonstrate silent deployments, but not JUST for Windows, so here it is!

The Software Library

A silent deploy demands a software library for a download the agent zip file to.  This must be pre-configured beforehand.

To configure the software library, log into the EM12c environment and go to the software library:

Enter a name and location for the software library, ensure you’ve already created the folder names in Windows to ensure success.

Click on OK

You will see the software library in the list:

You will now use this directory to download the agent deployment zip files to.

Deployment is done by the Enterprise Manager Command Line Interface, (EMCLI).   The emcli is ready with EM12c, release 2, but you need to set the environment up to support the emcli.  The JAVA_HOME must be set before your Windows emcli will work correctly.  Either set it in the environment variables or set it at the command line.  It must be java 1.6 or greater to work with emcli.

set JAVA_HOME=C:\Progra~2\Java\jre7

Log into the EMCLI as SYSMAN or user with agent deployment privs:

E:\app\oracle\em12c\oms\BIN>emcli login -username=sysman
Login successful

Syncronize the EMCLI so that it is up to date with the repository:

E:\app\oracle\em12c\oms\BIN>emcli sync
Synchronized successfully

Query the repository to get what agents are in the repository:

E:\app\oracle\em12c\oms\BIN>emcli get_supported_platforms
Getting list of platforms ...
Check the logs at E:\app\oracle\em12c\gc_inst\em\EMGC_OMS1\sysman\emcli\setup/.emcli/agent.log
About to access self-update code path to retrieve the platforms list..
Getting Platforms list ...
-----------------------------------------------
Version = 12.1.0.2.0
Platform = Microsoft Windows x64 (64-bit)
-----------------------------------------------
Platforms list displayed successfully.

Deploy the Agent

OK, time to download it to the software drive.  The syntax asks for the destination, which we list, along with the exact name of the platform of the agent that we want and the version:

emcli get_agentimage -destination=E:/sw_lib/12.2 –platform="Microsoft Windows x64 (64-bit)" –version=12.1.0.2.0
Platform:Microsoft Windows x64 (64-bit)
Destination:e:\swlib
=== Partition Detail ===
Space free : 20 GB
Space required : 1 GB
Check the logs at E:\app\oracle\em12c\gc_inst\em\EMGC_OMS1\sysman\emcli\setup/.emcli/get_agentimage_2013-10-24_12-55-31-PM.log

Copy this file over to the target server that you wish to deploy the EM12c agent to and unzip the file:

You will see a list of files, (depending on version of EM12c, output may vary some…) but there are two files you are mainly interested in:

agentDeploy.bat     Batch file to deploy the agent.

agent.rsp                     Agent response file that requires configuration.

The agent.rsp requires the following changes made:

OMS_HOST=OMS_ORCL.com #OMS Host Server name
AGENT_INSTANCE_HOME=E:\app\agent12c #Installation directory on new target
AGENT_PORT=3872 #Agent port
b_startAgent=true
ORACLE_HOSTNAME=TRGT_ORCL.com #Name of target host
s_agentHomeName=TRGT_ORCL #Name of the target in EM12c

Save the changes and execute the batch file to deploy the agent:

agentDeploy.bat AGENT_BASE_DIR=E:\app RESPONSE_FILE=E:\app\12.1.0.2.0_AgentCore\agent.rsp
E:\12.1.0.2.0_AgentCore_233>agentDeploy.bat AGENT_BASE_DIR=E:\app RESPONSE_FILE=E:\12.1.0.2.0_AgentCore_233\agent.rsp
E:\12.1.0.2.0_AgentCore_233
Present working directory:E:\12.1.0.2.0_AgentCore_233
Archive location:E:\12.1.0.2.0_AgentCore_233 directory
AGENT_BASE_DIR
AGENT_BASE_DIR
E:\app
Agent base directory:E:\app
E:\app
RESPONSE_FILE
E:\12.1.0.2.0_AgentCore_233\agent.rsp
Agent base directory:E:\app
OMS Host:
Agent image loc : "E:\12.1.0.2.0_AgentCore_233"
E:\app configonlyfalse
1 file(s) copied.
This is the version 12.1.0.2.0
This is the type core
This is the aru id 233
"E:\app\core\12.1.0.2.0"
"Executing command : E:\app\core\12.1.0.2.0\jdk\bin\java -classpath E:\app\core\12.1.0.2.0\jlib\agentInstaller.jar:E:\app\core\12.1.0.2.0\oui\jlib\OraInstaller.jar oracle.sysman.agent.installer.AgentInstaller E:\app\core\12.1.0.2.0 "E:\12.1.0.2.0_AgentCore
Validating oms host & port with url: http://OMS_ORCL.com:4800/empbs/genwallet
Validating oms host & port with url: https://OMS_ORCL.com:4800/empbs/genwallet
Return status:3
"E:\12.1.0.2.0_AgentCore_233"\12.1.0.2.0_PluginsOneoffs_233.zip
"Executing command : E:\app\core\12.1.0.2.0\jdk\bin\java -classpath E:\app\core\12.1.0.2.0\jlib\OraInstaller.jar:E:\app\core\12.1.0.2.0\sysman\jlib\emInstaller.jar:E:\app\core\12.1.0.2.0\jlib\xmlparserv2.jar:E:\app\core\12.1.0.2.0\jlib\srvm.jar:E:\app\core
Executing agent install prereqs...
Executing command: E:\app\core\12.1.0.2.0\oui\bin\setup.exe -ignoreSysPrereqs -prereqchecker -silent -ignoreSysPrereqs -waitForCompletion -prereqlogloc E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy -entryPoint oracle.sysman.top.agent_Complete -detailedEx
Prereq Logs Location:E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy\prereq<timestamp>.log
Agent install prereqs completed successfully
Cloning the agent home...
Executing command: E:\app\core\12.1.0.2.0\oui\bin\setup.exe -ignoreSysPrereqs -clone -forceClone -silent -waitForCompletion -nowait ORACLE_HOME=E:\app\core\12.1.0.2.0 -responseFile E:\12.1.0.2.0_AgentCore_233\agent.rsp AGENT_BASE_DIR=E:/app AGENT_BASE_DIR
Clone Action Logs Location:C:\Program Files\Oracle\Inventory\logs\cloneActions<timestamp>.log
Cloning of agent home completed successfully
Attaching sbin home...
Executing command: E:\app\core\12.1.0.2.0\oui\bin\setup.exe -ignoreSysPrereqs -attachHome -waitForCompletion -nowait ORACLE_HOME=E:\app\sbin ORACLE_HOME_NAME=sbin12c1 -force
Attach Home Logs Location:E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy\AttachHome<timestamp>.log
Attach home for sbin home completed successfully.
Updating home dependencies...
Executing command: E:\app\core\12.1.0.2.0\oui\bin\setup.exe -ignoreSysPrereqs -updateHomeDeps -waitForCompletion HOME_DEPENDENCY_LIST={E:\app\sbin:E:\app\core\12.1.0.2.0,} -invPtrLoc E:\app\core\12.1.0.2.0\oraInst.loc -force
Update Home Dependencies Location:E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy\UpdateHomeDeps<timestamp>.log
Update home dependency completed successfully.
Performing the agent configuration...
Executing command: E:\app\core\12.1.0.2.0\oui\bin\runConfig.bat ORACLE_HOME=E:\app\core\12.1.0.2.0 RESPONSE_FILE=E:\app\core\12.1.0.2.0\agent.rsp ACTION=configure MODE=perform COMPONENT_XML={oracle.sysman.top.agent.11_1_0_1_0.xml} RERUN=true
Configuration Log Location:E:\app\core\12.1.0.2.0\cfgtoollogs\cfgfw\CfmLogger<timestamp>.log
Agent Configuration completed successfully
Agent deployment log location:
E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy\agentDeploy_2013-10-24_13-26-41-PM.log
Agent deployment completed successfully.
E:\12.1.0.2.0_AgentCore_233>E:\12.1.0.2.0_AgentCore_233

A couple times, you will see the Oracle Installer come up and you may see an error with an opportunity to close the program or repair.  Choose to not close and let it continue, it’s an issue as the Installer attempts to login in without direct admin privileges, but it does recover.

You have now deployed the agent successfully and you can now log back into your EM12c and see the target host you just deployed.  If you have auto-discovery, the secondary targets will be discovered and configuration completed or you can manually discover targets from this point.

This is all there is to deploying in Windows and not one Cygwin installation in sight!

21 thoughts on “Easy EM12c Agent Deployment on Windows
• David says:

Last time I used pull method to deployment a 12c agent onto windows host. But it looks like still some bugs in the deployment scripts.

2. install the curl from http://curl.haxx.se/dlwiz/?type=bin&os=Win64&flav=MinGW64

3.change the curl path in the agentpull.bat to correct one

4.verify the pull scripts
-showPlatforms

5. wirte a repository file
PLATFORM=”Microsoft Windows x64 (64-bit)”
VERSION=12.1.0.2.0

6. using this command to pull the agent

• dbakevlar says:

Due to the bugs you mention here, this is why I’ve documented the earlier “push” process. It’s easy once you set it up once, then you only need to copy the file over to the new target server and proceed to make a few small response file changes and deploy.
Thanks,
Kellyn

• Joe says:

Hi Kellyn,

I’ve given your EM12c example a shot, thanks for the post !

In your example .rsp file you state port EM_UPLOAD_PORT=4800 (Target side), but how do I determine which port# I should use ? Port 4800 seems to be non-responsive on the OMS server.

On the OMS Server I checked the C:\orabase\gc_inst\em\EMGC_OMS1\emgc.properties file, which contains a number of port assignments. I see no transparency here when it comes to ponting out the correct EM_UPLOAD_PORT in the .rsp file.

Maybe I’m barking up the wrong tree ?? I get the following error:
D:\orabase\swlib>agentDeploy.bat AGENT_BASE_DIR=D:\orabase\agentbase RESPONSE_FI
LE=D:\orabase\swlib\agent.miracle.rsp
D:\orabase\swlib
Present working directory:D:\orabase\swlib
Archive location:D:\orabase\swlib directory
AGENT_BASE_DIR
AGENT_BASE_DIR
D:\orabase\agentbase
Agent base directory:D:\orabase\agentbase
D:\orabase\agentbase
RESPONSE_FILE
D:\orabase\swlib\agent.miracle.rsp
Agent base directory:D:\orabase\agentbase
OMS Host:
Agent image loc : “D:\orabase\swlib”
D:\orabase\agentbase configonlyfalse
1 file(s) copied.
This is the version 12.1.0.3.0
This is the type core
This is the aru id 233
“D:\orabase\agentbase\core\12.1.0.3.0″
“Executing command : D:\orabase\agentbase\core\12.1.0.3.0\jdk\bin\java -classpat
h D:\orabase\agentbase\core\12.1.0.3.0\jlib\agentInstaller.jar:D:\orabase\agentb
ase\core\12.1.0.3.0\oui\jlib\OraInstaller.jar oracle.sysman.agent.installer.Agen
tInstaller D:\orabase\agentbase\core\12.1.0.3.0 “D:\orabase\swlib” D:\orabase\ag
entbase -prereq”
The image file D:\orabase\agentbase\core\12.1.0.3.0\jdk\bin\java.exe is valid, b
ut is for a machine type other than the current machine.

My .rsp file looks like this:
EM_INSTALL_TYPE=”AGENT”
OMS_HOST=xxxxxxxxx016.xxx.xxx#OMS Host Server name
AGENT_INSTANCE_HOME=D:\orabase\agentbase #Installation directory on new target
AGENT_PORT=3872 #Agent port
b_startAgent=true
ORACLE_HOSTNAME=xxxxxxxx223.xxx.xxx#Name of target host
s_agentHomeName=xxxxxxxx223 #Name of the target in EM12c
BR
Joe

• dbakevlar says:

Hi Joe,
I should have added this information to the post. Log onto your OMS server and execute the following from the command line:
emctl status oms -details

This will produce all the information for you, including the http/https upload port that you are looking for!
Good luck and let me know if you run into any other issues.
Kellyn

• joseph says:

thanks for this post ,
I have a question on deploying agent on windows failover cluster as after i deploy the agent on the two cluster nodes i followed document 464191.1 for deploy the agent on virtual host, but the problem i faild to install the plugin on the virtual host and this documention doesn’t help me in this issue.
thanks again.

• dbakevlar says:

You do need to install the plugin for the virtual host and follow the instructions in the doc 464191.1. It has a section that covers the 12.1 release vs. just the 10g/11g version.

• […]  Easy EM12c Agent Deployment on Windows […]

• aj203355 says:

Thank you very much for your posting. It was very helpful. I was able to successfully deploy a OEM 12c agent to a Windows Server 2008 R2 server and I’m able to confirm the status of the 12c agent [emctl.bat status agent]. The final remaining problem that I have is that the host is not showing up in the “managed hosts” in OEM. I even tried to setup the discovery to discover the Windows Server 2008 R2 host running the 12c agent and still does not show up in the “hosts” section of the OEM web application. Is there something that I’m missing?

• dbakevlar says:

Glad to hear this helped you deploy the agent. I would recommend trying the following:
1. Try to ping the agent host from the OMS server- Can it resolve the agent host?
If it can’t, have the network admin check the firewall for rules that are stopping the OMS from communicating with the agent.
2. From the target host command line, try:
emctl status agent
and
emctl pingOMS

These both should resolve without any issues regarding connectivity to the OMS server, etc.

Hope this helps, either way, I’m seeing a firewall issue stopping communication between the OMS and the target.
Thanks,
Kellyn

• Anuj says:

Perfect document, installed agent following it, thanks a ton.

• It’s going to be end of mine day, except before end I am reading this great article to improve my
know-how.

• Samuel says:

This a very helpful article. God bless you.

• KK says:

How do you deinstall the host agent in windows deployed with the push method? There is no AgentDeinstall.pl script( as per Oracle docs)

• dbakevlar says:

You can simply remove each of the child targets from the EM12c and then remove the host from the EM console. In Windows, you then delete the service, (sc delete ) and then delete the folders. No, there isn’t a script to uninstall..

• Karthik says:

Hi

Can you please let me know if I can follow the documentation Doc ID 464191.1 related to the installation of the OEM Agent 12c (12.1.0.3.0) on SQL server 2005 cluster database (windows 2003R2 OS 64-bit). I have successfully installed the OEM 12c agent on other non-cluster Windows servers using the curl package. I am not receiving any proper response from Oracle

Thank you
KR

• dbakevlar says:

Hi KR,
I wish I could tell you these directions work, but they won’t and I’m working hard to get this fixed for another customer. Could you tell me a little about your environment? Are you attempting to install the agent locally to the hosts or at the shared storage level and using the VIP’s via a service in the cluster management?
Thanks,
Kellyn

• R3 says:

Kellyn,

Most importantly thank you for all of the work that you do with OEM. The DBA Kevlar site is always accurate and it is really helpful.

Have you done any work with the OEM 12c R3 agent on Windows? This article discusses OEM 12c R2. When I tried following these instructions, I succeeded in installing the agent on Windows, but so far, the agent still throws errors when I attempt to bring it online and make it communicate with the OMS.

Thanks,

R3

• GKR says:

Hi

I installed the OEM Agent on one of our Windows server using the curl package. I would like to uninstall the agent. Can you please tell me the instructions how to uninstall the agent

• dbakevlar says:

Hopefully this time the answer will get to you! Try this link- https://docs.oracle.com/cd/E24628_01/install.121/e24089/deinstall_agent.htm

If you have attempted a partial de-install at this time, you will need to remember to clear the registry data for the agent and remove the service, both manually.
from a command prompt: sc -delete

Thanks,
Kellyn

• dbakevlar says:

Have you on just the base install for R3? Without the PSU patches for both the OMS/OMR and the agent, you will experience failures in the silent install for Windows agents with the push method. Once you apply those, you should have success. If not, let me know the exact error in the installation log for the agent on the target host.
Thanks,
Kellyn

• GKR says:

Thank you very much….. and one more quick question from my side … I am receiving these alerts
Metrics “Database Time Spent Waiting (%)” is at 76.417 for event class “Commit”
Metrics “Database Time Spent Waiting (%)” is at 76.417 for event class “Network”
“Others” etc. I tried to disable them from the template but still they have appeared and also I tried to change the critical to 100% and Warning to 99% from the database using a PL/SQL script and still it hasn’t worked (I still got “Database time spent waiting (%) is at 44.76 for event class”) . Finally I disabled them from the database and it worked like a Charm. Can you please let me know if there is any PL/SQL script that I need to execute from the database so that I receive the alerts only at 99% and 100%

Thank you

GKR