Feed aggregator

BPM/SOA 12c: Symbolic Filebased MDS in Integrated Weblogic

Darwin IT - Tue, 2016-02-02 05:44
In BPM/SOA projects, we use the MDS all the time, for sharing xsd's and wsdl's between projects.

Since 12cR1 (12.1.3) we have the QuickStart installers for SOA and BPM,  that allows you to create an Integrated Weblogic domain to use for SOASuite and/or BPMSuite.

In most projects we have the contents of the MDS in subversion and of course a check out of that in a local svn working copy.

My whitepaper mentioned in this blog entry describes how you can use the mds in a SOA Suite project from 11g onwards.

But how use the MDS in your integrated weblogic? I would expect that some how 'magically' the integrated weblogic would 'know' of the mds references that I have in the adf-config.xml file in my SOA/BPM Application. But unfortunately it hasn't. That is only used on design/compile time.

Now you could just deploy/sync your MDS to your integrated weblogic as you would do to your test/production server and did on 11g.

But I wouldn't write this blog-entry if I did not find a cool trick: symbolic links, even on Windows.

As denoted by the JDEV_USER_DIR variable your (see also this blog entry), your DefaultDomain would be in 'c:\Data\JDeveloper\SOA\system12.\DefaultDomain' or 'c:\Users\MAG\AppData\Roaming\JDeveloper\system12.\DefaultDomain' (on Windows).

Within the  Domain folder you'll find the following folder structure: 'store\gmds\mds-soa\soa-infra'.
 This is apparently the folder that is used for the MDS for SOA and BPM Suite. Within there you'll find the folders:
  • deployed-composites
  • soa
In there you can create a symbolic link (in Windows a Junctions) named 'apps' and pointing to the folder in your svn working copy that holds the 'oramds://apps'-related content. In Windows this is done like:
C:\...\DefaultDomain\store\gmds\mds-soa\soa-infra>mklink /J apps y:\Generiek\MDS\trunk\SOA\soa-infra\apps
The /J makes it a 'hard symbolic link' or a 'Junction'. Under Linux you woud use 'ln -s ...'.

You'll get a response like:
C:\...\DefaultDomain\store\gmds\mds-soa\soa-infra>Junction created for apps <<===>> y:\Generiek\MDS\trunk\SOA\soa-infra\apps
When you perform a dir you'll see:

Volume in drive C is System
Volume Serial Number is E257-B299

Directory of c:\Data\JDeveloper\SOA\system12.\DefaultDomain\store\gmds\mds-soa\soa-infra

02-02-2016 12:06 <DIR> .
02-02-2016 12:06 <DIR> ..
02-02-2016 12:06 <JUNCTION> apps [y:\Generiek\MDS\trunk\SOA\soa-infra\apps]
02-02-2016 12:07 <DIR> deployed-composites
02-02-2016 11:23 <DIR> soa
0 File(s) 0 bytes
5 Dir(s) 18.475.872.256 bytes free
You can just CD to the apps folder and do a DIR there, it will then list the contents of the svn working copy folder of your MDS but just from within your Default Domain.

Just refire your Integrated Domain's DefaultServer and you should be able to deploy your composites that depend on the MDS.

Pareto Rocks!

Floyd Teter - Mon, 2016-02-01 17:55
I'm a big fan of Vifredo Pareto's work.  He observed the world around him and developed some very simple concepts to explain what he observed.  Pareto was ahead of his time.

Some of Dr. Pareto's work is based on the Pareto Principle:  the idea that 80% of effects come from 20% of causes.  In the real world, we continually see examples of the Pareto Principle.

I've been conducting one of my informal surveys lately...talking to lots of partners, customers and industry analysts about their experiences in implementing SaaS and the way it fits their business.  And I've found that, almost unanimously, the experience falls in line with the Pareto Principle.  Some sources vary the numbers a bit, but it generally plays out as follows:

  • Using the same SaaS footprint, 60% of any SaaS configuration is the same across all industries.  The configuration values and the data values may be different, but the overall scheme is the same.
  • Add another 20% for SaaS customers within the same vertical (healthcare, retail, higher education, public sector, etc.)..
  • Only about 20% of the configuration, business processes, and reporting/business intelligence is unique for the same SaaS footprint in the same industry sector between one customer and another.
Many of the customers I've spoken to in this context immediately place the qualifier: "but our business is different."  And they're right. In fact, for the sake of profitability and survival, their business must be different.  Every business needs differentiators.  But it's different within the scope of that 20% mentioned above.  That other 80% is common with everyone in their business sector.  And, when questioned, most customers agree with that idea.

This is what makes the business processes baked into SaaS so important; any business wants to burn their calories of effort on the differentiators rather than the processes that simply represent "the cost of being in business."  SaaS offers the opportunity to standardize the common 80%, allowing customers to focus their efforts on the unique 20%.  Pareto had it right.

Multisessioning with Python

Gary Myers - Sun, 2016-01-31 00:27
I'll admit that I pretty constantly have at least one window either open into SQL*Plus or at the command line ready to run a deployment script through it. But there's time when it is worth taking a step beyond.

One problem with the architecture of most SQL clients is they connect to a database, send off a SQL statement and do nothing until the database responds back with an answer. That's a great model when it takes no more than a second or two to get the response. It is cumbersome when the statement can take minutes to complete. Complex clients, like SQL Developer, allow the user to have multiple sessions open, even against a single schema if you use "unshared" worksheets. But they don't co-ordinate those sessions in any way.

Recently I needed to run a task in a number of schemas. We're all nicely packaged up and all I needed to do was execute a procedure in each of the schemas and we can do that from a master schema with appropriate grants. However the tasks would take several minutes for each schema, and we had dozens of schemas to process. Running them consecutively in a single stream would have taken many hours and we also didn't want to set them all off at once through the job scheduler due to the workload. Ideally we wanted a few running concurrently, and when one finished another would start. I haven't found an easy way to do that in the database scheduler.

