Thursday, April 13, 2017

Installing the Oracle APM Java Agent on WebLogic

Oracle Application Performance Monitoring (APM) Cloud Service provides development and operations teams with the information that they need to find and fix application issues fast. All your application performance information (with associated application logs) are brought together into Oracle Management Cloud’s unified platform.

This blog post describes how to install the Oracle APM Java Agent for WebLogic, so that you can immediately start monitoring your WebLogic environments.


Get the Agent registration key

The Agent "registration key" is required during the installation of the agent. This identifies the APM Cloud Service that the agent is supposed to connect to.

1. Login to the Oracle Cloud My Services:
https://myservices.us2.oraclecloud.com/mycloud/<identitydomain>/faces/dashboard.jspx
2. Open the APM Service Console:


3. Click on the Application navigator icon:
4. Under Administration, click on Agents.

5. Click on Registration Keys.

6. Copy your Registration Key Value.


Download the Agent onto the Linux server running WebLogic

The Agent is normally downloaded from the Oracle Management Cloud service (it is a small zip file), and must be manually copied to your Linux server. For simplicity, the instructions below allow you to easily download it from a hosted environment directly to your server.

7. Copy the Agent to your Linux server.
AgentInstall.sh


Install and configure the Agent

Installing the Agent simply involves executing a few command line scripts, modifying the WebLogic startup script, and bouncing the WebLogic managed servers.

8. Set the environment in preparation of installing the APM Agent:
export STAGE_DIR=/u01/app/oracle/apm_agent
export DOMAIN_HOME=/u01/app/oracle/user_projects/domains/base_domain
export REG_KEY=<your registration key>
export GW_HOST=
export GW_PORT=
9. Install the APM Agent:
./AgentInstall.sh AGENT_TYPE=apm_java_as_agent STAGE_LOCATION=${STAGE_DIR} AGENT_REGISTRATION_KEY=${REG_KEY}
10. Provision the APM Agent:
cd ${STAGE_DIR} 
chmod +x ProvisionApmJavaAsAgent.sh
./ProvisionApmJavaAsAgent.sh -d ${DOMAIN_HOME}
11. When prompted, enter "Y" and press ENTER.
Do you wish to proceed with these values? Y
12. Edit the WebLogic startup script:
vi ${DOMAIN_HOME}/bin/startWebLogic.sh
13. Add the Java agent line right after the "setDomainEnv.sh" call:
JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:${DOMAIN_HOME}/apmagent/lib/system/ApmAgentInstrumentation.jar"

14. Restart the AdminServer and all managed servers:
cd $DOMAIN_HOME/bin 
./stopWebLogic.sh 
nohup ${DOMAIN_HOME}/startWebLogic.sh >> ${DOMAIN_HOME}/AdminServer.out &


Here is the Oracle documentation for installing the Oracle APM Java Agent on WebLogic.


-----

This blog post is part of a series of blog posts related to the Oracle Management Cloud:




Wednesday, April 12, 2017

Alerting in Oracle Application Performance Monitoring (APM)

Oracle has a "cloud" service that they offer as part of their Oracle Cloud ecosystem called Oracle Application Performance Monitoring or Oracle APM for short. While there are many features that may be useful, the value of monitoring is not that you can just look at the pretty graphics.


Some of the real power that can come from APM is around alerts, and being able to set them up on the various metrics which are available. To start click on Alerts on the left menu.


This will take you to a page where you hopefully won't have anything listed, and at most they will hopefully be warnings. Below is just a sandbox environment so I'm not to worried about any of these.


Now if you actually want to get notifications, you will have to create them. Start off by Select the service you want to use.

Next click Create Alert Rule so that you can start putting together the rule.



 First give it a descriptive name. In this case I chose API_SLAs. Because in this case we just want to make sure that our applications are performing within the SLAs that the business has defined.


Next you have to add the entities that you want the rule to pertain to.


