Oracle Developer Live: Java Innovations – Europe, Middle East, Africa, and Asia Pacific

Image

Oracle’s technology leadership and ecosystem stewardship continues to advance Java as the premier programming language and platform for modern application development.

To advance developer skills, subject matter experts from the Java Platform Group at Oracle will deliver technical content that helps you create the next generation of rich, scalable, and secure enterprise applications for a variety of targeted deployment environments. Gain insight into the incremental performance, stability, and security improvements in the new Java 17 release.

Developers who attend will learn more about:

  • Modern Java programming tips and techniques
  • Syntax improvements to the Java language
  • High-throughput, lightweight concurrency and new programming models on the Java platform
  • Broad support of Java developer frameworks

Oracle Developer Live: Java Innovations – Americas

Image

Oracle’s technology leadership and ecosystem stewardship continues to advance Java as the premier programming language and platform for modern application development.

To advance developer skills, subject matter experts from the Java Platform Group at Oracle will deliver technical content that helps you create the next generation of rich, scalable, and secure enterprise applications for a variety of targeted deployment environments. Gain insight into the incremental performance, stability, and security improvements in the new Java 17 release.

Developers who attend will learn more about:

  • Modern Java programming tips and techniques
  • Syntax improvements to the Java language
  • High-throughput, lightweight concurrency and new programming models on the Java platform
  • Broad support of Java developer frameworks

Cloud Native Java by Josh Long

“It is not necessary to change. Survival is not mandatory.” -W. Edwards Deming

Work takes time to flow through an organization and ultimately be deployed to production where it captures value. It’s critical to reduce time-to-production. Software – for many organizations and industries – is a competitive advantage. Organizations break their larger software ambitions into smaller, independently deployable, feature -centric batches of work – microservices. In order to reduce the round-trip between stations of work, organizations collapse or consolidate as much of them as possible and automate the rest; developers and operations beget “devops,” cloud-based services and platforms automate operations work and break down the need for ITIL tickets and change management boards. But velocity, for velocity’s sake, is dangerous. Microservices invite architectural complexity that few are prepared to address. In this talk, we’ll look at how high-performance organizations like Ticketmaster, Alibaba, and Netflix make short work of that complexity with Spring Boot and Spring Cloud.

In this workshop we’ll look at how to build cloud-native Java systems that are elastic, agile, observable and robust.

MOTU: Planejamento de Recursos com OptaPlanner

MOTU: Planejamento de Recursos com OptaPlanner
👉 Link: https://www.youtube.com/watch?v=EohcFknM5S4
🕛 Quando: 12h do dia 20 de Maio, Quinta Feira! 🕛
✓ Tema: É chegada a hora de conversarmos sobre o como soluções com algoritmos complexos conseguem trazem lucro de, literalmente, bilhões de dólares a empresas críticas ao redor do mundo com uma simples tarefa: otimizar o planejamento de recursos. Vamos entender como resolver problemas complexos do mundo real de planejamento como o VRP (Problema de Roteamento de Veículos), criação de escalas de funcionários, atribuição de tarefas, agendamento de talks em conferências e muito, muito mais. Aos curiosos, um exemplo conhecido é o problema das n-rainhas, problema este que é rapidamente e facilmente resolvido pela IA do OptaPlanner.

👨‍💻👩‍💻💭 Experts da Semana

Nesta edição do nosso papo deep dive vamos conversar com
▪️ Karina Varela ( Twitter: @kvarel4 )
▪️ Otávio Santana ( Twitter: @otaviojava )

MOTU Deep Dive: Arquitetura de frameworks Java

MOTU: Arquitetura de frameworks Java
👉 Link: https://www.youtube.com/watch?v=miHK4GWmayg
🕛 Quando: 12h do dia 13 de Maio, Quinta Feira! 🕛