Python, on the other hand, makes it so darn simple.
[Credit to Stackoverflow, of course]

proc connects to the database, executes the procedure (in this demo just setting the client info with a delay so you can see it), and returns.
Strs is a collection of parameters.
pool tells it how many concurrent operation to run. And then it maps the strings to the pool, so A, B and C will start, then as they finish D,E,F and G will be processed as threads become available.

I could my collection was a list of the schema names, and the statement was more like 'begin ' + arg + '.task; end;'


Global variables

db    = 'host:port/service'
user  = 'scott'
pwd   = 'tiger'

def proc(arg):
   con = cx_Oracle.connect(user + '/' + pwd + '@' + db)
   cur = con.cursor()
   cur.execute('begin sys.dbms_application_info.set_client_info(:info); end;',{'info':arg})
import cx_Oracle, time
from multiprocessing.dummy import Pool as ThreadPool 

strs = [
  'A',  'B',  'C',  'D',  'E',  'F',  'G'

# Make the Pool of workers
pool = ThreadPool(3) 
# Pass the elements of the array to the procedure using the pool 
#  In this case no values are returned so the results is a dummy
results = pool.map(proc, strs)
#close the pool and wait for the work to finish 

PS. In this case, I used cx_Oracle as the glue between Python and the database.
The pyOraGeek blog is a good starting point for that.

If/when I get around to blogging again, I'll discuss jaydebeapi / jpype as an alternative. In short, cx_Oracle goes through the OCI client (eg Instant Client) and jaydebeapi takes the JVM / JDBC route.

using powershell’s help system to stash your tips and tricks in ‘about_’ topics

Matt Penny - Sat, 2016-01-30 15:55

There are a bunch of bits of syntax which I struggle to remember.

I’m not always online when I’m using my laptop, but I always have a Powershell window open.

This is a possibly not-best-practice way of using Powershell’s wonderful help system to store bits of reference material.

The problem

I’m moving a WordPress blog to Hugo, which uses Markdown, but I’m struggling to remember the Markdown syntax. It’s not difficult, but I’m getting old and I get confused with Twiki syntax.

In any case this ‘technique’ could be used for anything.

I could equally well just store the content in a big text file, and select-string it….but this is more fun :)

The content

