Quantcast
Channel: Oracle Bloggers
Viewing all 19780 articles
Browse latest View live

BIP scheduleReport with Parameters

$
0
0

I have just spent an hour or so working on getting a sample scheduleReport web service working with parameter values. There are a lot of examples out there but none I have found have the parameters being set. Our doc is a little light on details on how to set them up :) In lieu of that, here's this!

        // Set the parameter values for the report. In this example we have        // 'dept' and 'emp' parameters. We could easily query the params dynamically        //Handle 'dept' parameter        ParamNameValue deptParamNameVal = new ParamNameValue();        deptParamNameVal= new ParamNameValue();        deptParamNameVal.setName("dept");
        // Create the string array to hold the parameter value(s)        ArrayOfXsdString deptVal = new ArrayOfXsdString();        // For individual values or multiples, add values to the 
        // string array e.g. 10,20,30        deptVal.getItem().add("10");        deptVal.getItem().add("20");        deptVal.getItem().add("30");         // Asterisk used for a null value ie 'All'        //deptVal.getItem().add("*");

        // add the array to the parameter object
        deptParamNameVal.setValues(deptVal);        //Handle 'emp' parameter        ParamNameValue empParamNameVal = new ParamNameValue();        empParamNameVal= new ParamNameValue();        empParamNameVal.setName("emp");        ArrayOfXsdString empVal = new ArrayOfXsdString();        // For individual values or multiples, add values to the string array         // empVal.getItem().add("Jennifer Whalen");        // empVal.getItem().add("Michael Hartstein");        // Asterisk used for a null value ie 'All'        empVal.getItem().add("*");        empParamNameVal.setValues(empVal);        // add parameter values to parameter array                ArrayOfParamNameValue paramArr = new ArrayOfParamNameValue();        paramArr.getItem().add(deptParamNameVal);        paramArr.getItem().add(empParamNameVal);        //Now add array to values obj        ParamNameValues pVals = new ParamNameValues();        pVals.setListOfParamNameValues(paramArr);

 The pVals object can then be added to the report request object.

        req.setParameterNameValues(pVals);

Hopefully, you can extrapolate to your code. JDev application available here, unzip and open the application.
Just the schedule report class is available here.


New Oracle ERP Cloud Training

$
0
0

Oracle Enterprise Resource Planning (ERP) Cloud applications incorporate rich financial and operational features to help you streamline and manage your business.

The Oracle ERP Cloud team created the following training to help you accelerate implementation and adoption of your applications.


Oracle Financials Cloud Implementation

The goal of the Oracle Financials Cloud implementation training is to equip you with the knowledge and skills so you can perform a smooth and rapid implementation of your financial applications. This training will help you better understand the configuration options so you can make improved decisions during your implementation. You'll walk away with the skills to optimize the setup and effectively manage your financial processes in General Ledger, Payables and Receivables.

Recommended Training

Oracle Financials Cloud - Financial Reporting

With training, business analysts and reporting specialists can develop a deep understanding of how to best use Financial Reporting to run the finance side of your business. You'll learn how to create financial reports, use Business Intelligence Publisher templates and data models, create dashboards and reports, and analyze data.

Recommended Training

Oracle Procurement Cloud Implementation

Oracle Procurement Cloud training covers the key options and tasks you need to understand to successfully configure your application in a way that maps to your business needs.  You'll also learn how to administer your application and perform key transactional tasks.

Recommended Training

Oracle Project Portfolio Management

Oracle Project Portfolio Management Cloud training focuses on setting up the Project Financial Management and the Project Execution Management offerings. Learn how to optimize the configuration to enable necessary collaboration between team members and give the business insight to efficiently plan, create and manage projects, tasks and resource within your organization.

Recommended Training

Webcast - Oracle Document Cloud Service (DOCS): Technical Overview

$
0
0
Documents

Enterprise File Sync and Share in the Oracle Cloud.

This presentation provides technical detail with demo of the latest Oracle Document Cloud Services

There are many file sharing websites and services available to consumers and corporate companies in the market.  However, there is a lack of integration to the company policy and guideline that can integrate with the business processes and applications are being used; apply with the same security access to these services.  Oracle Document Cloud Services provides enterprise ready for File Sync and Share.

This is the next-generation of cloud-based content collaboration solution.  Built for the enterprise with robust security, application integration and mobile enablement.  Attendees will learn the technical architecture on integrating with application and services; both on-premise, Cloud based and Hybrid.  Addition with out-of-the-box functionality with multi-channel access through desktop, web, mobile devices.

Oracle Technical Enablement eSeminars for Partners
Target audience:  Technical Presales, Architects, Developers, Project Leader, Program Leader, Strategic Solutions, Digital leader

Delivered by: Platform Technology Solutions Group, Oracle Product Management.

Wed 10th June @16:00-17:00 CET

Register Now

eSeminars are free for partners and require OTN account for registration. Partner attendee must use his/her company email id for registration.

* Web URL and dial-in call details will be sent out with confirmation email for each event separately.

For registration questions please send an email to pts-fmw_ww(AT)oracle.com

FacebookGoogle+TwitterLinkedInPinterestDeliciousDiggAddthis

PX In Memory, PX In Memory IMC?

$
0
0

In my previous post I talked about how to use SQL Monitor to monitor parallel statements. The part of that post which talks about In-Memory Parallel Execution triggered some questions and I want to provide more information on that in a separate post here.

In-Memory Database? In-Memory Parallel Execution? In-Memory Everywhere

Back in the 11.2 days when there was no Oracle Database In-Memory Option (DBIM) there was no confusion about in-memory because there was only one way to use the database memory for parallel execution and that was In-Memory Parallel Execution (IMPX, also known as IMPQ). Starting with 12.1.0.2 DBIM boosted the performance and also the confusion about the term in-memory parallel execution.

I will not go into the details of how these two features work in this post but let us look at the plan note from the previous post and try to understand what it shows about these.

As we see there are two notes about in-memory, Px In Memory Imc and Px In Memory. Let us look at what these two mean.

Px In Memory

This plan note is only related to IMPX and not related to DBIM. It shows whether the statement uses IMPX or not. If you see yes here it means some or all of the tables in the query are accessed through the buffer cache rather than doing direct reads from disk. IMPX looks at the table sizes and the buffer cache size and decides whether to read the blocks into the buffer cache or not. Once the blocks are in the buffer cache subsequent parallel statements can read the data from there rather than going to the disk. In the case of RAC, IMPX makes sure that PX servers are allocated on the nodes where table blocks reside, as a result of this cache fusion is not used to transfer blocks between nodes which in turn makes performance better.