✓ Tema: Se você já participou da criação de um framework Java, você deve ter enfrentado diversas complexidades que não são encontradas no decorrer do dia a dia do desenvolvimento de uma aplicação tradicional – por exemplo, web. Vamos mergulhar nos desafios da criação de frameworks Java críticos, open-source e que adotados globalmente por arquitetos em busca de solução resiliente para suas aplicações!

👨‍💻👩‍💻💭 Experts da Semana

Nesta edição do nosso papo deep dive vamos conversar com
▪️ Karina Varela ( Twitter: @kvarel4 )
▪️ Otávio Santana ( Twitter: @otaviojava )

MOTU Deep Dive: JNoSQL

MOTU: JNoSQL
👉 Link: https://www.youtube.com/watch?v=L2oKgUW1E8Q
🕛 Quando: 12h do dia 13 de Maio, Quinta Feira! 🕛
✓ Tema: Jakarta NoSQL é a primeira especificação do Jakarta EE cujo o objetivo é simplificar a integração entre uma aplicação Java e os bancos de dados NoSQL.

👨‍💻👩‍💻💭 Experts da Semana

Nesta edição do nosso papo deep dive vamos conversar com

▪️ Karina Varela ( Twitter: @kvarel4 )
▪️ Otávio Santana ( Twitter: @otaviojava )

Building a cloud-friendly application – Jakarta Tech Talks

Larry Garfield (Platform.sh) presents:

The days of hand-crafted artisanal servers are long over. Modern web applications need to be able to run on many different servers without code changes. Not just different hosting providers, but different environments on the same hosting provider. Whether you’re using a legacy dev/stage/prod setup or a modern branch-is-environment host, modern hosting imposes some requirements on your application design but also offers a huge potential for new and powerful tools.

In this webinar, we’ll explore some key guidelines for building a cloud-friendly application, as well as look at some architectural options that a modern hosting platform enables.

Join us: https://www.crowdcast.io/e/jakarta_tech_talk_apr29_2

MOTU: Reactive Applications

MOTU: Reactive Applications
👉 Link: https://www.youtube.com/watch?v=LUeqCxRnFBQ
🕛 Quando: 12h do dia 22 de Abril, Quinta Feira! 🕛
✓ Tema: Aplicações reativas no Java: quando, como e porquê!

👨‍💻👩‍💻💭 Experts da Semana

Nesta edição do nosso papo deep dive vamos conversar com
▪️ Edson Yanaga (Twitter: @yanaga)
▪️ Karina Varela ( Twitter: @kvarel4 )
▪️ Otávio Santana ( Twitter: @otaviojava )

OMS Opatch out of space on /tmp

This is a quick and old, but still a good one. while installing the Opatch using the JAR file I got the error saying that I had no space under /tmp.

This is a new server that I´m building and I missed requesting a bigger /tmp.

So what to do now?

This installer does not recognize the environment variables such as TMPDIR so you need to set a _JAVA_OPTIONS with a path to replace its default location.

grepora01[oracle] /u01/software/6880880 $ # $ORACLE_HOME/oracle_common/jdk/bin/java -jar ./opatch_generic.jar  -silent oracle_home=$ORACLE_HOME -J-Djava.io.tmpdir=/u01/tmp
Launcher log file is /tmp/OraInstall2021-03-24_12-53-25PM/launcher2021-03-24_12-53-25PM.log.
Extracting the installer . . . . Done
Checking if CPU speed is above 300 MHz.   Actual 2593.207 MHz    Passed
Checking swap space: must be greater than 512 MB.   Actual 4099 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed (64-bit not required)
Checking temp space: must be greater than 300 MB.   Actual 0 MB    Failed <<<<
Some system prerequisite checks failed.
You must fulfill these requirements before continuing.

To fix it, you can simply:

grepora01[oracle] /u01/software/6880880 $ # export _JAVA_OPTIONS="-Djava.io.tmpdir=/u01/tmp"
grepora01[oracle] /u01/software/6880880 $ # $ORACLE_HOME/oracle_common/jdk/bin/java -jar ./opatch_generic.jar  -silent oracle_home=$ORACLE_HOME
Picked up _JAVA_OPTIONS: -Djava.io.tmpdir=/u01/tmp
Launcher log file is /u01/tmp/OraInstall2021-03-24_01-30-12PM/launcher2021-03-24_01-30-12PM.log.
Extracting the installer . . . . Done
Checking if CPU speed is above 300 MHz.   Actual 2593.207 MHz    Passed
Checking swap space: must be greater than 512 MB.   Actual 4099 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed (64-bit not required)
Checking temp space: must be greater than 300 MB.   Actual 198503 MB    Passed
Preparing to launch the Oracle Universal Installer from /u01/tmp/OraInstall2021-03-24_01-30-12PM
Picked up _JAVA_OPTIONS: -Djava.io.tmpdir=/u01/tmp

Installation Summary

Disk Space : Required 34 MB, Available 198,462 MB
Feature Sets to Install:
        Next Generation Install Core 13.9.4.0.1
        OPatch 13.9.4.2.5
        OPatch Auto OPlan 13.9.4.2.5
Session log file is /u01/tmp/OraInstall2021-03-24_01-30-12PM/install2021-03-24_01-30-12PM.log

Loading products list. Please wait.

 1%
 40%
Loading products. Please wait.
 42%
 43%
 45%
 46%
 48%
 49%
 50%
 51%
 52%
 54%
 55%
 57%
 58%
 60%
 61%
 62%
 64%
 65%
 67%
 68%
 70%
 71%
 72%
 74%
 75%
 77%
 78%
 80%
 81%
 82%
 84%
 85%
 87%
 88%
 90%
 91%
 92%
 94%
 95%
 97%
 98%
 99%

Updating Libraries

Starting Installations
 1%
 2%
 3%
 4%
 5%
 6%
 7%
 8%
 9%
 10%
 11%
 12%
 13%
 14%
 15%
 16%
 17%
 18%
 19%
 20%
 21%
 22%
 23%
 24%
 25%
 26%
 27%
 28%
 29%
 30%
 31%
 32%
 33%
 34%
 35%
 36%
 37%
 38%
 39%
 40%
 41%
 42%
 43%
 44%
 45%
 46%
 47%
 48%
 49%
 50%
 51%
 52%
 53%
 54%
 55%
 56%
 57%
 58%
 59%
 60%
 61%
 62%
 63%
 64%
 65%
 66%
 67%
 68%
 69%
 70%
 71%
 72%
 73%
 74%
 75%
 76%
 77%
 78%
 79%
 80%
 81%
 82%
 83%
 84%
 85%
 86%
 87%
 88%
 89%
 90%
 91%
 92%
 93%
 94%
 95%

Install pending

Installation in progress

Component : oracle.glcm.logging 1.6.4.0.0

Copying files for oracle.glcm.logging 1.6.4.0.0

Component : oracle.glcm.comdev 7.8.4.0.0

Copying files for oracle.glcm.comdev 7.8.4.0.0

 Component : oracle.glcm.dependency 1.8.4.0.0

Copying files for oracle.glcm.dependency 1.8.4.0.0

 Component : oracle.glcm.xmldh 3.4.4.0.0

Copying files for oracle.glcm.xmldh 3.4.4.0.0

 Component : oracle.glcm.wizard 7.8.4.0.0

Copying files for oracle.glcm.wizard 7.8.4.0.0

 Component : oracle.nginst.common 13.9.4.0.0

Copying files for oracle.nginst.common 13.9.4.0.0

 Component : oracle.nginst.core 13.9.4.0.0

Copying files for oracle.nginst.core 13.9.4.0.0

 Component : oracle.glcm.opatch.common.api 13.9.4.0.0

Copying files for oracle.glcm.opatch.common.api 13.9.4.0.0

 Component : oracle.glcm.encryption 2.7.4.0.0

