lunes, 27 de febrero de 2017

MONDAY SPOTLIGHT : You are invited to Asia Pacific Webcasts in March and April


Happy Monday to all Linux fans, this week we would like to highlight some of the online events that we are running in our Asia Pacific region. You can also watch the on-demand webinar at a time suitable in your calendar but don't forget to register to upcoming events if you are in that region or prefer the evening webinar in North America. These are live events that you can ask questions and provide comments to speaker. 

UPCOMING WEBCASTS:


1) Thinking of Migrating Your Traditional Infrastructure Management to Openstack?
Mar 15, 2017, 1:30 PM SGT / 11:00 AM IST /4:30 PM AEST
Register to this webinar



2) Providing Zero-Downtime for Critical Applications, Including Docker Container 

Apr 12, 2017, 1:30 PM SGT / 11:00 AM IST /3:30 PM AEST

We look forward to seeing you all in these webinars. Register today to all webinars.

Oracle Hot Topics: CLUSTERWARE NODES HANGING FOR THE LAST THREE DAYS

Bugs

Bug
Product Area
Bug ID
Last Updated
Oracle Database - Enterprise Edition
20140148
Mon, 27 Feb 2017 05:29 GMT-06:00

Knowledge Articles

Knowledge Article
Product Area
Last Updated
Oracle Database Configuration Assistant Oracle Database - Enterprise Edition
Mon, 27 Feb 2017 08:02 GMT-06:00


Oracle Hot Topics: ALERT: Database Corruption ORA-600 ORA-7445 errors after applying AIX SP patches - AIX 6.1.9.7 to SP08 or AIX 7.1.4.2 to SP03

Alerts

Alert
Product Area
Last Updated
Oracle Database - Enterprise Edition
Fri, 24 Feb 2017 14:23 GMT-06:00

Bugs

Bug
Product Area
Bug ID
Last Updated
Oracle Database - Enterprise Edition
25608370
Sat, 25 Feb 2017 03:22 GMT-06:00

Product News

News
Product Area
Last Updated
Oracle Database - Enterprise Edition
Wed, 22 Feb 2017 15:16 GMT-06:00

Knowledge Articles


Knowledge Article
Product Area
Last Updated
Oracle Database - Enterprise Edition
Fri, 24 Feb 2017 19:21 GMT-06:00

Escribe Testeos Que Importen: Aborda El Código Más Complejo Primero

BY ANDREY SHALITKIN - FREELANCE SOFTWARE ENGINEER 
@ TOPTAL(TRANSLATED BY MARISELA ORDAZ)

Link original de la publicación: Aquí

Hay muchas discusiones, artículos y blogs que tratan el tema de calidad de código. La gente dice – ¡usa técnicas Test Driven! ¡Los testeos son algo que “debes tener” para comenzar cualquier refactorización! Todo eso está bien, pero estamos en el 2016 y hay una gran cantidad de productos y bases de código que todavía están en producción, los cuales fueron creados hace diez, quince y hasta veinte años. No es secreto que muchos de ellos tienen código heredado con baja cobertura de prueba.

Aunque siempre me gustaría estar en el borde principal, o hasta sangriento, del mundo tecnológico – comprometido con nuevos proyectos y tecnologías – desafortunadamente no siempre es posible y a menudo tengo que lidiar con sistemas obsoletos. Me gusta decir que cuando desarrollas desde cero, actúas como creador, creando nueva materia. Pero cuando trabajas con código heredado, eres como un cirujano – sabes cómo funciona el sistema en general pero nunca sabes con seguridad si el paciente saldrá bien de la “operación”. Y ya que es un código heredado, no hay muchos testeos actualizadas en las que puedas confiar. Esto quiere decir que, frecuentemente, uno de los primeros pasos es cubrirlo con testeos. Para ser más precisos, no sólo para proporcionar cobertura sino para desarrollar una estrategia de prueba de cobertura.

