Feed aggregator

Servicebus Overview diagrams in 12cR2 not opened for upgraded services

Darwin IT - Wed, 2016-06-15 09:24
In ServiceBus 12c you get a 'composite'-alike service overview for your project. It shows you how the proxy services (like Exposed Services in SOASuite) via pipelines are 'wired'to business services (like Referenced Services). This is nice!

If you upgrade a project from 11g or 12cR1 (12.1.3) to 12cR2 (12.2.1) this fails. Initially you might see a (correct) diagram, but after restarting JDeveloper this is empty. You'll get a Class cast exception:
java.lang.ClassCastException: oracle.tip.tools.ide.fabric.addin.CompositeNode cannot be cast to oracle.sb.tooling.ide.sca.internal.sca.SbCompositeNode
at
oracle.sb.tooling.ide.sca.internal.sync.CompositeEditorListener.editorOpened(CompositeEditorListener.java:72)

Also after opening a earlier upgraded project, OSB diagrams fail to open and instead generate this java.lang.ClassCastException.
I search on support.oracle.com  and found this document: 'Unable to open OSB Diagrams upgraded from 12.1.3 to 12.2.1 (Doc ID 2124208.1)'
It refers to the patch:
  • 22226040: java.lang.NullPointer for XQuery File ver 1.0 in JDEV 12.2.1 OSB Proj
 Apply this patch (for instance via my patch script in my previous article). The document suggests to backup and remove the user-data folder of your JDeveloper QuickStart installation. I found that not necessary. But you do need to re-import the projects from the earlier versions. I would empty the .data folders on application and project levels before starting JDeveloper again. Then delete the upgraded projects and reimport them again. Now after restarting JDeveloper the overviews should remain.

Cloud UX RDK Hits #AMIS25: Multiplying that #PaaS4SaaS Message

Usable Apps - Wed, 2016-06-15 07:55

We were invited. We just had to go. It would be rude not to. Okay, okay, it was business!

I’m talking about the Oracle Applications User Experience Cloud User Experience Rapid Development Kit outbound crew (yours truly and Senior User Experience Architect, Lancy Silveira [@lancys]) taking our PaaS4SaaS enablement story live to the AMIS Beyond the Horizon Oracle Conference in the Netherlands in June 2016.

RDK Runway Approaches

The conference was an immersive Oracle experience. On the occasion of AMIS’s 25th anniversary, the event was a fitting showcase of AMIS’s expertise and experience and a great platform for the entire Oracle community to share a wide range of technology topics: user experience (UX) and UI development, SOA, integrations and APIs, database platform and development, business and IT agility, continuous delivery, DevOps, and, of course, all things Oracle Cloud.

And, what an awesome location for the conference: Hangaar 2 on the former naval military air base at Valkenburg in Katwijk, in the Netherlands!

Valkenburg Naval Airbase

They weren’t kidding. Vintage scenes from the old Valkenburg naval air base.

The Oracle Applications User Experience (OAUX) presence also included a general session by OAUX Group Vice President Jeremy Ashley (@jrwashley) on Oracle Applications User Experience: Trends and Strategy and other team contributions and demos on the Smart Office, Developer Experience, and Virtual Reality research. The OAUX turnout represented a powerful commitment to this important event.

RDK Roadsters and Rockstars

Our Cloud UX RDK was demoed over two days at AMIS 25 and generated lively interaction and interesting exchanges around the demo station. We also delivered a deep-dive presentation to explain the RDK business proposition and how to use the RDK to accelerate the delivery of must-have simplified UIs for SaaS extensions and PaaS apps.

Lancy Silveira demos the Cloud UX RDK

Lancy Silveira demos the Cloud UX RDK in our AMIS25 deep-dive session.

Our live dive explored the RDK’s UX design patterns eBook, the sketching tools, the AppsCloudUIKit software that includes exemplar SaaS flows and typical PaaS integrations. We pointed out how easy it is to integrate the richness of web services and relayed the success of our partners such as Profource and Knex Technology in using the RDK.

We also revealed our RDK roadmap for what is now an important part of OAUX strategy (suffice to say, there will be more enhancements and RDKs). I was also delighted that some of our OTN ACE Director friends even used our initial RDK in the OTN Developer Challenge at the event!

So, Why Go?

The RDK’s presence at the AMIS 25 event answers the question as to “why do we go to these events?”

Being there affords us a key opportunity to multiply our message by reaching influential ears and eyes that will spread the word about our PaaS4SaaS enablement. AMIS 25 packed a mighty punch in terms of audience caliber: key thought-leaders and C-level execs driving Oracle and partner business; innovators keen to be ahead of the competition; Oracle developer and technology community leaders, the business hungry and the technology savvy, all those the key movers and shakers who “get” why UX is now so critical in the cloud. The "big gun" multiplication factor was high at AMIS 25.

Ultan O'Broin and Jeremy Ashley do the numbers at AMIS25

(L-r) OAUX Senior Director, Ultan O’Broin (@ultan) and Jeremy Ashley crunch those multiplier numbers in an onsite debrief.

Attending these kinds of events also gives you a chance to communicate real and honest feedback on the RDK to us, to advise us on opportunities, to get our answers to technical and UX issues, and to contribute insight that turns into enhancements for the RDK and shape our roadmap.

So, we were excited to spend quality time with global influencers from both sides of the firewall such as Timo Hahn (@tompeez), Sten Vesterli (@stenvesterli), Debra Lilley (@debralilley), Steven Davelaar (@stevendavelaar), Bruno Borges (@brunoborges), Luc Bors (@lucb_), Lonneke Dikmans (@lonnekedikmans), Plinio Arbizu (@oramexico), Lucas Jellema (@lucasjellema), and many more.

Explore and Enhance

In fact, our enablement program with partners resulted in the latest Cloud UX enhancement: a headless mode switch for Cloud UX RDK page templates that will especially appeal to PaaS custom UI app developers. It’s now available on GitHub and OTN.

 Universal Global Header switch in Cloud UX RDK

Before and after: Headless mode home page switch in the Cloud UX RDK

If you have other RDK suggestions or want to meet us in person, then watch out for our next live hands-on appearance using the Usable Apps website events page, or stay in touch through the usual online channels.

Why not explore the latest RDK and how to use it on the Build a Simplified UI page on the Usable Apps website yourself? We’d love to hear from you and see a customer and partner success story emerge from it!

Many thanks to AMIS for a super event. The bar clearly has been raised – right over the horizon.

Hangaar 2 panorama

Over the horizon panoramic view of Hangaar 2. Phew!

More Information

Cloud UX RDK Enhancement for PaaS4SaaS: Headless Page Mode Switch

Usable Apps - Wed, 2016-06-15 07:17

Listen up Oracle Cloud UX Rapid Development Kit (RDK) and PaaS4SaaS fans!

Available now, the Cloud UX RDK offers a headless mode switch for the AppsCloudUIKit Oracle ADF page templates. The mode turns off the Unified Global Header you’ll be familiar with from SaaS.

The headless mode is invoked by passing the headless=yes parameter in the endpoint URL for application. For example:

Headless mode switch

This is a reusable solution for cases where pages are embedded inside SaaS and make call outs to PaaS, so it’s ideal for your custom simplified UI solutions.

SaaS Unified Global Header

Unified Global Header (SaaS)

PaaS Headless Page

Headless mode à la PaaS

If you are building a use case that includes a flow for PaaS-only users, this headless mode provides them with a slick user experience without the global header (note that this switch does not turn off the filmstrip icons).

