Feed aggregator

Bluemix CLI Installation and Use on Bluemix PUBLIC

Pas Apicella - Thu, 2016-02-18 04:53
We recently announced a seperate CLI for Bluemix known as "Bluemix CLI". You can find out more about it at the following link

https://www.ng.bluemix.net/docs/cli/reference/bluemix_cli/index.html

The Bluemix command line interface (CLI) provides a set of commands that are grouped by namespace for users to interact with Bluemix. Some Bluemix CLI commands, which are called bx commands, are wrappers of existing cf commands, and others are unique for Bluemix. The information that follows lists all commands that are supported by Bluemix CLI and includes their names, options, usage, prerequisites, descriptions, and examples.

Download it from Here

http://clis.ng.bluemix.net/ui/home.html

The following shows how to use it once you installed it for you operating System.

1. Target End Point

pasapicella@pas-macbook-pro:~$ bluemix api https://api.ng.bluemix.net
Invoke 'cf api https://api.ng.bluemix.net'...

Setting api endpoint to https://api.ng.bluemix.net...
OK

API endpoint:   https://api.ng.bluemix.net (API version: 2.40.0)
Not logged in. Use 'bluemix login' to log in.

2. Login as shown below

pasapicella@pas-macbook-pro:~$ bluemix login -u pasapi@au1.ibm.com -p ****** -o pasapi@au1.ibm.com -s dev
Invoke 'cf login -u pasapi@au1.ibm.com -p ****** -o pasapi@au1.ibm.com -s dev'...

API endpoint: https://api.ng.bluemix.net
Authenticating...
OK

Targeted org pasapi@au1.ibm.com

Targeted space dev

API endpoint:   https://api.ng.bluemix.net (API version: 2.40.0)
User:           pasapi@au1.ibm.com
Org:            pasapi@au1.ibm.com
Space:          dev

3. Test the "bluemix info" call.

pasapicella@pas-macbook-pro:~$ bluemix info
Listing Bluemix info...

build:                      221004
routing_endpoint:           https://api.ng.bluemix.net/routing
console_endpoint:           https://mccp.ng.bluemix.net
region:                     us-south
app_ssh_endpoint:           ssh.ng.bluemix.net:2222
vms_endpoint:               https://mccp.ng.bluemix.net
token_endpoint:             https://mccp.ng.bluemix.net/uaa
containers_endpoint:        https://mccp.ng.bluemix.net
version:                    2
description:                IBM Bluemix
user:                       b6c020b4-e11a-4630-a6a2-3f20fcec7f90
app_ssh_oauth_client:       ssh-proxy
logging_endpoint:           wss://loggregator.ng.bluemix.net:443
doppler_logging_endpoint:   wss://doppler.ng.bluemix.net:4443
authorization_endpoint:     https://mccp.ng.bluemix.net/login
api_version:                2.40.0
name:                       Bluemix
support:                    http://ibm.com


And my favorite which is the "bluemix list" command.

pasapicella@pas-macbook-pro:~$ bluemix list
Getting CF applications in org 'pasapi@au1.ibm.com' / space 'dev' as pasapi@au1.ibm.com...
Name                        Type             State     Instances   Memory   Disk   URLs
bluemix-apples-springboot   CF Application   STARTED   1/1         512M     1G     bluemix-apples-protozoological-yabby.mybluemix.net
containerbridge             CF Application   STOPPED   0/1         64M      1M
pas-bmspringboot-demo       CF Application   STARTED   1/1         512M     1G     pas-bmspringboot-demo.mybluemix.net
pas-dotnet-helloworld       CF Application   STARTED   1/1         256M     1G     pas-dotnet-helloworld.mybluemix.net
pas-mjalbums                CF Application   STARTED   1/1         512M     1G     pas-mjalbums.mybluemix.net
pas-mobile-web              CF Application   STARTED   1/1         512M     1G     pas-mobile-web.mybluemix.net
pas-mongodb-local           CF Application   STARTED   1/1         450M     1G     pas-mongodb-local.mybluemix.net
pas-mysql-local             CF Application   STARTED   1/1         450M     1G     pas-mysql-local.mybluemix.net
pas-postgresql-local        CF Application   STARTED   1/1         450M     1G     pas-postgresql-local.mybluemix.net
pas-sb-elastic              CF Application   STARTED   1/1         450M     1G     pas-sb-elastic.mybluemix.net
pas-SpringBootJARDemo       CF Application   STARTED   1/1         512M     1G     pas-SpringBootJARDemo.mybluemix.net
pas-tonynode                CF Application   STARTED   1/1         512M     1G     pas-tonynode.mybluemix.net
springboot-swagger-rest     CF Application   STARTED   1/1         512M     1G     apples-sacroiliac-subfacies.mybluemix.net

Getting services in org 'pasapi@au1.ibm.com' / space 'dev' as pasapi@au1.ibm.com...
Name                              Type               Service           Plan               Bound CF Apps                                                            Last Operation
API Management-wv                 Service Instance   API Management    APImStandardPlan
BlazeMeter-92                     Service Instance   blazemeter        free-tier
cleardb-mysql                     Service Instance   cleardb           spark              pas-SpringBootJARDemo
Cloudant-NoSQL-DB-mel-training    Service Instance   cloudantNoSQLDB   Shared
dev_elephantsql                   Service Instance   elephantsql       turtle             bluemix-apples-springboot, pas-postgresql-local, pas-SpringBootJARDemo
jhipster-postgresql               Service Instance   elephantsql       turtle
pas-mongodb                       Service Instance   mongodb           100                pas-mongodb-local
pas-mongodb-lab                   Service Instance   mongolab          sandbox
pas-mysql                         Service Instance   cleardb           spark              containerbridge, pas-mjalbums, pas-mysql-local
pas-telstrademo-cloudantNoSQLDB   Service Instance   cloudantNoSQLDB   Shared
todo-mongo-db                     Service Instance   mongolab          sandbox
Twilio-7b                         Service Instance

Getting containers in org 'pasapi@au1.ibm.com' / space 'dev' as pasapi@au1.ibm.com...
No containers were found.

Getting container groups in org 'pasapi@au1.ibm.com' / space 'dev' as pasapi@au1.ibm.com...
Name                  Type              State             Instances   Memory   URLs
pas-etherpad1         Container Group   RESIZE_FAILED     0/1         256M     pas-etherpad1.mybluemix.net
pas-sb-container      Container Group   UPDATE_COMPLETE   1/1         512M     pas-sb-container.mybluemix.net
pas-mysql-container   Container Group   CREATE_COMPLETE   1/1         512M

Getting VM groups in org 'pasapi@au1.ibm.com' / space 'dev' as pasapi@au1.ibm.com...
No VM groups were found.
Categories: Fusion Middleware

What Is This COE Thing?

Floyd Teter - Wed, 2016-02-17 12:32
Since joining Oracle, I've heard this same question repeatedly:  "This Oracle HCM Cloud Center Of Excellence team you've joined...what do they do?"  So I thought I'd attempt to answer that question here in the hopes that people may get some benefit from it.

Be aware that you can search the web and find many definitions regarding a Center of Excellence is and what it does.  Forget that stuff, most of it does not apply here.  We're creating an entirely different model.

Our team does not create any of the core elements of the Cloud HCM product: the software nor the service.  We focus on making all aspects of the product better.  At the risk of using language that is already overused in enterprise software, we work to make the customer experience better.  And the work is a mix of strategic initiatives and responses to current issues.

Some of our typical activities include:

  • Providing internal tools and processes for improved delivery of software services
  • Serving as functional and technical experts for strategic customers with unique challenges
  • Creating aids and solutions to help customers move from subscription to Go Live better, faster and cheaper
  • Give feedback to Product Development on wide-spread product issues that may lead to solutions within Cloud HCM products
  • Guiding strategic partners about products, methodologies, and current issues through regularly scheduled "cadence calls".
The upshot is that our team is located at the intersection of product development, delivery, and service.  We're a team of experts in all aspects of Oracle Cloud HCM and we apply that expertise wherever it's needed: internal Oracle teams, strategic partners, and customers.

So there you have it.  That's what we do.  And we're ready for you when you need us. So question answered...I hope...you can let me know in the comments.

ASR Summary Cheat sheet for Exadata and Enterprise Manager12c

Arun Bavera - Wed, 2016-02-17 11:19
What is ASR:

Phone Home feature for Engineered System View the ASR Demo Video.
ASR resolves problems faster by automatically opening service requests for Oracle's qualified server,  storage, and Engineered Systems when specific faults occur.


Note: From EM13c  onwards ASR is integrated directly.
Refer: https://docs.oracle.com/cd/E63000_01/EMASR/intro.htm#EMASR108

How to use ASR 


Summary
1. ASR can be installed in External system Linux or Solaris. (Small RPM package) We can install it in our OMS box.
2. Requires communnication between ExaData Assets where ASR monitoring is valid.
     4.15.1 ASR Port Usage http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch4_asr_enviro_admin.htm#ASRUD193  
3. Requires Communication to transport.oracle.com:443
4. ASR can send same SR Creation info to Omnibus via SNMP Trap.
      4.16.1 Managing SNMP Trap Destinations for Service Request Notifications:  
      http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch4_asr_enviro_admin.htm#ASRUD200