Acoplamiento y Complejidad Ciclomática: Métricas para una Cobertura de Prueba Más Inteligente
Básicamente, lo que necesitaba determinar era que partes (clases / paquetes) del sistema necesitábamos cubrir con testeos en primer lugar, dónde necesitamos testeos de unidad, dónde serían más útiles testeos de interrogación, etc. Hay muchas formas de abordar este tipo de análisis y el que he usado tal vez no sea el mejor, pero es parecido a un acercamiento automático. Una vez que se ha implementado mi acercamiento, toma poco tiempo hacer el análisis como tal y lo que es más importante, trae algo de diversión al análisis de código heredado.

La idea principal aquí es analizar dos métricas – acoplamiento (ej., acoplamiento aferente, o CA) y complejidad (ej. Complejidad ciclomática).

La primera mide cuántas clases mide nuestra clase, así que básicamente nos dice que tan cerca está alguna clase en particular al corazón del sistema; mientras más clases hay que usan nuestra clase, más importante es cubrirlas con testeos.

Por otra parte, si una clase es muy simple (ej. Contiene sólo constantes), entonces si es usada por muchas otras partes del sistema, no es tan importante crear una prueba para ella. Aquí es donde la segunda métrica puede ayudar. Si una clase contiene mucha lógica, la complejidad Ciclomática será alta.

La misma lógica puede ser aplicada en reversa; ej., aún si una clase no es usada por muchas clases y representa solo un caso de uso particular, todavía tiene sentido cubrirla con testeos si su uso interno lógico es complejo.

Sin embargo, hay una advertencia: digamos que tenemos dos clases – una con CA de 100 y complejidad de 2, y la otra con CA de 60 y complejidad de 20. Aunque la suma de las métricas es más alta para la primera, deberíamos cubrir la segunda primero. Esto se da porque la primera clase está siendo usada por muchas otras clases, pero no es muy compleja. Por otro lado, la segunda clase también está siendo usada por muchas otras clases pero es relativamente más compleja que la primera clase.

Para resumir: necesitamos identificar las clases con CA alto y complejidad Ciclomática. En términos matemáticos, se necesita una función fitness que pueda ser usada como clasificación. - f(CA,Complejidad) – de la cual los valores aumentan junto con CA y Complejidad.

En general, las clases con las diferencias más pequeñas entre las dos métricas deberían tener la prioridad más alta para cobertura de prueba.

Encontrar herramientas para calcular CA y Complejidad para toda la base de código y proporcionar una manera simple de extraer esta información en formato CSV, demostró ser un reto. Durante mi búsqueda, encontré dos herramientas que son gratis entonces sería injusto no mencionarlas:
Un Poco De Matemáticas
El problema principal aquí es que tenemos dos criterios – CA y complejidad Ciclomática – por esto necesitamos combinarlas y convertirlas en un solo valor escalar. Si tuviéramos una tarea un poco diferente – ej., encontrar una clase con la peor combinación de nuestros criterios – tendríamos un problema clásico de optimización multiobjetiva:

Necesitamos encontrar un punto en el llamado frente de Pareto (rojo en la foto de arriba). Lo interesante sobre el set Pareto es que cada punto en el set es una solución para la prueba de optimización. Cada vez que avanzamos por la línea roja, necesitamos comprometernos con nuestros criterios – si uno mejora el otro empeora. Esto se llama Escalarización y el resultado final depende de cómo se realice.

Hay muchas técnicas que podemos usar aquí. Cada una tiene sus pros y sus contras. Sin embargo, las más populares son escalarización lineal y el que se basa en un punto de referencia. La lineal es la más fácil. Nuestra función fitness se verá como una combinación lineal de CA y Complejidad:

f(CA, Complexity) = A×CA + B×Complexity
donde A y B son algunos coeficientes.

El punto que representa una solución para nuestro problema de optimización está en la línea (azul en la foto debajo). Precisamente, será la intersección de la línea azul y el frente rojo de Pareto. Nuestro problema original no es exactamente un problema de optimización. Pero necesitamos crear una función de categorización. Consideremos dos valores de nuestra función de categorización, básicamente dos valores en nuestra columna Rango.