How did this enhancement come about? Well, it was a reusable partner requirement that resulted from our Profource event in particular. It doesn't take long for useful partner RDK enhancements to become mainstream. 

See the readme file that comes with the AppsCloudUIKit part of the RDK on Oracle Technology Network and GitHub for more information.

Automatic Patching of SOA/BPM QuickStarts

Darwin IT - Wed, 2016-06-15 06:14
Earlier I wrote how to automatically install the SOA/BPM QuickStarts. Actually, I'm quite busy with doing automatic/scripted installs for SOA/BPM Suite and OSB, as you might have read.

At my current customer we encountered that in the last months there are many one-off-patches released on support.oracle.com. We selected a pretty large bunch of patches and apply them one by one is a tedious job. But the thing is with these automatic installs that you want to have a uniform installation for each developer so each developer should have the same patches installed, in the same location. And you probably want to be able to quickly do a re-install to a uniform setup.

So I figured out how to do a silent install of the patches and to do this in a loop.

Out of the selected patches I found 5 catechories:
  • 001: JDeveloper patches, where only a few we found possibly applicable for the SOA/BPM QuickStarts
  • 002: ServiceBus related patches
  • 003: SOA Suite merged patches
  • 004: SOA Suite related other patches
  • 005: BPM Suite merged patches
  • 006: BPM Suite related patches
So I divided the patches in those 5 folders ('001', '002', ... , '005'). And I numbered them in 3 digit folders, since my scripting needed to figure out the patch number from the path name. Each patch is a zip with a sub-folder with only the patch number (without the 'p'). So the path-lengths needed to be equal (so not 'jdev' and 'soa' or 'osb').

I have one main script called 'installQSPatches.bat' that loops over the files in each sub-folder:
@echo off
rem check SOA12.2 QS
setlocal
set FMW_HOME=C:\oracle\JDeveloper\12210_BPMQS
set ORACLE_HOME=%FMW_HOME%
set SOA_PATCH_SOURCE=SOA
set SOA_PATCH_HOME=%FMW_HOME%\Opatch\patches
set CUR_DIR=%~dp0
echo Current Dir: %CUR_DIR%
if exist "%FMW_HOME%" goto :SOAQS_HOME_EXISTS
echo %FMW_HOME% not installed yet! Install first!
goto :DONE
:SOAQS_HOME_EXISTS
echo %FMW_HOME% exists, install Patches
echo ____________________________________________________
call %FMW_HOME%\wlserver\server\bin\setWLSEnv.cmd
echo ____________________________________________________
:JDEV_PATCHES
echo -
echo JDeveloper Patches
echo ____________________________________________________
for %%f in (001\*.zip) do (
echo %%f
call applyPatch %%f
)
:SB_PATCHES
echo -
echo ServiceBus Patches
echo ____________________________________________________
for %%f in (002\*.zip) do (
echo %%f
call applyPatch %%f
)
:SOA_MERGE_PATCHES
echo -
echo SOA Suite Merged Patches
echo ____________________________________________________
for %%f in (003\*.zip) do (
echo %%f
call applyPatch %%f
)
:SOA_PATCHES
echo -
echo SOA Suite Patches
echo ____________________________________________________
for %%f in (004\*.zip) do (
echo %%f
call applyPatch %%f
)
:BPM_MERGE_PATCHES
echo -
echo BPM Suite Merged Patches
echo ____________________________________________________
for %%f in (005\*.zip) do (
echo %%f
call applyPatch %%f
)
:BPM_PATCHES
echo -
echo BPM Suite Patches
echo ____________________________________________________
for %%f in (006\*.zip) do (
echo %%f
call applyPatch %%f
)
:DONE
echo Done installing patches
endlocal
You need to shutdown JDeveloper and IntegratedWeblogic before starting this script.
And it needs to be started in an elevated (as Administrator) command window.
 
For each patch it calls the applyPatch.bat script:
set PATCH=%1
set PATCH_NR=%PATCH:~5,8%
echo ____________________________________________________
echo Check Patch %PATCH% for patch nr %PATCH_NR%
if exist "%FMW_HOME%\Opatch\patches\%PATCH_NR%" goto :PATCH_EXISTS
echo "%FMW_HOME%\Opatch\patches\%PATCH_NR%" does not exist.
set SOA_PATCH_HOME=%FMW_HOME%\Opatch\patches
rem set SOA_PATCH_HOME=c:\temp\patches
echo .. Unzip %SOA_PATCH_SOURCE%\%PATCH% to %SOA_PATCH_HOME%
call ant -f ant-zip.xml unzip -Dzip-file=%PATCH% -Dunzip-destination=%SOA_PATCH_HOME%
cd %ORACLE_HOME%\Opatch\patches\%PATCH_NR%
echo .. Apply %ORACLE_HOME%\Opatch\patches\%PATCH_NR%
call %ORACLE_HOME%\Opatch\opatch apply -silent
cd %CUR_DIR%
goto :DONE
:PATCH_EXISTS
echo Patch %PATCH_NR% already exits!
:DONE
echo Done for patch %PATCH_NR%
echo ____________________________________________________

This one figures out what the patchnumber (%PATCH_NR%) is based on the patch-file-name, and if that patch already exists in the %FMW_HOME%/Opatch/patches folder. If not it will unzip the patch file to that folder, resulting in a sub-folder named with the patch number. Then it will apply the patch using Opatch in silent mode.
For the unzip, it uses a simple ANT build file, since the Windows Command screen does not support a commandline-unzip (as far as I could find). The ANT script is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<project name="zip" default="zip" basedir=".">

<target name="zip">
<zip destfile="${zip-file}.zip" basedir="${folder-to-zip}" excludes="dont*.*" />
</target>

<target name="unzip">
<unzip src="${zip-file}" dest="${unzip-destination}" />
</target>

</project>

When I finished this I thought I should convert it to a complete ANT script. But maybe later.

The selected patches for 12.2.1:
The selected JDeveloper patches (sub-folder 001) were:
  • 22283405    JDEV 12.2.1 - NULLPOINTEREXCEPTION ENCOUNTERED (Patch)
  • 23266774    VALIDATION ERRORS WHEN CLICKING ON MANDATORY FIELDS IN JDEV12.2.1 (Patch)
  • 22463346    NOT STRESS SOA: MULTIPLE ERROR MESSAGES OF DEFINITIONMANAGER.LOCKINGLOGGER (Patch)
  • 21890657    CREATE REST THROWS ERROR 500 FOR REFERENCED ENTITY (Patch)
These are not all the possible JDeveloper patches and even may not apply to developing SOA/BPM or SB processes or services.

The selected Service Bus patches (sub-folder 002) were:
  • 23223332 Need to provide a holistic solution in main line for Bug 22887808
  • 21824551 NPE while trying to read OWSM keystore
  • 21168191 UnsupportedOperationException from ServiceAccountRuntimeCache
  • 23184618 Http Transport throws NullPointerException
  • 21827583 Deploying existing .sbar with Maven
  • 22738111 OSB Java Call out method's not visible from JDeveloper
  • 20119834 need to trim headers size if size exceeds 998 characters.
  • 22358699 OSB12C fn-bea:inlinedXML does not work properly
  • 22374613 In 12.2.1 the OSB Projet pom files still says 12.1.3
  • 20196110 JDev OSB Extension has missed export Split-Join and Proxy Flow as png
  • 22187224 OSB 12.2.1 - MessageID changes between request and response messages
  • 22392646 Maven could not be used in Jdev in 12.2.1.0.0
  • 22602059 12C: OSB pipeline based on XML - $body structure incomplete - missing node
  • 22276364 12C: OSB pipeline based on XML - $body structure unavailable
  • 21659900 OSB removes WSA headers on outbound request 
 The selected SOA Suite merged patches (sub-folder 003) were:
  • 23543517 MERGE REQUEST ON TOP OF 12.2.1.0.0 FOR BUGS 23527297 22875806 22995356 23062804
  • 23138916 MERGE REQUEST ON TOP OF 12.2.1.0.0 FOR BUGS 21549249 21572567
  • 23106839 MERGE REQUEST ON TOP OF 12.2.1.0.0 FOR BUGS 21826430 22912570
  • 23134140 Diagnostic Tracking Bug for Bug 23108573 v2