Copying files for oracle.glcm.encryption 2.7.4.0.0

 Component : oracle.swd.opatch 13.9.4.2.5

Copying files for oracle.swd.opatch 13.9.4.2.5

 Component : oracle.glcm.osys.core 13.9.1.0.0

Copying files for oracle.glcm.osys.core 13.9.1.0.0

Install successful

Post feature install pending

Post Feature installing

 Feature Set : glcm_encryption_lib

 Feature Set : oracle.glcm.osys.core.classpath

 Feature Set : commons-cli_1.3.1.0.0

 Feature Set : oracle.glcm.opatch.common.api.classpath

Post Feature installing commons-cli_1.3.1.0.0

Post Feature installing oracle.glcm.opatch.common.api.classpath

 Feature Set : glcm_common_lib

 Feature Set : glcm_common_logging_lib

Post Feature installing glcm_common_lib

Post Feature installing glcm_common_logging_lib

 Feature Set : oracle.glcm.opatchauto.core.classpath

 Feature Set : oracle.glcm.opatchauto.core.binary.classpath

Post Feature installing oracle.glcm.opatchauto.core.classpath

Post Feature installing oracle.glcm.opatchauto.core.binary.classpath

Post Feature installing oracle.glcm.osys.core.classpath

Post Feature installing glcm_encryption_lib

 Feature Set : oracle.glcm.oplan.core.classpath

Post Feature installing oracle.glcm.oplan.core.classpath

 Feature Set : oracle.glcm.opatchauto.core.actions.classpath

Post Feature installing oracle.glcm.opatchauto.core.actions.classpath

 Feature Set : oracle.glcm.opatchauto.core.wallet.classpath

Post Feature installing oracle.glcm.opatchauto.core.wallet.classpath

Post feature install complete

String substitutions pending

String substituting

 Component : oracle.glcm.logging 1.6.4.0.0

String substituting oracle.glcm.logging 1.6.4.0.0

 Component : oracle.glcm.comdev 7.8.4.0.0

String substituting oracle.glcm.comdev 7.8.4.0.0

 Component : oracle.glcm.dependency 1.8.4.0.0

String substituting oracle.glcm.dependency 1.8.4.0.0

 Component : oracle.glcm.xmldh 3.4.4.0.0

String substituting oracle.glcm.xmldh 3.4.4.0.0

 Component : oracle.glcm.wizard 7.8.4.0.0

String substituting oracle.glcm.wizard 7.8.4.0.0

 Component : oracle.nginst.common 13.9.4.0.0

String substituting oracle.nginst.common 13.9.4.0.0

 Component : oracle.nginst.core 13.9.4.0.0

String substituting oracle.nginst.core 13.9.4.0.0

 Component : oracle.glcm.opatch.common.api 13.9.4.0.0

String substituting oracle.glcm.opatch.common.api 13.9.4.0.0

 Component : oracle.glcm.encryption 2.7.4.0.0

String substituting oracle.glcm.encryption 2.7.4.0.0

 Component : oracle.swd.opatch 13.9.4.2.5

String substituting oracle.swd.opatch 13.9.4.2.5

 Component : oracle.glcm.osys.core 13.9.1.0.0

String substituting oracle.glcm.osys.core 13.9.1.0.0

String substitutions complete

Link pending

Linking in progress

 Component : oracle.glcm.logging 1.6.4.0.0

Linking oracle.glcm.logging 1.6.4.0.0

 Component : oracle.glcm.comdev 7.8.4.0.0

Linking oracle.glcm.comdev 7.8.4.0.0

 Component : oracle.glcm.dependency 1.8.4.0.0

Linking oracle.glcm.dependency 1.8.4.0.0

 Component : oracle.glcm.xmldh 3.4.4.0.0

Linking oracle.glcm.xmldh 3.4.4.0.0

 Component : oracle.glcm.wizard 7.8.4.0.0