In this instance I only need a few lines as an aide-memoire:

    ## The second largest heading (an <h2> tag)
    > Blockquotes
    *italic* or _italic_
    **bold** or __bold__
    * Item (no spaces before the *) or
    - Item (no spaces before the -)
    1. Item 1
      1. Furthermore, ...
    2. Item 2
    `monospace` (backticks)
    ```` begin/end code block
    [A link!](http://mattypenny.net).
create a module

The module path is given by:


Mine is:

C:\Users\matty\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\

Pick one of this folders to create your module in and do this:

mkdir C:\Users\matty\Documents\WindowsPowerShell\Modules\QuickReference

Then create a dummy Powershell module file in the folder

notepad C:\Users\matty\Documents\WindowsPowerShell\Modules\QuickReference\QuickReference.psm1

The content of the module file is throwaway:

function dummy {write-output "This is a dummy"}
create the help file(s)

Create a language-specific folder for the help files

mkdir C:\Users\matty\Documents\WindowsPowerShell\Modules\QuickReference\en-US\

Edit a file called about_.help.txt

notepad C:\Users\mpenny2\Documents\WindowsPowerShell\Modules\QuickReference\en-US\about_Markdown.help.txt

My content looked like this:


    Syntax for Markdown 


    ## The second largest heading (an <h2> tag)
    > Blockquotes
    *italic* or _italic_
    **bold** or __bold__
    * Item (no spaces before the *) or
    - Item (no spaces before the -)
    1. Item 1
      1. Furthermore, ...
    2. Item 2
    `monospace` (backticks)
    ```` begin/end code block
    [A link!](http://mattypenny.net).
Use the help

I can now do this (I’ll import the module in my $profile):

PS C:\Windows> import-module QuickReference

Then I can access my Markdown help from within Powershelll

PS C:\Windows> help Markdown

    Syntax for Markdown 


    ## The second largest heading (an <h2> tag)
    > Blockquotes
    *italic* or _italic_
    **bold** or __bold__
    * Item (no spaces before the *) or
    - Item (no spaces before the -)
    1. Item 1
      1. Furthermore, ...
    2. Item 2
    `monospace` (backticks)
    ```` begin/end code block
    [A link!](http://mattypenny.net).

Categories: DBA Blogs

Oracle Database 12c Features Now Available on apex.oracle.com

Joel Kallman - Sat, 2016-01-30 06:42
As a lot of people know, apex.oracle.com is the customer evaluation instance of Oracle Application Express (APEX).  It's a place where anyone on the planet can sign up for a workspace and "kick the tires" of APEX.  After a brief signup process, in a matter of minutes you have access to a slice of an Oracle Database, Oracle REST Data Services, and Oracle Application Express, all easily accessed through your Web browser.

apex.oracle.com has been running Oracle Database 12c for a while now.  But a lot of the 12c-specific developer features weren't available, simply because the database initialization parameter COMPATIBLE wasn't set to or higher.  If you've ever tried to use one of these features in SQL on apex.oracle.com, you may have run into the dreaded ORA-00406.  But as of today (January 30, 2016), that's changed.  You can now make full use of the 12c specific features on apex.oracle.com.  Even if you don't care about APEX, you can still sign up on apex.oracle.com and kick the tires of Oracle Database 12c.

What are some things you can do now on apex.oracle.com? You can use IDENTITY columns.  You can generate a default value from a sequence.  You can specify a default value for explicit NULL columns.  And much more.

You might wonder what's taken so long, and let's just say that sometimes it takes a while to move a change like this through the machinery that is Oracle.

P.S.  I've made the request to update MAX_STRING_SIZE to EXTENDED, so you can define column datatypes up to VARCHAR2(32767).  Until this is implemented, you're limited to VARCHAR2(4000).

node-oracledb 1.6.0 is on NPM (Node.js add-on for Oracle Database)

Christopher Jones - Sat, 2016-01-30 06:07
Node-oracledb 1.6.0, the Node.js add-on for Oracle Database, is on NPM.

In this release a comprehensive pull request by Dieter Oberkofler adds support for binding PL/SQL Collection Associative Array (Index-by) types. Strings and numbers can now be bound and passed to and from PL/SQL blocks. Dieter tells us that nowadays he only gets to code for a hobby - keep it up Dieter!

Using PL/SQL Associative Arrays can be a very efficient way of transferring database between an application and the database because it can reduce the number of 'round trips' between the two.

As an example, consider this table and PL/SQL package:

  CREATE TABLE mytab (numcol NUMBER);

    PROCEDURE myinproc(p IN numtype);

    PROCEDURE myinproc(p IN numtype) IS
	INSERT INTO mytab (numcol) VALUES (p(i));

With this schema, the following JavaScript will result in mytab containing five rows:

    "BEGIN mypkg.myinproc(:bv); END;",
      bv: { type : oracledb.NUMBER,
	    dir: oracledb.BIND_IN,
	    val: [1, 2, 23, 4, 10]
    function (err) { . . . });

There is a fuller example in examples/plsqlarray.sql and check out the documentation.

Other changes in node-oracledb 1.6 are

  • @KevinSheedy sent a GitHub Pull Request for the README to help the first time reader have the right pre-requisites and avoid the resulting pitfalls.

  • Fixed a LOB problem causing an uncaught error to be generated.

  • Removed the 'close' event that was being generated for LOB Writables Streams. The Node.js Streams doc specifies it only for Readable Streams.
  • Updated the LOB examples to show connection release.

  • Extended the OS X install section with a way to install on El Capitan that doesn't need root access for Instant Client 11.2. Thanks to @raymondfeng for pointing this out.

  • Added RPATH to the link line when building on OS X in preparation for future client.

TypeScript users will be happy to hear Richard Natal recently had a node-oracledb TypeScript type definition file added to the DefinitelyTyped project. This is not part of node-oracledb itself but Richard later mentioned he found a way it could be incorporated. Hopefully he will submit a pull request and it will make it directly to the project so it can be kept in sync.

Thanks to everyone who has worked on this release and kept the momentum going.

What's coming up for the next release? There is discussion about adding a JavaScript layer. This was kicked off by a pull request from Sagie Gur-Ari which has lead to some work by Oracle's Dan McGhan. See the discussion and let us know what you think. Having this layer could make it quicker and easier for JavaScript coders to contribute node-oracledb and do things like reduce API inconsistency, make it easier to add a promise API in future, and of course provide a place to directly add Sagie's Streaming query result suggestion that started the whole thing.

I know a few contributors have recently submitted the Oracle Contributor Agreement ready to do big and small things - every bit counts. I look forward to being able to incorporate your work.

I've heard a couple of reports that Node LTS 4.2.6 on Windows is having some issues building native add-ons. 0.10, 0.12, 5.x and 4.2.5 don't have issues. Drop me a line if you encounter a problem.

Issues and questions about node-oracledb can be posted on GitHub. We value your input to help prioritize work on the add-on. Drop us a line!

node-oracledb installation instructions are here.

Node-oracledb documentation is here.

What PeopleSoft content was popular in 2015?

Duncan Davies - Thu, 2016-01-28 17:48

The ‘Year in Blogging’ reports have come through so I can see what posts and newsletter items garnered the most views.

PeopleSoft Tipster Blog

So, according to the summary, this blog was visited 130,000 times during the year, an average of ~350/day with the busiest day being just over double that at 749 visitors. About 50% of the traffic is from the US, 15% from India, and 5% from the UK and Canada.

Amazingly, the most viewed post was one written prior to 2015, about PeopleSoft Entity Relationship Diagrams. The most popular post that was actually authored last year was The Future of PeopleSoft video with Marc Weintraub, followed by PeopleSoft and Taleo integration, the Faster Download of PeopleSoft Images and the profile of Graham Smith and how he works.

The PeopleSoft Weekly Newsletter

The PSW newsletter seems to go from strength to strength. During 2015 the subscriber base rose from 919 to 1,104 which is an approx 20% increase. The ‘open rate’ sits around 40% for any one issue (against an industry average of 17%) with the US accounting for 55% of readers, the UK 15% and India 10%.

The top articles in terms of clicks were:

  1. Gartner’s Report on Oracle’s Commitment to PeopleSoft (263 clicks)
  2. Randy ‘Remote PS Admin’ on Forcing Cache Clears (198)
  3. PeopleSoft Planned Features and Enhancements (180)
  4. 5 Life Lessons I Learned at PeopleSoft (167)
  5. Dan Sticka on stopping writing Record Field PeopleCode (166)
  6. Greg Kelly’s Security Checklist from Alliance (155)
  7. Virginia Ebbeck’s list of PeopleSoft Links (145)
  8. Greg Wendt of Grey Heller on the PS Token Vulnerability (142)
  9. Dennis Howlett on the Oracle vs Rimini St court battle (142)
  10. Wade Coombs on PeopleSoft File Attachments (140)
  11. I’m Graham Smith and this is How I Work (139)
  12. Graham’s PeopleSoft Ping Survey (135)
  13. How to write an efficient PeopleCode (134)
  14. Mohit Jain on Tracing in PeopleSoft (131)
  15. The 4 types of PeopleSoft Testing (130)
  16. PS Admin.io on Cobol (127)
  17. Matthew Haavisto on the Cost of PeopleSoft vs SaaS (124)
  18. The PeopleSoft Spotlight Series (119)
  19. Prashant Tyagi on PeopleSoft Single Signon (118)
  20. Adding Watermarks to PeopleSoft Fields (116)



Sending notifications from Oracle Enterprise Manager to VictorOps

Don Seiler - Thu, 2016-01-28 11:55
We use VictorOps for our paging/notification system, and we're pretty happy with it so far. On the DBA team, we've just been using a simple email gateway to send notifications from Oracle Enterprise Manager (EM) to VictorOps. Even then, we can only send the initial notification and not really send an automated recovery without more hacking than its worth. Not a big deal, but would be nice to have some more functionality.

So yesterday I decided I'd just sort it all out since VictorOps has a nice REST API and Enterprise Manager has a nice OS script notification method framework. The initial result can be found on my github: entmgr_to_victorops.sh.

It doesn't do anything fancy, but will handle the messages sent by your notification rules and pass them on to VictorOps. It keys on the incident ID to track which events it is sending follow-up (ie RECOVERY) messages for.

Please do let me know if you have any bugs, requests, suggestions for it.

Many thanks to Sentry Data Systems (my employer) for allowing me to share this code. It isn't mind-blowing stuff but should save you a few hours of banging your head against a wall.
Categories: DBA Blogs

Stinkin' Badges

Scott Spendolini - Thu, 2016-01-28 07:55
Ever since APEX 5, the poor Navigation Bar has taken a back seat to the Navigation Menu. And for good reason, as the Navigation Menu offers a much more intuitive and flexible way to provide site-wide navigation that looks great, is responsive and just plain works. However, the Navigation Bar can and does still serve a purpose. Most application still use it to display the Logout link and perhaps the name of the currently signed on user. Some applications use it to also provide a link to a user's profile or something similar.

Another use for the Navigation Bar is to present simple metrics via badges. You've seen the before: the little red numbered icons that hover in the upper-right corner of an iPhone or Mac application, indicating that there's something that needs attention. Whether you consider them annoying or helpful, truth be told, they are a simple, minimalistic way to convey that something needs attention.

Fortunately, adding a badge to a Navigation Bar entry in the Universal Theme in APEX 5 is tremendously simple. In fact, it's almost too simple! Here's what you need to do:
First, navigate to the Shared Components of your application and select Navigation Bar List. From there, click Desktop Navigation Bar. There will likely only be one entry there: Log Out.

2016 01 28 08 40 05

Click Create List Entry to get started. Give the new entry a List Entry Label and make sure that the sequence number is lower than the Log Out link. This will ensure that your badged item displays to the left of the Log Out link. Optionally add a Target page. Ideally, this will be a modal page that will pop open from any page. This page can show the summary of whatever the badge is conveying. Next, scroll down to the User Defined Attributes section. Enter the value that you want the badge to display in the first (1.) field. Ideally, you should use an Application or Page Item here with this notation: &ITEM_NAME. But for simplicity's sake, it's OK to enter a value outright.
Run your application, and have a look:

2016 01 28 08 48 45

Not bad for almost no work. But we can make it a little better. You can control the color of the badge with a single line of CSS, which can easily be dropped in the CSS section of Theme Roller. Since most badges are red, let's make ours red as well. Run your application and Open Theme Roller and scroll to the bottom of the options. Expand the Custom CSS region and enter the following text:

.t-Button--navBar .t-Button-badge { background-color: red;}

Save your customizations, and note that the badge should now be red:

2016 01 28 08 49 49

Repeat for each metric that you want to display in your Navigation Bar.

Up in the JCS Clouds !!

Tim Dexter - Wed, 2016-01-27 04:05
Hello Friends,

Oracle BI Publisher has been in the cloud for quite sometime ....as a part of Fusion Applications or few other Oracle product offerings. We now announce certification of BI Publisher in the Java Cloud Services!! 

BI Publisher on JCS

Oracle Java Cloud Service (JCS) is a part of the platform service offerings in Oracle Cloud. Powered by Oracle WebLogic Server, it provides a platform on top of Oracle's enterprise-grade cloud infrastructure for developing and deploying new or existing Java EE applications. Check for more details on JCS here. In this page, under "Perform Advanced Tasks" you can find a link to "Leverage your on-premise licenses". This page cites all the products certified for Java Cloud Services and now we can see BI Publisher listed as one of the certified products using Fusion Middleware

How to Install BI Publisher on JCS?

Here are the steps to install BI Publisher on JCS. The certification supports the Virtual Image option only.

Step 1: Create DBaaS Instance

Step 2: Create JCS Instance

To create an Oracle Java Cloud Service instance, use the REST API for Oracle Java Cloud Service. Do not use the Wizard in the GUI. The Wizard does not allow an option to specify the MWHOME partition size, whereas REST API allows us to specify this. The default size created by the Wizard is generally insufficient for BI Publisher deployments.

The detailed instructions to install JCS instance are available in the Oracle By Example Tutorial under "Setting up your environment", "Creating an Oracle Java Cloud Service instance".

Step 3:  Install and Configure BI Publisher

  1. Set up RCU on DBaaS
    • Copy RCU
    • Run RCU
  2. Install BI Publisher in JCS instance
    • Copy BI Installer in JCS instance
    • Run Installer
    • Use Software Only Install
  3. Configure BI Publisher
    • Extend Weblogic Domain
    • Configure Policy Store
    • Configure JMS
    • Configure Security

You can follow the detailed installation instructions as documented in "Oracle By Example" tutorial. 

Minimum Cloud Compute and Storage Requirements:

  1. Oracle Java Cloud Service: 1 OCPU, 7.5 GB Memory, 62 GB Storage
    • To install Weblogic instance
    • To Install BI Publisher
    • To set Temp File Directory in BI Publisher
  2. Oracle Database Cloud Service: 1 OCPU, 7.5 GB Memory, 90 GB Storage
    • To install RCU
    • To use DBaaS as a data source
  3. Oracle IaaS (Compute & Storage): (Optional - Depends on sizing requirements)
    • To Enable Local & Cloud Storage option in DBaaS (Used with Full Tooling option)

So now you can use your on-premise license to host BI Publisher as a standalone on the Java Cloud Services for all your highly formatted, pixel perfect enterprise reports for your cloud based applications. Have a great Day !!

Categories: BI & Warehousing

Adding community based Plugins to the CF CLI Tool

Pas Apicella - Tue, 2016-01-26 17:02
I needed a community based plugin recently and this is how you would add it to your CF CLI interface.

1. Add Community based REPO as shown below

$ cf add-plugin-repo community http://plugins.cfapps.io/

2. Check available plugins from REPO added above

pasapicella@Pas-MacBook-Pro:~/ibm$ cf repo-plugins community
Getting plugins from all repositories ...

Repository: CF-Community
name                      version   description
Download Droplet          1.0.0     Download droplets to your local machine
Firehose Plugin           0.8.0     This plugin allows you to connect to the firehose (CF admins only)
doctor                    1.0.1     doctor scans your deployed applications, routes and services for anomalies and reports any issues found. (CLI v6.7.0+)
manifest-generator        1.0.0     Help you to generate a manifest from 0 (CLI v6.7.0+)
Diego-Enabler             1.0.1     Enable/Disable Diego support for an app (CLI v6.13.0+)

3. Install plugin as shown below

pasapicella@Pas-MacBook-Pro:~/ibm/$ cf install-plugin "Live Stats" -r community

**Attention: Plugins are binaries written by potentially untrusted authors. Install and use plugins at your own risk.**

Do you want to install the plugin Live Stats? (y or n)> y
Looking up 'Live Stats' from repository 'community'
7874156 bytes downloaded...
Installing plugin /var/folders/rj/5r89y5nd6pd4c9hwkbvdp_1w0000gn/T/cf-plugin-stats...
Plugin Live Stats v0.0.0 successfully installed.

4. View plugin commands

pasapicella@Pas-MacBook-Pro:~/ibm/$ cf plugins
Listing Installed Plugins...

Plugin Name       Version   Command Name                                           Command Help
IBM-Containers    0.8.788   ic                                                     IBM Containers plug-in

Live Stats        N/A       live-stats                                             Show browser based stats
active-deploy     0.1.22    active-deploy-service-info                             Reports version information about the CLI and Active Deploy service. It also reports the cloud back ends enabled by the Active Deploy service instance.

Categories: Fusion Middleware

My BIWA Summit Presentations

Tanel Poder - Tue, 2016-01-26 17:01

Here are the two BIWA Summit 2016 presentations I delivered today. The first one is a collection of high level thoughts (and opinions) of mine and the 2nd one is more technical:


NB! If you want to move to the "New World" - offload your data and workloads to Hadoop, without having to re-write your existing applications - check out Gluent. We are making history! ;-)

I’m Dan Iverson and this is how I work

Duncan Davies - Tue, 2016-01-26 16:47

Next up in our ‘How I Work‘ series is Dan Iverson. Dan – together with partner-in-crime Kyle – runs the PSAdmin.io blog. If you’re a PeopleSoft administrator and connected to the Internet then there’s no doubt that you’ll have heard of their blog as they’re really prolific and have posted some great content. Clearly blogging wasn’t enough however, and there is now the PeopleSoft Administrator PodCast which is ~45 minutes of topical awesomeness. I didn’t think it was possible to have an entertaining PodCast on PeopleSoft Administration, but Dan and Kyle manage it!



Name: Dan Iverson

Occupation: Independent PeopleSoft Consultant, co-host of The PeopleSoft Administrator Podcast, and Staff Sergeant/Team Leader with the 147th Army Band.
Location: Minneapolis, MN
Current computer: When I’m at home, my primary machine is a 27” iMac with a second 27” monitor attached. I recently upgraded to 32GB of RAM and can now run 3-4 VM’s at once. When I’m not at my desk, I use a MacBook Pro with 16GB of RAM. Both machines have VMWare Fusion to run Windows (when I have to).
Current mobile devices: iPhone 6, iPad Mini, Apple Watch
I work: Because I enjoy challenges and enterprise software is full of them! I love to help people get through those challenges and want to leave a client better off than when I arrived.

What apps/software/tools can’t you live without?
I’m a Mac guy but PeopleTools doesn’t support Mac OS X so I have to live in the Windows world too. (There was an internal build of App Designer that ran on Mac OS 9, but it never shipped). These are my favorite apps for Windows, OS X and iOS.

For Windows:

  • Beyond Compare – it saves so much time when working with patches, finding file differences, moving configuration between files, etc. It’s easily the first software I install on a new machine.
  • Remote Desktop Connection Manager – working as an admin in a Windows shop means remoting into lots of servers that don’t support SSH. RDCM makes it easier to jump between sessions and save passwords and other settings. It’s a Microsoft product that’s a free download and I’m surprised it’s not included with the Admin tools.
  • Sublime Text – my go-to text editor for Windows and Mac. Sublime Text has a large plug-in community that makes the editor great for all languages. We use Markdown for our wiki at work, and for the blog, so I do most of my writing in Sublime Text because it has great Markdown plug-ins.
  • Password Safe – the only password I need to remember is our master password. There is no need to remember passwords anymore since we keep everything locked down in our safe.
  • SQL Developer – I started using SQL Developer because it was cheaper than Toad, but it has become my favorite Oracle SQL client.
  • Instiki – this is our wiki at work where we document anything PS Admin related. I keep my daily log in the wiki too, so I can reference articles as I document what I work on each day. Instiki is a simple Ruby on Rails-based wiki. It has very few features, but that’s what I like about it.
  • Synergy – a network KVM. It’s cross platform too, so I can use my iMac to control my Macbook Pro and any client laptops I might need all from the iMac’s keyboard and mouse.

For Mac OS X:

  • OmniFocus – I track all of my projects (work and home), tasks, to-do lists, and even passing thoughts in OmniFocus. I (kind of) follow the Getting Things Done methodology (GTD) for managing my daily work, and OmniFocus was built to support GTD. There is a great iPhone app for OmniFocus too. Anytime I have a thought I write it down and deal with it in OmniFocus.
  • iTerm – my default terminal on the Mac. I have a shortcut (Cntl-Optn-Space) mapped to the window so I can open a command line window anywhere I’m working.
  • VMWare Fusion – my main VM platform on my Macs. I use VMWare to run all my Windows VM’s and love it. I also use VirtualBox, but only when I run a PUM Image. With PeopleTools 8.55, Oracle will support other VM platforms for the Images so I plan on moving those to VMWare Fusion in the future.
  • Evernote – any non-client documentation, files, notes, etc are logged in Evernote. We use a shared Evernote notebook to plan the podcast episodes.
  • Dropbox – it just works. Any files that I want stored on more than 1 computer are put in Dropbox. Simple as that.
  • Slack – great for communicating with a team. For me, it has replaced Lync/Skype for IM but also has great team chat capabilities.
  • Sublime Text – same as the Windows app. It’s a great text editor.
  • Synergy – it’s worth mentioning twice.

For my iPhone:

  • OmniFocus and Evernote – synced with my Macs
  • TweetBot – a great Twitter client
  • Overcast – for listening to podcasts
  • Apple Music – made the switch from Spotify, but both services have a great selection of music
  • Instapaper – to read articles that I find but don’t have time to read during the day

Besides your phone and computer, what gadget can’t you live without?
A pair of headphones. I listen to music when I’m working and podcasts when I’m driving, mowing the yard or working out. When I’m at my desk, I have a set of Bose QC15’s. They are comfortable, have good sound and I like the noise cancellation. When I’m not at my desk, I use JayBird BlueBuds X wireless bluetooth headphones.

What’s your workspace like?
Currently, I am working from home (love it) and have a nice view of the yard from the office. I have an iMac and 2nd monitor on the desk. I run my Windows VM on the right monitor (an OS X workspace) and use the left monitor for Mac apps. I use the workspaces features on OS X to keep my apps logically organized. For example, Evernote and OmniFocus share a workspace, Mail and Slack in a workspace, and Safari or Chome in a 3rd.


I had a treadmill desk and absolutely loved it, but we recently moved and haven’t set it up yet. It took about a day to get used to walking (about 1.2-1.5 miles per hour) and typing/mousing. Now that I’m working from home again it’s probably time to set it up. When I used the treadmill desk daily, I felt great and lost 20 pounds!

Working from home has so many advantages, but there are challenges. Staying in communication with coworkers is the biggest challenge; you have to work hard at communicating. The tech team adopted Slack during the last upgrade. Slack became our “water cooler” for everyone. All of our conversations happened on Slack. And since Slack saves past conversations, you could go back and catch up on the day’s discussions so you didn’t feel out of the loop. Even when people were in the office we’d still use Slack instead of popping into people’s cubes.

What do you listen to while you work?
I like most musical styles (except for country). I really enjoy the Interstellar, Dark Knight, and other Hans Zimmer soundtracks. Movie and video game soundtracks are great for helping me focus. I might listen to Emimen if I’m working late, and you can also catch me listening to Sonny Rollins or Maynard Ferguson too.

What PeopleSoft-related productivity apps do you use?
These are my favorites:

  • TraceMagic – it helps you dig into trace files and is free from Oracle
  • Trace2SQL – it takes a trace file with SQL and creates a runnable .sql file with the parameters populated from the trace
  • SQL Developer
  • Password Safe

I keep a larger list updated on psadmin.io.

Do you have a 2-line tip that some others might not know?
Don’t be afraid to say “I don’t know”. It’s okay to not have an answer, but use that opportunity to learn something new and come back with an answer.

What SQL/Code do you find yourself writing most often?
select * from PS_PTSF_DEPLOY_OBJ;
followed by
delete from PS_PTSF_DEPLOY_OBJ where …;
(That’s SQL to find and delete deployed objects in the Search Framework tables.)

What would be the one item you’d add to PeopleSoft if you could?
Puppet support is coming to 8.55, so that takes care of one wish list item. The next change I’d like to see is an easier way to share code and projects. Currently, you have to copy/paste code to sites like GitHub. It’s hard to share projects/code using the current project format without manual intervention.

I would also love to see an option to export PeopleCode to a text file and use a YAML-type file to define component, record, AE, et al, objects. That would still describe the structure of PeopleTools objects but support common version control tools like Git and Mercurial (and GitHub too). There are many opportunities to share common modifications or bolt-on’s and using sites like GitHub to share the code would only benefit the PeopleSoft development community.

What everyday thing are you better at than anyone else?
I can solve a Rubik’s Cube under 2 minutes while holding a conversation. I also play the trombone in a US Army Band.

What’s the best advice you’ve ever received?
Focus on doing good work and everything else will follow.

Is Oracle Application Express Secure?

Joel Kallman - Tue, 2016-01-26 08:47
Is Oracle Application Express secure?  That's the question I received today, from the customer of a partner.  The customer asked:
"Do you know if Oracle or a third-party has verified how secure APEX is against threats or vulnerabilities? It would be nice to have something published saying how secure APEX is and how it’s never been compromised."Now I imagine smart people like David Litchfield or Pete Finnigan or Alexander Kornbrust would hope that I say something daft here.  But that's not going to happen.  As I replied to the partner:

Sorry, but this doesn't make sense, and for a couple reasons:

  1. There have been published security vulnerabilities in Application Express in the Oracle Critical Patch Update, and they have been fixed in subsequent releases of APEX.  It is incorrect to say that there have never been bugs in APEX itself.  Here's an example:  http://www.oracle.com/technetwork/topics/security/cpujul2015-2367936.html
  2. Secondly, even if APEX never had any security bugs in its existence, if someone built an APEX application which is susceptible to SQL Injection or cross site scripting, does that mean that APEX was compromised?
The request of this customer isn't practical for any piece of software.  If something has never been compromised, does that mean its secure?  If I find no bugs in an application written by your company, does that mean it's bug-free?

I can offer you the following:

  1. APEX 5.0.3 is the most secure version of APEX in our history.
  2. APEX 5.0.3 has more security features than any release of APEX in our history.
  3. We are never permitted to release any version of APEX with known security vulnerabilities, whether they are internally or externally filed.
  4. We routinely scan APEX itself for security vulnerabilities across a variety of threats, and do this for multiple times in a release cycle
  5. Oracle Database Cloud Schema Service runs APEX, and has endured yet another set of multiple rounds of Cloud Security testing.
  6. The Oracle Store runs APEX.
  7. APEX is used in countless military agencies and classified agencies around the globe.
  8. Even inside of Oracle, IT hosts an instance of APEX used by practically every line of business in the company, and it's cleared for the most strict information classification inside of Oracle.
  9. APEX is even used in the security products from Oracle, including Oracle Audit Vault & Database Firewall, Oracle Key Vault and Oracle Real Application Security.
There is security of APEX, and then there is security of the application you've written.  You can assess the security of an application via tools.  One of the best tools on the market is ApexSec from Recx Ltd., which we use internally for APEX applications, is used internally by the security assessment teams at Oracle for other APEX applications, and is used by numerous military and other classified agencies.

Free SQL Webinar by Oracle ACE Kim Berg Hansen

Gerger Consulting - Tue, 2016-01-26 06:55
Join us on February 23 at 14:00 CET (07:00 EST) with our guest host Oracle ACE Kim Berg Hansen presenting “Use Cases of Row Pattern Matching in Oracle 12c”

In this month’s free webinar, you’ll learn how you can use Oracle’s pattern recognition features to gain actionable insights from your organization’s or client’s data.

Let’s hear from Kim why you should attend this webinar:

In recent years, pattern recognition has been a very hot topic in business intelligence. Being able to use SQL for pattern recognition is one of the must-have skills if you are working in the BI field. At ProHuddle, we’ll continue to study pattern recognition with more webinars in the upcoming months.
Categories: Development

Car Logos

iAdvise - Mon, 2016-01-25 21:02
Symbols and elaborate images for car logos can be confusing. So many famous brands use the same animals or intricate images that may seem appealing at first but are actually so similar to each other that you can't tell one company apart from the other unless you're really an expert in the field.

How many auto brands do you know that have used a jungle cat or a horse or a hawk's wings in their trademark?

There're just too many to count.

So how can you create a design for your automobile company that is easy to remember and also sets you apart from the crowd?

Why not use your corporation name in the business mark?

How many of us confuse the Honda trademark with Hyundai's or Mini's with Bentley's?

But that won't happen if your car logos and names are the same.

Remember the Ford and BMW's business image or MG's and Nissan's? The only characteristic that makes them easier to remember is their company name in their brand mark.

Car LogosCar LogosCar LogosCar LogosCar LogosCar LogosCar LogosCar Logos

But it's not really that easy to design a trademark with the corporation name. Since the only things that can make your car brand mark appealing are the fonts and colors, you need to make sure that you use the right ones to make your logo distinct and easy to remember.

What colors to use?

When using the corporation name in trademark, the rule is very simple. Use one solid color for the text and one solid color for the background. Text in silver color with a red or a dark blue background looks appealing but you can experiment with different colors as well. You can also use white colored text on a dark green background which will make your design identifiable from afar. Don't be afraid to use bright colored background but make sure you use the text color that complements the background instead of contrasting with it.

What kind of fonts to use?

Straight and big fonts may be easier to read from a distance but the font style that looks intricate and appealing to the customers and give your design a classic look are the curvier fonts. But make sure that the text is not too curvy that it loses its readability. You can even use the Times Roman font in italic effect or use some other professional font style with curvy effect to make sure that the text is readable and rounded at the same time.

Remember the ford logo? It may just be white text on a red background, but it's the curvy font style that sets it apart from the rest. Remember the Ford business mark or the smart car logo?

What shapes to use?

The vehicle business image has to be enclosed in a shape, of course. The shape that is most commonly used is a circle. You can use an oval, a loose square or even the superman diamond shape to enclose your design. But make sure that your chosen shape does not have too many sides that make the mark complicated.

The whole idea of a car corporation mark is to make it easily memorable and recognizable along with making it a classic. Using the above mentioned ideas can certainly do that for your trademark.

Beverly Houston works as a Senior Design Consultant at a Professional Logo Design Company. For more information on car logos and names find her competitive rates at Logo Design Consultant.
Categories: APPS Blogs

Kafka and more

DBMS2 - Mon, 2016-01-25 05:28

In a companion introduction to Kafka post, I observed that Kafka at its core is remarkably simple. Confluent offers a marchitecture diagram that illustrates what else is on offer, about which I’ll note:

  • The red boxes — “Ops Dashboard” and “Data Flow Audit” — are the initial closed-source part. No surprise that they sound like management tools; that’s the traditional place for closed source add-ons to start.
  • “Schema Management”
    • Is used to define fields and so on.
    • Is not equivalent to what is ordinarily meant by schema validation, in that …
    • … it allows schemas to change, but puts constraints on which changes are allowed.
    • Is done in plug-ins that live with the producer or consumer of data.
    • Is based on the Hadoop-oriented file format Avro.

Kafka offers little in the way of analytic data transformation and the like. Hence, it’s commonly used with companion products. 

  • Per Confluent/Kafka honcho Jay Kreps, the companion is generally Spark Streaming, Storm or Samza, in declining order of popularity, with Samza running a distant third.
  • Jay estimates that there’s such a companion product at around 50% of Kafka installations.
  • Conversely, Jay estimates that around 80% of Spark Streaming, Storm or Samza users also use Kafka. On the one hand, that sounds high to me; on the other, I can’t quickly name a counterexample, unless Storm originator Twitter is one such.
  • Jay’s views on the Storm/Spark comparison include:
    • Storm is more mature than Spark Streaming, which makes sense given their histories.
    • Storm’s distributed processing capabilities are more questionable than Spark Streaming’s.
    • Spark Streaming is generally used by folks in the heavily overlapping categories of:
      • Spark users.
      • Analytics types.
      • People who need to share stuff between the batch and stream processing worlds.
    • Storm is generally used by people coding up more operational apps.

If we recognize that Jay’s interests are obviously streaming-centric, this distinction maps pretty well to the three use cases Cloudera recently called out.

Complicating this discussion further is Confluent 2.1, which is expected late this quarter. Confluent 2.1 will include, among other things, a stream processing layer that works differently from any of the alternatives I cited, in that:

  • It’s a library running in client applications that can interrogate the core Kafka server, rather than …
  • … a separate thing running on a separate cluster.

The library will do joins, aggregations and so on, and while relying on core Kafka for information about process health and the like. Jay sees this as more of a competitor to Storm in operational use cases than to Spark Streaming in analytic ones.

We didn’t discuss other Confluent 2.1 features much, and frankly they all sounded to me like items from the “You mean you didn’t have that already??” list any young product has.

Related links

Categories: Other

ServletContextAware Controller class with Spring

Pas Apicella - Mon, 2016-01-25 03:55
I rarely need to save state within the Servlet Context via an application scope, but recently I did and here is what your controller class would look like to get access to the ServletConext with Spring. I was using Spring Boot 1.3.2.RELEASE.

In short you implement the "org.springframework.web.context.ServletContextAware" interface as shown below. In this example we retrieve an application scope attribute.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.json.JsonParser;
import org.springframework.boot.json.JsonParserFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.ServletContextAware;

import javax.servlet.ServletContext;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class CommentatorController implements ServletContextAware
private static final Logger log = LoggerFactory.getLogger(CommentatorController.class);
private static final JsonParser parser = JsonParserFactory.getJsonParser();

private ServletContext context;

public void setServletContext(ServletContext servletContext)
this.context = servletContext;

@RequestMapping(value="/", method = RequestMethod.GET)
public String listTeams (Model model)
String jsonString = (String) context.getAttribute("riderData");
List<Rider> riders = new ArrayList<>();

if (jsonString != null)
if (jsonString.trim().length() != 0)
Map<String, Object> jsonMap = parser.parseMap(jsonString);
List<Object> riderList = (List<Object>) jsonMap.get("Riders");

for (Object rider: riderList)
Map m = (Map) rider;
new Rider((String)m.get("RiderId"),

//log.info("Riders = " + riders.size());
model.addAttribute("ridercount", riders.size());
model.addAttribute("ridercount", 0);

model.addAttribute("riders", riders);

return "commentator";

Categories: Fusion Middleware

Packt - Time to learn Oracle and Linux

Surachart Opun - Sat, 2016-01-23 00:01
What is your resolution for learning? Learn Oracle, Learn Linux or both. It' s a good news for people who are interested in improving Oracle and Linux skills. Packt Promotional (discount of 50%) for eBooks & videos from today until 23rd Feb, 2016. 

 XM6lxr0 for Oracle

 ILYTW for Linux
Categories: DBA Blogs

Formatting a Download Link

Scott Spendolini - Fri, 2016-01-22 14:38
Providing file upload and download capabilities has been native functionality in APEX for a couple major releases now. In 5.0, it's even more streamlined and 100% declarative.
In the interest of saving screen real estate, I wanted to represent the download link in an IR with an icon - specifically fa-download. This is a simple task to achieve - edit the column and set the Download Text to this:
<i class="fa fa-lg fa-download"></i>
The fa-lg will make the icon a bit larger, and is not required. Now, instead of a "download" link, you'll see the icon rendered in each row. Clicking on the icon will download the corresponding file. However, when you hover over the icon, instead of getting the standard text, it displays this:
2016 01 13 16 28 16
Clearly not optimal, and very uninformative. Let's fix this with a quick Dynamic Action. I placed mine on the global page, as this application has several places where it can download files. You can do the same or simply put on the page that needs it.
The Dynamic Action will fire on Page Load, and has one true action - a small JavaScript snippet:
$(".fa-download").prop('title','Download File');
This will find any instance of fa-download and replace the title with the text "Download File":
2016 01 13 16 28 43
If you're using a different icon for your download, or want it to say something different, then be sure to alter the code accordingly.


Subscribe to Oracle FAQ aggregator