The selected SOA Suite regular patches (sub-folder 004) were:
  • 23056585 XQuery transformation is not showing all the types of XSD in the design view
  • 21904101 Error when running ValidateComposite to project with bpel calling HWF
  • 23205706 MALFORMEDURLEXCEPTION EXCEPTION ON JDEV 12.2.1.0.0 - BAM 12C IDE CONNECTION
  • 23193066 BPEL polls from UMS Adapter results in too large CONVERSATION_ID error
  • 21698320 SELECTING ELEMENT IN LARGE DOCUMENT TAKES FREEZES 2+MINUTES
  • 23108573 TrackingContextProperty causes ClassCastException in SOA 12c Spring Composite
  • 21925552 SOA Maven Plugin requires deploying sar to server when running mvn install
  • 23186275 JDeveloper 12.2.1 JMS Adapter not displaying Elements from the imported xsd file
  • 22337707 Naming conflict with EDN event subscribers from single Mediator component
  • 23052343 16.2.3 : WS JOB REQUEST ENDS UP IN ERROR STATE WHEN INVOKED VIA OTD URL
  • 22026475 JDEV : Adapter : Nullpointerexception while creating the BPEL Process
  • 22815366 Unable to use WSDL containing an unsupported Notification Operation portType
  • 22978098 Indicators configured on Response payload coming from a DB ADapter do not work
  • 21835972 SFTP FileListing not work as expected. Need similiar bug fix as in bug 21176154
  • 22648699 SOA Suite12.2.1-JCA files not getting updated with Configuration Plan values
  • 22300448 JDeveloper doesn't add a libraries file group to existing SOA deployment profile
  • 16548396 Can not emulate fault from the SOA Test UI
Of these the patches 21925552 conflicts with 21904101 and 23193066 conflicts with 23108573. So you should choose which one you want to apply.

For BPM (sub-folder 005) the following merged patches were selected:
  • 22571194 NPE in o.bpm.project.sca.loader.impl.ElementContainer:82
  • 23283093 NPE in o.bpm.project.sca.loader.impl.ElementContainer:198
For BPM (sub-folder 006) the following patches were selected:
  • 22191778 In the Business Architecture Modeling links section, buttons are missing
  • 21325503 12c compilation err-crm: oracle.bpm.services : extncontentpublicmodeleventaction
  • 22736087 BPM Workspace not refreshing the task list after Initiator task page is closed
  • 22018713 MeasurementPublisher has been optimized
  • Software 22217468 Refresh is not working properly in Impact Analysis Report - 500 error
  • 22018703 MIAuditLog has been optimized
  • 22690780 workspace Title & logo unchanged on loginpage after patch 22272135
  • 19536412 Case Service handles namespaces incorrectly in SOAP XML messages
  • 22348182 EDG RC3a :Task comments cannot be added
  • 22087208 When approving a task it immediately opens the next task in your tasklist
  • 22753983 12c e-manager authorization issues - List view
  • 22111729 BPM instance is not released after completing an HT ith the voting patern
  • 22581888 Configure global option to enable task details to appear as pop-up window in 12c
  • 23077279 Composer crash when creating Org Unit or Application system for human task
  • 23125361 REST hrefs for attachments containing spaces in their names do not work.
  • 23205514 Flexfields not properly displayed in parallel task with SDO
  • 23301503 weblogic user or Administrator group shouldn't be necessary to login to composer
  • 23491602 Studio generated project_properties.wsdl missing the correlation mapping
  • 21792613 NOT STRESS BPM REST:get WebFormService - no valid constructor error 
 From these the 22581888 conflicts with 22087208. And  23205514 conflicts with 22348182.

Download the applicable patches for your situation and put them in the appropriate folder. If you use the SOA QuickStart in stead of  BPM QuickStart, you should skip the BPM Related patches of course.

KeePass 2.34

Tim Hall - Wed, 2016-06-15 05:13

I’m a little late to the party, but I just noticed KeePass 2.34 was released a couple of days ago. You can download it here.

You can read about how I use KeePass and KeePassX2 on my Mac, Windows and Android devices here.

Cheers

Tim…

Update: Ian Murphy just mentioned this exploit, which is a very good reason to upgrade to 2.34.

Advertising

Jonathan Lewis - Wed, 2016-06-15 04:50

Someone approached me at a recent conference to ask if I was available for hire and, in the course of the conversation, pointed out that he hadn’t really been certain whether or not it was possible to hire me for consultancy work. This made me realise that I don’t advertise very much, I usually forget to remind people that I can be hired, and I hardly ever remember to hand out (or even have available) business cards at the end of the presentations I give.

I am, however, available to do trouble-shooting, education, reviews, or design almost any time, anywhere, and at short notice. Solving performance problems quickly, though is my speciality, and there are times when I find it agonising to watch the slow progression of question and (failure to) answer on OTN taking days, or even weeks, to get to a solution that was “obvious” from the original question and needed only a couple of hours to check and implement.

I can be hired for a couple of hours, a couple of days, or a couple of weeks – the one thing I don’t do is sign up to being on-site daily for months on end, it wouldn’t be a cost-effective use of your money (or, probably, an interesting use of my time), but if you wanted to reserve every second Monday of the month for six months, or twenty days of my time over the next year, you wouldn’t be the first client to come to that type of arrangement.

If you’re really unlucky you might have to wait two weeks before I can get on your case (Open World, the UKOUG annual conference, and the family holiday can make timetabling a little awkward), but if you have a P/O, a description of the problem and requirements, and the authority to get me onto your system I can often start work within 48 hours (and finish within 72) – and if I think I can’t get the job done in the time you want to pay for I’ll tell you up front.

If I have to be on-site – and some of the projects I have helped with were very strict about security and access – I can travel almost anywhere in the world provided there are no visa or taxation problems to deal with (I’ve let my O-1 visa lapse, by the way, so anything in the USA will have to be handled from the UK); but if you only want a couple of hours of my time that will have to be over the Internet.

I charge £250.00 per hour or £1,700 per day, plus VAT (sales tax) where relevant. Travel and accommodation will be billed back at cost, and in extreme cases I may charge for some time spent on long-haul flights.

If the problem is interesting you’ll probably get some free time on top of the contracted time, but that means I’ll probably want to write about the issue (using a suitably camouflaged model of the problem, of course).

The best method of contacting me is by email: jonathan@jlcomp.demon.co.uk

 

 


Use the database to do the heavy lifting

Bar Solutions - Wed, 2016-06-15 03:25

Suppose you have data in your PL/SQL program stored in a collection. I am using the EMP table (14 records) but you should imagine you have many, many more records in your collection. If you want to order (sort) your collection in a different manner somewhere in your code you can of course write your own sorting routine but the Oracle database is doing this for ages and probably a lot smarter (after all these years) than you can ever do it.

If you are running an Oracle pre 12c database you can use the SQL-engine when you have your data in a Nested Table. I have created this little test script to try this. Again, the EMP table has only 14 records defined, but it is used to drive the point home.