R1 = A∗CA + B∗Complexity and R2 = A∗CA + B∗Complexity
Algunas de las fórmulas escritas arriba son ecuaciones de líneas, más aún estas líneas son paralelas. Tomando más valores de categorización en consideración tendremos más líneas y por esto más puntos donde intersecta la línea Pareto con las líneas azules (punteadas). Estos puntos serán clases correspondientes a un valor categorizado particular.

Desafortunadamente, hay un problema con este acercamiento. Para cualquier línea (Valor Categorizado), tendremos puntos con pequeños CA y muy grande Complejidad (y viceversa) en ella. Esto inmediatamente pone puntos con una gran diferencia entre valores de métrica de primero en la lista, que exactamente lo que queríamos evitar.

La otra manera de hacer la escalarización está basada en el punto de referencia. El punto de referencia es un punto con los valores máximos de ambos criterios:

(max(CA), max(Complexity))
La función fitness será la distancia entre el punto de Referencia y los puntos de data:

f(CA,Complexity) = √((CA−CA )2 + (Complexity−Complexity)2)
Podemos pensar en esta función fitness como un círculo con el centro en el punto de Referencia. El radio en este caso es el valor de la categorización. La solución para el problema de optimización será el punto donde el círculo toca el frente Pareto. La solución al problema original será sets de puntos correspondientes a los distintos radios de círculo como se muestran en la siguiente imagen (partes de círculos para diferentes categorías se muestran como curvas punteadas azules):


Este acercamiento maneja mejor valores extremos, pero todavía hay dos problemas: Primero – me gustaría tener más puntos cerca de los puntos de referencia para solventar mejor el problema que hemos enfrentado con combinación lineal. Segundo – CA y complejidad Ciclomática son inherentemente diferentes y tienen set de valores diferentes, así que necesitamos normalizarlos (ej. Para que todos los valores de ambas métricas sean de 1 a 100)

Aquí hay un pequeño truco que podemos aplicar para solventar el primer problema – en vez de mirar al CA y a la complejidad ciclomática, podemos mirar sus valores invertidos. El punto de referencia en este caso será (0,0). Para solucionar el segundo problema, podemos normalizar las métricas usando un valor mínimo. Aquí está cómo se ve:

Complejidad normalizada e invertida – NormComplexity:

(1 + min(Complexity)) / (1 + Complexity)∗100
CA invertida y normalizada – NormCA:

(1 + min(CA)) / (1+CA)∗100

Nota: Agregué 1 para asegurarme de que no haya división por 0. t

La siguiente imagen muestra un gráfico con valores invertidos:

Categorización Final
Llegamos al paso final – calcular la categorización. Como mencione, estoy usando el método de punto de referencia, así que lo único que necesitamos hacer es calcular el largo del vector, normalizarlo y hacerlo ascender con la importancia de la creación de una prueba de unidad para una clase. Aquí está la última fórmula:

Rank(NormComplexity , NormCA) = 100 − √(NormComplexity2 + NormCA2) / √2
Más Estadísticas
Hay más pensamientos que me gustaría agregar, pero primero miremos algunas estadísticas. Aquí está un histograma de las métricas acopladoras:

Lo interesante de esta imagen es el número de clases con baja CA (0-2). Clases con CA en 0 no se usan para nada o son servicios de alto nivel. Estas representan puntos finales API, así que está bien si tenemos muchos de ellos. Pero las clases con CA en 1 son las que están directamente usadas por los puntos finales y tenemos más de estas clases que puntos finales. ¿Qué significa esto desde la perspectiva de arquitectura/diseño?

En general, significa que tenemos un acercamiento orientado al guion – hacemos un guión para cada caso de negocios por separado (no podemos reutilizar el código ya los casos de negocios son muy diversos). Si ese es el caso, entonces es definitivamente un código olor y necesitamos refactorizar. Sino, significa que la cohesión de nuestro sistema es baja, en este caso también necesitamos refactorizar, pero refactorización de arquitectura en este caso.
La información adicional que podemos obtener del histograma de arriba es que podemos filtrar completamente clases con bajo acoplamiento (CA en {0,1}) de la lista de las clases disponibles para cobertura con testeos de unidad. Las mismas clases, sin embargo, son buenas candidatas para los testeos de integración/funcional.