This plan note in SQL Monitor maps to the note parallel scans affinitized for buffer cache in the DBMS_XPLAN output. Here is an example showing IMPX will be used.

The first access to the CUSTOMERS table will read the data from the disk to the buffer cache, subsequent accesses to this table will read data from the buffer cache. The term affinitized here means that specific blocks are assigned to specific nodes and PX servers on those nodes will read the data through the buffer cache.

You will see this note if IMPX is used independent of whether you are on a single-instance database or a RAC database.

So, if you see the note parallel scans affinitized for buffer cache in the DBMS_XPLAN output you will see Px In Memory=yes in SQL Monitor.

Px In Memory Imc

This plan note is only related to DBIM and not related to IMPX. IMC here means In-Memory Columnar which indicates DBIM. The IMC store provides metadata that shows which part of an in-memory table is in which node's memory in a RAC database. Parallel Execution uses this information to allocate PX servers on those nodes so that they can read the data from the IMC store without going to disk. The plan note Px In Memory Imc shows whether the statement accesses an in-memory table and whether PX servers are affinitized to RAC nodes. This does not indicate if DBIM is used or not, that is indicated by the operations in the plan like TABLE ACCESS INMEMORY FULL.

This note maps to the note parallel scans affinitized for inmemory in the DBMS_XPLAN output. Here is an example showing in-memory affinity is used.

In a single-instance database you will not see this note because any PX server can read the data from the single node's IMC store and there is no concept of affinity of PX servers to nodes.

So, if you see the note parallel scans affinitized for inmemory in the DBMS_XPLAN output you will see Px In Memory Imc=yes in SQL Monitor.

One or The Other?

It is possible to have parallel statements using both IMPX and DBIM. If your statement accesses both in-memory tables and tables determined to be read via the buffer cache you can see both notes in the plan output.

In this example, CUSTOMERS table is an in-memory table and since this is a RAC database PX servers are affinitized to nodes. CUSTOMERSPART table is not an in-memory table but Parallel Execution decided to read it through the buffer cache.

There is a lot of information about how DBIM works in the In-Memory blog, I will talk about how IMPX works in a future post. In the meantime please comment here if you have any questions related to it.

Fun with SQL Developer 4.1 SSH Remote Port Forward

$
0
0

I think it's a little tricky but SQL Developer 4.1 has a new way of setting SSH.

SQL Developer 4.1 Release Notes

SSH Tunnel Navigator to define Local and Remote Port Forwards

I think this is a more generic way of setting up SSH than before.
Now with "Remote Port Forwards", you login to remote DB with SQLDev interface
and send Oracle*Net protocol data or HTTP or SMTP data back to your PC, in my case, Windows7.

I think one interesting use case for this is "database link" between  2 separate networks.
For example, your OracleDB on IaaS/PaaS public cloud to another DB on your corporate data center.

I tested this 2 intranet subnets where only SSH protocol is allowed.
Firstly, I have 2 SSH host setup.

I want to create database link from M6 to Exadata. So I create "Remote Port Forward" on M6.

... and I plumb it to "Local Port Forward" to Exadata. Please notice that Port#1523 was used in both.

Now on M6, I can create database link like:

SQL>create database link SQLDev_TMP
   connect to scott identified by tiger
   using 'localhost:1522/orcl.exadata.mydomain';

I didn't go into detail because I don't think this 'database link' is supported. But this is useful for occasionally sending
small amount of data between DBs.

JavaOne Java EE Track: Saying Thanks and a Look at the Real Decision Makers

$
0
0

As some of you know the JavaOne 2015 CFP is now closed. I want to take this opportunity to thank all of those that submitted their thoughtful topics and all those who considered submitting. The outstanding quality of submissions is a testament to your passion for the Java community and it is a great start on the road to keeping JavaOne a true success. In terms of the Java EE track we now have all the raw material we need to construct a strong selection. In the next few weeks we will be working hard with the review committee to carefully sort through all the submissions we have at hand.

I want to remind you now not to be discouraged if you don't get the response you are hoping for. You should remember that you are competing against some of the best and brightest of Java at a global scale - especially so in the Java EE track. As much as we would like for things to be perfect in the end all of this is also based on all too fallible human judgement applied through a fairly intricate process designed with checks, balances and fairness in mind. If your session does not get accepted this year, you should definitely consider honing your submissions and trying again next year. If you are indeed selected I hope you see it as the testament to your abilities and good fortune it truly is. Either way, I hope you will consider coming to JavaOne to experience the incredible talent, energy and intellect in the air.

The Java EE Track Content Committee
I also want to take this opportunity to introduce you to the real decision makers in the track - the content selection committee members. Although I and my co-track lead Lance Andersen clearly do make decisions, I like to think of ourselves as mere coordinators of a very strongly democratic open collaborative team. The folks in the committee by far play the most important role in help shaping the track. They really deserve to be commended as most of them are community folks that contribute many hours of their time to help advance JavaOne. Below are the profiles of these good folks. If you have any questions on your submissions you should feel free to reach out to any one of them or us. In the next few weeks, I plan to publish interviews with some of these folks through the Aquarium blog.

David Blevins needs little introduction. He is an excellent speaker, a long-time JCP expert, Java EE advocate and powerhouse developer behind the highly innovative Apache OpenEJB and TomEE projects. David more recently founded Tomitribe, a company offering commercial support for TomEE. His Twitter handle is @dblevins.

Cay Horstmann is a Java Champion, author, blogger, Java EE advocate and Computer Science professor at San Jose State University. He has been part of the content committee for many years. His Twitter handle is @cayhorstmann.

Johan Vos is a Java Champion, author, speaker, blogger, member of the BeJUG steering group, member of the Devoxx steering group and a JCP member. He is a fan of Java EE, GlassFish and JavaFX. He founded LodgON, a company offering Java based solutions for social networking software. His Twitter handle is @johanvos.

David Heffelfinger is an independent consultant in the Washington DC metropolitan area, author, blogger and speaker. He is a long time advocate of Java EE and GlassFish. He is a brand new and great addition to the committee. His Twitter handle is @ensode.

Ryan Cuprak is the founder of the Connecticut JUG, author, blogger, speaker, JavaOne Rock Star and Java EE advocate. He is a senior manager at Dassault Systemes. Like David, Ryan is a brand new and welcome addition to the committee. His Twitter handle is @rcuprak.

Scott Sosna is a veteran Java developer now working at Dell. He helps with JavaOne on his own time and has been a very strong contributor in the committee for many years. His interests include API design, integration, messaging, REST, SOAP, performance and operations.