PRe-Requisite
ASR Manager systems require Oracle Java 7 - JDK 7 (JDK 1.7.0_13) or later JDK 7 updates or Oracle Java 8 (1.8.0_25 or later).
Oracle Linux 5.3 or later. Red Hat Enterprise Linux 6.3 or later.
For IPv6, the ASR Manager server needs to be enabled for dual stack IPv6/IPv4

Test from designated ASR Manager server below:
telnet transport.oracle.com 443
/usr/bin/wget https://transport.oracle.com/v1/
https://transport.oracle.com/v1/


transport.oracle.com (141.146.1.169).

STEPS
1. Set-up firewall rules to allow bi-directional SNMP/UDP traffic to traverse between ASR Assets and the ASR Manager.
2. Ensure that ASR assets can send SNMP telemetry data out on port 162 to the ASR Manager. ( test using OneCommand)
3. Ensure that the ASR Manager can communicate with Service Tags on ASR asset, via http, using port 6481.
4. If your environment requires SNMP v3 to use the Oracle ASR service, you will need to configure both ASR Manager and any ASR Assets. See  
   Configuring ASR Manager for SNMP v3 and Optional ILOM Setup: SNMP v3 for ASR Assets for more information in Chapter 2.http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch2_asr_manager.htm#CHDBAEEA
   http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch3_asr_assets.htm#BABGCHID
 
5. Verify Telemetry on each component valid for ASR monitoring -http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch1_asr_overview.htm#CEGFGDBG
6. Verify MOS account: MOS accont and SupportIdentifier How To Manage and Approve Pending ASR Assets In My Oracle Support (Doc ID 1329200.1):
7. Install ASR Manager - http://docs.oracle.com/cd/E37710_01/doc.41/e26747/toc.htm
          Install ASR Manager -
  Test connectivity:
  Register  ASR with Oracle Support:
                      asr> register
 asr> show_reg_status
 asr> test_connection ( /opt/asrmanager/bin/asr test_connection)
 asr> autoupdate
 asr> show_version
 /opt/asrmanager/util/check_asr_status.sh

 service asrm stop
 tar -cvf db.tar.bz /var/opt/asrmanager/db
 tar -cvf configuration.tar.bz /var/opt/asrmanager/configuration
 service asrm start
 asr> send_deactivations -a
 asr> send_activations -a
 asr> list_asset
 asr> disable_asr_manager <1 48="" hours="" to="">
 asr> enable_asr_manager
 asr> disable_asset -i IP_address
 asr> enable_asset -i IP_address
 asr> send_test -i IP_address
 asr> send_test -h host name
 asr> deactivate_asset -i IP_address
 rpm -e asrmanager;rm -rf /var/opt/asrmanager/

 asr>  set_property snmp.receiver.port 1162
 asr>  get_property snmp.receiver.port
 service asrm restart


8. Configure ASR Assets - http://docs.oracle.com/cd/E37710_01/doc.41/e23333/toc.htm
http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch3_asr_assets.htm#BEIGAFFG
Activate Exadata Assets.--http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch3_asr_assets.htm#BEIDCBAI

Check the Service Tag:  http://asr_system_hostname:6481/stv1/agent/

9. Pre-check Engineered Systems ASR Configuration Check via ASREXACHK (Doc ID 1450112.1) to verify the ASR deployment.
10. Approve ASR assets refer
How To Manage and Approve Pending ASR Assets In My Oracle Support (Doc ID 1329200.1)
11. Audit log at /var/opt/asrmanager/log/auditlog
12. Check ASR Email
13. Create Test Alert - ILOM - Refer http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch4_asr_enviro_admin.htm#ASRUD171
14. Check Ports: -4.15.1 ASR Port Usage
15. Configure ASR to send SNMP traps to Command center: 4.16.1 Managing SNMP Trap Destinations for Service Request Notifications:  
   
  asr> set_notification_trap [-i ipAddress -p port -c community] [-h hostname -p port -c community]
  asr> set_notification_trap -i 127.0.0.1 -p 162 -c public
  asr> show_notification_trap
  asr> delete_notification_trap -i 127.0.0.1
  asr> send_test [-i ipAddress] [-h hostname]
  The SUN-ASR-NOTIFICATION-MIB file is located at:
  /var/opt/asrmanager/configuration/mib/SUN-ASR-NOTIFICATION-MIB.mib
16. Troubleshooting:  http://docs.oracle.com/cd/E37710_01/install.41/e18475/ch5_troubleshooting.htm#ASRUD202

Documentation:
Oracle® Auto Service Request Exadata Database Machine Quick Installation Guide 5.5.1
http://docs.oracle.com/cd/E37710_01/index.htm
http://docs.oracle.com/cd/E37710_01/doc.41/e23333/toc.htm

Oracle® Auto Service Request Exadata Database Machine Quick Installation Guide
Release 5.5
E23333-17
http://docs.oracle.com/cd/E50790_01/doc/doc.121/e23333/toc.htm


Categories: Development

How to Do Pattern Recognition with SQL in Oracle 12c

Gerger Consulting - Tue, 2016-02-16 08:03
More than 120 developers have signed up for Kim Berg Hansen's webinar about pattern recognition with SQL in Oracle 12c. Sign up for this free webinar if you want to improve your SQL skills and learn from the best.
Categories: Development

Some checklists for making technical choices

DBMS2 - Mon, 2016-02-15 10:27

Whenever somebody asks for my help on application technology strategy, I start by trying to ascertain three things. The absolute first is actually a prerequisite to almost any kind of useful conversation, which is to ascertain in general terms what the hell it is that we are talking about. :)

My second goal is to ascertain technology constraints. Three common types are:

  • Compatible with legacy systems and/or enterprise standards.
  • Cheap, free and/or open source.
  • Proven, vetted by sufficiently many references, and/or generally having an “enterprise-y” reputation.

That’s often a short and straightforward discussion, except in those awkward situations when all three of my bullet points above are applicable at once.

The third item is usually more interesting. I try to figure out what is to be accomplished. That’s usually not a simple matter, because the initial list of goals and requirements is almost never accurate. It’s actually more common that I have to tell somebody to be more ambitious than that I need to rein them in.

Commonly overlooked needs include:

  • If you want to sell something and have happy users, you need a good UI.
  • You will also soon need tools and a UI for administration.
  • Customers demand low-latency/fresh data. Your explanation of why they don’t really need it doesn’t contradict the fact that they want it.
  • Providing data access and saying “You can hook up any BI tool you want and build charts” is not generally regarded as offering a good UI.
  • When “adding analytics” to something previously focused on short-request processing, it is common to underestimate the variety of things users will soon want to do. (One common reason for this under-estimate is that after years of being told it can’t be done, they’ve learned not to ask.)

And if you take one thing away from this post, then take this:

  • If you “know” exactly which features are or aren’t helpful to users, …
  • .. and if you supply only what you “know” they should use, …
  • … then you will discover that what you “knew” wasn’t really accurate.

I guarantee it.

So far what I’ve said can be summarized as “Figure out what you’re trying to do, and what constraints there are on your choices for doing it.” The natural next step is to list the better-thought-of choices that meet your constraints, and — voila! — you have a short list. That’s basically correct, but there’s one significant complication.

Speaking of complications, what I’m portraying as a kind of linear/waterfall decision process of course usually involves lots of iteration, meandering around and general wheel-spinning. Real life is messy.

Simply put, there are many different kinds of application project. Other folks’ experience may not be as applicable to your case as you hope, because your case is different. So the rest of this post contains a checklist of distinctions among various different kinds of application project.

For starters, there are at least two major kind(s) of software development.

  • Many projects fit the traditional development model, elements of which are:
    • You — and this is very much a plural “you” — code something up more or less from scratch, using whatever language(s) and/or framework(s) you think make sense.
    • You break the main project into pieces in obvious ways (e.g. server back end vs. mobile front), and then into further pieces for manageability.
    • There may also be database designs, test harnesses, connectors to other apps and so on.
  • But there are many other projects in which smaller bits of configuration and/or scripting are the essence of what you do.
    • This is particularly common in analytics, where there might be business intelligence tools, ETL tools, scripts running against Hadoop and so on. The original building of a data warehouse/hub/lake/reservoir may also fit this model.
    • It’s also what you do to get a major purchased packaged application into actual production.
    • It also is often what happens for websites that serve “content”.

Other significant distinctions include:

  • In-house vs. software-for-resale. If the developing organization is handing code to somebody else, then we’re probably talking about a more traditional kind of project. But if the whole thing is growing organically in-house, the script-spaghetti alternative may well be viable (in those projects for which it seems appropriate). Important subsidiary distinctions start with:
    • (If in-house) Truly in-house vs. out-sourced.
    • (If for resale) On-premises vs. SaaS. Or maybe not.
  • Kind(s) of analytics, if any. Technologies and development processes used can be very different depending upon whether the application features:
    • Business intelligence (not particularly real-time) as its essence.
    • Reporting or other BI as added functionality to an essentially operational app.
    • Low-latency BI, perhaps supported by (other) short-request processing.
    • Predictive model scoring.
  • The role(s) of the user(s). This influences how appealing and easy the UI needs to be.* Requirements are very different, for example, among:
    • Classic consumer-facing websites, with recommenders and so on.
    • Marketing websites targeted at a small group of business-to-business customers.
    • Data-sharing websites for existing consumer stakeholders.
    • Cheery benefits-information websites that the HR department wants employees to look at.
    • Purely internal apps meant to be used by (self-)important executives.
    • Internal apps meant to be used by line workers who will be given substantial training on them.
  • Certain kinds of application project stand almost separately from the rest of these considerations, because their starting point is legacy apps. Examples may be found among:
    • Migration/consolidation projects.
    • Refactoring projects.
    • Addition of incremental functionality.