CREATE OR REPLACE TYPE emp_t AS OBJECT
( empno number(4)
, ename varchar2(10)
, job varchar2(9)
, mgr number(4)
, hiredate DATE
, sal number(7,2)
, comm number(7,2)
, deptno number(2)
)
CREATE OR REPLACE TYPE emp_ntt AS TABLE OF emp_t
CREATE OR REPLACE PACKAGE emp_test IS
  FUNCTION get_emp RETURN emp_ntt;
  PROCEDURE emp_prc;
END;
CREATE OR REPLACE PACKAGE BODY emp_test IS
  PROCEDURE separator
  IS
  BEGIN
    dbms_output.put_line('-=-=-=-=-');
  END;
--
  FUNCTION get_emp RETURN emp_ntt
  IS
    l_returnvalue emp_ntt;
  CURSOR c_emp IS
  SELECT emp_t(empno, ename, job, mgr, hiredate, sal, comm, deptno)
    FROM emp;
  BEGIN
    OPEN c_emp;
    FETCH c_emp BULK COLLECT INTO l_returnvalue;
    CLOSE c_emp;
    RETURN l_returnvalue;
  END;
--
  PROCEDURE emp_prc IS
    l_emps emp_ntt;
    l_emps_sorted emp_ntt;
    CURSOR c_emp_sort(emps_in emp_ntt)
    IS
    SELECT emp_t(empno, ename, job, mgr, hiredate, sal, comm, deptno)
      FROM table(emps_in)
     ORDER BY ename;
  BEGIN
    l_emps := get_emp;
    FOR rec IN (select ename FROM table(l_emps)) loop
      dbms_output.put_line(rec.ename);
    END loop;
--
    separator;
--
    OPEN c_emp_sort(l_emps);
    FETCH c_emp_sort BULK COLLECT INTO l_emps_sorted;
    CLOSE c_emp_sort;
    FOR indx IN l_emps_sorted.first .. l_emps_sorted.last loop
      dbms_output.put_line(l_emps_sorted(indx).ename);
    END loop;
  END;
END;

If I run this code

EXEC emp_test.emp_prc

the output looks like this:

SMITH
ALLEN 
WARD 
JONES 
MARTIN 
BLAKE 
CLARK 
SCOTT 
KING 
TURNER 
ADAMS 
JAMES 
FORD 
MILLER 
-=-=-=-=- 
ADAMS 
ALLEN 
BLAKE 
CLARK 
FORD 
JAMES 
JONES 
KING 
MARTIN 
MILLER 
SCOTT 
SMITH 
TURNER 
WARD

This is a great way of using the SQL engine to do the work you need done.

But what if you don’t have your data in a Nested Table, but in an Associative Array, which is PL/SQL only. If you are using Database 12c you’re in luck, because you can now use your Associative Array in de SQL statement.

I have created a similar script as the one before, except that I cannot define a TYPE in the SQL layer, it should be defined in a package specification.

PACKAGE emp_test IS
  TYPE emp_aat IS TABLE OF emp%rowtype INDEX BY PLS_INTEGER;
  FUNCTION get_emp RETURN emp_aat;
  PROCEDURE emp_prc;
END;
PACKAGE BODY emp_test IS
  PROCEDURE separator
  IS
  BEGIN
    dbms_output.put_line('-=-=-=-=-');
  END;
--
  FUNCTION get_emp RETURN emp_aat
  IS
  l_returnvalue emp_aat;
  CURSOR c_emp IS
  SELECT *
    FROM emp;
  BEGIN
    OPEN c_emp;
    FETCH c_emp BULK COLLECT INTO l_returnvalue;
    CLOSE c_emp;
    RETURN l_returnvalue;
  END;
--
  PROCEDURE emp_prc IS
    l_emps emp_aat;
    l_emps_sorted emp_aat;
    CURSOR c_emp_sort(emps_in emp_aat)
    IS
    SELECT *
      FROM table(emps_in)
     ORDER BY ename;
  BEGIN
    l_emps := get_emp;
    FOR rec IN (select ename FROM TABLE(l_emps)) LOOP
      dbms_output.put_line(rec.ename);
    END LOOP;
--
    separator;
--
    OPEN c_emp_sort(l_emps);
    FETCH c_emp_sort BULK COLLECT INTO l_emps_sorted;
    CLOSE c_emp_sort;
    FOR indx IN l_emps_sorted.first .. l_emps_sorted.last LOOP
      dbms_output.put_line(l_emps_sorted(indx).ename);
    END LOOP;
  END;
END;

If I run this code on my 11Gr2 database it results in the following error:

No errors for PACKAGE DEMO.EMP_TEST 
Warning: Package body created with compilation errors 
Errors for PACKAGE BODY DEMO.EMP_TEST: 
LINE/COL ERROR 
-------- --------------------------------------------------------------------------- 
27/5 PL/SQL: SQL Statement ignored 
28/12 PL/SQL: ORA-22905: cannot access rows from a non-nested table item 
28/18 PLS-00382: expression is of wrong type 
33/17 PL/SQL: SQL Statement ignored 
33/35 PL/SQL: ORA-22905: cannot access rows from a non-nested table item 
33/41 PLS-00382: expression is of wrong type 
34/7 PL/SQL: Statement ignored 
34/28 PLS-00364: loop index variable 'REC' use is invalid

As mentioned before, you cannot access an Associative Array in the SQL layer. To use the SQL layer anyway you can of course create the necessary objects (record type and nested table type), copy all the data from the Associative Array to a Nested Table, run the SQL statement and copy the results back to an Associative Array. This means a lot of coding and the risk of errors. But if I run the same code on my 12Cr1 database, it completes successfully and displays the following result:

SMITH 
ALLEN 
WARD 
JONES 
MARTIN 
BLAKE 
CLARK 
SCOTT 
KING 
TURNER 
ADAMS 
JAMES 
FORD 
MILLER 
-=-=-=-=- 
ADAMS 
ALLEN 
BLAKE 
CLARK 
FORD 
JAMES 
JONES 
KING 
MARTIN 
MILLER 
SCOTT 
SMITH 
TURNER 
WARD

I think Oracle does a good job extending the possibilities of the PL/SQL language, especially integrating to SQL features into the PL/SQL layer. Although this might look like a small enhancement, but it can have a big impact on the performance of your program.

database option - diagnostics

Pat Shuff - Wed, 2016-06-15 02:07
Keeping a database tuned is a full time job. Automating some of these tasks helps a DBA support more databases and reduce the time required to generate the data. Automatic report generation is a good way of getting these reports. One of the questions I constantly get asked is what is included with PaaS or DBaaS and what is done for me. With DBaaS, database tuning and diagnostics are not part of the services provided. The DBA still needs to look for processes that are holding locks. The DBA still needs to look for run away sql statements. The DBA still needs to look for alternate execution plans and sql tuning to make the database run faster. The Diagnostics Pack is a key tool to help with this. The services that are included with DBaaS include database and operating system patching, making sure that the database is restarted if it stops (unless you issue a shutdown command), and performs automated backups that you can tweak and tune in frequency and amount of data stored. Tools like ADDM, ASH, and AWR are still required by the DBA and can be accessed from the command line through sqlplus, using SQL Developer, or Enterprise Manager. In 10g, many diagnostic tools like ASH and AWR were embedded into the database. In 11g they were automated to collect the data into a central location. In 12c reports were automated so that DBAs did not need to schedule the jobs and generate reports late at night to look at in the morning. Many of these features started in Enterprise Manager but got migrated into the database. There was some controversy with the 10g release because it did impact performance compared to the 9i release but that seems to have gone away with the 11g and 12c releases. An overall architecture of the performance collection can be seen in the diagram below.

