Friday Spotlight: What's in a Name?
Friday Spotlight: Accelerating MySQL on Oracle Linux with Flash
Happy Friday!
Our spotlight this week is on a brand new white paper that can help you get the most out of MySQL running on Oracle Linux, with the help of Oracle's Sun Flash Accelerator F80 PCIe card. To give you an idea of the Oracle Linux part of this, here is an except from the paper's intro:
"Oracle Linux with Unbreakable Enterprise Kernel (UEK) was chosen for this study for several key reasons including its upstream support for the latest hardware relevant to modern data center operations, and SSD support and performance features such as SSD detect. In addition, MySQL database workloads benefit from the platform’s deep integration with the solution stack, optimizations resulting from industry collaborations and enhancements in the UEK."
We'll see you next week!
-Chris
The Basics of Connection Pools in Glassfish
Connection and resource pooling (including thread and instance pooling) is a key value proposition of modern application servers like GlassFish and WebLogic to significantly boost scalability (in fact, WebLogic has long had significantly richer pooling features than GlassFish). While most in the Java EE community take this for granted, many other less mature and robust server-side platforms lack this feature. Indeed, many newcomers to Java EE do not seem to quite grasp connection pooling, even database connection pools. Andy Overton of C2B2 consulting comes to the rescue!
In a very written recent blog entry, Andy explains the basics of database connection pools, demonstrates step-by-step how to setup a connection pool in GlassFish a few different ways and discusses some key configuration options such as pool sizing along with outlining some best practices. It is well worth a read if you are a GlassFish or Java EE fan!
Second CAMP 1.1 Public Review
Today OASIS announced the second Public Review of the Cloud Application Management for Platforms (CAMP) specification. The CAMP Technical Committee considers its work on this version (1.1) to be finished. Baring any substantive changes needed to address review comments and pending the fulfillment of the implementation requirements in the charter, this is the draft that will be approved as Committee Specification and, hopefully, become an OASIS Standard. If you have an interest in this space, you might want to review this draft and, if you have any concerns or issues, comment via the public mailing list.
One-step deployment process
Resource model simplification
Resource type inheritance
The plan resource
CAMP Plans provide "a description of the artifacts that make up an application, the services that are required to execute or utilize those artifacts, and the relationship of the artifacts to those services". In this version of the spec, Plans can be represented as JSON resources as well as YAML files. Plan resources accomplish the function that the old template, requirement, and capability resources attempted to fulfill; namely allowing developers and admins to wire application artifacts to the services needed to support those artifacts. This is particularly useful in cases where there isn't a match between the requirements described in the initial Plan file and the services offered by the target platform. Plan resources can be used to create an application in the same way that Plan files are used - by POSTing a reference to the Plan to the assemblies resource collection.
For an example of what a CAMP 1.1 system would look like, I suggest checking out the Solum project, which was designed based on the concepts expressed in the CAMP spec. In addition to this there is the proof-of-concept implementation, nCAMP.
Waterfall Charts
Great question came through the ether from Holger on waterfall charts last night.
"I know that Answers supports waterfall charts and BI Publisher does not.
Do you have a different solution approach for waterfall charts with BI Publisher (perhaps stacked bars with white areas)?
Maybe you have already implemented something similar in the past and you can send me an example."
I didnt have one to hand, but I do now. Little known fact, the Publisher chart engine is based on the Oracle Reports chart engine. Therefore, this document came straight to mind. Its awesome for chart tips and tricks. Will you have to get your hands dirty in the chart code? Yep. Will you get the chart you want with a little effort? Yep. Now, I know, I know, in this day and age, you should get waterfalls with no effort but then you'd be bored right?
First things first, for the uninitiated, what is a waterfall chart? From some kind person at Wikipedia, "The waterfall chart is normally used for understanding how an initial value is affected by a series of intermediate positive or negative values. Usually the initial and the final values are represented by whole columns, while the intermediate values are denoted by floating columns. The columns are color-coded for distinguishing between positive and negative values."
We'll get back to that last sentence later, for now lets get the basic chart working.
Checking out the Oracle Report charting doc, search for 'floating' their term for 'waterfall' and it will get you to the section on building a 'floating column chart' or in more modern parlance, a waterfall chart. If you have already got your feet wet in the dark arts world of Publisher chart XML, get on with it and get your waterfall working.
If not, read on.
When I first starting looking at this chart, I decided to ignore the 'negative values' in the definition above. Being a glass half full kind of guy I dont see negatives right :)
Without them its a pretty simple job of rendering a stacked bar chart with 4 series for the colors. One for the starting value, one for the ending value, one for the diffs (steps) and one for the base values. The base values color could be set to white but that obscures any tick lines in the chart. Better to use the transparency option from the Oracle Reports doc.
<Series id="0" borderTransparent="true" transparent="true"/>
Pretty simple, even the data structure is reasonably easy to get working. But, the negative values was nagging at me and Holger, who I pointed at the Oracle Reports doc had come back and could not get negative values to show correctly. So I took another look. What a pain in the butt!
In the chart above (thats my first BIP waterfall maybe the first ever BIP waterfall.) I have lime green, start and finish bars; red for negative and green for positive values. Look a little closer at the hidden bar values where we transition from red to green, ah man, royal pain in the butt! Not because of anything tough in the chart definition, thats pretty straightforward. I just need the following columns START, BASE, DOWN, UP and FINISH.
START 200 BASE 0 UP 0 DOWN 0 FINISH 0 | START 0 BASE 180 UP 0 DOWN 20 FINISH 0 | START 0 BASE 150 UP 0 DOWN 30 FINISH 0 | |
Bar 1 - Start Value | Bar 2 - PROD1 | Bar 3 - PROD2 |
and so on. The start, up, down and finish values are reasonably easy to get. The real trick is calculating that hidden BASE value correctly for that transition from -ve >> + ve and vice versa. Hitting Google, I found the key to that calculation in a great page on building a waterfall chart in Excel from the folks at Contextures. Excel is great at referencing previous cell values to create complex calculations and I guess I could have fudged this article and used an Excel sheet as my data source. I could even have used an Excel template against my database table to create the data for the chart and fed the resulting Excel output back into the report as the data source for the chart. But, I digress, that would be tres cool thou, gotta look at that.
On that page is the formula to get the hidden base bar values and I adapted that into some sql to get the same result.
Lets assume I have the following data in a table:
PRODUCT_NAME | SALES |
PROD1 | -20 |
PROD2 | -30 |
PROD3 | 50 |
PROD4 | 60 |
The sales values are versus the same period last year i.e. a delta value. I have a starting value of 200 total sales, lets assume this is pulled from another table.
I have spent the majority of my time on generating the data, the actual chart definition is pretty straight forward. Getting that BASE value has been most tricksy!
I need to generate the following for each column:
PRODUCT_NAME | STRT | BASE_VAL | DOWN | UP | END_TOTAL |
START | 200 | 0 | 0 | 0 | 0 |
PROD1 | 0 | 180 | 20 | 0 | 0 |
PROD2 | 0 | 150 | 30 | 0 | 0 |
PROD3 | 0 | 150 | 0 | 50 | 0 |
PROD4 | 0 | 200 | 0 | 60 | 0 |
END | 0 | 0 | 0 | 0 | 260 |
Ignoring the START and END values for a second. Here's the query for the PRODx columns:
SELECT 2 SORT_KEY , PRODUCT_NAME , STRT , SALES , UP , DOWN , 0 END_TOTAL , 200 + (SUM(LAG_UP - DOWN) OVER (ORDER BY PRODUCT_NAME)) AS BASE_VAL FROM (SELECT P.PRODUCT_NAME , 0 AS STRT , P.SALES , CASE WHEN P.SALES > 0 THEN P.SALES ELSE 0 END AS UP , CASE WHEN P.SALES < 0 THEN ABS(P.SALES) ELSE 0 END AS DOWN , LAG(CASE WHEN P.SALES > 0 THEN P.SALES ELSE 0 END,1,0) OVER (ORDER BY P.PRODUCT_NAME) AS LAG_UP FROM PRODUCTS P )
The inner query is breaking the UP and DOWN values into their own columns based on the SALES value. The LAG function is the cool bit to fetch the UP value in the previous row. That column is the key to getting the BASE values correctly.
The outer query just has a calculation for the BASE_VAL.
200 + (SUM(LAG_UP - DOWN) OVER (ORDER BY PRODUCT_NAME))
The SUM..OVER allows me to iterate over the rows to get the calculation I need ie starting value (200) + the running sum of LAG_UP - DOWN. Remember the LAG_UP value is fetching the value from the previous row.
Is there a neater way to do this? Im most sure there is, I could probably eliminate the inner query with a little effort but for the purposes of this post, its quite handy to be able to break things down.
For the start and end values I used more queries and then just UNIONed the three together. Once note on that union; the sorting. For the chart to work, I need START, PRODx, FINISH, in that order. The easiest way to get that was to add a SORT_KEY value to each query and then sort by it. So my total query for the chart was:
SELECT 1 SORT_KEY , 'START' PRODUCT_NAME , 200 STRT , 0 SALES , 0 UP , 0 DOWN , 0 END_TOTAL , 0 BASE_VAL FROM PRODUCTS UNION SELECT 2 SORT_KEY , PRODUCT_NAME , STRT , SALES , UP , DOWN , 0 END_TOTAL , 200 + (SUM(LAG_UP - DOWN) OVER (ORDER BY PRODUCT_NAME)) AS BASE_VAL FROM (SELECT P.PRODUCT_NAME , 0 AS STRT , P.SALES , CASE WHEN P.SALES > 0 THEN P.SALES ELSE 0 END AS UP , CASE WHEN P.SALES < 0 THEN ABS(P.SALES) ELSE 0 END AS DOWN , LAG(CASE WHEN P.SALES > 0 THEN P.SALES ELSE 0 END,1,0) OVER (ORDER BY P.PRODUCT_NAME) AS LAG_UP FROM PRODUCTS P ) UNION SELECT 3 SORT_KEY , 'END' PRODUCT_NAME , 0 STRT , 0 SALES , 0 UP , 0 DOWN , SUM(SALES) + 200 END_TOTAL , 0 BASE_VAL FROM PRODUCTS GROUP BY 1,2,3,4,6 ORDER BY 1
A lot of effort for a dinky chart but now its done once, doing it again will be easier. Of course no one will want just a single chart in their report, there will be other data, tables, charts, etc. I think if I was doing this in anger I would just break out this query as a separate item in the data model ie a query just for the chart. It will make life much simpler.
Another option that I considered was to build a sub template in XSL to generate the XML tree to support the chart and assign that to a variable. Im sure it can be done with a little effort, I'll save it for another time.
On the last leg, we have the data; now to build the chart. This is actually the easy bit. Sadly I have found an issue in the online template builder that precludes using the chart builder in those templates. However, RTF templates to the rescue!
Insert a chart and in the dialog set up the data like this (click the image to see it full scale.)
Its just a vertical stacked bar with the BASE_VAL color set to white.You can still see the 'hidden' bars and they are over writing the tick lines but if you are happy with it, leave it as is. You can double click the chart and the dialog box can read it no problem. If however, you want those 'hidden' bars truly hidden then click on the Advanced tab of the chart dialog and replace:
<Series id="1" color="#FFFFFF" />
with
<Series id="1" borderTransparent="true" transparent="true" />
and the bars will become completely transparent. You can do the #D and gradient thang if you want and play with colors and themes. You'll then be done with your waterfall masterpiece!
Alot of work? Not really, more than out of the box for sure but hopefully, I have given you enough to decipher the data needs and how to do it at least with an Oracle db. If you need all my files, including table definition, sample XML, BIP DM, Report and templates, you can get them here.
Sustainability Roundtable Recognized Oracle as SBER Outstanding Corporate Leader of 2013
Sustainability Roundtable, a leader in consulting on best practices in more sustainable business, recognized Oracle as the Sustainable Business & Enterprise Roundtable’s Outstanding Corporate Leader of 2013.Sustainability Roundtable (SR) recognized Oracle for this prestigious award due its leadership in developing and driving optimization efforts towards more sustainable real estate and operations globally. They recognized Oracle for its efforts in:
- Increasing energy, water, and materials productivity
- Driving data centers optimization
- Developing new products to further sustainability initiatives
- Focusing on employee engagement to help with sustainability projects
This past year, sustainability highlights within the Oracle organization include:
- Implementation of a facility-wide, Environmental Accounting and Reporting (EA&R) module to reduce Oracle's environmental impact and comply with associated regulations
- Oracle’s newest Utah Compute Facility (UCF), one of the most energy efficient data centers in the industry, uses a very innovative and breakthrough cooling solution that combines cold outdoor air with free humidification from IT equipment waste heat, xeriscape landscaping which nearly eliminates the need for irrigation, and a 20% reduction of the copper needed for power cables by employing higher voltage power
They also recognized Oracle’s setting of ambitious goals through 2016. These goalsinclude a 10% reduction in energy use per employee, a 6% improvement in power usage effectiveness in production data centers, a 15% reduction in potable water use per employee, and a 15% reduction in waste to landfill per employee.
WebLogic in Comparison: RebelLabs Java Servers Report By Bruno Borges
RebelLabs
did a great job comparing the main Java servers out there, where some
are pure Servlet/JSP containers, others are full Java EE compliant. But
they didn't want to include in the list Oracle WebLogic nor IBM
WebSphere apparently for no logical reason but "they are suited for large enterprise production environments", and because the report is focused on developers.
See RebelLabs report"The Great Java Application Servers Debate"
So, I decided to write this blog post to include detailed information about WebLogic, since WLS is free for developers,
even if you are going to deploy GlassFish/JBoss/Whatever in production.
Which is why I didn't get why RebelLabs didn't want to compare
WebLogic.
Remember, I will detail WebLogic from a "developer point of view", using the same categories RebelLabs used in their report. Here we go:
Download & Installation
WebLogic 12c is certified for Java EE 6, and 12.1.1 was released on Dec 2011. The second release is 12.1.2 and is from July 2013, part of the full Cloud Application Foundation 12c release. For developers, there is a ZIP distribution sized at 184Mb.
- Accept Licence agreement
- Download installation package *
- Extract the archive
- Run configure.sh (Linux/Mac) or configure.cmd (Windows)
- You are ready to go!
For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.
[Solaris] Changing hostname, Parallel Compression, pNFS, Upgrading SRUs and Clearing Faults
[1] Solaris 11+ : changing hostname
Starting with Solaris 11, a system's identify (nodename) is configured through the config/nodename
service property of the svc:/system/identity:node
SMF service. Solaris 10 and prior versions have this information in /etc/nodename
configuration file.
The following example demonstrates the commands to change the hostname from "ihcm-db-01" to "ehcm-db-01".
eg.,# hostname ihcm-db-01 # svccfg -s system/identity:node listprop config config application config/enable_mapping boolean true config/ignore_dhcp_hostname boolean false config/nodename astring ihcm-db-01 config/loopback astring ihcm-db-01 # # svccfg -s system/identity:node setprop config/nodename="ehcm-db-01" # svccfg -s system/identity:node refresh -OR- # svcadm refresh svc:/system/identity:node # svcadm restart system/identity:node # svccfg -s system/identity:node listprop config config application config/enable_mapping boolean true config/ignore_dhcp_hostname boolean false config/nodename astring ehcm-db-01 config/loopback astring ehcm-db-01 # hostname ehcm-db-01
[2] Parallel Compression
This topic is not Solaris specific, but certainly helps Solaris users who are frustrated with the single threaded implementation of all officially supported compression tools such as compress, gzip, zip.
pigz(pig-zee) is a parallel implementation of gzip that suits well for the latest multi-processor, multi-core machines. By default, pigz breaks up the input into multiple chunks of size 128 KB, and compress each chunk in parallel with the help of light-weight threads. The number of compress threads is set by default to the number of online processors. The chunk size and the number of threads are configurable.
Compressed files can be restored to their original form using -d
option of pigz
or gzip
tools. As per the man page, decompression is not parallelized out of the box, but may show some improvement compared to the existing old tools.
The following example demonstrates the advantage of using pigz
over gzip
in compressing and decompressing a large file.
eg.,
Original file, and the target hardware.
$ ls -lh PT8.53.04.tar -rw-r--r-- 1 psft dba 4.8G Feb 28 14:03 PT8.53.04.tar $ psrinfo -pv The physical processor has 8 cores and 64 virtual processors (0-63) The core has 8 virtual processors (0-7) ... The core has 8 virtual processors (56-63) SPARC-T5 (chipid 0, clock 3600 MHz)
gzip
compression.
$ time gzip --fast PT8.53.04.tar real 3m40.125s user 3m27.105s sys 0m13.008s $ ls -lh PT8.53* -rw-r--r-- 1 psft dba 3.1G Feb 28 14:03 PT8.53.04.tar.gz /* the following prstat, vmstat outputs show that gzip is compressing the tar file using a single thread - hence low CPU utilization. */ $ prstat -p 42510 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 42510 psft 2616K 2200K cpu16 10 0 0:01:00 1.5% gzip/1 $ prstat -m -p 42510 PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/NLWP 42510 psft 95 4.6 0.0 0.0 0.0 0.0 0.0 0.0 0 35 7K 0 gzip/1 $ vmstat 2 r b w swap free re mf pi po fr de sr s0 s1 s2 s3 in sy cs us sy id 0 0 0 776242104 917016008 0 7 0 0 0 0 0 0 0 52 52 3286 2606 2178 2 0 98 1 0 0 776242104 916987888 0 14 0 0 0 0 0 0 0 0 0 3851 3359 2978 2 1 97 0 0 0 776242104 916962440 0 0 0 0 0 0 0 0 0 0 0 3184 1687 2023 1 0 98 0 0 0 775971768 916930720 0 0 0 0 0 0 0 0 0 39 37 3392 1819 2210 2 0 98 0 0 0 775971768 916898016 0 0 0 0 0 0 0 0 0 0 0 3452 1861 2106 2 0 98
pigz
compression.
$ time ./pigz PT8.53.04.tar real 0m25.111s<== wall clock time is 25s compared to gzip's 3m 27s user 17m18.398s sys 0m37.718s /* the following prstat, vmstat outputs show that pigz is compressing the tar file using many threads - hence busy system with high CPU utilization. */ $ prstat -p 49734 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 49734 psft 59M 58M sleep 11 0 0:12:58 38% pigz/66 $ vmstat 2 kthr memory page disk faults cpu r b w swap free re mf pi po fr de sr s0 s1 s2 s3 in sy cs us sy id 0 0 0 778097840 919076008 6 113 0 0 0 0 0 0 0 40 36 39330 45797 74148 61 4 35 0 0 0 777956280 918841720 0 1 0 0 0 0 0 0 0 0 0 38752 43292 71411 64 4 32 0 0 0 777490336 918334176 0 3 0 0 0 0 0 0 0 17 15 46553 53350 86840 60 4 35 1 0 0 777274072 918141936 0 1 0 0 0 0 0 0 0 39 34 16122 20202 28319 88 4 9 1 0 0 777138800 917917376 0 0 0 0 0 0 0 0 0 3 3 46597 51005 86673 56 5 39 $ ls -lh PT8.53.04.tar.gz -rw-r--r-- 1 psft dba 3.0G Feb 28 14:03 PT8.53.04.tar.gz $ gunzip PT8.53.04.tar.gz <== shows that the pigz compressed file is compatible with gzip/gunzip $ ls -lh PT8.53* -rw-r--r-- 1 psft dba 4.8G Feb 28 14:03 PT8.53.04.tar
Decompression.
$ time ./pigz -d PT8.53.04.tar.gz real 0m18.068s user 0m22.437s sys 0m12.857s $ time gzip -d PT8.53.04.tar.gz real 0m52.806s<== compare gzip's 52s decompression time with pigz's 18s user 0m42.068s sys 0m10.736s $ ls -lh PT8.53.04.tar -rw-r--r-- 1 psft dba 4.8G Feb 28 14:03 PT8.53.04.tar
Of course, there are other tools such as Parallel BZIP2 (PBZIP2), which is a parallel implementation of the bzip2
tool are worth a try too. The idea here is to highlight the fact that there are better tools out there to get the job done in a quick manner compared to the existing/old tools that are bundled with the operating system distribution.
[3] Solaris 11+ : Upgrading SRU
Assuming the package repository is set up already to do the network updates on a Solaris 11+ system, the following commands are helpful in upgrading a SRU.
List all available SRUs in the repository.
# pkg list -af entire
Upgrade to the latest and greatest.
# pkg update
To find out what changes will be made to the system, try a dry run of the system update.
# pkg update -nv
Upgrade to a specific SRU.
# pkg update entire@<FMRI>
Find the Fault Managed Resource Identifier (FMRI) string by running
pkg list -af entire
command.
Note that it is not so easy to downgrade SRU to a lower version as it may break the system. Should there be a need to downgrade or switch between different SRUs, relying on Boot Environments (BE) might be a good idea. Check Creating and Administering Oracle Solaris 11 Boot Environments document for details.
[4] Parallel NFS (pNFS)
Just a quick note — RFC 5661, Network File System (NFS) Version 4.1 introduced a new feature called "Parallel NFS" or pNFS, which allows NFS clients to access storage devices containing file data directly. When file data for a single NFS v4 server is stored on multiple and/or higher-throughput storage devices, using pNFS can result in significant improvement in file access performance. However Parallel NFS is an optional feature in NFS v4.1. Though there was a prototype made available few years ago when OpenSolaris was still alive, as of today, Solaris has no support for pNFS. Stay tuned for any updates from Oracle Solaris teams.
Here is an interesting write-up from one of our colleagues at Oracle|Sun (dated 2007) -- NFSv4.1's pNFS for Solaris.
(Credit to Rob Schneider and Tom Gould for initiating this topic)
[5] SPARC hardware : Check for and clear faults from ILOM
Couple of ways to check the faults using ILOM command line interface.
By running:
show faulty
command from ILOM command prompt, orfmadm faulty
command from within the ILOM faultmgmt shell
Once found, use the clear_fault_action
property with the set
command to clear the fault for a FRU.
The following example checks for the faulty FRUs from ILOM faultmgmt shell, then clears it out.
eg.,
->start /SP/faultmgmt/shell Are you sure you want to start /SP/faultmgmt/shell (y/n)? y faultmgmtsp>fmadm faulty ------------------- ------------------------------------ -------------- -------- Time UUID msgid Severity ------------------- ------------------------------------ -------------- -------- 2014-02-26/16:17:11 18c62051-c81d-c569-a4e6-e418db2f84b4 PCIEX-8000-SQ Critical ... ... Suspect 1 of 1 Fault class : fault.io.pciex.rc.generic-ue Certainty : 100% Affects : hc:///chassis=0/motherboard=0/cpuboard=1/chip=2/hostbridge=4 Status : faulted FRU Status : faulty Location : /SYS/PM1 Manufacturer : Oracle Corporation Name : TLA,PM,T5-4,T5-8 ... Description : A fault has been diagnosed by the Host Operating System. Response : The service required LED on the chassis and on the affected FRU may be illuminated. ... faultmgmtsp> exit ->set /SYS/PM1 clear_fault_action=True Are you sure you want to clear /SYS/PM1 (y/n)? y Set 'clear_fault_action' to 'True'
Note that this procedure clears the fault from the SP but not from the host.
Invitation to the Partner Webcast 11th March, 11am CET
Dear Partner, We would like to invite you to the Oracle Mobility Platform Webcast for Partners on 11th March, 11am CET. |
| ||||||
The
webcast will help to address and plan for an increasingly diverse ‘Bring Your Own Device’ culture growing in many enterprises and will
cover Oracle’s Mobile Platform and how it affects your Oracle
technology-based applications. Join this Webcast to:
Agenda:
Delivery Format This FREE online LIVE eSeminar will be delivered over the Web. Registrations received less than 24 hours prior to start time may not receive confirmation to attend. Don't miss this opportunity and Register Today!
|
Translated slides from my seminar about using Performance Schema for MySQL troubleshooting at Devconf 2013
Strictly speaking simple translation of slides is not enough, because they were created for the seminar where I was going to explain what they mean. I think I need to repeat same seminar, this time in English language. But if you have rough imagination about what Performance Schema is and need hints for practical use you will find such suggestions in the slides. You will also find ready-to-use queries which you can use to troubleshoot most frequent performance issues.
Enjoy!
Partner Webcast – Foundation for Innovation: Oracle Fusion Middleware
Oracle
Fusion Middleware is the leading business
innovation platform for the enterprise and the cloud. It enables you to create
and run agile, intelligent business applications while maximizing IT
efficiency. Oracle Fusion Middleware can enable you to maximize the processes
and applications that allow delivering unique business value.
From the #1 Java
application Server WebLogic to SOA and ADF, this comprehensive family of products is now even more
seamlessly integrated to help you create, run, and manage agile and intelligent
business applications.
The Oracle ISV Migration Center takes care of your needs as an ISV. You will find a professional environment at hand for all your needs, supported by experienced product experts. We provide many services to enable our partners to start using the latest Oracle Technologies, such as the Oracle Fusion Middleware Platform.
Join our webcast where we will provide an overview of Oracle Fusion Middleware for ISVs, keeping your solutions aligned with today’s requirements, remaining efficient and competitive, allowing your customers to improve operational efficiency, to reduce their cost of doing business and to improve their information assets.
The
Oracle Partner Hub ISV Migration Center will assist you leverage Oracle Technologies
to maximize the value of your existing offering and move toward better
application and technology environments.
Agenda:
- Oracle’s Vision and Strategy
- Oracle Fusion Middleware Overview
- Oracle Developer Tools and Java Application Development Framework (ADF)
- Oracle WebLogic Server
- Oracle SOA Suite
- Oracle Partner HUB Migration Center
- Services/Activities
- Next Steps
- Summary
Delivery Format
This FREE online LIVE eSeminar will be delivered over the Web. Registrations received less than 24hours prior to start time may not receive confirmation to attend.
Presenter:
Gokhan Gungor – Oracle Partner Hub Migration Center FMW Senior Consultant
Date: Thursday, March 20th, 10am CET (9am GMT/ 11am EET/ 2pm TMT-UZT / 3pm KGT)
Duration:
1 hour
http://www.oracle.com/go/?Src=7885809&Act=14&pcode=EMEAPM13050659MPP011
For any questions please contact us at partner.imc@beehiveonline.oracle.com
ACS - Invitation for Partners Thursday, 10th April
Why should you attend?
ACS services are complementary to your capabilities as you may:
ACS is complementary to services provided by partners. |
|
ACS - Invitation for Partners Thursday, 10th April
Why should you attend?
ACS services are complementary to your capabilities as you may:
ACS is complementary to services provided by partners. |
|
Are You Ready for Oracle Financials Cloud Release 8?
If you are an existing Oracle Financials Cloud customer, learn what's new in the upcoming Oracle Financials Cloud release by reviewing expanded discussions of each new feature and product, including capability overviews, business benefits, setup considerations, usage tips, and more. And for those of you considering whether the time is right for your organization to to move to the Cloud, get a first-hand look at all that Oracle has to offer.
With over 20 new features such as downloading credit card transactions to your mobile device and manager approvals of expense reports via your iPhone, users can get more work done that works for their schedule.
Click here for more information.
Sharing Fault Policies Across Your Oracle Business Process Management 11g Projects by Jaideep Ganguli
This post is specifically about how to maintain and share enterprise level Fault Policies that can be re-used across all your Business Process Management 11g projects. I’m assuming that you know enough about Business Process Management/SOA Suite Exception Handling in general using Fault Policies. If you are looking for more basic information on Fault Handling, check Using Fault Handling In A BPEL Process in the SOA Suite Developer’s Guide.
If you read the SOA Suite Developer’s Guide, it is clear that the best strategy is to maintain your Fault Policy and Fault Binding files in MDS and refer to them from all of your SOA/Business Process Management projects.
Here’s a snippet that shows how to refer to Fault Policies shared via MDS in your composite.xml
For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.
BlogTwitterLinkedInFacebookWiki
Technorati Tags: SOA Community,Oracle SOA,Oracle BPM,Community,OPN,Jürgen Kress
Mobile Service Enablement with Oracle Service Bus
Mobile service enablement is an extension of SOA for mobile channels. It virtualizes new and existing services and delivers mobile applications. The underlying infrastructure when designed for reuse and extensibility can be easily leveraged for mobile channels. It involves exposing existing business assets as services through a mediation layer such as Oracle Service Bus and building out a mobile front-end using Oracle ADF Mobile. Enterprise Manager and SOA Management Pack can be leveraged to manage the services just the way they would for any other channel, ensuring performance and availability. This approach allows leveraging existing infrastructure for developing on a mobile channel. It helps create new channels using existing SOA infrastructure. REST-enablement of services is done in a matter of minutes as it is built into the service virtualization and mediation layer.
Figure: Mobile Service Enablement using Oracle Service Bus - for service virtualization and mediation
This is a quick and time-tested way to enable mobile as one of several channels as part of expanding your business. We have several Oracle SOA Suite customers who have taken this approach and succeeded with it. Here are a few:
Agilent transforms IT with Oracle SOA Suite and delivers on Mobile Strategy
Ricoh Americas and City of Denver take their applications mobile with Oracle SOA Suite
To learn more about Oracle Mobile Suite which can aid with this strategy visit us at oracle.com/mobile
This is the second in part of a three part blog series on Mobile Integration. Here is the first: Simplifying Enterprise Mobile Integration
OSB in the Mobile world
Recently, I moved from the SOA Suite team to the Mobile Suite team. Oracle Mobile Suite is comprised of 2 main products, the ADF Mobile product which allows you to develop application in ADF and then deploy them as native apps on both iOS and Android platforms. The second product in Mobile Suite is Oracle Service Bus. As a result, many of the customers that I visit have asked me, "Why have Oracle Service Bus in the Mobile Suite?"
For a complete answer, I wrote a blog entry on http://blogs.oracle.com/mobile/entry/why_use_a_service_bus. Ceck it out and let me know what you think.
Invitation to the Partner Webcast 11th March, 11am CET
Dear Partner, We would like to invite you to the Oracle Mobility Platform Webcast for Partners on 11th March, 11am CET. |
| ||||||
The
webcast will help to address and plan for an increasingly diverse ‘Bring Your Own Device’ culture growing in many enterprises and will
cover Oracle’s Mobile Platform and how it affects your Oracle
technology-based applications. Join this Webcast to:
Agenda:
Delivery Format This FREE online LIVE eSeminar will be delivered over the Web. Registrations received less than 24 hours prior to start time may not receive confirmation to attend. Don't miss this opportunity and Register Today!
|
Invitation to the Partner Webcast 11th March, 11am CET
Dear Partner, We would like to invite you to the Oracle Mobility Platform Webcast for Partners on 11th March, 11am CET. |
| ||||||
The
webcast will help to address and plan for an increasingly diverse ‘Bring Your Own Device’ culture growing in many enterprises and will
cover Oracle’s Mobile Platform and how it affects your Oracle
technology-based applications. Join this Webcast to:
Agenda:
Delivery Format This FREE online LIVE eSeminar will be delivered over the Web. Registrations received less than 24 hours prior to start time may not receive confirmation to attend. Don't miss this opportunity and Register Today!
|
Runtime Look and Feel Switching
The key to this is this:
UIManager.put("TextField.background", Color.LIGHT_GRAY);
Below is code for a runtime look and feel swither.
@OnShowing@ActionID(category = "Switcher", id = "org.m1.Startable")
@ActionRegistration(displayName = "Switcher")
@ActionReference(path = "Toolbars/Switcher")
public class Startable extends AbstractAction implements Runnable, Presenter.Toolbar {
@Override
public void run() {
switchLookAndFeel("Nimbus");
}
public void switchLookAndFeel(String laf) {
if (laf.equals("Nimbus")) {
try {
UIManager.setLookAndFeel(new NimbusLookAndFeel());
} catch (UnsupportedLookAndFeelException ex) {
}
} else {
try {
UIManager.setLookAndFeel(new MetalLookAndFeel());
} catch (UnsupportedLookAndFeelException ex) {
}
}
UIManager.put("Tree.background", Color.LIGHT_GRAY);
UIManager.put("TextField.background", Color.LIGHT_GRAY);
applyUIChanges(null);
}
void applyUIChanges(Object component) {
if (component instanceof Component) {
SwingUtilities.updateComponentTreeUI((Component) component);
} else if (component == null) {
Window windows[] = Window.getWindows();
for (Window window : windows) {
if (window.isDisplayable()) {
applyUIChanges(window);
}
}
}
}
@Override
public Component getToolbarPresenter() {
JPanel jp = new JPanel();
jp.setLayout(new BoxLayout(jp, BoxLayout.X_AXIS));
ButtonGroup bg = new ButtonGroup();
JCheckBox metal = new JCheckBox("Metal");
metal.addActionListener(new SwitchActionListener("Metal"));
JCheckBox nimbus = new JCheckBox("Nimbus");
nimbus.addActionListener(new SwitchActionListener("Nimbus"));
bg.add(metal);
bg.add(nimbus);
jp.add(metal);
jp.add(nimbus);
return jp;
}
private class SwitchActionListener implements ActionListener {
private final String laf;
private SwitchActionListener(String laf) {
this.laf = laf;
}
@Override
public void actionPerformed(ActionEvent e) {
if (laf.equals("Metal")) {
switchLookAndFeel("Metal");
} else {
switchLookAndFeel("Nimbus");
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
}
}