For the purposes of this I am just sticking with APM Server Request. However, you can choose applications and individual paths within those applications should that be necessary.


Once you have the items that you want, start by choosing conditions under which you want to start receiving the alerts.


There are three main categories are Fixed Metric, Anomaly, and Early Warning. For our purposes here, I'll be used all three. First maintain that the error percentage is below certain percentages. Across a 5 minute window.

Next we are making sure that our Average response time remains consistent.


We are also going to check that the response times are specifically sub-second.


With all of these conditions, the last thing we need to do is send the notifications to somewhere.


That's it! Now anytime attache applications fall outside of our defined SLAs we will get notified so that we can determine what seems to be going on.





This blog post is part of a series of blog posts related to the Oracle Management Cloud:


Tuesday, April 11, 2017

Overview of Oracle APM Cloud Service features

The interface to Oracle APM Cloud Service provides access to an incredible array of features and capabilities, giving you deep insight into performance of your applications. It also includes insight into actual end-user experience, AJAX performance, log analytics, and more.


Dashboard


The Oracle APM Cloud Service dashboard provides what you would expect from it... a consolidated and aggregated view of your entire APM landscape. From here, you can get an executive level birds eye view of your environment.




Applications


You can group together a set of pages or server requests into a single "application" that match a particular filter criteria. Over time, it is not unusual to expect tens of thousands of individual pages and server requests to be monitored, making the need to group them that much more necessary.




Pages


Pages are exactly that. End-users access various pages of your web application, and each page is individually tracked and monitored, with full drill-down capability.




Sessions


You can monitor end-user experience through "sessions". The first screen here shows you a list of all user sessions within the timeframe you selected.


Clicking on a session takes you the exact history of that session, with full performance metrics on each page the user has navigated to.




AppServers


All application servers are listed here, with high-level aggregated metrics shown for the selected timeframe.


Clicking on any application server takes you to more detailed metrics specific to that server. From here, you can further dig deeper into the server requests tied to this app server, or even kick off the thread profiler to capture more detailed information.




Server Requests


From here, you can assess server-side performance down to the operation and method level. The APM agent is intelligent enough to identify the downstream links to this particular server request, as well as all callers to the request.


Detailed metrics are captured, including actual exceptions of each request.





This post is intended to give you a glimpse into the Oracle APM Cloud Service. There is a host of many other features not described here, and more information can be found in the documentation.


-----

This blog post is part of a series of blog posts related to the Oracle Management Cloud:




Types of Oracle APM Agents

Multiple flavors of the APM Agent exist:
  • APM Java Agent
  • APM .Net Agent
  • APM Node .js Agent
  • APM on Mobile Clients
The APM Java Agent is supported on many of the leading Java application servers on the market, including:
  • Oracle WebLogic Server
  • Oracle PeopleSoft
  • Apache Tomcat
  • Red Hat JBoss
  • IBM WebSphere

For more information, check out the documentation.


-----

This blog post is part of a series of blog posts related to the Oracle Management Cloud:




What is the Oracle Management Cloud?


"Get results when you need them."
"Built on a smart, unified platform."
"Powered by machine learning."


Forget the marketing jargon. Oracle Management Cloud is a service that consists of 4 interrelated monitoring services:
  • Application Performance Monitoring
  • Infrastructure Monitoring
  • Log Analytics
  • IT Analytics

Through the use of agents deployed to your hosts, data is collected on those target hosts and pushed in near real-time to the Oracle Management Cloud Service, providing a single, unified interface to your entire environment. It's very easy to deploy, no infrastructure costs are needed, and is easily scalable.


-----

This blog post is part of a series of blog posts related to the Oracle Management Cloud:




Monday, April 10, 2017

Oracle Coherence requires port 7

Problem:

When starting up the SOA server, you find the following repeating every 5 seconds in the logs:
[2017-03-09T18:28:22.148+00:00] [soa_server1] [WARNING] [] [Coherence] [tid: Logger@5117501122 3.7.1.13] [userId: <anonymous>] [ecid: 0000LeoJxT4iW1OkPqb000003x73b605zz,1:31280] [APP: soa-infra] 2017-03-09 18:28:22.148/296.247 Oracle Coherence GE 3.7.1.13 <Warning> (thread=Cluster, member=n/a): Delaying formation of a new cluster; IpMonitor failed to verify the reachability of senior Member(Id=1, Timestamp=2017-03-09 18:24:34.601, Address=192.168.0.7:8088, MachineId=12345, Location=site:,machine:soahost2,process:4447, Role=WeblogicServer); if this persists it is likely the result of a local or remote firewall rule blocking either ICMP pings, or connections to TCP port 7 

Solution:

1. Open up your firewall and allow port 7 between both your servers.

Port 7 is the default port of the IpMonitor component that is used for detecting hardware failure of cluster members, available in 3.6.0 and later versions of Coherence. I yourt is the default port for the Echo Protocol and, consequently, used by Coherence as the "death detector" port. This means that Coherence uses port 7 to determine if a member of the cluster is reachable (not "dead").


References:

  • Oracle Doc ID 1530288.1
  • Oracle Doc ID 1526745.1
  • Oracle Doc ID 1472388.1


Applicable Version:

  • Oracle SOA Suite 11g (11.1.1.9)


Logging into Oracle APM Cloud Service for the first time

Logging into Oracle Application Performance Monitoring Cloud Service the first time is straightforward. This post shows you the exact screens you should expect to see when navigating to the Oracle APM Cloud Service dashboard for the first time.


1. Navigate to your identity domain. This link is available in your welcome email.

https://myservices.us2.oraclecloud.com/mycloud/<youridentitydomain>/faces/dashboard.jspx


2. Simply enter your login information:


3. You will be taken to the My Services page where you can see the various Oracle Management Cloud services, of which Oracle APM Cloud Service is one of them, here denoted as "apmtrial0796":



4. Click on the menu icon and select "Open Service Console".



5. On the Oracle Management Cloud welcome page, click on the large purple square for Application Performance Monitoring.



6. You are now taken to the default Oracle APM Cloud Service dashboard from which you can navigate to the various features and capabilities of the service.




-----

This blog post is part of a series of blog posts related to the Oracle Management Cloud:




Tuesday, April 4, 2017

Oracle Application Performance Monitoring (APM) Cloud Service - Hands On Lab @ Collaborate 17

Application Performance Monitoring (APM) has gained steam over the past few years and has been instrumental in real-time application monitoring.

APM products have now shifted to the cloud, wherein agents are installed on your local servers and communicate to a central APM cloud service.

Oracle Application Performance Monitoring Cloud Service provides the ability to monitor applications effectively, with all the advantages of a light-touch, software-as-a-service (SaaS) solution. It integrates user experience information and server-side application metrics along with in-context application logs, so you can rapidly isolate, triage, and diagnose issues affecting application performance.

Tomorrow, the rockstar team of Ahmed Aboulnaga, Erik Benner, Harold Dost, and Alfredo Krieg have developed various hands-on labs that cover Oracle Management Cloud components that include APM, Log Analytics, and Infrastructure and is available for free for all Collaborate 17 attendees.

Here is a link to the hands-on lab:
https://app.attendcollaborate.com/event?owner_id=1465173&owner=other&event_order=start&event_page=1&start=2017-04-05&tag_ids=108618
Learn how to:
  • Install and configure the cloud agent
  • Monitor application success and failure scenarios
  • Navigate and learn about the various features and capabilities of the Oracle Management Cloud
  • Monitor the cloud agent

Check out some nice screenshots you can expect to see:









 

Sunday, April 2, 2017

"JAXB error occurred during unmarshalling" when starting up Oracle Access Manager 11g

Problem:

While starting up the Oracle Access Manager 11gr2ps3 (OAM 11.1.2.3) Admin and managed servers, you may receive a JAXB unmarshalling error related to a SAXParseException due to some bad XML:
[2016-10-04T15:57:22.849-05:00] [AdminServer] [ERROR] [] [oracle.idaas.common] [tid: JMX FRAMEWORK Domain Runtime MBeanServer pooling thread] [userId: ] [ecid: 0000LUHV9AQ3FCE5V79Dic1Nx1Ud000003,0] A JAXB error occurred during unmarshalling.[[oracle.as.config.persistence.exceptions.ConfigException: A JAXB error occurred during unmarshalling.at oracle.as.config.persistence.jaxb.JAXBXmlPersistenceManagerImpl.load(JAXBXmlPersistenceManagerImpl.java:229)at oracle.security.idaas.common.config.mbeans.persistence.JAXBXmlDBPersistenceManagerImpl.load(JAXBXmlDBPersistenceManagerImpl.java:508)at oracle.as.jmx.framework.util.DefaultConfigObjectMBeanAssociationInfo.loadConfigObject(DefaultConfigObjectMBeanAssociationInfo.java:722)at oracle.as.jmx.framework.util.DefaultConfigObjectMBeanAssociationInfo.initializeConfigObjectAndAssociatedMBean(DefaultConfigObjectMBeanAssociationInfo.java:731)at oracle.as.jmx.framework.wls.spi.ComponentMBeans.parseAndRegister(ComponentMBeans.java:201)
Caused by: javax.xml.bind.UnmarshalException - with linked exception:[org.xml.sax.SAXParseException; lineNumber: 81; columnNumber: 41; The element type "lifecycleEnabled" must be terminated by the matching end-tag "".]

In Oracle Support Doc ID 2192012.1, Oracle confirms that there are 5 files that may have bad XML in them, and suggests making corrections to them. These files are:
  • oauth.xml
  • oauth_mbeans.xml
  • system-jazn-data.xml
  • oauth-xxxxxxxxxxxx.xml
  • idass.xml

In our case, these files were both well-formatted and valid. So that was not the issue.


Solution:

This happened in a cloned environment. In this case, the database was bad.

1. Restore the database to a valid, working version.


References:
  • Oracle Access Manager11g (OAM) Admin and Manage Servers Started With the Error: A JAXB Error Occurred During Unmarshalling (Oracle Support Doc ID 2192012.1)

Applicable Version:
  • Oracle Access Manager (OAM) 11g (11.1.2.3.0+)

Keywords:
  • OAuthJailBreak
  • OAuthServiceProfile




Wednesday, March 8, 2017

Raastech @ GLOC

Going to GLOC in Cleveland this May 17-18? If so, then check out some of the presentations some of our top consultants be giving at the conference!



Title
Provisioning Your First DBaaS Instance with Oracle Database Cloud Service
Description
Moving to the cloud is inevitable, yet many haven’t started getting their hands dirty yet. This presentation will walk you through key Oracle Cloud concepts for those who have never seen or used it before, and walk through provisioning a cloud database, which includes storage and infrastructure. We explain how to access it, and discuss various administration concepts. This presentation is perfect for the Oracle DBA who wants to understand how to get started administering an Oracle DBaaS environment, from a technical perspective.
Date
Thu, May 18, 2017
Time
4:00pm - 5:00pm
Presenter



Title
Getting Started with Oracle BPM Suite Development
Description
Let’s face it. There’s a shortage of Oracle BPM development skills out there. And developing SOA-based integrations is not quite the same as modeling business processes. This presentation is self-explanatory and is geared towards Oracle SOA Suite developers who want to understand key concepts surrounding BPM and how to get started developing your first business process.
Date
Thu, May 18, 2017
Time
8:30am - 9:30am
Presenter



Title
Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's Useful
Description
Do we really need virtualization within Oracle WebLogic Server? Last year, I said no. This year, my opinion has changed. I explain domain partitions, how to set it up, and when you'd want have multiple partitions in a single WebLogic domain. I also discuss the App2Cloud utility from Oracle which simplifies the migration of your on-premise WebLogic domain to the Oracle Java Cloud Service (JCS). Attend this presentation and find out what changed my mind.
Date
Thu, May 18, 2017
Time
2:45pm - 3:45pm
Presenter


See you there!

Recap of Oracle Compute Cloud vs. AWS EC2 at NATCAP-OUG

Last night's NATCAP-OUG meetup was attended by around 20 people, and there was a good lively discussion surrounding the Oracle Compute Cloud vs. Amazon Web Services EC2 presentation.


After a brief overview of IaaS and differences between virtualization and cloud computing, Ahmed Aboulnaga dug right in to his live demo of provisioning an Oracle Compute Cloud instance, setting up public/private keys, and installing the General Purpose Desktop to connect through VNC.

A lot of great discussion took place between the presenter, organizers, and the attendees during the presentation. Some mentioned their issues with the UI and support, while others were happy with overall cost and performance. It's this back-and-forth and sharing of experiences that made the event valuable to all.

Many thanks to NATCAP-OUG for organizing this meetup.


Tuesday, March 7, 2017

[Quick Tip] AWS SDK: Get Account Number

I ran into an issue the other day, where I was looking to determine which account I was in on AWS. Since we are primarily trying to work with Javascript on the project. I decided to do this one in Javascript as well.

Code:

var iam = new AWS.IAM();

iam.getUser(null,function(err,data){
    output = data['User'].Arn.match(/arn\:aws\:iam\:\:(\d{12})\:user\/.*/i);
    console.log(output[1]);
});

Obviously you can just log it out, but you can also use it for more practical purposes, such as verifying which account you're in before doing something important. In my case I using for some automated scripts so that they determine what they are going to do based on which account they are using at the time. Preventing certain actions.



References:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getUser-property

Monday, March 6, 2017

"Certificates does not conform to algorithm constraints" when starting up Oracle Access Manager 11g

Problem:

While starting up the Oracle Access Manager 11gr2ps3 (OAM 11.1.2.3.0) AdminServer, you may receive continuously repeating errors of the following:
<Feb 8, 2017 3:26:57 AM GMT> <Warning> <Coherence> <BEA-000000> <2017-02-08 03:26:57.537/135.970 Oracle Coherence GE 3.7.1.13 <Warning> (thread=PacketListener1, member=n/a): TcpDatagramSocket{bind=ServerSocket[addr=/192.168.0.10,localport=9001]}, exception regarding peer iamhost1/192.168.0.10:9001, General SSLEngine problem; Certificates does not conform to algorithm constraints>

Solution:

In this case, we had upgraded our JDK version from jdk1.7.0_91 to jdk1.7.0_121, which introduced this error.

1. Restore the previously working JDK version, or consider looking at changing your JDK version.


Applicable Version:
  • Oracle Access Manager (OAM) 11g (11.1.2.3.0)




Sunday, March 5, 2017

Raastech @ NATCAP-OUG

Are you in the Washington DC area? This Tuesday, March 5, Raastech will be giving a presentation comparing the IaaS offerings from Oracle and Amazon, including a live demo!

Check out the NATCAP-OUG website for more details on the event.
Title
Oracle Compute Cloud vs. Amazon Web Services EC2 – A Hands-On Showdown
Description
We walk through the end-to-end process of provisioning an Oracle Compute Cloud instance from scratch – adding storage, defining firewall rules, creating a private key, and connecting through VNC. Then we do the same thing with Amazon Web Services (AWS) EC2. Speed of provisioning is one of the benefits of the cloud, so let’s embark on this live walkthrough together, see how easy it is to get up and running, and compare the IaaS offering from Oracle and Amazon.
Date
Tue, Mar 7, 2017
Time
8:00pm - 9:00pm
Presenter




See you there!