*It also influences security, all good practices for securing internal apps notwithstanding.

Much also depends on the size and sophistication of the organization. What the “organization” is depends a bit on context:

  • In the case of software products, SaaS (Software as a Service) or other internet services, it is primarily the vendor. However …
  • … in B2B cases the sophistication of the customer organizations can also matter.
  • In the case of in-house enterprise development, there’s only one enterprise involved (duh). However …
  • … the “department” vs. “IT” distinction may be very important.

Specific considerations of this kind start:

  • Is me-too functionality enough, or does the enterprise seek competitive advantage through technology?
  • What kinds of technical risk does it seem prudent and desirable to take?

And that, in a nutshell, is why strategizing about application technology is often more complicated than it first appears.

Related links

Categories: Other

Advanced Oracle Troubleshooting - One Day Seminar, Moscow

Randolf Geist - Sun, 2016-02-14 16:05
I got invited by Luxoft Training to deliver my one day seminar "Advanced Oracle Troubleshooting" in Moscow end of March.

More details about what I cover in this seminar can be found here.

If you're interested, Luxoft Training has set up a page in Russian where you can find more details - but note that the seminar language will be English.

Integrating Google Maps, IFTTT, and OpenWeatherMap APIs into the Oracle Cloud UX Rapid Development Kit

Usable Apps - Sat, 2016-02-13 04:31

The Oracle Applications Cloud User Experience Rapid Development Kit (RDK) enables Oracle partners and developers to learn faster, design simpler, and build better. The RDK contains a set of free resources for the design and build phases and includes sample Oracle ADF applications that illustrate how to develop sleek, modern SaaS integrations and custom PaaS applications that have the same look and feel as the Oracle Applications Cloud.

You can find more resources for the RDK at tinyurl.com/PaaS4SaaS, including the code download link. If you prefer to hear about the RDK, tune in to our Oracle HCM Talk Radio podcast to hear how you can tap into the Oracle Applications Cloud User Experience.

In this blog, I explain how to enhance the Oracle ADF application samples in the RDK with integration to third-party services, such as Google Maps, IFTTT (If This Then That), and OpenWeatherMap, using simple HTTP and JavaScript.

What You Need
  • Oracle JDeveloper (11.1.1.9.0 or 12c) available as a free download from OTN.
  • Oracle UX Rapid Development Kit available as a free download from OTN and GitHub.
Where To Start

Download the RDK zip file, and then unzip it to your Oracle JDeveloper working folder. You should see a folder structure resembling the following.

RDK Code Folder Structure

AppsCloudUIKit folder structure

Open the application (AppsCloudUIKit.jws) in Oracle JDeveloper to show the projects that make up the RDK.

RDK Project Structure in JDeveloper

Oracle JDeveloper view of projects in the RDK

At this point, you can run the page Welcome.jspx in the DemoMaster project and interact with the out-of-the-box runnable sample application.

Integrating Google Maps

Google Maps come integrated in the Contacts Map page fragment. You can find this page under the DemoCRM project, which corresponds to the Oracle Sales Cloud, with the code organized under logical business objects - contacts, opportunities, and so on.

Location of Contacts Map page in JDeveloper

DemoCRM project: Page fragment ContactsMap.jsff 

When you run the RDK, dismiss the one-time welcome banner, and then click the Map my Contacts icon to navigate to the Contacts Map page. The finished page has a searchable list of contacts on the left with the map rendered on the right. When you click a contact record, the map renders a pin to mark the geographical location of the contact. Clicking the same contact again removes the pin. You can click more than one contact to see location pins together.

Screen shot of running Contacts Map page

Map My Contacts page

Let us see how to build this.

The Google Maps API is a JavaScript Library. We can add JavaScript to an Oracle ADF Faces page by either adding the JavaScript code to the page source or by adding a reference to an external JavaScript library file. In this case, we will use both techniques. We first add a reference to the Google Maps JavaScript Library using the <af:resource> tag.

<af:resource type=”javascript” source=”https://maps.googleapis.com/maps/api/js”/>

We then add JavaScript code blocks directly into the page source using the same <af:resource> tag. The following code block initializes the map object on the page when the page loads.

<af:resource>
   if (window.addEventListener) {
      /* Modern browsers */
      window.addEventListener("load", onLoad, false)
   } else if (window.attachEvent) {
      /* IE */
      window.detachEvent("onload", onLoad)
      window.attachEvent("onload", onLoad)
   } else {
      window.onload = onLoad
   }

  function onLoad() {
      doMap();
   }
</af:resource>

The doMap function anchors the map container object to a seeded element in the page with the ID mapdiv. It sets a default value for latitude, longitude, and zoom level to the map object in the container for initial rendering. This code block also prepares an array to hold multiple marker references in case of multiple contacts selection.

<af:resource type="javascript">
   var map;
   var geocoder = new google.maps.Geocoder();
   markers = [];

  function doMap() {
      var mapelem = document.getElementById('mapdiv');
      var newLatLng = new google.maps.LatLng(37.75, - 122.42);
      var myOptions = {
         center : newLatLng, zoom : 8
      };
      map = new google.maps.Map(mapelem, myOptions);
   }
</af:resource>

When the user clicks a contact, a client listener triggers the geocodeAndMark() function in the following code block. This function obtains the contact address information, generates a unique marker ID, and then calls the geocodeAddress() function.

<af:resource type="javascript">
   function geocodeAndMark(evt) {
      var comp = evt.getSource();
      var combo = comp.getShortDesc();
      var comboArr = combo.split( "+" );
     var id = comboArr[0];
      var addr = comboArr[1];
      geocodeAddress(id, addr, geocoder, map);
   }
</af:resource>

The geocodeAddress function uses the Google Maps geocoder to geocode the address, save the marker in the marker array, and add a pin to the map.