Markus Eisele is a Developer Advocate at Red Hat and focuses on JBoss Middleware. He is a long time Java EE advocate, blogger, author, speaker, JCP expert, Java Champion and former Oracle ACE Director. His Twitter handle is @myfear.

Kevin Sutter is the lead architect for the Java EE and JPA solutions for the WebSphere Application Server and the WebSphere Liberty Profile. Kevin is very active with the Java and open-source strategies as they relate to IBM's Middleware. His Twitter handle is @kwsutter.

Linda DeMichiel is the specification lead for Java EE. She is a long-standing member of the Java EE architecture team, initially at Sun, and now at Oracle. Linda has been a specification lead for the EJB and JPA specifications. Linda has been on the committee for a number of years.

David Delabassee is my teammate in the Java EE evangelism team. He is a veteran of Sun and now Oracle that's been involved in JavaOne for many years. In his many roles he has been a product manager, sales consultant and Java Ambassador. His Twitter handle is @delabassee.

Bruno Borges is a product manager for WebLogic, Fusion Middleware, Java and Cloud services. He also actively evangelizes topics from Java Embedded to Java SE and JavaFX to Java EE. His Twitter handle is @brunoborges.

Harold Carr is a veteran of Sun and now Oracle. He is the architect of InfiniBand usage in WebLogic. Throughout his long and illustrious career at Sun/Oracle he has had key roles in the SOAP/JAX-WS/Metro stack, GlassFish, Grizzly, RMI-IIOP/CORBA ORB and load-balancing/fail-over. He has been part of the committee for many years. His Twitter handle is @haroldcarr.

Keep in mind that JavaOne is now already open for registration. I hope to see you all at JavaOne. In the meanwhile as always if you have any questions never hesitate to reach out.

Neuigkeiten zu OpenStack in Solaris

$
0
0

Mit dem Solaris 11.2 Support Repository Update 10.5 (MOS Doc ID 2010909.1) ist jetzt für Solaris das OpenStack Juno Release verfügbar, das nicht nur einer ganze Reihe neuer Funktionalitäten enthält, sondern auch deutlich runder läuft als das Havana Release. Jetzt ist es auch möglich vom Horizon-Dashboard aus die Konsole eines Nova-Clienten (aka einer Solaris-Zone) über einen Browser-basierten VNC-Clienten aufzurufen - ein Feature, das in der Havana-Implementierung auf Solaris noch fehlte. Für diejenigen, die den Upgrade einer Havana-Umgebung auf Solaris planen, gibt es eine detailierte Anleitung. OpenStack-Upgrades gelten ja ganz allgemein als Herausforderung.

Für diejenigen, die sich damit auseinandersetzen wie man eine OpenStack-Umgebung mit mehreren Knoten hoch verfügbar machen kann, gibt es ein neues White Paper: Providing High Availability to the OpenStack Cloud Controller on Oracle Solaros with Oracle Solaris Cluster. Ganz praktisch ist die kleine Anleitung von Jim Kremer in seinem Blog zum Aufsetzen von Swift Services: Solaris Swift All in One.

Anlässlich des OpenStack Summits diese Woche in Vancouver gab es einige Ankündigungen, insbesondere die einer Zusammenarbeit mit Mirantis im Hinblick auf die Nutzung von Oracle Multitenant, Solaris und OpenStack für Database as a Service (DBaaS) insbesondere in Private Cloud Umgebungen über das noch recht neue OpenStack Murano Projekt (Oracle Pressemitteilung Oracle Collaborates with Mirantis to Bring Database as a Service Powered by Oracle Multitenant to OpenStack-Based Private Clouds, Blog Oracle Database Helps to Premiere New OpenStack Community App Catalog). Die Vorträge des OpenStack Summit sind übrigens alle in Form von Videos verfügbar - auch der Vortrag des Solaris-Engineering Chefs Markus Flierl: Making OpenStack Secure and Compliant for the Enterprise.

In Deutschland plant die DOAG einen OpenStack Day am 24. September in Stuttgart. Die genaue Agenda ist zwar noch offen, den Termin sollte man sich aber schon mal vormerken. Und für alle, die über eigene Erfahrungen berichten wollen, gibt es den Call for Presentations zur großen DOAG Konferenz 2015 im November in Nürnberg , der noch bis zum 15. Juni läuft.

GCS 网上讲座日程和下载地址

$
0
0
You can download it in Oracle Database Advisor Webcast Schedule and Archive recordings (Doc ID 1456176.1)

この1年間で24万人のエンジニアが利用!OTNの技術記事を活用しよう

$
0
0

皆さんの会社の新年度はいつですか?オラクルでは5月が年度末でビジネス・イヤーが終わります。今週あたり「今年度もがんばったよねー。来年度もまた心機一転がんばりましょう~!」と1年の一区切りにほっと一息ついてお疲れ様会を催している社員も多いようです。



さて、OTNではオラクル社員の執筆による、主にデータベース関連のオリジナル技術記事を提供しておりますが、この1年間の利用者数をカウントしてみたところ、なんと237,468人(ユニークユーザー数)の方に閲覧されていました。   

派手に宣伝することもなく、サイト内の置き場所もわかりにくい(?)地味なこのコーナーにもかかわらず、こんなに多くの方がここに辿りついて利用してくださっていると思うと、大変ありがたく、また気持ちがひきしまる思いがします。

[今年度良く利用された記事TOP 5] 2014年6月~2015年5月

1位 津島博士のパフォーマンス講座

2位 しばちょう先生の試して納得! DBAへの道

3位 シバタツ流! DWHチューニングの極意 
   (こちらのページの中に目次があります)

4位 ユージ&ギョータの実践データベース講座 Oracle Database 12cを使ってみよう

5位 "PL/SQL 101" ~ PL/SQLの基礎を学ぶ~


DBのプロフェッショナルの方が最も活用しているのが津島博士としばちょう先生シリーズ。津島博士シリーズは今回で46回目、しばちょう先生は39回目を迎える、スーパー・ロングセラー連載で多くのファンが毎号楽しみにされています。他のエンジニアさんがどんな記事を読んでいるか気になりますよね。そこで津島博士としばちょう先生のこの1年のトップ5を調べてみましたのでご参考下さい。