The key features to the Diagnostic Pack for the database include

  • Active Session History (ASH)
  • Automated Workload Repository (AWR)
  • Automatic Database Diagnostic Monitor (ADDM)
  • Enterprise Manager Performance reporting
  • SQL Developer Performance reporting

More information on all of these topics can be found in a variety of locations. Most of the information in this blog can be found at

ASH

ASH statistics are enhanced to provide row-level activity information for each captured SQL statement. This information can be used to identify which part of the SQL execution contributed most significantly to the SQL elapsed time. The ASH views, accessible to DBAs, provide historical information about the active sessions in the database.

AWR

The Automated Workload Repository (AWR) reports provide baseline statistics for the database and show the database performance during specified intervals. A baseline contains performance data from a specific time period that is preserved for comparison with other similar workload periods when performance problems occur. Several types of baselines are available in Oracle Database: fixed baselines, moving window baselines, and baseline templates.

ADDM

DBAs and developers can use ADDM to analyze the database and generate recommendations for performance tuning. In Oracle 11g, ADDM was enhanced to perform analysis on database clusters on various levels of granularity (such as database cluster, database instance, or specific targets) over any specified time period.

You can access ADDM through SQL Developer or Enterprise Manager. To access these functions you must first enable the Diagnostics Pack which allows you access to the reports.

You can manually run the ADDM report with a command line

@?rdbms/admin/addmrpt.sql
If you look at SQL Developer and go to the DBA navigation link and expand the database for Performance you can see the AWR and ADDM reports. Expanding on these links shows you the various reports. For the ADDM, for example, you can quickly see if there is a recommendation or not and drill down into the recommendation.

If we click on one of the finding with a Yes in the recommendation column we can look at the report and recommendations that it has. For the example we found it had two suggestions for tuning. Below are samples of this report and the two recommendations.

We can look at similar information from Enterprise Manager by navigating to the Performance page and selecting the report that we want.

Typical AWR report output usually contains an incredible amount of information about an Oracle database’s application workload behavior. When a database instance is suffering from a gc buffer busy wait event during the time period chosen for the AWR report, however, that event will usually surface as one of the Top 5 Timed Events

With AWR you can create a baseline and look at spot performance or variation from a baseline. Page 21 of Diagnostic Pack Presentation does a good job of describing how to read and understand an AWR Report. The blog Bash DBA does a good job of walking through an AWR and looking for issues and problems in a system.

In summary, we are not going to dive deep into AWR and ADDM diagnostics. Knowing how to do this differentiates a high paid DBA from a junior DBA. There are classes through Oracle Education - 12c Performance Management and Tuning and other vendors that teach you how to understand this option as well as the books we mentioned above and certification exams to help show that you know this material. It is important to note that all of these tools work with platform as a service (Oracle and Amazon RDS) as well as infrastructure as a service and on-premise installations. The key difference is that the diagnostic and tuning tools are bundled with the High Performance and Extreme Performance Editions. For IaaS and on-premise you need to purchase a perpetual license that we discussed a few blogs ago.

Frequently Asked Questions about EBS Security

Steven Chan - Tue, 2016-06-14 12:59

We often receive questions about Oracle E-Business Suite security.  To assist with answering the most frequently asked questions about Oracle E-Business Suite security including secure configuration, auditing and encryption and others, the following new document is now available:

The questions in the FAQ are organized in the following sections:

  • Section 1: Secure Configuration and Architecture
  • Section 2: Auditing
  • Section 3: Access and Authentication
  • Section 4: Encryption and Masking             
  • Section 5: Connection Encryption

 Examples of questions answered in the new FAQ include:

  • What features are available for auditing Oracle E-Business Suite?
  • Do all DBAs require the APPS password?
  • Why should you migrate from SSL to TLS?
  • What versions of TLS are currently certified with Oracle E-Business Suite?
  • How do you configure HTTPs for Oracle E-Business Suite?
  • Can you use SHA-2 signed PKI certificates with Oracle E-Business Suite?

We plan to update this document on a regular basis.  As you read through the new document, please let us know if there are additional questions that we should consider adding.

Where can I learn more?

There are several guides and documents that cover Oracle E-Business Suite secure configuration and encryption for Release 12.1 and 12.2. You can learn more by reading the following:

Related Articles

Categories: APPS Blogs

Twilio Signal Conference – $Bash night

Oracle AppsLab - Tue, 2016-06-14 11:35

Twilio Signal Conference ended with an after-party called the $Bash night.  Twilio set up booths with geeky games like programming, program debugging, computer building etc..  They also had a foosball table for 16 people.  I think it is one of the nicest parties for geeks I attended so far.  It was a fun night with music, drinks, food and games, tuned for developers.

During that morning’s keynote, Jeff Lawson (Twilio Founder) had a virtual meeting with Rony Abovitz (Magic Leap Founder), and they announced that the winner of the $Bash night can get access to Magic Leap.  Magic Leap is so mysterious, and I had a great urge to win in the $Bash night to be able to play and do something with it.

It turned out if you compete with other developers during the $Bash night, you could win raffle tickets, and the person who had the most raffle tickets by the end of the night would become the winner.  So all night I have been going all out playing and competing.  The environment was too dark to possibly take some good quality pictures, but you can find some info here.

There are 2 games I did quite well and enjoyed:  1. program debugging competition among 6 developers, 2.  pairing up to move jenga blocks with a robot arm.  At the end of night, although I tried my best, I only came out second.  At first I was quite disappointed, however, I was told there is still quite a very good chance there is a second spot to offer me for Magic Leap.  I shall keep my hope up to wait and see.Possibly Related Posts:

Twilio Signal Conference – Sessions

Oracle AppsLab - Tue, 2016-06-14 11:34

Lets dive to the Twilio sessions.

The sessions are generally divided in the following 4 tracks:

  • Learn
    See the latest progress in software and cloud communications, talk shop with Twilio engineers who developed them, and get in to the details on how to use the software.
  • Inspire
    Hear from industry experts shaping the future of tech with the latest software.
  • Equip
    Get details on hurdles tricks and solution from Twilio customers on building communications with software APIs.
  • Action
    Define business plans for modern communications with real-life ROI and before-and-after stories.

My interests was more into the Inspire track, and the hot topic being AI and Virtual Assistants nowadays, those were the sessions I targeted for the conference.

IMG_20160525_102406

Twilio messaging integration with other platforms

This half year is just the “half year of virtual assistants”, with the announcements of controversial Tay and Cortana from Microsoft, messenger bot from Facebook, Allo from Google I/O and Siri from WWDC yesterday.  Every giants want to squeeze into the same space and get a share of it.  There were a lot of sessions regarding to bots in Signal, and I had a feeling that Twilio has carefully hand picked the sessions carefully to suit the audiences.  IBM, and Microsoft and Slack all presented their views and technologies with bots, and I learned a lot from them.  It is a bit odd that api.ai sponsored the lunch for the conference and have a booth in the conference, but did not present in any sessions (afaik).

In the schedule, there was a session called Terrible Ideas in Git by Corey Quinn.  I love Git, and when I saw the topic, my immediate reaction was how can anyone say Git was terrible (at least right)??  I just had to go there and take a look.  To my surprise, it was very fun talk show and I had a good laugh and enjoyed it a lot.  I am glad I did not miss that session.

IMG_20160525_163912

Yep, deal with it!