Puedes encontrar todos los guiones y recursos que usé en este repositorio GitHub: ashalitkin/code-base-stats.

¿Siempre funciona?
No necesariamente. Primero que todo, todo se trata del análisis estático, no tiempo de ejecución. Si una clase se filtra desde muchas otras clases, puede ser una señal de que es muy usada, pero no siempre es así. Por ejemplo, no sabemos si la funcionalidad es usada fuertemente por usuarios finales. Segundo, si el diseño y la calidad del sistema es lo suficientemente bueno, seguramente diferentes partes/capas de éste están desacoplados a través de las interfaces, así que un análisis estático de CA no nos dará una imagen verdadera. Supongo que es una de las razones principales porque CA no es una herramienta popular como Sonar. Afortunadamente, está bien para nosotros ya que, si recuerdas, nos interesa aplicar esto específicamente a bases de código viejas y feas.

En general, yo diría que el análisis de tiempo de ejecución daría mejores resultados pero, desafortunadamente, es mucho más costoso, consume más tiempo y es complejo, así que nuestro acercamiento es potencialmente una alternativa útil y menos costosa.

viernes, 24 de febrero de 2017

Oracle Hot Topics: Bug ORA-7445 [LXREGSERGOP+4] [11]

Bugs

Bug
Product Area
Bug ID
Last Updated
Oracle Database - Enterprise Edition
20547245
Fri, 24 Feb 2017 03:27 GMT-06:00

Product News

News
Product Area
Last Updated
Oracle Database - Enterprise Edition
Wed, 22 Feb 2017 15:16 GMT-06:00

Knowledge Articles

Knowledge Article
Product Area
Last Updated
Oracle Database - Enterprise Edition
Fri, 24 Feb 2017 03:54 GMT-06:00


Oracle Fee on-demand SOA Suite 12 and BPM Suite 12c Bootcamps

In February, March and April we offer free on-demand Bootcamps for SOA Suite 12c and BPM Suite 12c. For details and registration please visit the training calendar:

Date
Training
Location
By
Focus
30.01-24.02.2017
BPM Suite 12c Bootcamp
on-demand
OPN
Tech
30.01-24.02.2017
SOA Suite 12c Bootcamp
on-demand
OPN
Tech
06-31.03.2017
SOA Suite 12c Bootcamp
on-demand
OPN
Tech
06-31.03.2017
BPM Suite 12c Bootcamp
on-demand
OPN
Tech
03-28.04.2017
SOA Suite 12c Bootcamp
on-demand
OPN
Tech
03-28.04.2016
BPM Suite 12c Bootcamp
on-demand
OPN
Tech


SOA Suite 12c Bootcamp on-demand

What will we cover
image
Oracle SOA Suite 12c is the latest version of the industry's most complete and unified application integration and SOA solution. With simplified cloud, mobile, on premises and Internet of Things (IoT) integration capabilities, all within a single platform, Oracle SOA Suite 12c delivers faster time to integration, increased productivity and lower TCO.
The Oracle SOA Suite 12c Implementation Boot Camp provides relevant insight to current and prospective SOA implementers and for those companies interested on becoming Oracle SOA Suite 12c Specialized. Participants will learn how to develop and implement solutions using SOA Suite 12c that will drive their customer organizations run more effectively and efficiently.
Learn to
  • Create, deploy, and manage cross-application process orchestration with BPEL Process Manager
  • Describe tasks for users or groups to perform with Human Task Service
  • Define and modify business logic without programming by using Business Rules
  • Create dashboards, alerts, and reports in real time with no coding using Business Activity Monitoring (BAM)
  • Implement SOA Services with Web Services Manager
  • Manage and monitor integration flow with Enterprise Manager
  • Use Adapters to connect to enterprise applications
· Convert complex point-to-point application integration into simplified, agile, and reusable shared service application infrastructure with Service Bus
For details and registration please visit the training calendar.