<af:resource type="javascript">
   function geocodeAddress(id, address, geocoder, resultsMap) {
      if (markers[id] == undefined) {
         markers[id] = new google.maps.Marker(null, null);
      }
      if (markers[id].getMap() == null) {
         geocoder.geocode(
            {‘address' : address},
            function (results, status) {
               if (status === google.maps.GeocoderStatus.OK) {
                  resultsMap.setCenter(results[0].geometry.location);
                  var marker = new google.maps.Marker({
                     map : resultsMap, position : results[0].geometry.location
                  });
                  markers[id] = marker;
               } else {
                  alert('Unable to find address. Geocoding returned ' + status);
               }
            }
          );
      } else {
         markers[id].setMap(null);
      }
   }
</af:resource>

Because this processing is done on the client side, the page does not require full or partial refresh to redraw the map to toggle markers. That is all there is to it!

Integrating IFTTT (If This Then That)

IFTTT is a free web-based service that allows you to conditionally trigger events by writing statements in the formatIf Condition Then Actionreferred to as Recipes. A large number of Channels are available to specify the Condition and Action part of the Recipe. It is a fun, yet powerful, integration or automation service for all things internet-connected. I will assume that you have an IFTTT.com account and that you know how to build IFTTT Recipes.

We will use the IFTTT Maker Channel to trigger a Recipe based on a user event in the RDK. The Maker Channel lets you connect a Web Request as the Condition or Action of a Recipe, and this will be the basis for connecting the RDK to IFTTT. You will need to set up your Recipe with the Maker Channel as trigger and give a specific name to the Trigger Event. You will need to add this in the RDK code, so make it meaningful.

Trigger event screenshot

Trigger event name example

You will also need to note the secret "key" string generated by IFTTT for your Maker Channel instance. (Because it is a secret key, I have hidden mine.)

IFTTT Channel screen shot

Maker Channel page

In the RDK, we will trigger the Recipe every time the Sales Opportunity amount is changed. This can be done quite easily by adding a few lines of code to the managed bean associated with the Sales Opportunity page. Open OpportunityBean.java in the DemoCRM project under package oracle.apps.uikit.crm.opportunities.bean, and then add the event name you created and your secret key.

private static final String IFTTT_MAKER_EVENT = “RDK_Opportunity_Amount_Changed”;
private static final String IFTTT_SECRET_KEY = “################”;

We now invoke the following method when the user saves the changes they make on a page. The method continues processing only if the amount attribute has changed. It effectively sends a HTTP POST to IFTTT that triggers the Recipe associated with the Maker Channel instance identified by event name and secret key. At the time of writing, you can send up to three parameters to the event.

//Alert opportunity amount change
private void _alertOpportunityAmountChanged(String name, String oldAmount, String newAmount){
   if (!oldAmount.equals(newAmount)){
      try {
         CloseableHttpClient httpclient = HttpClients.createDefault();
         try {
            String HttpPostString = "http://maker.ifttt.com/trigger/" + IFTTT_MAKER_EVENT + "/with/key/" + IFTTT_SECRET_KEY;
            HttpPost httppost = new HttpPost(HttpPostString);
            String inputStr = "{\"value1\" : \"" + name + "\", \"value2\" : \"" + oldAmount + "\", \"value3\" : \"" + newAmount + "\" }";
            StringEntity input = new StringEntity(inputStr);
            input.setContentType( "application/json" );
            httppost.setEntity(input);
            String responseBody = httpclient.execute(httppost, responseHandler);
         } catch (ClientProtocolException e) {
         } catch (IOException e) {
         } finally {
            httpclient.close();
         }//try-catch
      } catch (IOException e) {
      }//try-catch
   }//amount has changed
}//_alertOpportunityAmountChanged

// Create a custom response handler
ResponseHandler responseHandler = new ResponseHandler() {
   public String handleResponse(final HttpResponse response) throws ClientProtocolException, IOException {
      int status = response.getStatusLine().getStatusCode();
      if (status >= 200 && status < 300) {
         HttpEntity entity = response.getEntity();
         return entity != null ? EntityUtils.toString(entity) : null;
      } else {
         throw new ClientProtocolException("Unexpected response status: " + status);
      }
   }//handleResponse
};

As part of the Recipe action, you now have a world of exciting things you can do every time the amount attribute of a Sales Opportunity is updated in the RDKblink your lights, send an email, write to a cloud document, tweet. Now go play!

Integrating OpenWeatherMap

OpenWeatherMap is an online service that provides free API access to weather data, including current weather, forecasts, and historical data. To use this service, you will need to register for a free account and obtain your unique APP-ID. I will assume that you have already done this. We will now use this service to display an icon for the current weather at the location for Sales Contacts.

Contacts List View screenshot

Contacts page

The technique involves a simple HTTP request to a specific URL with necessary parameters passed as part of the URL. While the services can be invoked for several cities at a time, I will keep it simple by fetching the current weather for one city. You can use the following URL patterns for your HTTP request.

api.openweathermap.org/data/2.5/weather?q={city name}
api.openweathermap.org/data/2.5/weather?q={city name},{ISO 3166 country code}
E.g.:
api.openweathermap.org/data/2.5/weather?q=london
api.openweathermap.org/data/2.5/weather?q=london,uk

The following piece of code can be used to invoke the OpenWeatherMap service and extract the weather icon reference from the returned JSON payload.

String location = <city>;
String wicon = “”;
if (location != null && location.length() > 0){
   location = location.replaceAll(" ", "+" );
   try {
      CloseableHttpClient httpclient = HttpClients.createDefault();
      JSONParser parser = new JSONParser();
      try {
         HttpGet httpget = new HttpGet( "http://api.openweathermap.org/data/2.5/weather?q=" + location + "&APPID=" + APPID + "&mode=json&units=metric" );
         //Create custom response handler
         ResponseHandler responseHandler = new ResponseHandler() {
            @Override
            public String handleResponse(final HttpResponse response) throws ClientProtocolException, IOException {
               int status = response.getStatusLine().getStatusCode();
               if (status >= 200 && status < 300) {
                  HttpEntity entity = response.getEntity();
                  return entity != null ? EntityUtils.toString(entity) : null;
               } else {
                  throw new ClientProtocolException("Unexpected response status: " + status);
               }//if
            }
         };
         String responseBody = httpclient.execute(httpget, responseHandler);
         JSONObject root = (JSONObject)parser.parse(responseBody);
         JSONArray weather = (JSONArray)root.get( "weather" );
         JSONObject wobj = (JSONObject)weather.get(0);
         wicon = "http://openweathermap.org/img/w/" + wobj.get( "icon" ) + ".png";
      } catch(ClientProtocolException e) {
         //Handle as appropriate
      } catch(IOException e) {
         //Handle as appropriate
      } catch(ParseException e) {
         //Handle as appropriate
      } finally {
         httpclient.close();
      }//try-catch
  } catch(IOException e) {
      //Handle as appropriate
   }//try-catch
}//check location is available

You can display the weather icon in the Sales Contacts list view as shown in the Contacts page above, or anywhere else in the RDK that suits your requirement.

Conclusion

I have shown at a very elementary level, how to call a Web Service (or REST) API by constructing a URL string by using HTTP, receive a JSON payload in response, and parse this to extract the relevant parts. I have also shown how such processing can be easily incorporated into an ADF application by using Java or JavaScript. This gives you a flavor of how to rapidly enhance Oracle Applications Cloud with standalone PaaS applications or PaaS4SaaS integrations, enabling you to offer more UX value to your customers.

Do feel free to share your thoughts in comments, and stay tuned for more. Enjoy!

Resources

Folien zum Webinar REST mit ORDS

Dietmar Aust - Fri, 2016-02-12 07:57
Oracle hat zusammen mit der DOAG das Webinar "Modern Application Development" organisiert, darin habe ich auch ein Webinar (auf deutsch) zum Thema "Oracle als REST-Service mit ORDS – So geht‘s" beigesteuert.

Die Folien dazu findet Ihr hier.

Viele Grüße,
~Dietmar.

New Round of Let’s Talk Database Events

Richard Foote - Thu, 2016-02-11 18:45
I’ll be presenting a new round of “Let’s Talk Database” events around Australia and NZ next month. These are free events but have often “sold out” in the past so booking early is recommended to avoid disappointment. All events run between 9:00am – 12:30pm and are followed by a networking lunch. Currently, the confirmed events are: Sydney – Tuesday, […]
Categories: DBA Blogs

Speed, Not Surprises, Is the Secret to SaaS Simplified UIs

Usable Apps - Thu, 2016-02-11 12:31

Julian Orr (@orr_ux) of the Oracle Applications User Experience (OAUX) team explains how the OAUX Rapid Development Kit enables the fast and furious pace of PaaS4SaaS development and lets partners and customers confidently deliver stunning simplified UIs in the cloud.

For SaaS and PaaS developers, code is always “on.” They need to work like lightning. That’s because the cloud has changed SaaS customer expectations; if they don’t like their user experience (UX) or don’t get it in time, they’ll go elsewhere.

“PaaS has been a great catalyst for change,” agrees Basheer Khan (@bkhan) Principal at Oracle Partner Knex Technology. “It’s transformed how we develop applications.” Basheer knows that cloud customers will not wait months for application integration and hearing that “but-all-I-wanted-was” lament after a hastily delivered solution wins business only for his competitors.

 Joe Rovirosa, Financial Controller at Pacific Health Foundation Enterprises and Basheer Khan of Knex Technology sketch PaaS4SaaS UX ideas together.

Together in the Oracle Cloud: Joe Rovirosa, Financial Controller at Public Health Foundation Enterprises and Basheer Khan of Knex Technology sketch PaaS4SaaS UX ideas together.

SaaS and PaaS Accelerated Development for Real

The Oracle Applications User Experience (OAUX) team recently worked with Knex Technology to deliver a simplified UI SaaS solution for their customer Public Health Foundation Enterprises (PHFE). Using OAUX’s Simplified UI PaaS4SaaS Rapid Development Kit (RDK) an Oracle ERP SaaS solution was designed, developed, and deployed to the Oracle Cloud during an OAUX-facilitated hands-on workshop for partner and customer.

 Part of the free Rapid Development Kit so that SaaS and PaaS developers don’t have to research the best usability practices.

Simplified UI user experience design patterns: Part of the free Rapid Development Kit so that SaaS and PaaS developers don’t have to research the best usability practices.

The free RDK contains Oracle ADF simplified UI page templates and components, an Oracle Alta UI look and feel, and the UX design patterns that enable partners to rapidly assess a business opportunity, develop it quickly using designs from the Oracle Applications Cloud, and then deploy a SaaS integration or PaaS custom app to the Oracle Cloud. OAUX enhances the RDK with online training and one-on-one workshops for partners and their customers.

Basheer explained the essence of the RDK for partners:

“The RDK’s best design practices are embedded into the development tools that make the end product, so developers don’t have to start from scratch figuring out a user experience. Those reusable software components of the kit make it efficient for partners to offer customers low cost solutions.”

Applying simplified UI design patterns during the software development process is a real PaaS4SaaS developer productivity win. Patterns are reusable solutions for developers (how a landing page or visualization should work, for example) that accelerate the development of a user experience that’s proven in advance. Developers can concentrate instead on enterprise-critical technical areas, such as performance and security.

Partners and Customers Together in the Oracle Cloud

Central to the success of PHFE’s solution was their direct involvement in the design process. Representatives from PHFE’s financial and human resource departments acted as typical PHFE users and helped to sketch out (or “wireframe”) an agreed user experience solution. From Leonardo Da Vinci to Walt Disney, this sketching of ideas before committing to an expensive production process allows for easy exploration of options, faster iterations, use of industry standard designs, and eliminates unpleasant surprises at the end. That’s a perfect accelerator for a partner growing an Oracle Cloud business with that killer UX differentiator.

 Stakeholder agreed wireframes and patterns accelerated developer cloud productivity for an Oracle Cloud ERP solution.

From sketched idea to cloud deployment: Stakeholder agreed wireframes and patterns accelerated developer cloud productivity for an Oracle ERP Cloud solution. The latest version of the RDK resources contains a wireframe template that allows you to design simplified UI wireframes using Microsoft PowerPoint.

Basheer encourages this collaborative approach:

“When the customer is involved, solutions are delivered 5 to 10 times quicker to market. The UX tools and guidance make sure the customer requirements are not lost in translation. Customers get to understand what user experience is about and to take early ownership of “their” design that they take away.”

OAUX and Oracle Applications Development enables and guides Knex Technology to deliver a solution for PHFE at a workshop in Oracle HQ

Oracle Applications User Experience Group Vice President Jeremy Ashley (back, left) and PaaS4SaaS UX designer Julian Orr (back, right) let the design learning transfer as Basheer Khan (front, right) agrees an API-connected solution with Oracle Applications developer Suresh Punathilath.

PHFE’s Financial Controller Joe Rovirosa’s own experience of the OAUX enablement also echoes the power of customer involvement:

“We realized that we needed all stakeholders to be present in order to compliment key skill sets. Having Oracle, Knex, and PHFE in one room allowed business requirements and application capabilities to be immediately vetted, resulting in a very efficient process and a superior solution. Such interaction works best for any implementation.”

From UX Mystery to Cloud Magic

This partner-customer enablement based on the PaaS4SaaS RDK is now an OAUX-proven approach that has seen other Oracle partners such as Hitachi Consulting, Certus Solutions, and eProseed win awards and kudos from North America to Europe to Asia. And that means more Cloud business for the partner network.

Partners and customers availing of the PaaS4SaaS enablement have their designs reviewed by OAUX Group Vice President, Jeremy Ashley (@jrwashley) who underlined Oracle’s commitment to growing the Oracle partner ecosystem with a must-have UX:

“Partners can have confidence in the whole RDK as a standalone, proven, consistent cloud developer productivity solution that in turn will give their customers real confidence in an SaaS user experience their users want.”

Developer speed, no nasty surprises, and a great simplified SaaS UI are all easily realized with the latest version of the PaaS4SaaS RDK. It’s now being downloaded for free by Oracle partners and developers who want to lead and win with the development of SaaS solutions using PaaS.

OAUX plans further enhancements to the RDK itself, exploring other frameworks, wearable technology integration, mobile application development, and more developer experience ideas all based on Oracle Cloud solutions and reflecting the simplicity, mobility, and extensibility UX strategy.

Information on how to get the RDK and on OAUX partner enablement events is available on the Oracle Usable Apps website.

More Information

Implementing Index Compression (and other Physical Storage Options) via Application Designer

David Kurtz - Thu, 2016-02-11 12:07
There are some performance improvements that require physical storage options to be set on tables or indexes.
One particular technique that I will take as an example for this article is index compression.  A good example in PeopleSoft is the tree node table, PSTREENODE.  It drives many security and hierarchical queries.  It is not updated very frequently, only as new trees are brought on.  Many of the indexes are good candidates for compression.
This compression works by storing repeated column values only one per index leaf block.  Each distinct set of values in the columns up to the prefix length are stored in a symbol table.  The choice of prefix length can significantly effect the compression.  Oracle can calculate the optimal prefix length using
ANALYZE INDEX … VALIDATE STRUCTURE
I have written script to make it slightly easier, calc_opt_comp.sql.  This is the output on my demo database, but I get similar results on production systems.
                                          Optimal
Compression Weighted
Prefix Current Average
Table Name Index Name Length FREQ PARTS Blocks Saving %
------------------ ------------------ ----------- ---- ----- ---------- --------
PSTREENODE PSAPSTREENODE 4 1 0 280 39.0
PSBPSTREENODE 3 1 0 264 30.0
PSCPSTREENODE 1 1 0 120 7.0
PSDPSTREENODE 4 1 0 256 61.0
PSFPSTREENODE 2 1 0 256 67.0
PSGPSTREENODE 3 1 0 400 49.0
PS_PSTREENODE 4 1 0 256 44.0 
However, I want to make sure that should the table need to rebuilt in the future, PeopleTools will generate the DDL with the appropriate settings.  The same principle would also apply to any other physical storage option.  I would always recommend that the compression prefix lengths be incorporated into the PeopleTools DDL override in Application Designer (figure 1).  While you could extend the DDL model and add another override for compression, I just append it to the PCTFREE setting.
Index DDL OverridesFigure 1. Index DDL OverideHowever, there is catch.  PeopleTools has never examined DDL overrides when determining whether there is a difference between the PeopleSoft and database data dictionaries, even though that comparison must be platform specific.  DDL overrides and DDL models are just strings held in the PeopleTools tables.  They can be extended (or even removed) by customers.  I assume this is the reason; it was not felt possible to reliably check them,
So, if the build settings (figure 2) are 'recreate index only if modified', which is the default, Application Designer will not generate a DDL script, nor execute any DDL.
Build SettingsFigure 2. Build SettingsThe workaround has always been to set the index creation option in the build settings to 'recreate index if it already exists'.  However, we then discover the override doesn't appear in the DDL.  As Application Designer has not detected a difference between PeopleTools and the database, it has instead used the Oracle DBMS_METADATA package to generate the storage clause from from the index that exists in the database.  Hence the DDL contains additional keywords not in the PeopleSoft DDL model.
CREATE UNIQUE  INDEX PS_PSTREENODE ON PSTREENODE (SETID,
SETCNTRLVALUE,
TREE_NAME,
EFFDT,
TREE_NODE_NUM,
TREE_NODE,
TREE_BRANCH)
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 40960 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PSINDEX"
/
ALTER INDEX PS_PSTREENODE NOPARALLEL LOGGING
/

I have only checked this behaviour on PeopleTools 8.54, but use of DBMS_METADATA was introduced in PeopleTools 8.51, so this problem has probably existed since then.
SELECT dbms_metadata.get_ddl('INDEX','PS_PSTREENODE')
FROM dual

DBMS_METADATA.GET_DDL('INDEX','PS_PSTREENODE')
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX "SYSADM"."PS_PSTREENODE" ON "SYSADM"."PSTREENODE" ("SETID"
, "SETCNTRLVALUE", "TREE_NAME", "EFFDT", "TREE_NODE_NUM", "TREE_NODE", "TREE_BRANCH")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 40960 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PSINDEX"

However, if I drop the index and then regenerate the DDL script in Application Designer,
DROP INDEX ps_pstreenode
/
PeopleTools generates the create index with the compression specified in the PeopleTools table.

CREATE UNIQUE INDEX PS_PSTREENODE ON PSTREENODE (SETID,
SETCNTRLVALUE,
TREE_NAME,
EFFDT,
TREE_NODE_NUM,
TREE_NODE,
TREE_BRANCH) TABLESPACE PSINDEX STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 0 COMPRESS 4 PARALLEL
NOLOGGING
/
ALTER INDEX PS_PSTREENODE NOPARALLEL LOGGING
/

Rather than go through the business of dropping the index so you can then generate the correct script to then recreate the index, I would suggest just implementing the change manually by rebuilding the indexes.
ALTER INDEX PSAPSTREENODE REBUILD TABLESPACE PSINDEX COMPRESS 4;
ALTER INDEX PSBPSTREENODE REBUILD TABLESPACE PSINDEX COMPRESS 3;
ALTER INDEX PSCPSTREENODE REBUILD TABLESPACE PSINDEX COMPRESS 1;
ALTER INDEX PSDPSTREENODE REBUILD TABLESPACE PSINDEX COMPRESS 4;
ALTER INDEX PSFPSTREENODE REBUILD TABLESPACE PSINDEX COMPRESS 2;
ALTER INDEX PSGPSTREENODE REBUILD TABLESPACE PSINDEX COMPRESS 3;
ALTER INDEX PS_PSTREENODE REBUILD TABLESPACE PSINDEX COMPRESS 4;

ConclusionThis makes the business of implementing physical attributes through Application Designer much more complicated.  I would still recommend recording the settings in Application Designer, if only because it provides documentation, but then it may be easier to implement the changes manually.

ETCC Tool Enhanced for Finding Mandatory EBS 12.2 Patches

Steven Chan - Thu, 2016-02-11 10:48

Contributing author: Paul Holman

The E-Business Suite Technology Codelevel Checker (ETCC) tool has been provided to help you identify missing database or middle tier patches that may need to be applied to your E-Business Suite Release 12.2 system.

The utility has now been significantly enhanced to map bug fixes to patches, generating a Patch Recommendation Summary that lists the patches (including versions and associated filenames) that are required for your system.

The following example shows part of an ETCC run, where the DB-ETCC script is used to identify missing database patches.

DB-ETCC Example

Why Does This Matter?

As the last section of the above example shows, there is a difference between bug fixes and patches. A bug fix ID for an issue does not change, but the patch ID that delivers the fix might: for example, the original patch could be superseded by another patch. So you need to not only know what bug fix you require, but which patch currently delivers it.

With previous versions of ETCC, the relevant patches (including Patch Set Updates and Exadata patches) had to be identified manually, by referring to the relevant documentation.  In this latest version, bug fix to patch mapping is done for you, avoiding the need for manual identification and the risk of misidentifying the patch needed. That is the principal enhancement in this version of ETCC.

Coverage

This new version of ETCC maps missing bug fixes to corresponding patches for the latest and latest but one quarterly bundles supported by EBS 12.2. You can use this version of ETCC with older bundles, but it will only list missing bug fixes (as previous versions did), and you will see a message saying "Patch mapping not available".

Obtaining ETCC

The ETCC utility can be downloaded via Patch 17537119 from My Oracle Support.

References Related Articles
Categories: APPS Blogs

Opatchauto Session failed: Parameter validation failed

Pakistan's First Oracle Blog - Wed, 2016-02-10 20:12
While applying PSU on Grid Home in 12c, due to the patch conflict, you might have to rollback few patches before you could apply the PSU.

After rolling back the patches from grid home, when you try to run the opatch analyze command again, you might encounter following error:





[root ~]# $Grid_Home/OPatch/opatchauto apply /stage/PSUpatch/22191349 -analyze -ocmrf /stage/ocm.rsp

OPatch Automation Tool

Copyright (c)2014, Oracle Corporation. All rights reserved.
OPatchauto Version : 12.1.0.1.10
OUI Version        : 12.1.0.2.0
Running from       : $Grid_Home

opatchauto log file: $Grid_Home/cfgtoollogs/opatchauto/22191349/opatch_gianalyze.log
NOTE: opatchauto is running in ANALYZE mode. There will be no change to your system.
OCM RSP file has been ignored in analyze mode. 

Clusterware is either not running or not configured. You have the following 2 options:
1. Configure and start the Clusterware on this node and re-run the tool
2. Run the tool with '-oh ' to first patch the Grid Home, then invoke tool with '-database ' or '-oh ' to patch the RAC home
Parameter Validation: FAILED

Opatchauto Session failed: Parameter validation failed
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Stream closed
                at oracle.opatchauto.gi.GILogger.writeWithoutTimeStamp(GILogger.java:432)
                at oracle.opatchauto.gi.GILogger.printStackTrace(GILogger.java:447)
                at oracle.opatchauto.gi.OPatchauto.main(OPatchauto.java:97)
Caused by: java.io.IOException: Stream closed
                at java.io.BufferedWriter.ensureOpen(BufferedWriter.java:98)
                at java.io.BufferedWriter.write(BufferedWriter.java:203)
                at java.io.Writer.write(Writer.java:140)
                at oracle.opatchauto.gi.GILogger.writeWithoutTimeStamp(GILogger.java:426)
                ... 2 more

opatchauto failed with error code 1.

Then if you try to start the has services, you get following error:

 [root ~]# $Grid_Home/bin/crsctl start has
CRS-6706: Oracle Clusterware Release patch level ('3749979535') does not match Software patch level ('2278979115'). Oracle Clusterware cannot be started.
CRS-4000: Command Start failed, or completed with errors.

SOLUTION:

So in order to resolve this, you need to issue following command as root user:
$ORA_GI_HOME/crs/install/roothas.pl –postpatch

It will start the has services too.

Then again run the analyze command as given above and it will work.
 



Categories: DBA Blogs

Taking backup of AIA Middleware Domains Excluding log files

Arun Bavera - Wed, 2016-02-10 15:24

tar -zcvf /opt/app/oracle/BACKUP/AIA_MSERVER.tar.gz --exclude='core.*'  --exclude='*.log*'  --exclude='*.out*'  --exclude='*ConsumeFaultMessage*.dat' /opt/app/oracle/fmw_domains/aia_domain/mserver/aia01_domain

tar -zcvf /opt/app/oracle/BACKUP/AIA_ASERVER.tar.gz --exclude='core.*'  --exclude='*.log*'  --exclude='*.out*'  --exclude='*ConsumeFaultMessage*.dat' /opt/app/oracle/fmw_domains/aia_domain/aserver/aia01_domain

Refer:
https://www.gnu.org/software/tar/manual/html_section/tar_49.html

Categories: Development

SRM Social Cloud Support Resources

Chris Warticki - Wed, 2016-02-10 15:00

First and ALWAYS – the #1 investment is made in the PRODUCT, PRODUCT, PRODUCT.

Remain a student of the product.

1.SRM Social Product Information Page

2. YouTube - SRM Training

3. Training on the PRODUCT

Personalize My Oracle Support Experience

1. Setup Proactive Alerts and Notifications

2. Customize your MOS Dashboard

3. Remain in the Know

Collaborate. Communicate. Connect

1. Oracle Mobile App – News, Events, Mobile MOS, Videos etc

2. Social Cloud - Applications Customer Connect

3. OPN Social Cloud Community

4. Oracle Support's SRM Community

SOCIAL Circles of Influence

1. Oracle Social

2. Oracle Cloud Zone

3. Oracle Cloud Marketplace

4. Cloud Café (Podcasts)

5. Social Spotlight Blog

6. Oracle Social - FB

7. Oracle Customer Experience Blog

Engage with Oracle Support

1. Upload ALL reports if logging a Service Request

2. Leverage Oracle Collaborative Support (web conferencing)

3. Better Yet – Record your issue and upload it (why wait for a scheduled web conference?)

4. Request Management Attention as necessary

get a list of powershell date format outputs

Matt Penny - Wed, 2016-02-10 07:01

I want to create a list of Powershell date formats and their outputs, for a quick reference doc.

I’ve collected a list of formats from the Powershell help text and other locations and put them in a big text file which looks like this:

get-date -Uformat %A   # Day of the week - full name 
get-date -Uformat %u   # Day of the week - number (Monday = 1)
get-date -Uformat %d   # Day of the month - 2 digits 
get-date -Uformat %e   # Day of the month - digit preceded by a space ( 5)
get-date -Uformat %j   # Day of the year 
get-date -Uformat %p   # AM or PM
get-date -Uformat %r   # Time in 12-hour format
get-date -Uformat %R   # Time in 24-hour format - no seconds
get-date -Uformat %T   # Time in 24 hour format

I’m going to order this in what I consider to be order of usefullness (to me), because I’m going to plug it into an about_dateformats help page in my Powershell-help-powered repository of notes and tips.

To generate a list with the command, output and comment, I did this:

$Dates = foreach ($L in $(Select-String -notmatch "^$" formats.txt)) 
{
  [string]$Line = $L.Line
  $Command = $Line.split('#')[0]
  $Comment = $Line.split('#')[1]

  $scriptBlock = $executioncontext.InvokeCommand.NewScriptBlock($Line)

  $Output = invoke-command $ScriptBlock

  # write-output "$Command $Output # $Comment"
  new-object PSObject -Property @{
     Command = $Command
     Output =  $Output
     Comment = $Comment
  }

} 

$Dates | ft -a

The output looks like this:

<br />Output                            Command                                             Comment                                                           
------                            -------                                             -------                                                           
10                                Get-Date -UFormat %d                                                                                                  
Wed Feb 10 12:44:52 2016          get-date -UFormat %c                                 Date and time - abbreviated (Fri Jun 16 10:31:27 2006)           
02/10/16                          get-date -UFormat %D                                 Date in mm/dd/yy format (06/14/06)                               
02/10/16                          get-date -UFormat %x                                 Date in standard format for locale (09/12/07 for English-US)     
20                                get-date -Uformat %C                                 Century (20 for 2006)                                            
2016                              get-date -Uformat %Y                                 Year in 4-digit format (2006)                                    
16                                get-date -Uformat %y                                 Year in 2-digit format (06)                                      
Feb                               get-date -Uformat %b                                 Month name - abbreviated (Jan)                                   
February                          get-date -Uformat %B                                 Month name - full (January)                                      
02                                get-date -Uformat %m                                 Month number (06)                                                
5                                 get-date -Uformat %W                                 Week of the year (00-52)                                         
6                                 get-date -Uformat %V                                 Week of the year (01-53)                                         
Wed                               get-date -Uformat %a                                 Day of the week - abbreviated name (Mon)                         
Wednesday                         get-date -Uformat %A                                 Day of the week - full name (Monday)                             
3                                 get-date -Uformat %u                                 Day of the week - number (Monday = 1)                            
10                                get-date -Uformat %d                                 Day of the month - 2 digits (05)                                 
10                                get-date -Uformat %e                                 Day of the month - digit preceded by a space ( 5)                
41                                get-date -Uformat %j                                 Day of the year - (1-366)                                        
PM                                get-date -Uformat %p                                 AM or PM                                                         
12:44:52 PM                       get-date -Uformat %r                                 Time in 12-hour format (09:15:36 AM)                             
12:44                             get-date -Uformat %R                                 Time in 24-hour format - no seconds (17:45)                      
12:44:52                          get-date -Uformat %T                                 Time in 24 hour format (17:45:52)                                
+00                               get-date -Uformat %Z                                 Time zone offset from Universal Time Coordinate (UTC) (-07)      
12                                get-date -Uformat %H                                 Hour in 24-hour format (17)                                      
12                                get-date -Uformat %I                                 Hour in 12 hour format (05)                                      
44                                get-date -Uformat %M                                 Minutes (35)                                                     
52                                get-date -Uformat %S                                 Seconds (05)                                                     
1455108292.3719                   get-date -Uformat %s                                 Seconds elapsed since January 1, 1970 00:00:00 (1150451174.95705)
10/02/2016 12:44:52               Get-Date -DisplayHint Date                                                                                            
10/02/2016 12:44                  Get-Date -Format g                                                                                                    
2016 / 02 / 10 / Wednesday / +00  Get-Date -UFormat "%Y / %m / %d / %A / %Z"                                                                            
366                               (Get-Date -Year 2000 -Month 12 -Day 31).DayOfYear                                                                     
False                             $(get-date).IsDaylightSavingTime()                                                                                    
10/02/2016 12:44:52               $(get-date).ToUniversalTime()                                                                                         
10/02/2016 12:44:52               (Get-Date).ToString()                                                                                                 
2016-02-10T12:44:52.3749035+00:00 Get-Date -Format o                                                                                                    
2016-02-10T12.44.52.3759036+00.00 Get-Date -Format o | foreach {$_ -replace ":", "."}                           

Categories: DBA Blogs

Getting Started With Sample Programs for Apache Kafka 0.9

Tugdual Grall - Wed, 2016-02-10 04:02
Read this article on my new blog Ted Dunning and I have worked on a tutorial that explains how to write your first Kafka application. In this tutorial you will learn how to: Install and start Kafka Create and Run a producer and a consumer You can find the tutorial on the MapR blog: Getting Started with Sample Programs for Apache Kafka 0.9 Tugdual Grallhttps://plus.google.com/103667961621022786141noreply@blogger.com0

Step by Step Jan 2016 PSU Patch Apply on 12c Grid and RDBMS Homes in Linux

Pakistan's First Oracle Blog - Tue, 2016-02-09 20:05

Following step by step action plan is for single instance database stored on ASM in 12.1.0.2 on Linux (OEL 6 64 bit in this case.)






Step
Description
ETA
1
Update the OPATCH utility:

For Database home:

$ unzip p6880880_121010_LINUX.zip -d /u01/app/oracle/product/12.1.0/db_1
$ /u01/app/oracle/product/12.1.0/db_1/OPatch/opatch version

For Grid home:

$ unzip p6880880_121010_LINUX.zip -d /u01/app/oracle/12.1.0.2/grid
$ /u01/app/oracle/12.1.0.2/grid/OPatch/opatch version
15 min
2
Create ocm.rsp file:

Note: Press Enter/Return key and don't provide any input and say Yes.

$ export ORACLE_HOME=/u01/app/oracle/12.1.0.2/grid
$ $ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output /stage/ocm.rsp
5 min
3
Validation of Oracle Inventory

Before beginning patch application, check the consistency of inventory information for GI home and each database home to be patched. Run the following command as respective Oracle home owner to check the consistency.

For database home:

$ /u01/app/oracle/product/12.1.0/db_1/OPatch/opatch lsinventory -detail -oh /u01/app/oracle/product/12.1.0/db_1

For Grid home:

$ /u01/app/oracle/12.1.0.2/grid/OPatch/opatch lsinventory -detail -oh /u01/app/oracle/12.1.0.2/grid

If this command succeeds, it lists the Oracle components that are installed in the home. Save the output so you have the status prior to the patch apply.
5 min
4
Stage the Patch:

$ mkdir /stage/PSUpatch
$ cp /stage/p22191349_121020_Linux-x86-64.zip /stage/PSUpatch

Check that the directory is empty.
$ cd /stage/PSUpatch
$ ls

Unzip the patch as grid home owner.

$ unzip p22191349_121020_.zip
5 min
5
One-off Patch Conflict Detection and Resolution:

Run it with root user:

/u01/app/oracle/12.1.0.2/grid/OPatch/opatchauto apply /stage/PSUpatch/22191349 -analyze -ocmrf /stage/ocm.rsp

It will ask to rollback identical patches like this:

Analyzing patch(es) on "/u01/app/oracle/12.1.0.2/grid" ...
Patch "/stage/PSUpatch/22191349/21436941" is already installed on "/u01/app/oracle/12.1.0.2/grid". Please rollback the existing identical patch first.
Patch "/stage/PSUpatch/22191349/21948341" is already installed on "/u01/app/oracle/12.1.0.2/grid". Please rollback the existing identical patch first.
Patch "/stage/PSUpatch/22191349/21948344" is already installed on "/u01/app/oracle/12.1.0.2/grid". Please rollback the existing identical patch first.
Patch "/stage/PSUpatch/22191349/21948354" is already installed on "/u01/app/oracle/12.1.0.2/grid". Please rollback the existing identical patch first.

So first rollback above 4 patches by going to their directory and issuing with grid owner from grid home:

opatch rollback -id 21948354 -local -oh /u01/app/oracle/12.1.0.2/grid (Repeat for all 4 patches)

Note: In some cases, weirdly, I had to shutdown the has services with root user before patch rollback by using:

/u01/app/oracle/12.1.0.2/grid/bin/crsctl stop has -f

After this again run:

/u01/app/oracle/12.1.0.2/grid/OPatch/opatchauto apply /stage/PSUpatch/22191349 -analyze -ocmrf /stage/ocm.rsp

If analyze command fail then use this with root user:

$ORA_GI_HOME/crs/install/roothas.pl –postpatch

It will start the has services too.

Then again run the analyze command as given above:

It will show something like:

Analyzing patch(es) on "/u01/app/oracle/12.1.0.2/grid" ...
Patch "/stage/PSUpatch/22191349/21436941" successfully analyzed on "/u01/app/oracle/12.1.0.2/grid" for apply.
Patch "/stage/PSUpatch/22191349/21948341" successfully analyzed on "/u01/app/oracle/12.1.0.2/grid" for apply.
Patch "/stage/PSUpatch/22191349/21948344" successfully analyzed on "/u01/app/oracle/12.1.0.2/grid" for apply.
Patch "/stage/PSUpatch/22191349/21948354" successfully analyzed on "/u01/app/oracle/12.1.0.2/grid" for apply.

Now you are good to apply the patch. Proceed to next step.




10 min
6
Apply the Patch: (Note: This should apply patch in both GI and RDBMS Home but its unreliable in that sense so after this completes, we need to check opatch lsinventory to make sure that it also applied patches in RDBMS Home)

As root user, execute the following command:

# /u01/app/oracle/12.1.0.2/grid/OPatch/opatchauto apply /stage/PSUpatch/22191349 -ocmrf /stage/ocm.rsp

In case if it doesn’t apply in RDBMS Home, then run:

/u01/app/oracle/product/12.1.0/db_1/OPatch/opatchauto apply /stage/PSUpatch/22191349 -oh /u01/app/oracle/product/12.1.0/db_1 -ocmrf /stage/ocm.rsp

Make sure the above applies both OCW and PSU patches. You can verify that from opatch lsinventory. If only OCW patch is present in output and no PSU (which is likely the case), then issue following from Oracle home with oracle database owner after shutting down database:

/u01/app/oracle/product/12.1.0/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/12.1.0/db_1 -local /stage/PSUpatch/22191349/21948354
60 min
7
Loading Modified SQL Files into the Database:

% sqlplus /nolog
SQL> Connect / as sysdba
SQL> startup
SQL> quit
% cd $ORACLE_HOME/OPatch
% ./datapatch -verbose
60 min
8
Check for the list of patches applied to the database.

SQL> select action_time, patch_id, patch_uid, version, status, bundle_series, description from dba_registry_sqlpatch;
5 min
Categories: DBA Blogs

Invoking the Billing API for Bluemix Public Organizations

Pas Apicella - Tue, 2016-02-09 17:09
The ability to view usage data from a billing perspective on IBM Bluemix Public is available as a REST based API. To use it follow the steps below.

In order to use the API you have to have the Billing Manager Role or be the Account Owner of the organization as shown below.



Steps

1. Log into the PUBLIC Bluemix region as shown below

pasapicella@Pas-MacBook-Pro:~$ cf login -u pasapi@au1.ibm.com -p ***** -o pasapi@au1.ibm.com -s dev
API endpoint: https://api.ng.bluemix.net
Authenticating...
OK

Targeted org pasapi@au1.ibm.com

Targeted space dev

API endpoint:   https://api.ng.bluemix.net (API version: 2.40.0)
User:           pasapi@au1.ibm.com
Org:            pasapi@au1.ibm.com
Space:          dev


2. List all your Organizations as shown below

pasapicella@Pas-MacBook-Pro:~$ cf orgs
Getting orgs as pasapi@au1.ibm.com...

name
iwinoto@au1.ibm.com
vralh@au1.ibm.com
MobileQualityAssurance
arthur.proestakis@au1.ibm.com
abentley@au1.ibm.com
shawmale@au1.ibm.com
ANZ-Innovation-Lab
pasapi@au1.ibm.com
NAB Experimentation
Telstra-CustomerA


3. Determine the GUID of the Org you wnat to get metering usage from

pasapicella@Pas-MacBook-Pro:~$ cf org pasapi@au1.ibm.com --guid
e270a605-978e-45fc-9507-00a50dec2469


4. Determine the region name for the PUBLIC instance your connected to as follows

pasapicella@Pas-MacBook-Pro:~$ curl http://mccp.ng.bluemix.net/info
{
  "name": "Bluemix",
  "build": "221004",
  "support": "http://ibm.com",
  "version": 2,
  "description": "IBM Bluemix",
  "authorization_endpoint": "https://mccp.ng.bluemix.net/login",
  "token_endpoint": "https://mccp.ng.bluemix.net/uaa",
  "min_cli_version": null,
  "min_recommended_cli_version": null,
  "api_version": "2.40.0",
  "app_ssh_endpoint": "ssh.ng.bluemix.net:2222",
  "app_ssh_host_key_fingerprint": null,
  "app_ssh_oauth_client": "ssh-proxy",
  "routing_endpoint": "https://api.ng.bluemix.net/routing",
  "logging_endpoint": "wss://loggregator.ng.bluemix.net:443",
  "doppler_logging_endpoint": "wss://doppler.ng.bluemix.net:4443",
  "console_endpoint": "https://mccp.ng.bluemix.net/console",
  "region": "us-south"
}


5. Determine the OAUTH token for your connected session as follows

pasapicella@Pas-MacBook-Pro:~$ cf oauth-token
Getting OAuth token...
OK

bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI0ODAzOWM1My0yODZhLTQ5Y2YtYWIzYi0yNGVhZTY

4ZmFmYzIiLCJzdWIiOiJiNmMwMjBiNC1lMTFhLTQ2MzAtYTZhMi0zZjIwZmNlYzdmOTAiL
CJzY29wZSI6WyJjbG91ZF9jb250cm9sbGVyLnJlYWQiLCJwYXNzd29yZC53cml0ZSIsImNsb3
VkX2NvbnRyb2xsZXIud3JpdGUiLCJvcGVuaWQiXSwiY2xpZW50X2lkIjoiY2YiLCJjaWQiOiJj
ZiIsImF6cCI6ImNmIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6ImI2YzAyMGI0L
WUxMWEtNDYzMC1hNmEyLTNmMjBmY2VjN2Y5MCIsIm9yaWdpbiI6InVhYSIsInVzZXJf
bmFtZSI6InBhc2FwaUBhdTEuaWJtLmNvbSIsImVtYWlsIjoicGFzYXBpQGF1MS5pYm0uY29t
IiwicmV2X3NpZyI6IjVjOGMyODQ4IiwiaWF0IjoxNDU1MDU3NzQxLCJleHAiOjE0NTUxMD
A5NDEsImlzcyI6Imh0dHBzOi8vdWFhLm5nLmJsdWVtaXgubmV0L29hdXRoL3Rva2VuIiwiem
lkIjoidWFhIiwiYXVkIjpbImNsb3VkX2NvbnRyb2xsZXIiLCJwYXNzd29yZCIsImNmIiwib3Blbm
lkIl19.EUEIXZ-XgxQbvTQnSgrToODHbNmKvhx0PtAp9CaiPTk

At this point we are ready to invoke the Billing/Metering API. The format is as follows

Bluemix Endpoint:

https://rated-usage.ng.bluemix.net/v2/metering/organizations/us-south:ORG_ID/YYYY-MM

  1. ORG_ID : Account GUID
  2. YYYY-MM: Year and month for which usage is required
Format as follows:

curl -v -X GET -H "Authorization: bearer {oauth-token}" "https://rated-usage.ng.bluemix.net/v2/metering/organizations/us-south:e270a605-978e-45fc-9507-00a50dec2469/usage/2016-02" | python -m json.tool
 
6. To invoke using curl we should do it as follows

Output:

pasapicella@Pas-MacBook-Pro:~$ curl -v -X GET -H "Authorization: bearer {oauth-token}" "https://rated-usage.ng.bluemix.net/v2/metering/organizations/us-south:e270a605-978e-45fc-9507-00a50dec2469/usage/2016-02" | python -m json.tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 75.126.70.44...
* Connected to rated-usage.ng.bluemix.net (75.126.70.44) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: *.ng.bluemix.net
* Server certificate: DigiCert SHA2 Secure Server CA
* Server certificate: DigiCert Global Root CA
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0> GET /v2/metering/organizations/us-south:e270a605-978e-45fc-9507-00a50dec2469/usage/2016-02 HTTP/1.1
> Host: rated-usage.ng.bluemix.net
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI0ODAzOWM1My0yODZhLTQ5Y2YtYWIzYi0yNGVhZTY4ZmFmYzIiLCJzdWIiOiJiNmMwMjBiNC1lMTFhLTQ2MzAtYTZhMi0zZjIwZmNlYzdmOTAiLCJzY29wZSI6WyJjbG91ZF9jb250cm9sbGVyLnJlYWQiLCJwYXNzd29yZC53cml0ZSIsImNsb3VkX2NvbnRyb2xsZXIud3JpdGUiLCJvcGVuaWQiXSwiY2xpZW50X2lkIjoiY2YiLCJjaWQiOiJjZiIsImF6cCI6ImNmIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6ImI2YzAyMGI0LWUxMWEtNDYzMC1hNmEyLTNmMjBmY2VjN2Y5MCIsIm9yaWdpbiI6InVhYSIsInVzZXJfbmFtZSI6InBhc2FwaUBhdTEuaWJtLmNvbSIsImVtYWlsIjoicGFzYXBpQGF1MS5pYm0uY29tIiwicmV2X3NpZyI6IjVjOGMyODQ4IiwiaWF0IjoxNDU1MDU3NzQxLCJleHAiOjE0NTUxMDA5NDEsImlzcyI6Imh0dHBzOi8vdWFhLm5nLmJsdWVtaXgubmV0L29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwiYXVkIjpbImNsb3VkX2NvbnRyb2xsZXIiLCJwYXNzd29yZCIsImNmIiwib3BlbmlkIl19.EUEIXZ-XgxQbvTQnSgrToODHbNmKvhx0PtAp9CaiPTk
>
  0     0    0     0    0     0      0      0 --:--:--  0:00:04 --:--:--     0< HTTP/1.1 200 OK
< X-Backside-Transport: OK OK
< Connection: Keep-Alive
< Transfer-Encoding: chunked
< Content-Type: application/json; charset=utf-8
< Date: Tue, 09 Feb 2016 22:54:44 GMT
< Etag: W/"3bcc-JgmFioUYI4v46tUXnGY1SQ"
< Vary: Accept-Encoding
< X-Cf-Requestid: 7b5cea8c-1a24-4114-44b2-a45e5d6e6f40
< X-Heap-Used: 136304240
< X-Instance-Id: 657c5e04638a49788a1053e7bb4e22ff
< X-Instance-Index: 5
< X-Node-Version: v0.10.41
< X-Powered-By: Express
< X-Process-Id: 93
< X-Response-Time: 3374.537ms
< X-Uptime: 16055
< X-Client-IP: 124.180.37.173
< X-Global-Transaction-ID: 750960253
<
{ [4055 bytes data]
100 15308    0 15308    0     0   3019      0 --:--:--  0:00:05 --:--:--  3967
* Connection #0 to host rated-usage.ng.bluemix.net left intact
{
    "organizations": [
        {
            "billable_usage": {
                "spaces": []
            },
            "currency_code": "AUD",
            "id": "e270a605-978e-45fc-9507-00a50dec2469",
            "name": "pasapi@au1.ibm.com",
            "non_billable_usage": {
                "spaces": [
                    {
                        "applications": [
                            {
                                "id": "121ccef0-2417-49c4-9f8f-47958b6d819d",
                                "name": "pas-bmspringboot-demo",
                                "usage": [
                                    {
                                        "buildpack": "0154f971-ae72-4882-9695-bda6e31310b7",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "0154f971-ae72-4882-9695-bda6e31310b7",
                                            "name": "liberty-for-java_v2_1-20151006-0912"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "2d7dfb5f-0900-4c4a-a936-edaf3b7febb8",
                                "name": "pas-tonynode",
                                "usage": [
                                    {
                                        "buildpack": "f0bff590-8b49-4c7d-bc4a-3ff24adcd411",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "f0bff590-8b49-4c7d-bc4a-3ff24adcd411",
                                            "name": "sdk-for-nodejs_v2_8-20151209-1403"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "3a962319-e7c4-456f-a2a4-b1f356a5d142",
                                "name": "pas-dotnet-helloworld",
                                "usage": [
                                    {
                                        "buildpack": "0a566654-d250-463e-b413-67782482e903",
                                        "cost": 4.265998000402778,
                                        "quantity": 53.72793451388889,
                                        "runtime": {
                                            "id": "0a566654-d250-463e-b413-67782482e903",
                                            "name": "aspnet5-experimental"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "54629864-0e43-488f-bfca-3f9c9d806de6",
                                "name": "pas-mysql-local",
                                "usage": [
                                    {
                                        "buildpack": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                        "cost": 7.498824610083008,
                                        "quantity": 94.44363488769531,
                                        "runtime": {
                                            "id": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                            "name": "java_buildpack"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "59f15702-1c42-444b-a1fb-94fbaf6cb27a",
                                "name": "pas-mobile-web",
                                "usage": [
                                    {
                                        "buildpack": "0154f971-ae72-4882-9695-bda6e31310b7",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "0154f971-ae72-4882-9695-bda6e31310b7",
                                            "name": "liberty-for-java_v2_1-20151006-0912"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "926900dd-ccd7-4442-8f58-413df2bc0237",
                                "name": "pas-mongodb-local",
                                "usage": [
                                    {
                                        "buildpack": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                        "cost": 7.498824610083008,
                                        "quantity": 94.44363488769531,
                                        "runtime": {
                                            "id": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                            "name": "java_buildpack"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "ab5a3278-a1c1-44f6-9113-713a4d800131",
                                "name": "bluemix-apples-springboot",
                                "usage": [
                                    {
                                        "buildpack": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                            "name": "java_buildpack"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "b448fd3a-5350-47d2-820d-7f739a057f22",
                                "name": "pas-SpringBootJARDemo",
                                "usage": [
                                    {
                                        "buildpack": "eb0b11e9-8982-4b93-adcb-7350d0bf2ae4",
                                        "cost": 8.531996000805556,
                                        "quantity": 107.45586902777778,
                                        "runtime": {
                                            "id": "eb0b11e9-8982-4b93-adcb-7350d0bf2ae4",
                                            "name": "liberty-for-java_v2_3-20151208-1311"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },
                            {
                                "id": "b7d3d442-5546-41b4-b5c0-4ef737734e7b",
                                "name": "pas-sb-elastic",
                                "usage": [
                                    {
                                        "buildpack": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                        "cost": 7.498824610083008,
                                        "quantity": 94.44363488769531,
                                        "runtime": {
                                            "id": "dac36860-94be-495a-96f5-d81d79c2ef3f",
                                            "name": "java_buildpack"
                                        },
                                        "unit": "GB-HOURS",
                                        "unitId": "GB_HOURS_PER_MONTH"
                                    }
                                ]
                            },



Categories: Fusion Middleware

Pages

Subscribe to Oracle FAQ aggregator