■津島博士のパフォーマンス講座
 (全Indexはこちら

1.第9回良いSQLについて
2.第14回メモリ・チューニングについて
3.第11回良いSQLについて(2)
4. 第19回 UNDOデータとREDOログについて
5. 第3回 Statspackから探る、パフォーマンス問題の原因特定方法


■しばちょう先生の試して納得!DBAへの道
 (全Indexはこちら

1.第5回 SQLの実行計画からパフォーマンスの違いを読み解く
2.第1回表領域の作成と拡張
3.第2回表と表領域の関係
4.第28回 UNDO表領域の管理~保存期間の自動チューニング~
5.第17回表領域の縮小とセグメントの格納位置


「お客さんに喜ばれたよ」「この記事があって助かった!」など社内のエンジニアからも好評の声が挙がっているイチオシ記事を挙げてみました。

”Oracle Database 11gから12cへのアップグレードを無事やり遂げたい”

 →辻先輩と大橋君の「Oracle Database 進撃のアップグレード」談義

”Oracle Databaseのシステムパフォーマンステストを効率的に行いたい”

 →シンジ&アヤノの実践データベース性能テストの極意: Oracle Real Application Testingを使ってみよう

”津島博士を読みこなす前に、まず「パフォチュー」の基本から理解したい”

 →パフォーマンス・チューニング入門


今までOTNの技術記事を読んだことがない方もこの機会に活用してみませんか? 部下の方や後輩エンジニアさんにも是非オススメしてください。

>>目次を見る

なお、「こんな記事を書いて欲しい」、「こんなテーマを取り上げて欲しい」といったご要望がありましたら、是非お寄せ下さい。OTN問合せフォームからお願いします。

Oracle Service Cloud Strategy & Roadmap webinar for EMEA Partners - CHANGE OF DATE! Now June 3rd, 5pm CET

$
0
0

Please note that we are changing the date - from June 9th to June 3rd - of our Oracle Service Cloud Strategy & Roadmap webinar for EMEA Partners. The new registration page is here

Oracle continues to make impactful investments in Oracle Service Cloud to help you provide the best customer service experiences to your customers, at scale.

We’ve also delivered some exciting innovations over the last 12 months to increase customer retention rates, improve agent and administrator productivity, and further lower service costs.

Please join Christopher Patterson (Senior Director, Oracle Service Cloud Product Management) and myself on Tue June 3rd at 5pm CET (4pm GMT) for a special 90' EMEA Partners webinar on Oracle Service Cloud (aka RightNow) strategy and roadmap.

Join this Oracle Service Cloud Roadmap Webinar to:

  • Hear about the most exciting planned innovations (includes 2015, 2016 and beyond Roadmap)
  • Review the most valuable recent feature updates
  • Get expert answers to your roadmap questions

Never before has it been easier to upgrade, so plan now to take advantage of recent and upcoming innovations.

Register here

Oracle数据库技术支持通讯2015年5月版(2015年5月)

Google revoluciona las búsquedas otra vez

$
0
0


El 21 de abril, Google anunció un cambio sísmico en su algoritmo de búsqueda móvil que va a cambiar el orden de cómo se clasifican los sitios web (páginas individuales) a través de la búsqueda móvil. Los sitios web que no están adaptados a los móviles (mobile friendly) puntuarán menos y aparecerán más abajo a pesar de que aparezcan en puestos altos en el ranking de bíusqueda de  páginas completas o en el de búsqueda móvil en los viejos tiempos. Esto cambia las reglas del juego; especialmente para las webs que han dedicado tiempo en optimizar el ranking de resultados de motores de búsqueda en Internet (SEO) y fueron cosechando los beneficios en el móvil.

Imagen exportada de aquí

El nuevo cambio de algoritmo de Google es un paso adelante en la mejora de la experiencia de búsqueda de los 3.65 mil millones de usuarios que acceden a Internet desde sus dispositivos inalámbricos. Ni que decir tiene, dado que ya hemos pasado oficialmente el "momento móviles", que este es un cambio en la dirección correcta. Para las empresas y los editores que han tomado las medidas necesarias en la construcción de sus webs que responden al dispositivo o han construido una versión móvil de su web por separado - se encontrarán con una gran ventaja cuando Google accione el interruptor. Ahora tendrán que competir contra las mejores palabras clave en móviles etc.

No dejes que tus páginas web desaparezcan de las búsquedas en dispositivos móviles.

Para otros, como los profesionales de recursos humanos, esto no es tan bueno. Por ejemplo, si eres uno de los principalescontratistas de defensa probablemente generará un alto volumen de visitas en los resultados de búsquedas  para perfiles de ingeniero, con lo cual es probable que salga en un ranking alto en las  búsquedas de trabajo para ingenieros que no se hacen desde móviles. Después del cambio tu ranking caerá dramáticamente en las búsquedas desde móviles. La buena noticia es que el cambio parece tener algún tiempo de retraso, lo que significa que si tu web de empleo está pendiente de optimización para móviles, la caída drástica en el número de visitantes a tu web no ocurrirá por el momento. Éste es el camino a seguir:

Revisa que tu web de empleo es ”mobile friendly”

Puedes realizar una comprobación rápida con la prueba de dispositivos móvil de Google o con  herramientas para webmasters. Una vez que rediseñe y publique sus páginas para móviles, Google volverá a procesar el contenido de su web para que sea optimizado para búsquedas móviles.

Toma medidas proactivas para habilitar la aplicación através del móvil.

El momento es ahora ya que Google no esperará a que se optimize la experiencia de los candidatos en los dispositivos móviles. El lugar que ocupan tus ofertas de trabajo en los listados de búsqueda de empleo son clave para tu empresa y si el proceso de aplicación del candidato en tu empresa es exclusivamente desde un ordenador entonces es probable que pueda perder un volumen significativo de potenciales candidatos. Una aplicación o sistema que te permita crear y publicar anuncios que estén optimizados tanto para móvil como para redes sociales reducirá el tiempo invertido en reaccionar a nuevos cambios de Google. Echa un vistazo a las soluciones de Oracle y descubre cómo te pueden ayudar.

Mantén contenidos relevantes para motores de búsqueda web

Mantén tu contenido actual y adaptado a tus candidatos. Contacta con expertos en motores de búsqueda en tu organización para desarrollar una estrategia de contenidos optimizados para las búsquedas en Internet. Pueden ayudarte a optimizar tu contenido respecto a términos relevantes de palabras clave, enlaces, etiquetas de título, etc., para lograr un mejor posicionamiento en el ranking de las oportunidades profesionales que ofrece la búsqueda. Esto no va a solucionar tu problema de dispositivos móviles, pero ayudará a mantener / mejorar las visitasde escritorio en elínterin.

Artículo original de Sunita Khatri, Product Marketing Director for Oracle’s HCM Talent Management Cloud solution. El artículo original se puede encontraraquí

 Si está interesado en conocer mejor nuestras soluciones de RRHH:

  • Acceda ahora a una demostración gratuita aquí 
  • Haz un tour rápido por las soluciones en la Nube de Oracle

Nouveaux cours en Français disponibles à la planification

$
0
0


Sachez que depuis peu, les cours français suivants sont devenus disponibles à  la planification :

Fusion Applications:

·Fusion Applications R8: Administer using EM12c Cloud Control (3 jours)

·Fusion Applications: Fixed Assets Fundamentals (2 jours)

Identity Management:

·Oracle Access Manager 11g R2: Administration Essentials (5 jours)

Java:

·Java EE 7: Front-end Web Application Development (5 jours)

Middleware Development Tools:

·Oracle Mobile Application Framework 2.1: Develop Mobile Apps (3 jours)

Oracle Linux:

·Oracle Linux 7: System Administration (5 jours)

WebCenter:

·Oracle WebCenter Sites 11g: Engage for Developers (2 jours)

Pour Rappel : Votre remise OPN est intégrée dans le prix standard indiqué sur nos pages Web. Vous ne trouvez pas les dates appropiées à vos besoins sous le lien ci-desssus, merci de contacter Oracle University France avec vos demandes au N° suivant :0800 945 109ou par mail : education_fr@oracle.com.

现以优惠价格获取Java SE 8 OCP认证

$
0
0

Brandye BarringtonOracle2015428

Java SE 8颠覆了人们编写代码的方式。

获得Java SE 8认证将帮助您充分利用其提供的所有新功能。

广大Java SE 8 OCA编程人员,现在您成功通过Java SE 8 Programmer II(1Z1-809)考试即可成为Oracle Certified Professional, Java SE 8程序员。该考试的Beta测试版现正以大幅优惠价推出,只需50美元。

准备这门认证考试的过程将让您深入了解功能显著升级的最新版本Java。学习在日常编程时使用lambdas表达式,从而降低开发时间,为编程创造更大的灵活性。

虽然这项认证不含培训要求,但还是强烈建议您参加推荐的培训课程Java SE 8 Programming。该培训由教师指导授课,通过理论联系实践的方式,教您如何有效地在实际运用中利用所学的知识与概念。

欢迎访问pearsonvue.com/oracle并注册考试1Z1-809。登录Oracle认证网站了解所有备考详情,包括考试目标、考题数量、时间分配和考试价格等。.

快速链接:

·认证路径:Oracle Certified Professional, Java SE 8 Programmer

·认证考试:Java SE 8 Programmer II(1Z1-809)

·推荐培训:Java SE 8 Programming

·认证网站:About Beta Exams

·立即注册:Pearson VUE

Traffic Director 11.1.1.9 is now available

$
0
0

Traffic Director 11.1.1.9 is now available for Exalogic and SuperCluster. Oracle Engineered Systems customers can now uptake Traffic Director 11.1.1.9 either as a new installation or simply installing on top of an existing Traffic Director 11.1.1.x release.

In addition to addressing several critical bug fixes, this service pack release also delivers the following key features:

1. Modern security protocols such as TLS /1.2 - relevant for every deployment. 

2. Native support for OEL 6.x and Solaris 11.2 platform.

3. Configure OTD to serve a HTML page - within the load balancer - during your application patching window !  Without this capability, several customers had to provision a web server - such as OHS - to address this use case.

4. Key UI refinements - View Origin server (WebLogic) online/offline status within the UI, Simplicity while viewing Load Balancer log files etc. 

5. Better deployment story for SuperCluster / Exalogic (Solaris) - High Availability Support on IB interfaces (even within Zones) on Solaris 11.2. This capability now allows customers to provision OTD in a HA fashion even within a Solaris Container.

For additional information, please refer to the Traffic Director OTN page


Creating and scaling Dynamic Clusters using wlst by Jaap Poot

$
0
0

clip_image002Introduced in Weblogic 12.1.2, dynamic clusters is a great feature to scale your private cloud.
Dynamic clusters provides you easy scaling of Weblogic clusters by adding and removing managed server instances on demand. They contain one or more dynamic servers. These dynamic servers are based on a single servertemplate that guarantees that every member of the cluster is exactly the same.

Creating Dynamic Clusters

Let's take a look at some of the possibilities as we create a dynamic cluster.

I have created a virtualbox environment.
This environment consists of four VM's with the following specs.

  • 2 vCPU's
  • 4 Gb memory
  • 50 Gb disk
  • Oracle Linux 6.6
  • Java 1.7.0_75
  • Weblogic 12.1.3.0.2

I created a simple domain called demo_domain with only an AdminServer and four machines.
After unpacking the domain to the four servers, the nodemanagers where started and are reachable by the AdminServer.

Now let go through the process of creating a dynamic cluster.
Open the Weblogic Console and navigate to Environment -> Clusters
Lock and Edit the domain in the Change Center. Read the complete article here.

WebLogic Partner Community

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.

BlogTwitterLinkedInForumWiki

eProseed has accomplished it’s first go-live with SOA Suite 12c technology

$
0
0

clip_image001We are pleased to announce that eProseed has accomplished its first go-live with 12c technology working with CFL - The Luxembourgish National Railway Company.
With this implementation, CFL accomplished a high-reliable, agile and flexible integration platform across various heterogeneous application - existent in and off-premises - empowering CFL monitoring and control capabilities in addition to a faster customer on-boarding.
eProseed team’s expertise enhanced the new SOA Suite 12c capabilities enabling to deliver a short time-to-market solution based in standards and best practices that lays a solid foundation for future coming projects.
This first phase is cornerstone of a broader IT transformational project where CFL wants to put in place a full SOA platform capable of handling all the communications between its internal applications and their partners.
The synergies between the SOA 12c components, namely B2B and OSB products, are key for building a solid and flexible integration layer to implement a variety of interfaces that enable CFL to communicate easily and efficiently with all of their partners. Read the article here.

SOA & BPM Partner Community

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.

BlogTwitterLinkedInimage[7][2][2][2]Facebookclip_image002[8][4][2][2][2]Wiki

Managing Your Customers, Contacts and Related Sales Data - The Easy Way

$
0
0

Introduction

The following article looks at the simplified web services available to Oracle Sales Cloud users for creating basic customer, contact, and other records. This is also documented in this MyOracleSupport whitepaper, however in this article you'll find our own examples and many usage tips.

If you search in Oracle Enterprise Repository for web services related to managing Sales Accounts (also known as Customers) then you'll find that several are returned.

  • Sales Account Resource Service - related to the resources associate with the account.
  • Sales Account Service - for a given party record, manage it as a sales account.
  • Sales Party - manage the party usage for a given party

Whilst these are available for use, exactly which to use for creating net-new customer records is not very clear. Angelo Santagata's blog has an example (from some time ago) however you'll notice it requires some familiarization with the underlying Trading Community Architecture (TCA) data model and the construction of a hierarchy of related components that make up the completed customer record (party, party-usage, location, address etc). In addition using the services above also involves obtaining and passing internal ID values (like PartyID) through the sequence of service calls. For many cases this is more work than is required.

Starting in Release 9 there was a set of web services which greatly simplifies the creation of Sales Accounts (Customers), Addresses, Contacts, Households, and the Relationships between them. These are listed in OER with titles beginning "Sales Cloud ..." as shown below.

In this article we will look at the Sales Cloud Account Service, however each service in this group have similar operations, interfaces, attributes, and characteristics. The service WSDL's for all of these can be found below, and they each include the following operations (just replace Account with the object name): createAccount, updateAccount, deleteAccount, mergeAccount (which combines update and insert), findAccount, and processAccount (used for bulkloading).

  • https://[YourSalesCloudHost]/crmCommonSalesParties/AccountService?WSDL 
  • https://[YourSalesCloudHost]/crmCommonSalesParties/ContactService?WSDL
  • https://[YourSalesCloudHost]/crmCommonSalesParties/AddressService?WSDL
  • https://[YourSalesCloudHost]/crmCommonSalesParties/HouseholdService?WSDL
  • https://[YourSalesCloudHost]/crmCommonSalesParties/RelationshipService?WSDL

Creating Sales Accounts / Customers

The key thing to note here is that most of the operations, including createAccount, accept similar values as the user interface, with no need for prerequisite calls to get internal ID's. As such the services will use the data provided to create new records such as address locations, and where additional context association is needed the user credentials associated with the web service request are used, such as for the Customer Account Owner value field (OwnerPartyId).

As you can see from the sample createAccount request below, the data input is simple.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:createAccount 
   xmlns:ns1="http://xmlns.oracle.com/apps/crmCommon/salesParties/accountService/types/"><ns1:account 
   xmlns:ns2="http://xmlns.oracle.com/apps/crmCommon/salesParties/accountService/"><ns2:SourceSystem xsi:nil="true"/><ns2:SourceSystemReferenceValue xsi:nil="true"/><ns2:OrganizationName>Smith Power Supplies</ns2:OrganizationName><ns2:CEOName>John Smith</ns2:CEOName><ns2:Type>ZCA_CUSTOMER</ns2:Type><ns2:CreatedByModule>SALES</ns2:CreatedByModule><ns2:PhoneCountryCode>1</ns2:PhoneCountryCode><ns2:PhoneAreaCode>650</ns2:PhoneAreaCode><ns2:PhoneNumber>1234567</ns2:PhoneNumber><ns2:FaxCountryCode>1</ns2:FaxCountryCode><ns2:FaxAreaCode>650</ns2:FaxAreaCode><ns2:FaxNumber>7654321</ns2:FaxNumber><ns2:EmailAddress>newbusiness@jpowersuppinc.com</ns2:EmailAddress><ns2:URL>https://www.jpsuppwebsite.com</ns2:URL><ns2:PrimaryAddress 
   xmlns:ns3="http://xmlns.oracle.com/apps/crmCommon/salesParties/commonService/"><ns2:SourceSystem xsi:nil="true"/><ns2:SourceSystemReferenceValue xsi:nil="true"/><ns3:AddressLine1>1234 El Camino Real</ns3:AddressLine1><ns3:City>San Mateo</ns3:City><ns3:Country>US</ns3:Country><ns3:County>San Mateo</ns3:County><ns3:PostalCode>94401</ns3:PostalCode><ns3:State>CA</ns3:State></ns2:PrimaryAddress></ns1:account></ns1:createAccount></soap:Body></soap:Envelope>

In testing this we made a few observations compared to other payload samples available. Please review these if you encounter any problems:

  • SourceSystem and SourceSystemReferenceValue attributes are not required to have any specific value.
  • IndustryCodeType and the associated IndustryCode attributes are related to the CUSTOMER_CATEGORY system lookup, however when included can throw an exception unless matching data is configured (as it's a read-only attribute). It is not a required field and as such in this example it was removed.
  • CreatedByModule was set to SALES so it is inline with records created by the UI.
  • One the request is processed the Sales Account is available in the UI for use, as there is no additional approval or processing.
  • The default type is ZCA_CUSTOMER for creating customers, however you can use ZCA_PROSPECT to create prospects also.

Finding The Account Records

All of these services support the standardized findCriteria used throughout Sales Cloud, and hence again requires no internal Id values. As used in the example below it is recommended to include some filtering or a fetchSize limit to avoid performance problems, and to use the findAttribute element in your request so to return only the attributes values you need, as by default the response payload contains dozens of attributes for each record. 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:typ="http://xmlns.oracle.com/apps/crmCommon/salesParties/accountService/types/"
xmlns:typ1="http://xmlns.oracle.com/adf/svc/types/"><soapenv:Header/><soapenv:Body><typ:findAccount><typ:findCriteria>   <typ1:fetchStart>0</typ1:fetchStart>   <typ1:fetchSize>-1</typ1:fetchSize>   <typ1:filter>    <typ1:group>    <typ1:conjunction>And</typ1:conjunction>    <typ1:upperCaseCompare/>    <typ1:item>     <typ1:conjunction>And</typ1:conjunction>      <typ1:upperCaseCompare>false</typ1:upperCaseCompare>      <typ1:attribute>CreationDate</typ1:attribute>      <typ1:operator>AFTER</typ1:operator>      <typ1:value>2015-05-01</typ1:value>    </typ1:item>    </typ1:group>   <typ1:nested/>    </typ1:filter>   <typ1:findAttribute>PartyUniqueName</typ1:findAttribute>  </typ:findCriteria>  <typ:findControl>    <typ1:retrieveAllTranslations>false</typ1:retrieveAllTranslations>  </typ:findControl></typ:findAccount></soapenv:Body></soapenv:Envelope>

If you are using Application Composer then you can use the SalesAccountVO to create/query these records or alternatively call the findAccount web service operation passing in the following equivalent map:

 def findCriteria = [filter: [ group: [ [ item: [ 
  [ attribute :'CreationDate', operator :'AFTER', value :[[item:'2015-05-01']] ], 
  ] ] ] ], findAttribute:[[item:'PartyUniqueName']]]
 def findControl = [ ] 
 def acts = adf.webServices.SimplifiedAccountService.findAccount(findCriteria, findControl)
 def actlist = acts[0].Value
 setAttribute('SelectedAccounts_c',actlist) 

Of course you'd want to manipulate the returned Array before using the setAttribute, and recommended ways of doing this will be covered in a separate article related to handling web service responses in Groovy.

Updating Records

To use the updateAccount service operation you will need the PartyId value for your Sales Account.

This is available from either the createAccount or findAccount response payloads.

Using this you can use this operation to change any of the attributes available in the Sales Cloud Account SDO.

Customer Contacts and Relationships

The Sales Cloud Contacts service allows you to create contact records.

Contacts have an underlying type, specifying if they can be sold-to directly (type ZCA_CUSTOMER), for use as a prospect (type ZCA_PROSPECT), or are a standard Business Contact (type ZCA_CONTACT). When you create a contact records via the web service this defaults to the ZCA_CONTACT type which is recommended for basic use. In this case the type element is not included in the request payload (see the whitepaper for a sample).

Once records are created use the Sales Cloud Relationships Service createRelationship operation to associate your Contact with a particular Account/Customer. You do the association by supplying either the PartyID or the PartyNumber attributes for your Account and Contact records. Both are returned in the related create response payloads and again are also available in the findAccount / findContact operations.

In the following example the ObjectPartyId is the Account and the SubjectPartyId is the Contact. The relationship type and code ensure that this is shown on the UI under the list of contacts for this supplier, and you can specify start and end dates to setup accurate data for your users.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:createRelationship 
 xmlns:ns1="http://xmlns.oracle.com/apps/crmCommon/salesParties/relationshipService/types/"><ns1:relationship 
 xmlns:ns2="http://xmlns.oracle.com/apps/crmCommon/salesParties/relationshipService/"><ns2:ObjectPartyId>300000003709017</ns2:ObjectPartyId><ns2:SubjectPartyId>300000003647269</ns2:SubjectPartyId><ns2:RelationshipType>CONTACT</ns2:RelationshipType><ns2:RelationshipCode>CONTACT_OF</ns2:RelationshipCode><ns2:StartDate>2015-05-20</ns2:StartDate><ns2:EndDate>2025-12-31</ns2:EndDate><ns2:CreatedByModule>SALES</ns2:CreatedByModule><ns2:Comments>NEW CONTACT RELATIONSHIP</ns2:Comments></ns1:relationship></ns1:createRelationship></soap:Body></soap:Envelope> 

Addresses and Households

These two additional services emulate the structure and functionality of the Account Service mentioned above, and for Households contacts can be associated through the relationship as also described.

New addresses are created as part of the top level object creation services, however if you wish to create more then this is possible using the Address Service.

Use UCP with Hibernate

$
0
0

Hibernate ORM is an object/relational mapping framework for Java. Out-of-box, Hibernate supports two open source connection pools C3P0 and Proxool.

Universal Connection Pool (UCP) is Oracle’s feature-rich Java connection pool, replacing the Implicit Connection Cache (ICC), which has been de-supported in Oracle Database 12c. Besides standard connection pooling features, UCP has also been designed for scalability and high-availability during planned and unplanned database downtimes, with seamless support for Oracle Real Application Clusters (RAC), Active Data Guard (ADG) and Global Data Services (GDS).

This article illustrates a couple of options for using Oracle Universal Connection Pool (UCP) with Hibernate. The code samples are for demonstration purpose only.

Using UCP data source via JNDI lookup

If the target application can use JNDI to lookup a data source (for example, when using Tomcat), then users can specify a UCP data source for Hibernate to use, by using the Hibernate property "hibernate.connection.datasource". This can be done either declaratively in a Hibernate configuration file (XML or properties file), or programmatically on org.hibernate.cfg.Configuration.

For example, after binding a UCP PoolDataSource in JNDI, users can specify in hibernate.cfg.xml:

<hibernate-configuration><session-factory><property name="hibernate.connection.datasource"> java:comp/env/UCP_PoolDataSource_JNDI_NAME</property>

All the UCP connection pool and data source configurations should be done on the PoolDataSource, before binding it in JNDI.

Using UCP data source with Spring framework

If the target application can use Spring along with Hibernate, then UCP data sources can be configured in Spring configuration XML files.

For example:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><!-- Initialization for data source --><bean id="dataSource" class="oracle.ucp.jdbc.PoolDataSourceImpl"><property name="connectionFactoryClassName" value="oracle.jdbc.pool.OracleDataSource"/><property name="URL" value="jdbc:oracle:thin:@//host:port/service_name"/><property name="user" value="scott"/><property name="password" value="tiger"/><property name="maxPoolSize" value="10"/><property name="initialPoolSize" value="5"/></bean><!-- Definition for EmpJDBCTemplate bean --><bean id="EmpJDBCTemplate" class="test.EmpJDBCTemplate"><property name="dataSource" ref="dataSource"/></bean></beans>

Implementing UCP as a Hibernate ConnectionProvider

If the target application is standalone and cannot use the two options above, Hibernate provides the ConnectionProvider interface to integrate with a third-party JDBC connection provider. Users need to implement this interface and then specify the implementation class to Hibernate.

The ConnectionProvider interface has changed with different Hibernate versions. As of Hibernate 4.x, the interface is org.hibernate.engine.jdbc.connections.spi.ConnectionProvider. We will use that version for illustration.

The following is an example implementation of ConnectionProvider that plugs in a UCP data source. It has been tested using Hibernate 4.3.8. Note that the Hibernate 4.x version of the interface no longer provides the configure(Properties hibernateProperties) method, so this example simply overrides the DriverManagerConnectionProviderImpl which provides a similar method. An alternative is for the interface implementation to load the configuration properties from its own properties file or explicitly from the hibernate.properties file.

/* Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. */ package oracle.ucp.hibernate.sample; import java.io.PrintWriter; import java.io.StringWriter; import java.io.Writer; import java.sql.Connection; import java.sql.SQLException; import java.util.Map; import java.util.logging.Logger; import oracle.ucp.UniversalConnectionPoolException; import oracle.ucp.admin.UniversalConnectionPoolManager; import oracle.ucp.admin.UniversalConnectionPoolManagerImpl; import oracle.ucp.jdbc.PoolDataSource; import oracle.ucp.jdbc.PoolDataSourceFactory; import org.hibernate.HibernateException; import org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; public class UCPConnectionProvider extends DriverManagerConnectionProviderImpl { private PoolDataSource pds; private static final Logger logger = Logger.getLogger(UCPConnectionProvider.class.getCanonicalName()); private static final String URL = "hibernate.ucp.url"; private static final String USER = "hibernate.ucp.user"; private static final String PASSWORD = "hibernate.ucp.password"; private static final String CONN_FACTORY = "hibernate.ucp.connectionFactoryClassName"; private static final String POOL_NAME = "hibernate.ucp.connectionPoolName"; private static final String MAX_POOL_SIZE = "hibernate.ucp.maxPoolSize"; private static final String MIN_POOL_SIZE = "hibernate.ucp.minPoolSize"; private static final String INITIAL_POOL_SIZE = "hibernate.ucp.initialPoolSize"; private static final String FAN_ENABLED = "hibernate.ucp.fastConnectionFailoverEnabled"; private static final String ONS_CONFIG = "hibernate.ucp.onsConfiguration"; private static final String CONN_VALIDATE = "hibernate.ucp.validateConnectionOnBorrow"; public UCPConnectionProvider() { try { pds = PoolDataSourceFactory.getPoolDataSource(); logger.finest("PoolDataSource initialized: " + pds); } catch (Exception exc) { logger.warning(getStackTraceString(exc)); } } public void configure(Map props) throws HibernateException { if(pds == null) throw new HibernateException("PoolDataSource was not initialized."); if (props == null) throw new HibernateException("Null configuration properties passed in."); try { logger.finest("Passed in properties: " + props); String tempval = (String) props.get(CONN_FACTORY); if (tempval != null) pds.setConnectionFactoryClassName(tempval); tempval = (String) props.get(URL); if (tempval != null) pds.setURL(tempval); tempval = (String) props.get(USER); if (tempval != null) pds.setUser(tempval); tempval = (String) props.get(PASSWORD); if (tempval != null) pds.setPassword(tempval); tempval = (String) props.get(POOL_NAME); if (tempval != null) pds.setConnectionPoolName(tempval); tempval = (String) props.get(MAX_POOL_SIZE); if (tempval != null) pds.setMaxPoolSize(Integer.parseInt(tempval)); tempval = (String) props.get(MIN_POOL_SIZE); if (tempval != null) pds.setMinPoolSize(Integer.parseInt(tempval)); tempval = (String) props.get(INITIAL_POOL_SIZE); if (tempval != null) pds.setInitialPoolSize(Integer.parseInt(tempval)); tempval = (String) props.get(FAN_ENABLED); if (tempval != null) pds.setFastConnectionFailoverEnabled(Boolean.parseBoolean(tempval)); tempval = (String) props.get(ONS_CONFIG); if (tempval != null) pds.setONSConfiguration(tempval); tempval = (String) props.get(CONN_VALIDATE); if (tempval != null) pds.setValidateConnectionOnBorrow(Boolean.parseBoolean(tempval)); } catch (SQLException sqlexc) { logger.warning(getStackTraceString(sqlexc)); } } public Connection getConnection() throws SQLException { final Connection conn = pds.getConnection(); logger.finest("Got connection " + conn + " from " + pds +", number of available connections = " + pds.getAvailableConnectionsCount() +", borrowed connections = " + pds.getBorrowedConnectionsCount()); return conn; } public void closeConnection(Connection conn) throws SQLException { conn.close(); logger.finest("Closed connection " + conn + " from " + pds +", number of available connections = " + pds.getAvailableConnectionsCount() +", borrowed connections = " + pds.getBorrowedConnectionsCount()); } public void close() { try { final UniversalConnectionPoolManager mgr = UniversalConnectionPoolManagerImpl.getUniversalConnectionPoolManager(); mgr.destroyConnectionPool(pds.getConnectionPoolName()); logger.finest("Closed PoolDataSource " + pds); } catch (UniversalConnectionPoolException exc) { logger.warning(getStackTraceString(exc)); } } public boolean supportsAggressiveRelease() { return true; } public boolean isUnwrappableAs(Class cls) { return false; } public T unwrap(Class cls) { return null; } private String getStackTraceString(Throwable exc) { final Writer stackTraceWriter = new StringWriter(1024); final PrintWriter pw = new PrintWriter(stackTraceWriter); exc.printStackTrace(pw); return stackTraceWriter.toString(); } }

With UCP ConnectionProvider implementation ready, application can declaratively specify the implementation class name using the Hibernate property "hibernate.connection.provider_class".

Below is an example hibernate.cfg.xml file including the UCP-specific configuration properties:

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. --><hibernate-configuration><session-factory><property name="hibernate.connection.provider_class"> oracle.ucp.hibernate.sample.UCPConnectionProvider</property><property name="hibernate.ucp.url"> jdbc:oracle:thin:@//host:1521/service_name</property><property name="hibernate.ucp.connectionFactoryClassName"> oracle.jdbc.pool.OracleDataSource</property><property name="hibernate.ucp.user">scott</property><property name="hibernate.ucp.password">tiger</property><property name="hibernate.ucp.maxPoolSize">2</property></session-factory></hibernate-configuration>

Conclusion

In this article, we illustrated three options for using UCP with Hibernate. In all three cases, UCP will function as the connection pool for Hibernate’s JDBC connections and intercept JDBC connection checkouts and checkins without additional application code changes. This allows applications to utilize UCP’s full pooling capabilities including all the scalability and high-availability features for Oracle RAC, ADG, and GDS.

UCP with Spring Framework

$
0
0

This article illustrates the steps to use Oracle Universal Connection Pool (UCP) with the Spring framework, using a sample application built using the JDBC template.

  • Assume there is a simple table EMP in the database with a single column “name” that is loaded with employee information (i.e., employee names).
  • Consider the following example DAO class in the package “test”:
  • The following is an example of the Row mapper implementation class for the EMP table:
  • The following class is the example of a java class that uses the JDBC Template for implementing the business logic:
  • The XML configuration file should specify UCP's oracle.ucp.jdbc.PoolDataSourceImpl as the data source class along with relevant connection pool properties, such as the initial-pool-size, max-pool-size, etc. For this sample, the XML configuration file is named "HelloAppConf.xml".
    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><!-- Initialization for data source --><bean id="dataSource" class="oracle.ucp.jdbc.PoolDataSourceImpl"><property name="connectionFactoryClassName" value="oracle.jdbc.pool.OracleDataSource"/><property name="URL" value="jdbc:oracle:thin:@//host:port/service_name"/><property name="user" value="scott"/><property name="password" value="tiger"/><property name="maxPoolSize" value="10"/><property name="initialPoolSize" value="5"/></bean><!-- Definition for EmpJDBCTemplate bean --><bean id="EmpJDBCTemplate" class="test.EmpJDBCTemplate"><property name="dataSource" ref="dataSource"/></bean></beans>
  • The main application code looks like the following. The application using the JDBC template will internally use the Universal Connection Pool (UCP) for connection check-outs and check-ins.

Viewing all 19780 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>