Yep, deal with it!

Possibly Related Posts:

Twilio Signal Conference – All about Twilio

Oracle AppsLab - Tue, 2016-06-14 11:33

This year I attended the Twilio Signal Conference.  Same as its first year, it was held in Pier 27, San Francisco.  It was a 2-day action-packed conference with a keynote session in the morning and sessions after till 6 pm.

The developer experience provided by the conference is superb comparing to a lot of other developer conferences nowadays.  Chartered buses with wifi were provided for commuters using different transits.  Snacks served all day.  6 30-minutes sessions for you to choose from every time slot.  No need to wait in line and you could always attend the sessions you want (sorry Google I/O).  For developers, as least for me, the most important thing was a special coffee stall opened every morning to serve you with a fresh brewed coffee to wake you up and energize you for the rest of the day.  With the CEO among others to code right in front of you in a keynote session to show you some demos, it is one true developer conference that you could hope for.

20160524_111712

The whole conference lit up by the Internet of Blings with live code demonstration on stage.

There were a lot of new products and features Twilio announced in Signal and I would not spend to time to recap here.  You may read more info here and here.  The interesting thing to note is how Twilio gets so huge.  It started off with a text messaging service, it now also provides services on video, authentication, phone, routing.  It is the power engine under the hood for the fast growing companies like Lyft and Uber.  It now offers the most complete messaging platform for developers to connect to their users.  It now has capabilities to reroute your numbers and tap into the phone conversations.  It partners with T-Mobile to get into the IoT domain.  Twilio’s ambition and vision is not small at all.  The big question is:  how Twilio achieve all these?  This question can be controversial, but for me, I would have to say it all boils down into simplicity:  making things really easy, really good, and just works.  The Twilio APIs are very easy to use and it does exactly what it says, no more, no less.  Its reliability is superb.  That is what developers want and rely on.

20160524_094925

Jeff Lawson talks about Twilio’s infrastucture

Twilio as a messaging hub

Twilio as a messaging hub

But wait, there’s more. Check out my thoughts on the sessions at Signal and my $Bash night experience. I almost won a chance to play with the mysterious Magic Leap, and I might yet get access for finishing second. Stay tuned.Possibly Related Posts:

Services -- 1 : Services in non-RAC 12c MultiTenant

Hemant K Chitale - Tue, 2016-06-14 10:22
It is generally accepted that service definition is required in RAC environments.

However, the concept of Services was made available in 8i --- predating RAC.   Services can be defined in non-OPS / non-RAC / non-MultiTenant / MultiTenant environments.  A single PDB in a 12c MultiTenant database can host multiple services.

A quick start to the implementation.

Note : srvctl is to be used to create and manage services in a RAC environment.  srvctl registers the services with the Cluster Registry.  In a Non-RAC environment, use DBMS_SERVICE.

First, no services are running :

[grid@ora12102 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 14-JUN-2016 23:14:48

Copyright (c) 1991, 2014, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 14-JUN-2016 23:14:28
Uptime 0 days 0 hr. 0 min. 19 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/ora12102/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora12102)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@ora12102 ~]$


Next, I startup the MultiTenant CDB database.

[oracle@ora12102 ~]$ . oraenv
ORACLE_SID = [CDB1] ? CDB1
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@ora12102 ~]$ sqlplus '/ as sysdba'

SQL*Plus: Release 12.1.0.2.0 Production on Tue Jun 14 23:15:47 2016

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1644167168 bytes
Fixed Size 2925024 bytes
Variable Size 1056968224 bytes
Database Buffers 570425344 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.
SQL> alter pluggable database pdb1 open;

Pluggable database altered.

SQL>