Linking oracle.glcm.wizard 7.8.4.0.0

 Component : oracle.nginst.common 13.9.4.0.0

Linking oracle.nginst.common 13.9.4.0.0

 Component : oracle.nginst.core 13.9.4.0.0

Linking oracle.nginst.core 13.9.4.0.0

 Component : oracle.glcm.opatch.common.api 13.9.4.0.0

Linking oracle.glcm.opatch.common.api 13.9.4.0.0

 Component : oracle.glcm.encryption 2.7.4.0.0

Linking oracle.glcm.encryption 2.7.4.0.0

 Component : oracle.swd.opatch 13.9.4.2.5

Linking oracle.swd.opatch 13.9.4.2.5

 Component : oracle.glcm.osys.core 13.9.1.0.0

Linking oracle.glcm.osys.core 13.9.1.0.0

Linking in progress

Link successful

Setup pending

Setup in progress

 Component : oracle.glcm.logging 1.6.4.0.0

Setting up oracle.glcm.logging 1.6.4.0.0

 Component : oracle.glcm.comdev 7.8.4.0.0

Setting up oracle.glcm.comdev 7.8.4.0.0

 Component : oracle.glcm.dependency 1.8.4.0.0

Setting up oracle.glcm.dependency 1.8.4.0.0

 Component : oracle.glcm.xmldh 3.4.4.0.0

Setting up oracle.glcm.xmldh 3.4.4.0.0

 Component : oracle.glcm.wizard 7.8.4.0.0

Setting up oracle.glcm.wizard 7.8.4.0.0

 Component : oracle.nginst.common 13.9.4.0.0

Setting up oracle.nginst.common 13.9.4.0.0

 Component : oracle.nginst.core 13.9.4.0.0

Setting up oracle.nginst.core 13.9.4.0.0

 Component : oracle.glcm.opatch.common.api 13.9.4.0.0

Setting up oracle.glcm.opatch.common.api 13.9.4.0.0

 Component : oracle.glcm.encryption 2.7.4.0.0

Setting up oracle.glcm.encryption 2.7.4.0.0

Component : oracle.swd.opatch 13.9.4.2.5

Setting up oracle.swd.opatch 13.9.4.2.5

Component : oracle.glcm.osys.core 13.9.1.0.0

Setting up oracle.glcm.osys.core 13.9.1.0.0

Setup successful

Save inventory pending

Saving inventory

96%

Saving inventory complete

 97%

Configuration complete

Component : glcm_common_logging_lib

Component : glcm_common_lib

Saving the inventory glcm_common_lib

Saving the inventory glcm_common_logging_lib

Component : oracle.glcm.opatch.common.api.classpath

Saving the inventory oracle.glcm.opatch.common.api.classpath

Component : cieCfg_common_rcu_lib

Saving the inventory cieCfg_common_rcu_lib

Component : oracle.glcm.osys.core.classpath

Saving the inventory oracle.glcm.osys.core.classpath

Component : cieCfg_common_lib

Saving the inventory cieCfg_common_lib

Component : oracle.glcm.logging

Saving the inventory oracle.glcm.logging

Component : oracle.glcm.oplan.core.classpath

Saving the inventory oracle.glcm.oplan.core.classpath

Component : glcm_encryption_lib

Saving the inventory glcm_encryption_lib

Component : svctbl_lib

Saving the inventory svctbl_lib

Component : com.bea.core.binxml_dependencies

Saving the inventory com.bea.core.binxml_dependencies

Component : svctbl_jmx_client

Saving the inventory svctbl_jmx_client

Component : cieCfg_wls_shared_lib

Saving the inventory cieCfg_wls_shared_lib

Component : rcuapi_lib

Saving the inventory rcuapi_lib

Component : rcu_core_lib

Saving the inventory rcu_core_lib

Component : cieCfg_cam_lib

Saving the inventory cieCfg_cam_lib

Component : cieCfg_cam_external_lib