BPM Suite 12c Bootcamp on-demand

What will we cover
This boot camp is an ideal starting point for an implementer who is planning to learn Oracle BPM Suite 12c and use it on BPM projects. The course provides a combination of lecture segments that present conceptual and feature background and hands-on labs that provide practice with the tooling.
imageIt introduces process developers to Oracle BPM Suite 12c. It covers the key concepts, features and processes needed to begin using the design-time and run-time capabilities on BPM projects. Throughout the training, you will benefit from hands-on exercises based upon two case studies. At the conclusion of the course, you should feel comfortable to start using BPM Suite 12c for process modeling, simulation, analytics, business rules and human workflow.
Learn to
  • Use BPMN modeling notation to document business process
  • Simulate a process model to identify bottlenecks
  • Create business rules that condition flow through a model
  • Develop a sophisticated human workflow task routing
  • Define key performance metrics
  • Build a dashboard containing charts that show key performance metrics

For details and registration please visit the training calendar.

Data loading into HDFS - Part3. Streaming data loading by Alexey Filanovskiy-Oracle

In my previous blogs, I already told about data loading into HDFS. In the first blog, I covered data loading from generic servers to HDFS. The second blog was devoted by offloading data from Oracle RDBMS. Here I want to explain how to load into Hadoop streaming data. Before all, I want to note that I will now... 




EBS on Oracle Cloud at Collaborate 2017

It's almost time for this year's Collaborate conference, which will be held at the Mandalay Bay Convention Center in Las Vegas, Nevada. Conference sessions kick off on Sunday, April 2, 2017.
Oracle E-Business Suite Development and Oracle Cloud Platforms team members will be attending the conference. They will host Meet the Experts (MTE) discussions, a Cloud panel, and a number of sessions. They will also serve as presenters and panelists at several OAUG Special Interest Group meetings and customer-hosted panels.
This article provides an overview of our planned Oracle E-Business Suite on Oracle Cloud activities at Collaborate. An article covering all Oracle E-Business Suite Applications Technology participation beyond Oracle Cloud will be published on the Oracle E-Business Suite Technology Blog.  
Click on the links below to view the full abstracts and scheduling details.
Meet the Experts

Date & Time:  Tuesday, April 4, 4:15 - 5:15 PM
Room: Breakers H

Experts will be available to answer your questions about running Oracle E-Business Suite on Oracle Cloud and share insights into the best path for your enterprise. This MTE session will include the following representatives of Oracle E-Business Suite Development:
  • Santiago Bastidas, Oracle
  • Nadia Bendjedou, Oracle
  • Terri Noyes, Oracle
  • Lisa Parekh, Oracle
  • Elke Phelps, Oracle
  • Vasu Rao, Oracle
  • Angelo Rosado, Oracle
Sessions
10460 - Running Your E-Business Suite on Oracle Cloud (IaaS + PaaS) - Why, What and How
Nadia Bendjedou, Sr. Director, Product Strategy, Oracle
Date & Time: Monday, April 3, 11:00 AM - 12:00 PM
Room: Mandalay Bay C

10479 - Oracle E-Business Suite 12.2:  Deployment and Technical Configuration for On-Premise and Oracle Cloud
Vasu Rao, Sr. Principal Product Strategy Manager, Applications Technology Group, Oracle
Elke Phelps, Sr. Principal Product Manager, Applications Technology Group, Oracle
Date & Time: Monday, April 3, 2:45 - 3:45 PM
Room: Surf A

10499 - Why Oracle Cloud Over Other Clouds for Your Oracle E-Business Suite Applications
Souji Madhurapantula, Principal Product Manager,  Public Cloud Platform Development, Oracle
Date & Time: Monday, April 3, 4:15 - 5:15 PM
Room: South Seas G

10500 - Oracle E-Business Suite on Oracle Cloud:  An Architect's Perspective
Roy Hunter, Engineering Team Leader,  Cloud Platforms, Oracle
Date & Time:  Tuesday, April 4, 9:45 - 10:45 AM
Room: South Seas G