[grid@ora12102 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 14-JUN-2016 23:17:23

Copyright (c) 1991, 2014, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 14-JUN-2016 23:14:28
Uptime 0 days 0 hr. 2 min. 54 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/ora12102/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora12102)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=ora12102)(PORT=5501))(Security=(my_wallet_directory=/u01/app/oracle/admin/CDB1/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "CDB1" has 1 instance(s).
Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "CDB1XDB" has 1 instance(s).
Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "pdb1" has 1 instance(s).
Instance "CDB1", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@ora12102 ~]$


So, now I have the default pdb1 srevice for pluggable database PDB1 running.

Next, I manually create two new services and start them.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
[oracle@ora12102 ~]$ sqlplus 'sys/oracle@PDB1 as sysdba'

SQL*Plus: Release 12.1.0.2.0 Production on Tue Jun 14 23:20:30 2016

Copyright (c) 1982, 2014, Oracle. All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL> show con_id

CON_ID
------------------------------
3
SQL> show con_name

CON_NAME
------------------------------
PDB1
SQL>
SQL> exec dbms_service.create_service(service_name=>'NEW_APP1',network_name=>'NEW_APP1');

PL/SQL procedure successfully completed.

SQL> exec dbms_service.create_service('NEW_APP2','NEW_APP2');

PL/SQL procedure successfully completed.

SQL> exec dbms_service.start_service('NEW_APP1');

PL/SQL procedure successfully completed.

SQL> exec dbms_service.start_service('NEW_APP2');

PL/SQL procedure successfully completed.

SQL>
[grid@ora12102 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 14-JUN-2016 23:22:54

Copyright (c) 1991, 2014, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 14-JUN-2016 23:14:28
Uptime 0 days 0 hr. 8 min. 26 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/ora12102/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora12102)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=ora12102)(PORT=5501))(Security=(my_wallet_directory=/u01/app/oracle/admin/CDB1/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "CDB1" has 1 instance(s).
Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "CDB1XDB" has 1 instance(s).
Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "NEW_APP1" has 1 instance(s).
Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "NEW_APP2" has 1 instance(s).
Instance "CDB1", status READY, has 1 handler(s) for this service...
Service "pdb1" has 1 instance(s).
Instance "CDB1", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@ora12102 ~]$



The two new services NEW_APP1 and NEW_APP2 that I created in PDB1 are now registered with the listener.  Remember that these services are in the Database Instance CDB1.

My next blog post will be about using these services.

.
.
.

Categories: DBA Blogs

Using the Oracle JET QuickStart Template

Andrejus Baranovski - Tue, 2016-06-14 09:38
I will show in the post, how you can create single page applications with multiple modules in Oracle JET. As a starting point, you should use the Oracle JET QuickStart template, read about it here. This template comes with sample structure and you could follow it to split application functionality into different groups.

Download sample application, which is based on Oracle JET QuickStart template - JETCRUDApp_v10.zip (you must run ADF BC REST application in JDEV 12.2.1 and JET in NetBeans 8). QuickStart application is extended with new module, it contains CRUD implementation in JET (read more here).

I have slightly modified template and removed boxes for navigation and complimentary areas. It renders main content block stretched on the screen:


Under Employees tab, CRUD functionality to manage employees data is rendered. This includes CRUD functionality described in my previous posts about JET (see link above). Now it is part of real JET application:


Let's take a look into structure. QuickStart template comes with structure, where each module is separated into HTML/JavaScript files. There is a group available for employees CRUD - employees.html and employees.js:


Main page logic is implemented in index.html. This file includes page structure and references block with dynamic module (loaded through menu structure):


List of available modules is registered in main.js file router:


JET CRUD functionality use case HTML part is copied into employees.html file (this will be loaded through main.js router):


JavaScript part is copied into employees.js file:


JavaScript logic is changed to handle table row selection event through JavaScript listener method. Constructed employees view model is returned to be accessible from the router:

APEX Modify UT Breadcrumb

Denes Kubicek - Tue, 2016-06-14 06:28
While creating pages with the new UT I noticed that the breadcrumb breakes after the second level and this takes too much space. This example shows how to go arround that problem with just a couple of css styling lines.



And this is how it looks like after applying the css.

Categories: Development

Oracle CURRENT_DATE Function with Examples

Complete IT Professional - Tue, 2016-06-14 06:00
The Oracle CURRENT_DATE function is another Oracle function for returning a date from the system. Find out what it does and how it’s different from the other functions in this article. Purpose of the Oracle CURRENT_DATE Function The CURRENT_DATE function is used to return the current date in the session timezone. The session timezone is […]
Categories: Development

Oracle Joins the White House in Global Campaign to Empower Girls and Women

Oracle Press Releases - Tue, 2016-06-14 06:00
Press Release
Oracle Joins the White House in Global Campaign to Empower Girls and Women Pledges $3 Million to Educate Girls in Science, Technology, Engineering and Math

Redwood Shores, Calif.—Jun 14, 2016

embedBrightcove('responsive', false, 'single', '4939491263001');

President Obama endorses Oracle’s work in advancing computer science and STEM education globally.

On the heels of Oracle’s $200 million commitment to support Computer Science (CS) Education for All, today the White House announced Oracle’s additional $3 million investment to immerse girls worldwide in science, technology, engineering and math (STEM). The company’s commitment of direct and in-kind funding supports “Let Girls Learn,” a U.S. government initiative aimed at helping adolescent girls around the world go to school and stay in school.

“It takes 25 years to build a computer engineer, not 25 hours, so we need to get started,” said Safra Catz, Oracle CEO. “The computer sciences lose too many girls too early and once lost, it’s nearly impossible to get them back. We want more girls focused on building upon science and math fundamentals and we want more women choosing the technical disciplines because they are both prepared to do so and because they believe it will advance their career opportunities.”

Oracle will offer more than 65 educational events and reach over 55,000 young girls globally through a powerful nexus of its corporate social responsibility programs spanning Oracle Academy, Oracle Education Foundation, Oracle Giving and Volunteers, Oracle Women’s Leadership (OWL), and Oracle Diversity and Inclusion. Events will include summer computing camps, codefests, workshops and conferences designed to encourage and inspire adolescent girls to become original thinkers, creative designers and enterprising trailblazers.

Additionally, Oracle plans to expand its CS efforts in Egypt with an additional investment of nearly $1 million in educational resources and services over the next four years. The commitment is part of a new collaboration between the Ministry of Education in Egypt, the United States Agency for International Development (USAID) and Oracle Academy, Oracle’s philanthropic educational program that impacts more than 2.6 million students in 106 countries. The partnership will support computing education in nine newly-created STEM schools throughout the country, including one boarding school exclusively for girls which will accept up the top 10 percent of girls across the governorates, reaching 150 girls each year and providing three years of paid education for each girl.

As part of the company’s global campaign to support girls and women in technology, Oracle will drive several notable projects:

  • Oracle Academy will team with Arizona State University and others under the USAID Build-IT project to help women in Vietnam develop into IT leaders. President Obama recently endorsed Oracle’s contribution in furthering this effort.
  • Oracle Education Foundation and Oracle Volunteers will team to teach girls coding, electrical engineering and project management through girls-only workshops for Design Tech High School (d.tech), an innovative, free California public high school. Oracle is building d.tech’s new facility at its headquarters in Redwood Shores, Calif., making d.tech the world’s first public high school on a technology campus.
  • Oracle Giving and Oracle Academy will award grants and sponsorships globally to nonprofit organizations striving to increase girls’ access to educational opportunities and encourage them to pursue degrees in computer science and STEM fields.
  • Oracle Giving will continue its support for MentorNet, which engages STEM professionals in the virtual mentoring of undergraduates, 66% of whom are women.
 
Contact Info
Julie Sugishita
Oracle Corporate Communications
1.650.506.0076
julie.sugishita@oracle.com
About Oracle Academy

As Oracle’s flagship philanthropic educational program, Oracle Academy advances computer science education globally to drive knowledge, innovation, skills development, and diversity in technology fields. To this end, Oracle Academy offers students and educational institutions a free and complete portfolio of software, curriculum, hosted technology, faculty trainings, support, and certification resources. The program works with public and private partners to provide the tools educators need to engage, inspire and prepare students to become innovators and leaders of the future. Through Oracle Academy, students receive hands-on experience with the latest technologies, helping make them college and career ready in the era of big data, cloud computing, the Internet of Things, and beyond.

About Oracle

Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit www.oracle.com.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Safe Harbor

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle's products remains at the sole discretion of Oracle Corporation. 

Talk to a Press Contact

Julie Sugishita

  • 1.650.506.0076

Checkbox Item check / uncheck all

Jeff Kemp - Tue, 2016-06-14 04:00

If you have an ordinary checkbox item based on a list of values, here is a function which will set all the values to checked or unchecked:

function checkboxSetAll (item,checked) {
  $("#"+item+" input[type=checkbox]").attr('checked',checked);
  $("#"+item).trigger("change");
}

For example:

checkboxSetAll("P1_ITEM", true); //select all
checkboxSetAll("P1_ITEM", false); //select none

It works this way because a checkbox item based on a LOV is generated as a set of checkbox input items within a fieldset.

Note: If it’s a checkbox column in a report, you can use this trick instead: Select All / Unselect All Checkbox in Interactive Report Header


Filed under: APEX Tagged: APEX, javascript, jQuery, tips-&-tricks

database options - advanced security

Pat Shuff - Tue, 2016-06-14 02:07
Advanced Security and Transparent Data Encryption (TDE) stops would-be attackers from bypassing the database and reading sensitive information from storage by enforcing data-at-rest encryption in the database layer. Earlier when we talked about partitioning and compression we talked about tablespace files and how to manage them. If these files are stored in clear text, anyone who can access our file system could theoretically read the dbf file and do a clear text search. If, for example, we have a credit card number "1234 5678 9012 3456". We could find this string with a strings, grep, or od statement (octal dump to show text data). If we don't know the credit card number we can just do a dump on the data and see the values stored in the database. With enough trial and error we can figure out what the structure of the database might be and correlate names to credit card information. By default, all data stored in the cloud has TDE enabled. This is done in the $ORACLE_HOME/network/admin/sqlnet.ora file. If you look at this this file, you will see that the ENCRYPTION_WALLET_LOCATION is defined as well as the SQLNET.ENCRYPTION_TYPES_SERVER is defined. When the database is created, a wallet is generated based on your ssh keys allowing you to access your data. In the database that we created we have the wallet file location in /u01/app/oracle/admin/ORCL/tde_wallet. There is a file called cwallet.sso that is enabled anytime someone connects to the database through port 1521 or through the sqlplus command. If we rename this file to something else, we can connect to the database and create clear text files. Note that it is not recommended that you do this but we are doing this to highlight first the differences between Iaas and PaaS as well as the need for data encryption in the cloud. With a database installation on top of compute as is done with EC2, Azure Compute, and Oracle Compute, we have to enable TDE, configure the wallet, configure the cwallet.sso. With PaaS, this is all done for you and you can manage the keystore and rotate key access.

Note that it is not recommended that you execute these commands. They will desecure your database and allow for clear text storage and transmission of data across the internet. We are doing this as an example.

cat $ORACLE_HOME/network/admin/sqlnet.ora
cd /u01/app/oracle/admin/ORCL/tde_wallet
ls
This should allow you to see the cwallet.so file which enables automatic wallet connection upon login. If we want to change encryption we can first look at the parameter encrypt_new_tablespaces and see that it is set to CLOUD_ONLY which encrypts everything. We want to change this to DDL which says that we only encrypt if we tell it to. We first want to create a tablespace and a banking user with encryption turned on. This is done with
sqlplus / as sysdba
alter session set container=PDB1;
drop tablespace banking including contents and datafiles;
create tablespace banking datafile '/u02/app/oracle/oradata/ORCL/PDB1/banking.dbf' size 20m;
We then create a banking user as well as a paas_dba user. One is used to create an encrypted table and the other is to create a clear text table
drop user banking;
create user banking identified by "PaasBundle_1" default tablespace banking; 
grant create session to banking;
grant unlimited tablespace to banking;
drop user paas_dba;
create user paas_dba identified by "PaasBundle_1";
grant create session to paas_dba;
grant dba to paas_dba;

We now connect to the PDB1 as the banking user and create a table in our encrypted tablespace

connect banking/PaasBundle_1@PDB1
create table banking_customers (first_name varchar(20), last_name varchar(20), ccn varchar(20)) tablespace banking;
insert into banking_customers values('Mike','Anderson','5421-5424-1451-5340');
insert into banking_customers values('Jon','Hewell','5325-8942-5653-0031');
commit;
alter system flush bufffer_cache;
select ccn from banking_customers;
This should create a table with two entries. The table will be encrypted and stored in the banking.dbf file. If we do a string search from this file we will not find the credit card number starting with 5421. Now that we have an encrypted table created we need to reconnect to the database and disable encryption on new tables. To do this we change the parameter from CLOUD_ONLY to DDL as sysdba.
sqlplus / as sysdba
show parameter encrypt_new_tablespaces;
alter system set encrypt_new_tablespaces=DDL SCOPE=BOTH;
We can now create a new tablespace and the contents are only encrypted if we pass in the encrypt statement with the create statement. The tablespace will not be encrypted by default. We do this operation as paas_dba who has dba rights to create a tablespace and table.
connect paas_dba/PaasBundle_1@PDB1;
drop tablespace bankingCLEAR including contents and datafiles;
create tablespace bankingCLEAR datafile '/u02/app/oracle/oradata/ORCL/PDB1/bankingCLEAR.dbf' size 20m;
create table banking_Clearcustomers tablespace bankingCLEAR as select * from banking_customers;
select ccn from banking_Clearcustomers;
We should get back two entries from both select statements and see two credit card numbers. We can then exit sqlplus and look at the banking.dbf and bankingCLEAR.dbf files to see if we can lift credit cards. By executing the
strings bankingCLEAR.dbf | grep 5421
strings banking.dbf | grep 5421
we see that we get the credit card number from the bankingCLEAR.dbf file. The data is inserted clear text. It is important to remember that all data should be encrypted in motion and at rest. We need to change the parameter back to CLOUD_ONLY for the encrypt_new_tablespaces moving forward. By default we connect to the data using the encryption wallet. We can disable this as well as turning off default encryption.

In summary, we have looked at what it takes to encrypt data at rest in the cloud. By default it is turned on and we don't have to do anything with platform as a service. If we are using infrastructure as a service we need to purchase the Advanced Security option, turn on encrypting tablespaces bu changing a parameter, enable the wallet to our login, and install keys for the wallet. Platform as a service provides levels typically above and beyond what most customers have in their data center. The recent credit card loss that happened at Target a few years ago happened because they owned the Advanced Security option for the database but did not turn on the feature. An outside consultant (working on something non-it related) got access to a shared storage and pulled the dbf files onto a USB drive. They were able to get thousands of credit cards from the data center costing the CIO and IT staff their jobs. Today we learned how to turn off TDE in the cloud to illustrate what it takes to turn it on in your data center and we looked at the simplicity of pulling data from a dbf file if we know the data we are looking for. We could just as easily have just looked for number patterns and peoples names and correlated the two as valid credit card numbers.

I would like to thank the GSE team at Oracle for doing 90% of the work on this blog. I liberally hijacked the demo scripts and most of the content from demo.oracle.com, PaaS - Data Management (Solutions Demo) by Brijesh Karmakar. The GSE team creates demo environments and scripts for specific products. This demo is an Oracle internal demo and can be requested from your pre-sales consultant in your area. I took the demo code from the Database Vault and Encryption_demo_script written on 08-Jun-2016. I have to admit that looking for demo scripts on demo.oracle.com and searching for TDE was very opportune given that I wrote this blog on the 9th and it was published on the 8th.

Oracle Cloud Helps Utilities Make Better, Faster Business Decisions

Oracle Press Releases - Tue, 2016-06-14 02:05
Press Release
Oracle Cloud Helps Utilities Make Better, Faster Business Decisions New analytics capabilities enable better data collection and analysis to improve business insights

EEI Annual Convention - Chicago, IL—Jun 14, 2016

The utility industry is in the midst of a significant transformation, and the increasing prevalence of digital technologies is driving organizations to embrace innovation. Capturing and analyzing data across infrastructures now play a crucial role in addressing changes and challenges. Today, Oracle Utilities announced new releases of two of its cutting edge analytics solutions, which enable utilities to better access, organize and analyze the massive amount of data they collect while saving time and reducing IT and maintenance costs.
 
Oracle Utilities Analytics Cloud Service helps utilities easily integrate their on-premise customer, meter, device, and workforce data into a single platform in the cloud. The cloud solution’s flexibility and scalability enables utilities of all sizes to leverage powerful data analytics without the need for in-house analytics experts. The cloud “future-proofs” smart grid and analytics strategies—enabling utilities to leverage the latest analytics capabilities to remain at the forefront of industry innovation. This new cloud service further enhances Oracle Utilities’ cloud analytics suite, which includes Oracle DataRaker, an advanced analytics solution providing actionable insight and predictive analytics services for big data.
 
“As a leading systems integrator and Oracle PartnerNetwork member, we worked closely with the Oracle Utilities team on co-development activities for Oracle Utilities Analytics,” said John Gustafson, Vice President, Energy and Utilities at Cognizant.
 
“This solution can enable utilities around the world to leverage robust analytics capabilities and gain immediate access to valuable insight. Drawing on Cognizant’s extensive global experience and expertise in implementing Oracle Business Intelligence and working with Oracle Cloud, we are continuing to develop new implementation resources for Oracle Utilities Analytics Cloud Service for utilities worldwide.”
 
The new version of Oracle Utilities Work and Asset Management Analytics provides users with an extensive platform featuring pre-built analytics based on industry best practices to provide the most value to utilities for asset maintenance strategies. The upgraded solution offers:
  • • Four new dashboards with 26 pages of analytics to support 74 metrics related to work and asset management questions—enabling users to drill down even further into the data associated with these analytics.
  • • Hundreds of different report outputs based on organization hierarchy. Each report has the ability to provide answers to any level of the organization.
 
“Utilities today collect massive amounts of data and they do not always have the means to analyze it and turn it into actionable business intelligence,” said Rodger Smith, senior vice president and general manager, Oracle Utilities. “Oracle Utilities Analytics Cloud Service and Oracle Utilities Work and Asset Management Analytics provide utilities with the ability to analyze their data more quickly, and in a more meaningful way.”
Contact Info
Samantha Thai
Oracle
+1.510.917.5564
samantha.thai@oracle.com
About Oracle

Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit www.oracle.com.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Safe Harbor

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle's products remains at the sole discretion of Oracle Corporation. 

Talk to a Press Contact

Samantha Thai

  • +1.510.917.5564

Pages

Subscribe to Oracle FAQ aggregator