Saving the inventory cieCfg_cam_external_lib

Component : cieCfg_cam_impl_lib

Saving the inventory cieCfg_cam_impl_lib

Component : cieCfg_wls_lib

Saving the inventory cieCfg_wls_lib

Component : cieCfg_wls_external_lib

Saving the inventory cieCfg_wls_external_lib

Component : cieCfg_wls_impl_lib

Saving the inventory cieCfg_wls_impl_lib

Component : rcu_dependencies_lib

Saving the inventory rcu_dependencies_lib

Component : oracle.fmwplatform.fmwprov_lib

Saving the inventory oracle.fmwplatform.fmwprov_lib

Component : fmwplatform-wlst-dependencies

Saving the inventory fmwplatform-wlst-dependencies

Component : oracle.fmwplatform.ocp_lib

Saving the inventory oracle.fmwplatform.ocp_lib

Component : oracle.fmwplatform.ocp_plugin_lib

Saving the inventory oracle.fmwplatform.ocp_plugin_lib

Component : wlst.wls.classpath

Saving the inventory wlst.wls.classpath

Component : maven.wls.classpath

Saving the inventory maven.wls.classpath

Component : com.oracle.webservices.fmw.ws-assembler

Saving the inventory com.oracle.webservices.fmw.ws-assembler

Component : sdpmessaging_dependencies

Saving the inventory sdpmessaging_dependencies

Component : sdpclient_dependencies

Saving the inventory sdpclient_dependencies

Component : oracle.jrf.wls.classpath

Saving the inventory oracle.jrf.wls.classpath

Component : oracle.jrf.wlst

Saving the inventory oracle.jrf.wlst

Component : fmwshare-wlst-dependencies

Saving the inventory fmwshare-wlst-dependencies

Component : oracle.fmwshare.pyjar

Saving the inventory oracle.fmwshare.pyjar

Component : mapviewer-client

Saving the inventory mapviewer-client

Component : bitech-analysis-application-thirdparty

Saving the inventory bitech-analysis-application-thirdparty

Component : glcm_common_logging_lib

Component : glcm_common_lib

Saving the inventory glcm_common_logging_lib

Saving the inventory glcm_common_lib

Component : oracle.glcm.opatch.common.api.classpath

Component : glcm_encryption_lib

Saving the inventory oracle.glcm.opatch.common.api.classpath

Saving the inventory glcm_encryption_lib

Component : oracle.glcm.oplan.core.classpath

Component : oracle.glcm.osys.core.classpath

Saving the inventory oracle.glcm.oplan.core.classpath

Saving the inventory oracle.glcm.osys.core.classpath

The install operation completed successfully.

Logs successfully copied to /u01/app/oraInventory/logs.

 

 

Reduce system complexity in Java with Data-Oriented programming

Traditionally in Java, we mix data and code in objects. While being beneficial in some cases, data encapsulation has a tendency towards systems with complex class hierarchies. Moreover, we introduce complex synchronization mechanisms to protect the state of our objects from being mutated or corrupted by other threads, making our code harder to maintain. Over the years many design patterns have been invented to work around this complexity.

Data-Oriented programming is a programming paradigm that inherently reduces system complexity by drawing a clear separation between code and data, and representing data with generic immutable data structures.

In this talk, we illustrate with practical examples how to apply Data-Oriented programming principles in Java, using smart Java annotations and latest Java features. We show how the application of Data-Oriented programming principles in a Java production system tends to reduce system complexity and make the system easier to maintain.

Bio
Yehonathan Sharvit has been working as a software engineer since 2000, programming with C++, Java, Ruby, JavaScript, Clojure and ClojureScript. He currently works as a software architect at Cycognito, building software infrastructures for high scale data pipelines. He shares insights about software at his tech blog, he writes technical books, he speaks at conferences and leads Clojure workshops around the world. He is the author of Data-Oriented programming, published by Manning.