10478 - Managing and Monitoring Oracle E-Business Suite On-Premises and Cloud
Angelo Rosado, Sr. Principal Product Manager, Applications Technology Group, Oracle
Date & Time: Wednesday, April 5, 9:45 - 10:45 AM
Room: Surf A

10461 - Coexistence of E-Business Suite and Oracle SaaS Applications: Consideration and Best Practices
Nadia Bendjedou, Sr. Director, Product Strategy, Oracle
Date & Time: Wednesday, April 5, 11:00 AM - 12:00 PM
Room: Surf A

10475 - Oracle E-Business Suite on Oracle Cloud:  Technical Insight
Santiago Bastidas, Sr. Principal Product Manager, Applications Technology Group, Oracle
Date & Time: Wednesday, April 5, 2:45 - 3:45 PM
Room: Surf A

Panel
10498 - Oracle E-Business Suite on Oracle Cloud: Customer and Partner Panel
Terri Noyes, Sr. Principal Product Strategy Manager, Applications Technology Group, Oracle
Date & Time: Wednesday, April 5, 4:15 - 5:15 PM
Room: Surf A

For complete listing of all sessions and other activities, please visit the OAUG Collaborate Web Site. 
We hope to see you very soon at the conference in Las Vegas!


Ver artículo...

Oracle EBS Sessions at Alliance 2017

HEUG Alliance 2017 logo
Senior EBS Development staff (including me) are presenting at the Higher Education User Group (HEUG) Alliance 2017 conference in Las Vegas from February 27 to March 2.  This is your opportunity to get the latest updates on our E-Business Suite roadmap.  Check out the Alliance session catalog for a complete list of all Oracle EBS Development sessions:

We are also hosting a Meet The Experts roundtable where you can get your questions answered directly by EBS Development senior staff (including me):

  • Wednesday, March 1 at 3:30 PM
  • Third Floor Pre-function area in Conference Center, Table 6

jueves, 23 de febrero de 2017

The best ambassador a country should have is its president.

Oracle Database: Blocking Session, Object Name and Object Type

clear screen
set serveroutput on
BEGIN
dbms_output.enable(1000000);

for do_loop in 
(select session_id, a.object_id, xidsqn, oracle_username, b.owner owner,b.object_name object_name, b.object_type object_typeFROM v$locked_object a, dba_objects bWHERE xidsqn != 0and b.object_id = a.object_id)
loop

    dbms_output.put_line('.');
    dbms_output.put_line('Blocking Session   : '||do_loop.session_id);
     dbms_output.put_line('Object (Owner/Name): '||do_loop.owner||'.'||do_loop.object_name);
    dbms_output.put_line('Object Type        : '||do_loop.object_type);

    for next_loop in (select sid from v$lock
                     where id2 = do_loop.xidsqn
                     and sid != do_loop.session_id) loop
dbms_output.put_line('Sessions being blocked : '||next_loop.sid);
end loop;
end loop;
dbms_output.put_line(' ');dbms_output.put_line(' ');dbms_output.put_line('===================================================================');dbms_output.put_line('If the screen is blank, there are no locks on objects');dbms_output.put_line('===================================================================');
END;

/

UISIL Perez Zeledón, Oracle Database 12c, Arquitectura Single & Multitenant


Gracias al esfuerzo que ha realizado mi estimado amigo Roberto Monterrey, estaré este fin de semana en San Isidro del General, en la Universidad Internacional San Isidro Labrador, compartiendo con estudiantes y público general del área de tecnologías de la zona, hablando sobre la arquitectura Single & Multitenant de la base de datos Oracle 12c.

Adicionalmente, estaremos brindando un laboratorio, en donde los participantes, podrán instalar una máquina virtual con Oracle Linux y realizar una instalación del motor de base de datos Oracle 12c con una configuración de Contanier Database y un Pluggable Database.

Gracias Montes, por tu interés de ayudar siempre a tu comunidad.

Si alguien en las zonas fuera de la GAM desean que podamos hacer este tipo de actividades en sus ciudades, me pueden contactar y nos ponemos de acuerdo.


Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar