<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jean C. Omobono Z.</title>
    <description>The latest articles on DEV Community by Jean C. Omobono Z. (@jeanomobono).</description>
    <link>https://dev.to/jeanomobono</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F183317%2Faed2ba9a-3e8b-4aac-b027-356444ffcfe6.jpeg</url>
      <title>DEV Community: Jean C. Omobono Z.</title>
      <link>https://dev.to/jeanomobono</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jeanomobono"/>
    <language>en</language>
    <item>
      <title>Servidor Oracle DB + APEX + ORDS + JasperReports desde cero (Parte 4)</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Thu, 17 Feb 2022 22:28:23 +0000</pubDate>
      <link>https://dev.to/jeanomobono/servidor-oracle-db-apex-ords-jasperreports-desde-cero-parte-4-4gi6</link>
      <guid>https://dev.to/jeanomobono/servidor-oracle-db-apex-ords-jasperreports-desde-cero-parte-4-4gi6</guid>
      <description>&lt;p&gt;En la que sería ya la última publicación de esta serie, veamos los pasos para la instalación de JasperReports y su integración con la base de datos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jasper Reports Integration 2.7
&lt;/h2&gt;

&lt;p&gt;Permite la integración de APEX con el motor de reportes Jasper. La versión más reciente de JRI se encuentra &lt;a href="https://github.com/daust/JasperReportsIntegration/releases" rel="noopener noreferrer"&gt;aquí&lt;/a&gt; y las instrucciones para la instalación están &lt;a href="https://github.com/daust/JasperReportsIntegration/blob/main/src/doc/github/installation-full.md" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como usuario root creamos un nuevo directorio para almacenar los binarions de las aplicacion&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; /u01/JasperReportsIntegration
&lt;span class="nb"&gt;chown &lt;/span&gt;tomcat:tomcat /u01/JasperReportsIntegration/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Usarmos el comando &lt;code&gt;tar&lt;/code&gt; para extraer el contenido del archivo que descargamos y lo copiamos al directorio&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;tar &lt;/span&gt;xvf jri-2.7.0-jasper-6.16.0.tar
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; jri-2.7.0-jasper-6.16.0/&lt;span class="k"&gt;*&lt;/span&gt; /u01/JasperReportsIntegration/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agregramos al archivo &lt;code&gt;.bash_profile&lt;/code&gt; del usuario tomcat&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OC_JASPER_CONFIG_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/u01/JasperReportsIntegration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cerramos sesión del usuario tomcat, volvemos a iniciarla y reiniciamos el servicio.&lt;/p&gt;

&lt;p&gt;Modificamos el archivo &lt;code&gt;/u01/JasperReportsIntegration/conf/application.properties&lt;/code&gt; para indicar los parámetros de conexión a la base de datos. Buscamos la sección &lt;code&gt;[datasource:default]&lt;/code&gt; y modificamos los campos necesarios&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[datasource:default]
type=jdbc
name=default
url=jdbc:oracle:thin:@//orcl-server:1521/XEPDB1
username=testing
password=Password01
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finalmente copiamos el archivo &lt;code&gt;/u01/JasperReportsIntegration/webapps/jri.war&lt;/code&gt; en el directorio &lt;code&gt;webapps&lt;/code&gt; de Tomcat&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp &lt;/span&gt;jri.war &lt;span class="nv"&gt;$CATALINA_BASE&lt;/span&gt;/webapps/.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El despliege de la aplicación debería hacerse de forma automática y a partir de este momento debería ser posible ingresar a la página de inicio en &lt;code&gt;http://ip-servidor:8080/jri&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;El siguiente paso es instalar los objetos de base de datos, este proceso se divide en dos, una parte se ejecuta con el usuario SYS y el otro con el usuario dueño de la aplicación.&lt;/p&gt;

&lt;p&gt;Descomprimimos el archivo que descargamos en algún sitio que sea accesible por el usuario &lt;code&gt;oracle&lt;/code&gt; e ingresamos al directorio sql. Allí ingresamos a la base de datos usando SQL*Plus&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sqlplus sys@localhost:1521/XEPDB1 as sysdba
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ejecutamos los siguientes comandos (en este caso &lt;em&gt;testing&lt;/em&gt; es el esquema de base de datos dueño de la aplicación, deberá cambiarse por el nombre de esquema correcto en producción)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@sys_install testing
@sys_install_acl_12_and_above.sql testing orcl-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luego iniciamos una nueva conexión a la base de datos, esta vez con el usuario dueño de la aplicación.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sqlplus testing@localhost:1521/XEPDB1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y ejecutamos&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@user_install.sql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En una próxima publicación les mostraré cómo crear reportes PDF con JasperReports y APEX&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>apex</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Servidor Oracle DB + APEX + ORDS + JasperReports desde cero (Parte 3)</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Sat, 12 Feb 2022 15:15:18 +0000</pubDate>
      <link>https://dev.to/jeanomobono/servidor-oracle-db-apex-ords-jasperreports-desde-cero-parte-3-4p9k</link>
      <guid>https://dev.to/jeanomobono/servidor-oracle-db-apex-ords-jasperreports-desde-cero-parte-3-4p9k</guid>
      <description>&lt;p&gt;En la publicación anterior hicimos la instalación del servidor de aplicaciones Tomcat. En esta nueva publicación avanzaremos con la instalación de la base de datos, APEX y ORDS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Oracle XE 21c
&lt;/h2&gt;

&lt;p&gt;La guía para realizar esta instalación se puede encontrar &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/21/xeinl/installing-oracle-database-xe.html#GUID-46EA860A-AAC4-453F-8EEE-42CC55A4FAD5" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;. También sugiero la lectura de este &lt;a href="https://oracle-base.com/articles/21c/oracle-db-21c-xe-rpm-installation-on-oracle-linux-7-and-8" rel="noopener noreferrer"&gt;artículo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La primera tarea es descargar el archivo RPM de instalación de XE desde &lt;a href="https://www.oracle.com/database/technologies/xe-downloads.html" rel="noopener noreferrer"&gt;aquí&lt;/a&gt; y colocar el archivo descargado en la carpeta &lt;code&gt;home&lt;/code&gt; del usuario &lt;code&gt;root&lt;/code&gt;. Allí procedemos a ejecutar el siguiente comando para realizar la instalación (este proceso se debe ejecutar como usuario root)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dnf -y localinstall oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El proceso de instalación creará de manera automática el usuario y grupos así como hará las adecuaciones necesarias a los parámetros del &lt;em&gt;kernel&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Una vez terminado el proceso de instalación y continuando como el usuario root ejecutamos el siguiente comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/etc/init.d/oracle-xe-21c configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se solicitarán las contraseñas para los usuarios &lt;code&gt;SYS&lt;/code&gt;, &lt;code&gt;SYSTEM&lt;/code&gt; y &lt;code&gt;PDBADMIN&lt;/code&gt;. Una vez completada la instalación es posible bajar/subir la base de datos y el listener con los siguientes comandos (como root):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/etc/init.d/oracle-xe-21c start
/etc/init.d/oracle-xe-21c stop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Oracle APEX 21.1
&lt;/h2&gt;

&lt;p&gt;La guía oficial para la instalación de APEX se puede encontrar &lt;a href="https://docs.oracle.com/en/database/oracle/application-express/20.1/htmig/overview.html#GUID-DB8E4B2B-1AEB-4B76-BBA3-31C5876C3F14" rel="noopener noreferrer"&gt;aquí&lt;/a&gt; sin embargo preferimos usar la versión resumida que se encuentra &lt;a href="https://oracle-base.com/articles/misc/oracle-application-express-apex-installation" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Creamos un nuevo tablespace para almacenar los objetos de APEX&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;TABLESPACE&lt;/span&gt; &lt;span class="n"&gt;apex&lt;/span&gt; &lt;span class="n"&gt;DATAFILE&lt;/span&gt; &lt;span class="s1"&gt;'/opt/oracle/oradata/XE/XEPDB1/apex01.dbf'&lt;/span&gt; &lt;span class="k"&gt;SIZE&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt; &lt;span class="n"&gt;AUTOEXTEND&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;NEXT&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luego procedemos con la instalación, ingresamos al directorio en el servidor donde descargamos y descomprimimos el software de APEX. Iniciamos sesión con el usuario oracle que fue creado durante la instalación de XE.&lt;/p&gt;

&lt;p&gt;Una vez allí nos conectamos a la base de datos usando SQL*Plus con el usuario SYS y ejecutamos el script de instalacion en el contenedor XEPDB1&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /home/oracle/apex
sqlplus sys@localhost:1521/XEPDB1 as sysdba
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(en este caso tuve que usar la sintaxis Easy Connect porque tengo otra BD en el servidor y SQL*Plus trataba de conectarse a esa, en otras circunstancias debería ser tan simple como ejecutar &lt;code&gt;sqlplus / as sysdba&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;SESSION&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;CONTAINER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;XEPDB1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;apexins&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;sql&lt;/span&gt; &lt;span class="n"&gt;APEX&lt;/span&gt; &lt;span class="n"&gt;APEX&lt;/span&gt; &lt;span class="k"&gt;TEMP&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Una vez completada la instalación cerramos la sesión de SQL*Plus y volvemos a ingresar con SYS para ejecutar unos comandos finales. Recomiendo cerrar SQL*Plus al ejecutar cada comando y volver a ingresar, ya que cada script hace cambios en la configuración de la aplicación que podrían afectar la ejecución de los scripts.&lt;/p&gt;

&lt;p&gt;Cambiar la contraseña del usuario ADMIN de APEX (la contraseña debe tener caracteres especiales o fallará la creación)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;SESSION&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;CONTAINER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;XEPDB1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;apexchpwd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;sql&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crear los usuarios APEX_LISTENER y APEX_REST_PUBLIC_USER&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALTER SESSION SET CONTAINER=XEPDB1;
@apex_rest_config.sql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ORDS
&lt;/h2&gt;

&lt;p&gt;Para la instalación de ORDS tomaremos como base los pasos de esta &lt;a href="https://oracle-base.com/articles/misc/oracle-rest-data-services-ords-installation-on-tomcat" rel="noopener noreferrer"&gt;guía&lt;/a&gt;. Descargaremos la última versión de ORDS desde este &lt;a href="https://download.oracle.com/otn_software/java/ords/ords-latest.zip" rel="noopener noreferrer"&gt;enlace&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Antes de iniciar la instalación nos conectaremos a base de datos para asegurar que los usuarios de conexión de ORDS están desbloqueados y que conocemos sus contraseñas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;SESSION&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;CONTAINER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;XEPDB1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;USER&lt;/span&gt; &lt;span class="n"&gt;APEX_LISTENER&lt;/span&gt; &lt;span class="n"&gt;IDENTIFIED&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;Password01&lt;/span&gt; &lt;span class="n"&gt;ACCOUNT&lt;/span&gt; &lt;span class="n"&gt;UNLOCK&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;USER&lt;/span&gt; &lt;span class="n"&gt;APEX_PUBLIC_USER&lt;/span&gt; &lt;span class="n"&gt;IDENTIFIED&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;Password01&lt;/span&gt; &lt;span class="n"&gt;ACCOUNT&lt;/span&gt; &lt;span class="n"&gt;UNLOCK&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;USER&lt;/span&gt; &lt;span class="n"&gt;APEX_REST_PUBLIC_USER&lt;/span&gt; &lt;span class="n"&gt;IDENTIFIED&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;Password01&lt;/span&gt; &lt;span class="n"&gt;ACCOUNT&lt;/span&gt; &lt;span class="n"&gt;UNLOCK&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Iniciamos sesión con el usuario tomcat y ejecutamos los siguientes comandos para crear el directorio y descomprimir el archivo que descargamos&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir /u01/ords
cd /u01/ords
unzip ords-latest.zip
mkdir -p /u01/ords/conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crearemos un directorio para almacenar la configuración de ORDS&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir -p /u01/ords/conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Editaremos el archivo &lt;code&gt;/u01/ords/params/ords_params.properties&lt;/code&gt; para indicar los parametros de la instalación&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.hostname=orcl-server.localdomain
db.port=1521
db.servicename=XEPDB1
db.sid=
db.username=APEX_PUBLIC_USER
db.password=Password1
migrate.apex.rest=false
plsql.gateway.add=true
rest.services.apex.add=true
rest.services.ords.add=true
schema.tablespace.default=APEX
schema.tablespace.temp=TEMP
standalone.mode=false
user.tablespace.default=APEX
user.tablespace.temp=TEMP
user.apex.listener.password=Password1
user.apex.restpublic.password=Password1
user.public.password=Password1
sys.user=SYS
sys.password=Password
restEnabledSql.active=true
feature.sdw=true
database.api.enabled=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Indicamos la ubicación del directorio de configuración&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$JAVA_HOME/bin/java -jar ords.war configdir /u01/ords/conf/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Iniciamos el proceso de instalación:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$JAVA_HOME/bin/java -jar ords.war
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Realizamos el despliegue al servidor Tomcat&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nv"&gt;$CATALINA_BASE&lt;/span&gt;/webapps/i/
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; /tmp/apex/images/&lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;$CATALINA_BASE&lt;/span&gt;/webapps/i/
&lt;span class="nb"&gt;cd&lt;/span&gt; /u01/ords
&lt;span class="nb"&gt;cp &lt;/span&gt;ords.war &lt;span class="nv"&gt;$CATALINA_BASE&lt;/span&gt;/webapps/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Iniciamos el servicio Tomcat en caso que este detenido. Si todo está bien deberíamos poder ingresar a APEX en &lt;code&gt;http://ip-servidor:8080/ords&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;En la próxima publicación culminaremos con la instalación de la integración con JasperReports.&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>apex</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Servidor Oracle DB + APEX + ORDS + JasperReports desde cero (Parte 2)</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Tue, 08 Feb 2022 20:06:05 +0000</pubDate>
      <link>https://dev.to/jeanomobono/servidor-oracle-db-apex-ords-jasperreports-desde-cero-parte-2-34if</link>
      <guid>https://dev.to/jeanomobono/servidor-oracle-db-apex-ords-jasperreports-desde-cero-parte-2-34if</guid>
      <description>&lt;p&gt;En la primera parte completamos la instalación de un servidor Oracle Linux 8 listo para empezar a ser configurado con el resto de los componentes. Ahora veamos la instalación de nuestro &lt;em&gt;middleware&lt;/em&gt; que sería &lt;strong&gt;Apache Tomcat&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Tomcat 9
&lt;/h2&gt;

&lt;p&gt;Tomcat será el servidor de aplicaciones sobre el que desplegaremos ORDS. Para la instalación de Tomcat usaremos como base los pasos indicados &lt;a href="https://oracle-base.com/articles/linux/apache-tomcat-9-installation-on-linux" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Debemos descargar dos componentes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jdk.java.net/17/" rel="noopener noreferrer"&gt;OpenJDK 17&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tomcat.apache.org/download-90.cgi" rel="noopener noreferrer"&gt;Apache Tomcat 9&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Como usuario &lt;code&gt;root&lt;/code&gt; crearemos el usuario &lt;code&gt;tomcat&lt;/code&gt; y el directorio donde se instalará el software.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;useradd tomcat
mkdir -p /u01
chown tomcat:tomcat /u01
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instalaremos OpenJDK en el directorio &lt;code&gt;/u01/java&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;su - tomcat
mkdir -p /u01/java
cd /u01/java
tar xzf openjdk-17_linux-x64_bin.tar.gz
ln -s jdk-17 latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Procederemos a instalar Tomcat en el directorio &lt;code&gt;/u01/tomcat&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir -p /u01/tomcat
cd /u01/tomcat
tar xzf apache-tomcat-9.0.54.tar.gz
ln -s apache-tomcat-9.0.54 latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Siguiendo las recomendaciones del artículo, procederemos a separar los binarios de Tomcat de la configuración para que los futuros procesos de actualización sean más simples. Para esto crearemos un nuevo directorio que servirá como ubicación para &lt;code&gt;CATALINA_BASE&lt;/code&gt; y en este copiaremos los archivos relevantes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir -p /u01/config/instance
cp -r /u01/tomcat/latest/conf /u01/config/instance
cp -r /u01/tomcat/latest/logs /u01/config/instance
cp -r /u01/tomcat/latest/temp /u01/config/instance
cp -r /u01/tomcat/latest/webapps /u01/config/instance
cp -r /u01/tomcat/latest/work /u01/config/instace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agregaremos las siguientes líneas al archivo &lt;code&gt;/home/tomcat/.bash_profile&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export JAVA_HOME=/u01/java/latest
export CATALINA_HOME=/u01/tomcat/latest
export CATALINA_BASE=/u01/config/instance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cerramos la sesión del usuario &lt;code&gt;tomcat&lt;/code&gt; y la volvemos a iniciar para que tome los cambios en este archivo. Luego de esto ya podemos iniciar/detener Tomcat con los siguientes comandos (habiendo iniciado sesión con el usuario &lt;code&gt;tomcat&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$CATALINA_HOME/bin/startup.sh
$CATALINA_HOME/bin/shutdown.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si todo finalizó de manera correcta podemos ingresar al portal de Tomcat en &lt;code&gt;http://ip-servidor:8080/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;En la próxima parte haremos la instalación de la base de datos.&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>apex</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Servidor Oracle DB + APEX + ORDS + JasperReports desde cero (Parte 1)</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Mon, 07 Feb 2022 18:18:42 +0000</pubDate>
      <link>https://dev.to/jeanomobono/servidor-oracle-db-apex-ords-jasperreports-desde-cero-parte-1-2n4g</link>
      <guid>https://dev.to/jeanomobono/servidor-oracle-db-apex-ords-jasperreports-desde-cero-parte-1-2n4g</guid>
      <description>&lt;p&gt;En mis publicaciones anteriores les he mostrado como hacer la instalación de una &lt;a href="https://dev.to/jeanomobono/oracle-xe-con-vagrant-151b"&gt;base de datos XE&lt;/a&gt; o de &lt;a href="https://dev.to/jeanomobono/oracle-apex-con-vagrant-2h3g"&gt;APEX&lt;/a&gt; usando herramientas como Vagrant o Docker, que permiten realizar el proceso con mucha facilidad. Esto está muy bien cuando quieren hacer pruebas en sus máquinas locales o tienen que hacer una instalación muy rápida y pequeña. ¿Qué hacemos si necesitamos hacer la instalación en un servidor de manera directa (no virtualizado) porque las exigencias del proyecto son un poco más altas?&lt;/p&gt;

&lt;p&gt;En esta serie de publicaciones les mostraré mi experiencia instalando un servidor desde cero con las siguientes características:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Oracle Linux 8&lt;/li&gt;
&lt;li&gt;Apache Tomcat 9&lt;/li&gt;
&lt;li&gt;Oracle XE 21c&lt;/li&gt;
&lt;li&gt;ORDS 21.3&lt;/li&gt;
&lt;li&gt;JasperReports Integration 2.7&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comencemos con la instalación del sistema operativo&lt;/p&gt;

&lt;h2&gt;
  
  
  Oracle Linux 8
&lt;/h2&gt;

&lt;p&gt;La primera tarea es instalar el sistema operativo en el equipo. Para asegurar la máxima compatibilidad con la base de datos y el resto de los componentes procederemos a instalar Oracle Linux 8, el cual se puede descargar desde &lt;a href="https://yum.oracle.com/oracle-linux-isos.html" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;. En esta página seleccionaremos la última versión disponible de &lt;strong&gt;Boot ISO&lt;/strong&gt; (esta es una versión más pequeña, el resto de los paquetes se descargaran en el momento de la instalación).&lt;/p&gt;

&lt;p&gt;Una vez que tengamos el archivo ISO procedemos a usar una herramienta como &lt;a href="https://rufus.ie/es/" rel="noopener noreferrer"&gt;Rufus&lt;/a&gt; (si estamos en Windows) para crear un USB &lt;em&gt;booteable&lt;/em&gt;. Ingresamos el USB en el computador donde instalaremos el sistema operativo y al momento de arrancar le indicaremos al computador que haga el arranque desde el USB, esto iniciará el proceso de instalación de Oracle Linux.&lt;/p&gt;

&lt;p&gt;A partir de este momento podemos seguir la &lt;a href="https://docs.oracle.com/en/operating-systems/oracle-linux/8/install/ol8-install-basic.html#graphics-mode" rel="noopener noreferrer"&gt;guía de instalación&lt;/a&gt; en modo gráfico para hacer la instalación. Hay que poner especial cuidado en la sección 3.1.3 donde se explica como configurar los repositorios desde los cuales se descargarán los paquetes del sistema operativo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sobre la configuración de red&lt;/strong&gt;: Por defecto la interface de red está deshabilitada, se debe habilitar manualmente para que pueda conectarse a los repositorios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sobre la particiones del disco duro:&lt;/strong&gt; Por defecto la instalación del sistema operativo crea un &lt;em&gt;filesystem&lt;/em&gt; en &lt;em&gt;root&lt;/em&gt; y un &lt;code&gt;/home&lt;/code&gt; que puede ocupar todo el disco. Es importante revisar esta configuración para asegurar que &lt;code&gt;/home&lt;/code&gt; no sea tan grande y que se deje suficiente espacio para &lt;code&gt;/opt&lt;/code&gt; que es donde se instala XE y se crean por defecto sus archivos de datos. Aunque no es obligatorio, sugiero dejar &lt;code&gt;/opt&lt;/code&gt; como un punto de montura fuera de &lt;em&gt;root&lt;/em&gt; para que sea más fácil de manipular en caso de ser necesario. Por supuesto tota la instalación se debe hacer sobre LVM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sobre la selección de software&lt;/strong&gt;: Sugiero que se seleccione la opción &lt;strong&gt;Server&lt;/strong&gt; (sin GUI) ya que no se requiere una interface gráfica para la instalación y administración de la base de datos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sobre los usuarios iniciales&lt;/strong&gt;: Es obligatorio asignar una contraseña al usuario root, se sugiere que sea una contraseña fuerte. Además se sugiere crear otro usuario diferente a root que tenga privilegios de administración (que pueda usar &lt;em&gt;sudo&lt;/em&gt;)&lt;/p&gt;

&lt;h3&gt;
  
  
  Tareas posteriores a la instalación
&lt;/h3&gt;

&lt;p&gt;Es necesario hacer algunas configuraciones a nivel de red para asegurar que las conexiones se realizan de manera correcta. Para esto utilizaremos la aplicación &lt;code&gt;nmtui&lt;/code&gt; conectados con el usuario root.&lt;/p&gt;

&lt;p&gt;Al ingresar a la aplicación realizaremos los siguientes pasos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seleccionar la opción &lt;code&gt;Edit a connection&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Seleccionar la interface asociada a la tarjeta de red (por lo general eth1 o eno1)&lt;/li&gt;
&lt;li&gt;En la sección &lt;code&gt;IPv4 Configuration&lt;/code&gt; seleccionaremos la opción &lt;code&gt;Manual&lt;/code&gt; y asignaremos una dirección IP fija dentro del rango de la red, recuerde que también debe indicar la máscara de red (por lo general es /24 en redes pequeñas), la colocaremos en el campo &lt;code&gt;Addresses&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;En el campo &lt;code&gt;Gateway&lt;/code&gt; colocaremos la IP de la pueta de enlace, por lo general es la IP del modem/router dado por el proveedor de internet.&lt;/li&gt;
&lt;li&gt;En el campo &lt;code&gt;DNS servers&lt;/code&gt; colocaremos las direcciones IP de los servidores DNS, por lo general son asignados por el proveedor de internet. También es posible utilizar servidores DNS externos como los de Google o Cloudflare.&lt;/li&gt;
&lt;li&gt;Dejamos el resto de los campos con sus valores por defecto y bajamos hasta el final de la pantalla y presionamos &lt;code&gt;OK&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Presionamos el botón &lt;code&gt;Back&lt;/code&gt; para volver a la pantalla inicial.&lt;/li&gt;
&lt;li&gt;Seleccionamos la opción &lt;code&gt;Set system hostname&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Asignamos un nombre al servidor, sugiero algo como &lt;code&gt;orcl-server.localdomain&lt;/code&gt; (en caso que la red del cliente no tenga un dominio creado).&lt;/li&gt;
&lt;li&gt;Presionamos el botón &lt;code&gt;OK&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Presionamos el botón &lt;code&gt;Quit&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Reiniciar el equipo para aplicar los cambios.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En la próxima publicación veremos cómo hacer la instalación de Tomcat 9&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>apex</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Instalar las aplicaciones de ejemplo en Oracle APEX 21 o superior</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Sun, 06 Feb 2022 19:03:38 +0000</pubDate>
      <link>https://dev.to/jeanomobono/instalar-las-aplicaciones-de-ejemplo-en-oracle-apex-21-o-superior-2fin</link>
      <guid>https://dev.to/jeanomobono/instalar-las-aplicaciones-de-ejemplo-en-oracle-apex-21-o-superior-2fin</guid>
      <description>&lt;p&gt;Ya hemos visto varias formas de instalar Oracle APEX, ya sea utilizando &lt;a href="https://dev.to/jeanomobono/oracle-apex-con-vagrant-2h3g"&gt;Vagrant&lt;/a&gt; o haciendo uso de las plataformas de Oracle que pueden ser &lt;a href="http://apex.oracle.com" rel="noopener noreferrer"&gt;apex.oracle.com&lt;/a&gt; o la versión &lt;a href="https://docs.oracle.com/en/cloud/paas/apex/gsadd/always-free-oracle-apex-application-development.html" rel="noopener noreferrer"&gt;Always Free en Oracle Cloud&lt;/a&gt;. Ahora bien, si instalaron la versión 21 o superior notarán que la página de Galeria de aplicaciones cambió por completo y ya no trae las aplicaciones de ejemplo instaladas por defecto.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yvspmqdjbec3agq07pd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yvspmqdjbec3agq07pd.png" alt="APEX Gallery Page" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora nos presenta tres opciones para descargar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Samples&lt;/em&gt; (Ejemplos): Nos muestran las funcionalidades más interesantes de APEX en aplicaciones específicas para cada una.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Plug-ins:&lt;/em&gt; Nos permiten extender la funcionalidad de Oracle APEX.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Apps&lt;/em&gt;: Son aplicaciones completamente funcionales para diferentes tipos de casos de uso (manejo de clientes, calendarios, encuestas, etc) y que podemos personalizar según nuestras necesidades.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En esta oportunidad vamos a instalar una aplicación de ejemplo, para ello haremos clic en &lt;em&gt;Samples&lt;/em&gt;, lo que nos llevará a la página con el listado de aplicaciones de ejemplo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F15ktf3qubvw4u6homc7o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F15ktf3qubvw4u6homc7o.png" alt="Oracle Sample Apps page" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos a descargar la aplicación &lt;em&gt;Sample Charts&lt;/em&gt;, que nos muestra algunos ejemplos de las gráficas que es posible construir en Oracle APEX. Haciendo clic en el enlace nos llevará a la página de GitHub donde se hospeda la aplicación.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feoa0v04znxof05ogy4kb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feoa0v04znxof05ogy4kb.png" alt="GitHub repository" width="800" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: Verifiquen que están en la rama apropiada del repositorio según la versión de Oracle APEX que tengan instalada, esta la encontarán en la esquina superior izquierda sobre la lista de archivos. Para descargar la aplicación hagan clic  sobre el archivo con extensión zip y en la siguiente pantalla hagan clic en &lt;em&gt;Download&lt;/em&gt; y finalmente seleccionen una carpeta en su equipo para guardar el archivo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvobw1c4euy0x3fema2a2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvobw1c4euy0x3fema2a2.png" alt="Download file from GitHub" width="800" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ya con el archivo en nuestro equipo volveremos a la página principal de APEX, en la sección &lt;em&gt;App Builder&lt;/em&gt; seleccionaremos &lt;em&gt;Import&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flus97jnp97r8957fa4bi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flus97jnp97r8957fa4bi.png" alt="APEX App Builder Page" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En la siguiente pantalla se nos pedirá que subamos el archivo de la aplicación. Podemos arrastrarla desde la carpeta o hacer clic sobre la sección &lt;em&gt;Drag and Drop&lt;/em&gt; y luego seleccionar el archivo. Dejamos el resto de las opciones con sus valores por defecto y presionamos el botón &lt;em&gt;Next&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fry33jqz9d7itl7blbyle.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fry33jqz9d7itl7blbyle.png" alt="Import Page" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En la siguiente pantalla se solicitará la confirmación de la tarea de importación. Hagan clic en &lt;em&gt;Next&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuk3rq7uchhyqpu1zs17e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuk3rq7uchhyqpu1zs17e.png" alt="Import Confirmation page" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;APEX les solicitará entonces la información sobre la aplicación que desean instalar, dejen los valores por defecto a menos que tengan una buena razón para cambiar alguno, y hagan clic en &lt;em&gt;Install Application&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkpac7adob4cvb7o5321.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkpac7adob4cvb7o5321.png" alt="APEX App information page" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La siguiente pantalla les pedirá indicar si desean instalar los objetos de soporte, estos son los objetos de base de datos que tienen los datos que serán presentando por la aplicación. Mantengan las opciones por defecto y hagan clic en &lt;em&gt;Next&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbf5rh03z8076l0gomjr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbf5rh03z8076l0gomjr3.png" alt="APEX install support objects page" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finalmente verán una pantalla de confirmación, hagan clic en &lt;em&gt;Install&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: Si están haciendo uso de la versión Always Free de Oracle Cloud asegurense que el usuario de base de datos dueño del &lt;em&gt;workspace&lt;/em&gt; tenga privilegios para usar el &lt;em&gt;tablespace&lt;/em&gt; DATA.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fwqvxkhyb7ttn2dzxu9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fwqvxkhyb7ttn2dzxu9.png" alt="APEX install support objects confirmation page" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si todo está bien se mostará una nueva pantalla donde se indica que la instalación fue exitosa. Hagan clic en &lt;em&gt;Run Application&lt;/em&gt; para ejecutar la aplicación.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkc4azw8zl8mf29zuq9ah.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkc4azw8zl8mf29zuq9ah.png" alt="APEX app succesfully installed" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Posiblemente les solicite el usuario y contraseña para acceder al workspace, luego de eso podrán ver la aplicación totalmente funcional.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1ei79m93kqr7t413rwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1ei79m93kqr7t413rwz.png" alt="APEX app" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pueden repetir estos pasos para instalar las otras aplicaciones de ejemplo, las mismas quedarán instaladas en su &lt;em&gt;workspace&lt;/em&gt; y podrán editarlas desde el &lt;em&gt;App Builder&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfiykhxagbdggj9ill4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfiykhxagbdggj9ill4i.png" alt="APEX App Builder" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>apex</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Instalando ORDS</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Sun, 21 Feb 2021 21:20:54 +0000</pubDate>
      <link>https://dev.to/jeanomobono/instalando-ords-4hd1</link>
      <guid>https://dev.to/jeanomobono/instalando-ords-4hd1</guid>
      <description>&lt;p&gt;Hasta este punto ya tenemos disponibles dos servidores, uno con las base de datos XE 18c con APEX instalado y otro con Apache Tomcat. Ahora procederemos a instalar ORDS en la base de datos y a desplegarlo en Tomcat.&lt;/p&gt;

&lt;p&gt;Primero verifiquemos que todos los usuarios de la base de datos que son requeridos estén desbloqueados y que conocemos sus contraseñas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALTER USER APEX_LISTENER IDENTIFIED BY SomePassword1 ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY SomePassword1 ACCOUNT UNLOCK;
ALTER USER APEX_REST_PUBLIC_USER IDENTIFIED BY SomePassword1 ACCOUNT UNLOCK;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ORDS lo instalaremos en el servidor ubuntu que creamos previamente, por lo que tomaremos los archivos que descargamos desde la pagina de Oracle (tanto el archivo &lt;code&gt;ords-19.2.0.199.1647.zip&lt;/code&gt; como el archivo &lt;code&gt;apex_20.1.zip&lt;/code&gt;, de este ultimo vamos a necesitar un directorio) y los pondremos en el directorio donde se encuentra el archivo &lt;code&gt;Vagrantfile&lt;/code&gt; de nuestra VM.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fke8fb3z6kma8t934szed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fke8fb3z6kma8t934szed.png" alt="Alt Text" width="800" height="236"&gt;&lt;/a&gt;&lt;br&gt;
Luego ingresamos a la VM y los copiaremos desde el directorio /vagrant hasta el directorio ~/ (el home de nuestro usuario)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /vagrant/
&lt;span class="nb"&gt;cp &lt;/span&gt;ords-19.2.0.199.1647.zip ~/
&lt;span class="nb"&gt;cp &lt;/span&gt;apex_20.1.zip ~/
&lt;span class="nb"&gt;cd&lt;/span&gt; ~
&lt;span class="nb"&gt;mkdir &lt;/span&gt;ords
&lt;span class="nb"&gt;mv &lt;/span&gt;ords-19.2.0.199.1647.zip ords
&lt;span class="nb"&gt;cd &lt;/span&gt;ords/
unzip ords-19.2.0.199.1647.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Al finalizar de descomprimir, vamos a crear un directorio para almacenar la configuracion&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para hacer mas sencilla la instalación, vamos a modificar el archivo &lt;code&gt;ords/params/ords_params.properties&lt;/code&gt; donde colocaremos los parametros requeridos por el proceso de instalación de ORDS&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.hostname=192.168.56.3
db.port=1521
db.servicename=XEPDB1
db.sid=
db.username=APEX_PUBLIC_USER
db.password=SomePassword1
migrate.apex.rest=false
plsql.gateway=true
rest.services.apex.add=true
rest.services.ords.add=true
schema.tablespace.default=APEX
schema.tablespace.temp=TEMP
standalone.mode=false
user.tablespace.default=USERS
user.tablespace.temp=TEMP
user.apex.listener.password=SomePassword1
user.apex.restpublic.password=SomePassword1
user.public.password=SomePassword1
user.tablespace.default=APEX
user.tablespace.temp=TEMP
sys.user=SYS
sys.password=SomePassword1
restEnabledSql.active=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora utilizaremos el archivo ords.war para configurar el directorio donde se almacenara la configuracion de ORDS (que sería el directorio que creamos hace unos momentos)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vagrant@localhost:~/ords$ java -jar ords.war configdir /home/vagrant/ords/conf
Feb 16, 2021 7:40:10 PM  
INFO: Set config.dir to /home/vagrant/ords/conf in: /home/vagrant/ords/ords.war
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y finalmente ejecutamos la instalacion con el siguiente comando (todos los parametros se leeran del achivos que editamos más arriba, si algún parametro falta o esta incorrecto entonces el proceso de instalación lo solicitará)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;java -jar ords.war
vagrant@localhost:~/ords$ java -jar ords.war 

Retrieving information.
Enter 1 if you want to use PL/SQL Gateway or 2 to skip this step.
If using Oracle Application Express or migrating from mod_plsql then you must enter 1 [1]:
Feb 16, 2021 7:43:00 PM  
INFO: reloaded pools: []
Installing Oracle REST Data Services version 19.2.0.r1991647
... Log file written to /home/vagrant/ords_install_core_2021-02-16_194301_00301.log
Warning: Nashorn engine is planned to be removed from a future JDK release
... Verified database prerequisites
... Created Oracle REST Data Services proxy user
... Created Oracle REST Data Services schema
... Granted privileges to Oracle REST Data Services
... Created Oracle REST Data Services database objects
... Log file written to /home/vagrant/ords_install_datamodel_2021-02-16_194355_00262.log
... Log file written to /home/vagrant/ords_install_apex_2021-02-16_194359_00566.log
Completed installation for Oracle REST Data Services version 19.2.0.r1991647. Elapsed time: 00:01:03.64 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora descomprimimos el archivo de apex y procedemos a copiar el directorio de imagenes en el directorio webapps de Tomcat, asi como el archivo ords.war&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo mkdir&lt;/span&gt; /var/lib/tomcat8/webapps/i
&lt;span class="nb"&gt;sudo cp&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; apex/images/&lt;span class="k"&gt;*&lt;/span&gt; /var/lib/tomcat8/webapps/i/
&lt;span class="nb"&gt;sudo cp &lt;/span&gt;ords/ords.war /var/lib/tomcat8/webapps/
&lt;span class="nb"&gt;sudo &lt;/span&gt;service tomcat8 restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y finalmente pueden ingresar a localhost:8080/ords para ingresar a su instancia de APEX instalada sobre Tomcat.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6czuo6fhlsis8wlkea72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6czuo6fhlsis8wlkea72.png" alt="Inicio APEX" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para ingresar simplemente coloquen INTERNAL como workspace, usuario ADMIN y la contraseña que ingresaron al correr el script apxchpwd.sql cuando instalamos APEX.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;En caso de problemas&lt;/strong&gt;&lt;br&gt;
El error más común que he encontrado al hacer esta instalación es que los usuarios de BD no se encuentran desbloqueados o que la contraseña que colocamos en el archivo de configuración no es la correcta. Si este fuera el caso recuerden que deben borrar el contenido del directorio &lt;code&gt;conf&lt;/code&gt; antes de intentar nuevamente la instalación.&lt;/p&gt;

&lt;p&gt;También es importante que vean el contenido del archivo &lt;code&gt;/var/lib/tomcat8/logs/catalina.out&lt;/code&gt; (probablemente deban ingresar como root) y ver los mensajes de error que allí se muestren al momento de levantar el proceso.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Referencias&lt;/strong&gt;&lt;br&gt;
Este &lt;a href="https://oracle-base.com/articles/misc/oracle-application-express-apex-installation" rel="noopener noreferrer"&gt;artículo sobre la instalación de APEX&lt;/a&gt; y este sobre la &lt;a href="https://oracle-base.com/articles/misc/oracle-rest-data-services-ords-installation-on-tomcat" rel="noopener noreferrer"&gt;instalación de ORDS&lt;/a&gt; fueron imprescindibles para crear esta serie.&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>ords</category>
      <category>apex</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Instalando Tomcat</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Tue, 16 Feb 2021 22:14:04 +0000</pubDate>
      <link>https://dev.to/jeanomobono/instalando-tomcat-2gof</link>
      <guid>https://dev.to/jeanomobono/instalando-tomcat-2gof</guid>
      <description>&lt;p&gt;Para hacer más interesante este ejercicio, vamos a crear nuestro propio archivo &lt;code&gt;Vagrantfile&lt;/code&gt; para crear la VM que tendrá instalado Apache Tomcat. Usaremos como base una image de Ubuntu 18.04 (aunque puede ser otra versión o distribución diferente, deberán cambiar el archivo Vagrantfile de manera acorde).&lt;/p&gt;

&lt;p&gt;Para crear una VM con vagrant lo primero será crear un nuevo directorio y allí crear el archivo Vagrantfile. En mi caso particular aproveché el directorio &lt;code&gt;~/vagrant&lt;/code&gt; que ya existe y creé un nuevo directorio &lt;code&gt;apache-server&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Veamos el archivo completo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# -*- mode: ruby -*-&lt;/span&gt;
&lt;span class="c1"&gt;# vi: set ft=ruby :&lt;/span&gt;

&lt;span class="no"&gt;Vagrant&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"2"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="no"&gt;NAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"ubuntu-apache"&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;box&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"ubuntu/bionic64"&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;define&lt;/span&gt; &lt;span class="no"&gt;NAME&lt;/span&gt;
  &lt;span class="c1"&gt;# Provider-specific configuration&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;provider&lt;/span&gt; &lt;span class="s2"&gt;"virtualbox"&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;memory&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2048&lt;/span&gt;
    &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;NAME&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hostname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"localhost"&lt;/span&gt;

  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;network&lt;/span&gt; &lt;span class="s2"&gt;"forwarded_port"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;guest: &lt;/span&gt;&lt;span class="mi"&gt;8080&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;host: &lt;/span&gt;&lt;span class="mi"&gt;8080&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;network&lt;/span&gt; &lt;span class="s2"&gt;"private_network"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;ip: &lt;/span&gt;&lt;span class="s2"&gt;"192.168.56.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;virtualbox__inet: &lt;/span&gt;&lt;span class="s2"&gt;"vboxnet0"&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;provision&lt;/span&gt; &lt;span class="s2"&gt;"shell"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;path: &lt;/span&gt;&lt;span class="s2"&gt;"scripts/install.sh"&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por supuesto, este archivo es mucho más sencillo que el que encuentran en los directorios de Oracle, pero es que la instalación es mucho más simple. Básicamente estamos definiendo un archivo &lt;code&gt;Vargrantfile&lt;/code&gt; que creará una VM basada en Ubuntu Bionic Beaver, con 2GB de memoria RAM, con el nombre "ubuntu-apache" y con una red interna configurada tal como se hizo en la instalación de la VM para Oracle XE, solo que en este caso le asigamos la IP 192.168.56.2, además de hacer un redireccionamiento al puerto 8080 (estándar de Tomcat)&lt;/p&gt;

&lt;p&gt;Aparte también creamos un nuevo directorio llamado &lt;code&gt;scripts&lt;/code&gt; y crearemos dentro un archivo &lt;code&gt;install.sh&lt;/code&gt;, que tendrá los comando para instalar los paquetes que necesitaremos en la VM.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#/bin/bash&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'INSTALLER: Started up'&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="nb"&gt;install &lt;/span&gt;tomcat8 tomcat8-admin unzip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Una vez que esté listo el archivo volvemos a &lt;code&gt;~/vagrant/apache-server&lt;/code&gt; y ejecutamos el comando &lt;code&gt;vagrant up&lt;/code&gt;. Si es la primera vez que descargamos la imagen entonces el proceso puede tomar algo de tiempo. Al finalizar podemos ingresar a la VM usando el comando &lt;code&gt;vagrant ssh&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;También podemos verificar si Tomcat está funcionando adecuadamente ingresando a la &lt;a href="http://localhost:8080" rel="noopener noreferrer"&gt;http://localhost:8080&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx5x9a881syfwz3xc23wb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx5x9a881syfwz3xc23wb.png" alt="Página inicio Tomcat" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al finalizar deberíamos poder usar el comando &lt;code&gt;ping&lt;/code&gt; (ingresando previamente a la VM) para verificar que ambas máquinas pueden responderse mutuamente.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50m52mwxvt2inpxkwksb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50m52mwxvt2inpxkwksb.png" alt="Verificar por PING" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actualización&lt;/strong&gt;: Apenas me estoy dando cuenta que utilicé el nombre "apache" en vez de "tomcat" en todas las referencias de la VM. Esto realmente no tiene importante a nivel técnico, pero es importante que las nomenclaturas que usemos para nuestros servicios se correspondan con lo que en verdad están sirviendo.&lt;/p&gt;

</description>
      <category>apex</category>
      <category>oracle</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Configurando la red</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Tue, 16 Feb 2021 21:31:24 +0000</pubDate>
      <link>https://dev.to/jeanomobono/configurando-la-red-3771</link>
      <guid>https://dev.to/jeanomobono/configurando-la-red-3771</guid>
      <description>&lt;p&gt;En la publicación anterior les había indicado que hacía falta solo instalar APEX a la instalación de XE que ya teníamos, sin embargo nos falta un paso más, este tiene más que ver con la configuración de la red de las VM.&lt;/p&gt;

&lt;p&gt;Por defecto, las VMs creadas con Vagrant/VirtualBox se configuran con una interface de red que hace un NAT entre el VM y el equipo anfitrión (obviamente esta es una explicación extremadamente simplista, pueden ver más detalles &lt;a href="https://www.virtualbox.org/manual/ch06.html" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;) y esto hace que la VM tenga acceso a internet pero no tiene acceso a otras VM dentro del mismo anfitrión. Como en nuestro caso Tomcat/ORDS estarán desplegados en otro servidor entonces debemos hacer la configuración necesaria tanto en VirtualBox como en los archivos Vagrantfile de nuestas VMs.&lt;/p&gt;

&lt;p&gt;Lo primero será configurar una nueva red en VirtualBox, para esto abran la aplicación e ingresen a &lt;code&gt;File -&amp;gt; Host Network Manager&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi86izpt4wf3pvwtlb6z2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi86izpt4wf3pvwtlb6z2.png" alt="Alt Text" width="800" height="445"&gt;&lt;/a&gt;&lt;br&gt;
Allí presionaremos el botón &lt;code&gt;Create&lt;/code&gt; y colocaremos los datos de la red que queremos crear. Por lo general la configuración por defecto es suficiente, en mi caso cree una nueva red llamada &lt;code&gt;vboxnet0&lt;/code&gt; con una red &lt;code&gt;192.168.56.1/24&lt;/code&gt; y con DHCP habilitado.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmkjmp95xvvnt98oqawg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmkjmp95xvvnt98oqawg.png" alt="Alt Text" width="637" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al finalizar simplemente hagan clic en &lt;code&gt;Close&lt;/code&gt;. Ya con esto tenemos una red configurada para ser utilizada por nuestras VMs; ahora toca hacer el cambio en los archivos &lt;code&gt;Vagrantfile&lt;/code&gt; para que hagan uso de la misma. Para ello utilizaremos el editor de texto de preferencia y buscaremos la siguiente sección&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;  &lt;span class="c1"&gt;# Oracle port forwarding&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;network&lt;/span&gt; &lt;span class="s2"&gt;"forwarded_port"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;guest: &lt;/span&gt;&lt;span class="no"&gt;VM_LISTENER_PORT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;host: &lt;/span&gt;&lt;span class="no"&gt;VM_LISTENER_PORT&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;network&lt;/span&gt; &lt;span class="s2"&gt;"forwarded_port"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;guest: &lt;/span&gt;&lt;span class="no"&gt;VM_EM_EXPRESS_PORT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;host: &lt;/span&gt;&lt;span class="no"&gt;VM_EM_EXPRESS_PORT&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y justo al final agregaremos &lt;code&gt;config.vm.network "private_network", ip: "192.168.56.3", virtualbox__inet: "vboxnet0"&lt;/code&gt; para que quede&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;  &lt;span class="c1"&gt;# Oracle port forwarding&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;network&lt;/span&gt; &lt;span class="s2"&gt;"forwarded_port"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;guest: &lt;/span&gt;&lt;span class="no"&gt;VM_LISTENER_PORT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;host: &lt;/span&gt;&lt;span class="no"&gt;VM_LISTENER_PORT&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;network&lt;/span&gt; &lt;span class="s2"&gt;"forwarded_port"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;guest: &lt;/span&gt;&lt;span class="no"&gt;VM_EM_EXPRESS_PORT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;host: &lt;/span&gt;&lt;span class="no"&gt;VM_EM_EXPRESS_PORT&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;network&lt;/span&gt; &lt;span class="s2"&gt;"private_network"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;ip: &lt;/span&gt;&lt;span class="s2"&gt;"192.168.56.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;virtualbox__inet: &lt;/span&gt;&lt;span class="s2"&gt;"vboxnet0"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La IP seleccionada puede ser cualquiera que esté dentro del rango de la red que creamos en Virtualbox. Ya con este cambio procederemos a reiniciar la VM con el comando &lt;code&gt;vagrant reload&lt;/code&gt;. Al reiniciar la VM debería seguir funcionando como lo estaba antes del cambio, solo que ahora tendrá una nueva interface de red que le permitirá conectarse con otras VM en el equipo anfitrión.&lt;/p&gt;

&lt;p&gt;En la siguiente parte de esta serie continuaremos con la creación de la VM para instalar Tomcat.&lt;/p&gt;

</description>
      <category>apex</category>
      <category>oracle</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Instalando APEX</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Tue, 16 Feb 2021 21:31:03 +0000</pubDate>
      <link>https://dev.to/jeanomobono/instalando-apex-nn5</link>
      <guid>https://dev.to/jeanomobono/instalando-apex-nn5</guid>
      <description>&lt;p&gt;En un artículo anterior expliqué como hacer la instalación de APEX en sus equipos locales usando VirtualBox y Vagrant, y esto funciona muy bien para hacer desarrollos sencillos de manera local o en ambientes de desarrollo. Sin embargo, lo más probable es que en ambientes productivos encuentren que APEX se encuentra desplegado sobre algún servidor de aplicaciones (como Tomcat o WebLogic) junto con &lt;a href="https://www.oracle.com/database/technologies/appdev/rest.html" rel="noopener noreferrer"&gt;ORDS&lt;/a&gt;. En esta publicación vamos a hacer la instalación de una instancia de Tomcat en una VM en la que también desplegaremos ORDS y lo configuraremos en una base de datos XE 18c en otra VM (tecnicamente es posible hacer la instalación en una sola VM, pero por temas de seguridad se separa siempre la base de datos del servidor de aplicaciones).&lt;/p&gt;

&lt;h1&gt;
  
  
  Instalación de XE/APEX
&lt;/h1&gt;

&lt;p&gt;Ya la instalación de XE la cubrimos en este &lt;a href="https://dev.to/jeanomobono/oracle-xe-con-vagrant-151b"&gt;artículo&lt;/a&gt; sin embargo necesitamos agregar un paso más, que es la instalación de APEX.&lt;/p&gt;

&lt;p&gt;Lo primero que haremos será &lt;a href="https://www.oracle.com/tools/downloads/apex-downloads.html" rel="noopener noreferrer"&gt;descargar&lt;/a&gt; la última versión de APEX desde la página de Oracle; este archivo lo dejaremos en el directorio desde donde arrancamos la VM, ya que este directorio está visible para el sistema operativo de dicha VM en el directorio &lt;code&gt;/vagrant&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; ~/vagrant/oracle/vagrant-projects/OracleDatabase/18.4.0-XE&amp;gt; ls -l 
total 160780
-rwxrwxr-x 1 jean jean 164603415 feb 11 17:04 apex_20.1.zip
drwxr-xr-x 2 jean jean      4096 jul 29  2020 ora-response
-rw-r--r-- 1 jean jean      5713 jul 29  2020 README.md
drwxr-xr-x 2 jean jean      4096 jul 29  2020 scripts
drwxr-xr-x 2 jean jean      4096 jul 29  2020 userscripts
-rw-r--r-- 1 jean jean      4826 feb 11 15:54 Vagrantfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Asi se ve cuando vemos el directorio desde la VM (en mi caso tenía disponible el archivo de la versión 20.1, podría ser diferente cuando lean esta publicación)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/vagrant/oracle/vagrant-projects/OracleDatabase/18.4.0-XE&amp;gt; vagrant ssh
Last login: Tue Feb 16 12:56:08 2021 from 10.0.2.2

Welcome to Oracle Linux Server release 7.9 (GNU/Linux 5.4.17-2036.102.0.2.el7uek.x86_64)

The Oracle Linux End-User License Agreement can be viewed here:

  * /usr/share/eula/eula.en_US

For additional packages, updates, documentation and community help, see:

  * https://yum.oracle.com/

[vagrant@localhost ~]$ cd /vagrant
[vagrant@localhost vagrant]$ ls -l
total 160780
-rwxrwxr-x. 1 vagrant vagrant 164603415 Feb 11 17:04 apex_20.1.zip
drwxr-xr-x. 1 vagrant vagrant      4096 Jul 29  2020 ora-response
-rw-r--r--. 1 vagrant vagrant      5713 Jul 29  2020 README.md
drwxr-xr-x. 1 vagrant vagrant      4096 Jul 29  2020 scripts
drwxr-xr-x. 1 vagrant vagrant      4096 Jul 29  2020 userscripts
-rw-r--r--. 1 vagrant vagrant      4826 Feb 11 15:54 Vagrantfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos a copiar al archivo que descargamos al directorio &lt;em&gt;home&lt;/em&gt; del usuario oracle y a descomprimirlo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;vagrant@localhost vagrant]&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;su - oracle
Last login: Tue Feb 16 14:42:14 &lt;span class="nt"&gt;-06&lt;/span&gt; 2021 on pts/0
&lt;span class="o"&gt;[&lt;/span&gt;oracle@localhost ~]&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; /vagrant/apex_20.1.zip &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;oracle@localhost ~]&lt;span class="nv"&gt;$ &lt;/span&gt;unzip apex_20.1.zip 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finalmente tendremos al menos estos archivos y directorios&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[oracle@localhost ~]$ ls -l
total 160756
drwxr-xr-x. 6 oracle oinstall      4096 Apr 17  2020 apex
-rwxr-xr-x. 1 oracle oinstall 164603415 Feb 16 14:43 apex_20.1.zip
-rwxr--r--. 1 oracle oinstall       758 Feb 16 10:57 setPassword.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora que ya tenemos el instalador en nuestra VM, procedamos a preparar la base de datos y a hacer la instalación. Lo primero será ir al directorio que acabamos de descomprimir y allí iniciaremos SQL*Plus como SYSDBA&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[oracle@localhost ~]$ cd apex
[oracle@localhost apex]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Tue Feb 16 14:47:38 2021
Version 18.4.0.0.0

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


Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para mantener los objetos de APEX organizados en la base de datos, vamos a crear un nuevo tablespace donde almacenarlos (este paso es opcional, es posible almacenar los objetos de APEX en el tablespace SYSAUX).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SQL&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;SESSION&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;CONTAINER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;XEPDB1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;SQL&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;TABLESPACE&lt;/span&gt; &lt;span class="n"&gt;apex&lt;/span&gt; &lt;span class="n"&gt;DATAFILE&lt;/span&gt; &lt;span class="s1"&gt;'/opt/oracle/oradata/XE/XEPDB1/apex01.dbf'&lt;/span&gt; &lt;span class="k"&gt;SIZE&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt; &lt;span class="n"&gt;AUTOEXTEND&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;NEXT&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El primer comando cambia el contenedor sobre el que voy a trabajar. Recuerden que a partir de 12c Oracle introdujo el concepto de &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/21/multi/introduction-to-the-multitenant-architecture.html#GUID-AB84D6C9-4BBE-4D36-992F-2BB85739329F" rel="noopener noreferrer"&gt;multitenant&lt;/a&gt; en la que es posible tener varias BD "virtuales" dentro de una gran instancia. Les recomiendo su lectura ya que será el estándar de las base de datos Oracle de ahora en adelante.&lt;/p&gt;

&lt;p&gt;Seguidamente ejecutaremos el instalador de APEX&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SQL&amp;gt; @apexins.sql APEX APEX TEMP /i/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si decidieron no crear otra tablespace simplemente cambien APEX por SYSAUX o el nombre del tablespace que hayan creado. El proceso de instalación puede durar unos minutos dependiendo de la capacidad de su equipo.&lt;/p&gt;

&lt;p&gt;Si finalmente la instalación no dio ningún error pueden proceder a crear el usuario ADMIN para administrar la instancia de APEX. Para esto ejecutaremos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SQL&amp;gt; @apxchpwd.sql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El script les solicitará el nombre del usuario, correo y contraseña, esta última debe cumplir con los estándares básicos de seguridad o no será aceptada por la base de datos (al menos una mayúscula, números y simbolos especiales).&lt;/p&gt;

&lt;p&gt;Y finalmente ejecutamos el script para la creacion de los usuarios APEX_LISTENER y APEX_REST_USER, estos son necesarios para la conexión entre ORDS y la base de datos. El script les solicitará las contraseñas para estos nuevos usuarios.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SQL&amp;gt; @apex_rest_config.sql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configuración del servidor de base de datos
&lt;/h2&gt;

&lt;p&gt;Más arriba había indicado que hacía falta solo instalar APEX a la instalación de XE que ya teníamos, sin embargo nos falta un paso más, este tiene más que ver con la configuración de la red de las VM.&lt;/p&gt;

&lt;p&gt;Esto lo explicaré en la próxima publicación de esta serie.&lt;/p&gt;

</description>
      <category>apex</category>
      <category>oracle</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Oracle APEX con Vagrant</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Mon, 15 Feb 2021 03:29:04 +0000</pubDate>
      <link>https://dev.to/jeanomobono/oracle-apex-con-vagrant-2h3g</link>
      <guid>https://dev.to/jeanomobono/oracle-apex-con-vagrant-2h3g</guid>
      <description>&lt;p&gt;En la &lt;a href="https://dev.to/jeanomobono/oracle-xe-con-vagrant-151b"&gt;publicación&lt;/a&gt; anterior donde les explicaba como hacer la instalación de Oracle XE 18c usando Vagrant y VirtualBox, les presentaba mi opinión de por qué me parece más apropiado usar la virtualización para la creación de estos ambientes de trabajo. En esta oportunidad vamos a usar la misma metodología para hacer la instalación de Oracle APEX.&lt;/p&gt;

&lt;h1&gt;
  
  
  Oracle Application Express
&lt;/h1&gt;

&lt;p&gt;O simplemente &lt;a href="https://apex.oracle.com/es/" rel="noopener noreferrer"&gt;APEX&lt;/a&gt;, es una plataforma de desarrollo de código bajo (&lt;em&gt;low-code&lt;/em&gt;) desarrollada por Oracle para interactuar directamente con la base de datos, y que además permite crear aplicaciones completas en muy poco tiempo. Es una plataforma donde casi todo el desarrollo se realiza de forma declarativa (cambiando propiedades a los elementos de la aplicación) con una interface muy intuitiva, y que a su vez permite hacer personalizaciones más avanzadas ya sea mediante PL/SQL o JavaScript.&lt;/p&gt;

&lt;p&gt;Hay diversas formas de empezar a trabajar con APEX:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalación de APEX en la base de datos de tu compañía (on-premise)&lt;/li&gt;
&lt;li&gt;Solicitar un espacio de trabajo gratuito en &lt;a href="https://apex.oracle.com/pls/apex/f?p=4700:2:106848511761991:::RP::" rel="noopener noreferrer"&gt;apex.oracle.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Crear una cuenta en la &lt;a href="https://www.oracle.com/cloud/free/" rel="noopener noreferrer"&gt;capa gratuita&lt;/a&gt; de Oracle Cloud&lt;/li&gt;
&lt;li&gt;Instalar una VM con todo lo necesario para trabajar de manera local&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cada una de estas opciones tiene sus ventajas y características. En este artículo veremos la última opción, trabajar de manera local.&lt;/p&gt;

&lt;h1&gt;
  
  
  Preparar los archivos
&lt;/h1&gt;

&lt;p&gt;En esta oportunidad asumiré que ya tienen instalado Virtualbox y Vagrant en sus equipos y que ya descargaron o clonaron el repositorio de los scripts preparados por Oracle. Nuevamente el ejemplo lo haremos sobre un equipo anfitrión con Ubuntu 20.04, sin embargo estas instrucciones deberían funcionar igual en otros sistemas operativos.&lt;/p&gt;

&lt;p&gt;Lo primero es conseguir desde la página web de Oracle los instaladores de cada uno de los componentes (esto deben hacerlo solo una vez):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Archivo rpm para la instalación de Oracle XE: &lt;a href="https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html" rel="noopener noreferrer"&gt;https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle APEX: &lt;a href="https://www.oracle.com/tools/downloads/apex-downloads.html" rel="noopener noreferrer"&gt;https://www.oracle.com/tools/downloads/apex-downloads.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle Rest Data Services (ORDS): &lt;a href="https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads.html" rel="noopener noreferrer"&gt;https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.oracle.com/database/technologies/appdev/rest.html" rel="noopener noreferrer"&gt;ORDS&lt;/a&gt;, por si no lo han visto antes, crea un puente entre HTTP y tu base de datos, te permite crear REST API endpoints sobre los que puedes crear solicitudes en tus aplicaciones y extraer o procesar información de la base de datos.&lt;/p&gt;

&lt;p&gt;Al finalizar la descarga deben colocar todos los archivos en &lt;code&gt;vagrant-projects/OracleAPEX&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frhjiqu6phz9asy9pz469.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frhjiqu6phz9asy9pz469.png" alt="Archivos iniciales instalación" width="800" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez que los archivos estén en su sitio, solo deben ejecutar el comando &lt;code&gt;vagrant up&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F98eqcz7m0u3u8kxldnkx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F98eqcz7m0u3u8kxldnkx.png" alt="Iniciar el proceso con vagrant up" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El proceso de instalación puede tardar un buen rato dependiendo de su conexión a internet, la capacidad del equipo, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fte2a98ppl65gevm2sau9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fte2a98ppl65gevm2sau9.png" alt="Proceso de instalación" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez terminado el proceso de instalación, tomen nota de la información de conexión, recuerden que las contraseñas son autogeneradas pero se pueden cambiar luego de terminar el proceso.&lt;/p&gt;

&lt;p&gt;Abran su navegador de preferencia y vayan a la URL indicada en el instalador, por lo general será &lt;a href="http://localhost:8080/ords" rel="noopener noreferrer"&gt;http://localhost:8080/ords&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9atbch16tcs4reo1pl0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9atbch16tcs4reo1pl0s.png" alt="Página de inicio APEX" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si todo está bien, deberían ver la página inicial de APEX en su equipo. La primera vez, dado que aun no han creado un espacio de trabajo, deben ingresar la siguiente información:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Workspace: internal&lt;/li&gt;
&lt;li&gt;Username: admin&lt;/li&gt;
&lt;li&gt;Password: la contraseña generada por el instalador&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La primera vez que ingresen les pedirá que cambien la contraseña, asegúrense que sea una contraseña segura con al menos una mayúscula, números y un signo de puntuación. Una vez que hagan el cambio los llevará a la pantalla de bienvenida para crear su primer espacio de trabajo.&lt;/p&gt;

&lt;p&gt;En APEX un &lt;strong&gt;espacio de trabajo&lt;/strong&gt; es un compartimento lógico, una especie de base de datos privada que permite a los desarrolladores trabajar con una misma aplicación de APEX manteniendo privados sus propios objetos, datos y aplicaciones. El primer espacio de trabajo creado por defecto se llama &lt;strong&gt;internal&lt;/strong&gt;, es un espacio de trabajo especial donde no se pueden crear aplicaciones ya que es el sitio de administración de APEX.&lt;/p&gt;

&lt;p&gt;Pudieran crear un espacio de trabajo por usuario, o por proyecto, eso dependerá totalmente de sus necesidades.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frgdlr9uxxsqfddx4fsqt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frgdlr9uxxsqfddx4fsqt.png" alt="Página de bienvenida a APEX" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hagan clic en &lt;em&gt;Create Workspace&lt;/em&gt;, esto los llevará a la pantalla donde deben indicar los datos básicos del espacio de trabajo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fiiq7a82sky3be3q1533m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fiiq7a82sky3be3q1533m.png" alt="Datos espacio de trabajo" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En mi caso simplemente voy a crear un espacio de trabajo llamado &lt;em&gt;testing&lt;/em&gt;. Presionen &lt;em&gt;Next&lt;/em&gt; para continuar a la siguiente pantalla.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fgwuao0p5fcotjv8igbnb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fgwuao0p5fcotjv8igbnb.png" alt="Datos esquema del espacio de trabajo" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Un espacio de trabajo está asociado a un esquema de la base de datos. Pueden reutilizar un esquema ya existente (seleccionando &lt;strong&gt;Yes&lt;/strong&gt; en &lt;em&gt;Re-use existing schema?&lt;/em&gt;) o pueden crear un nuevo esquema y en esta pantalla colocaran los datos del mismo. En mi caso particular crearé un esquema con el mismo nombre del espacio de trabajo (recuerden que el nombre del esquema debe seguir las reglas de nombres de cualquier esquema/usuario que creen en la base de datos). Al introducir todos los datos presionen &lt;em&gt;Next&lt;/em&gt; para continuar a la siguiente pantalla.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdn2tsdy4mdhkjoht1qgu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdn2tsdy4mdhkjoht1qgu.png" alt="Credenciales administrador espacio de trabajo" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego deben dar los datos del administrador del espacio de trabajo. En el campo &lt;em&gt;Username&lt;/em&gt; coloquen el nombre de usuario que usaran para conectarse como administrador (por lo general es &lt;strong&gt;admin&lt;/strong&gt; pero pueden poner lo que quieran), una contraseña, nombre, apellido y dirección de correo electrónico.&lt;/p&gt;

&lt;p&gt;La pantalla final les mostrará un resumen de los datos que colocaron para crear el espacio de trabajo, simplemente hagan clic en &lt;em&gt;Create Workspace&lt;/em&gt; para finalizar.&lt;/p&gt;

&lt;p&gt;Luego de un pequeño instante les mostrará la confirmación de la creación del espacio de trabajo, junto con la información sobre las estructuras de almacenamiento del usuario recién creado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsq6roezzvjlevqff11ss.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsq6roezzvjlevqff11ss.png" alt="Espacio de trabajo creado" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al presionar el botón &lt;em&gt;Done&lt;/em&gt; los llevará a la página de administración de los espacios de trabajo. Ya pueden cerrar esta sesión para ingresar al espacio de trabajo recién creado. Simplemente hagan clic en la parte superior derecha, donde aparece el nombre del usuario y en el menú emergente hagan clic en &lt;em&gt;Sign out&lt;/em&gt;. Al salir, hagan clic en el botón verde para volver a la pantalla de inicio y ahora coloquen la información que usaron para crear su propio espacio de trabajo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F07sah463rbqz05jzxntg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F07sah463rbqz05jzxntg.png" alt="Ingresar al espacio de trabajo" width="548" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Es muy probable que la primera vez que ingresen les solicite que cambien la contraseña.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Foa3meqs61wlj3bzbu57r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Foa3meqs61wlj3bzbu57r.png" alt="Espacio de trabajo" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;¡Y ya está! Finalmente están en un espacio de trabajo en blanco donde pueden empezar a crear aplicaciones desde cero. Si lo desean pueden ingresar a &lt;strong&gt;App Gallery&lt;/strong&gt; para ver aplicaciones de demostración totalmente funcionales y que pueden servirles de base para sus propios proyectos.&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>spanish</category>
      <category>apex</category>
      <category>virtualbox</category>
    </item>
    <item>
      <title>Oracle XE con Vagrant</title>
      <dc:creator>Jean C. Omobono Z.</dc:creator>
      <pubDate>Mon, 15 Feb 2021 02:46:18 +0000</pubDate>
      <link>https://dev.to/jeanomobono/oracle-xe-con-vagrant-151b</link>
      <guid>https://dev.to/jeanomobono/oracle-xe-con-vagrant-151b</guid>
      <description>&lt;h1&gt;
  
  
  Usar una VM en lugar de tu equipo
&lt;/h1&gt;

&lt;p&gt;He visto muchos blogs en español en los que explican cómo realizar la instalación de Oracle XE 18c en diversos sistemas operativos y todos ellos asumen que la instalación se realizará directamente sobre tu equipo de trabajo. Aunque esto no está mal, mi experiencia me ha enseñado que no es una buena idea instalar XE directamente en el sistema operativo de tu computador principal: las configuraciones del equipo pueden cambiar a medida que vas instalando nuevas aplicaciones y/o servicios, haciendo que tu instalación de XE se pueda volver inestable (o de hecho todo tu sistema operativo, sobre todo en las instalaciones en Windows).&lt;/p&gt;

&lt;p&gt;El proceso que voy a explicarles es muy similar a usar &lt;em&gt;virtualenv&lt;/em&gt; en Python para crear ambientes virtuales para las librerías que utilizarás en tus aplicaciones, o a la creación de contenedores con Docker para &lt;a href="https://medium.com/rate-engineering/using-docker-containers-as-development-machines-4de8199fc662" rel="noopener noreferrer"&gt;crear máquinas de desarrollo completas&lt;/a&gt;. De esta forma tienen un ambiente dedicado exclusivamente al servicio con el que desean trabajar.&lt;/p&gt;

&lt;h1&gt;
  
  
  Vagrant para aliviar el proceso
&lt;/h1&gt;

&lt;p&gt;No es necesario reinventar la rueda. Por lo general los tutoriales en español nos guían por el proceso completo de configuración del sistema operativo donde instalaremos la base de datos, incluyendo la instalación de paquetes, apertura de puertos, etc. Sin embargo ya Oracle ha publicado &lt;em&gt;scripts&lt;/em&gt; que pueden aliviar la tarea.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vagrantup.com/intro" rel="noopener noreferrer"&gt;Vagrant&lt;/a&gt; es una herramienta para construir y administrar máquinas virtuales. Básicamente nos permite utilizar &lt;em&gt;scripts&lt;/em&gt; con una configuración predefinida para la creación de una máquina virtual. La ventaja principal es que es posible usar estos &lt;em&gt;scripts&lt;/em&gt; para crear tantas máquinas virtuales como necesites y todas ellas tendrán la misma configuración.&lt;/p&gt;

&lt;p&gt;En este procedimiento utilizaremos VirtualBox para administrar la máquina virtual de Oracle XE, si aun no tienen instalado VirtualBox pueden seguir las &lt;a href="https://www.virtualbox.org/wiki/Downloads" rel="noopener noreferrer"&gt;instrucciones&lt;/a&gt; de instalación para su sistema operativo. Además, también debe instalar Vagrant siguiendo estas &lt;a href="https://learn.hashicorp.com/tutorials/vagrant/getting-started-install?in=vagrant/getting-started" rel="noopener noreferrer"&gt;instrucciones&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Iniciar la instalación
&lt;/h1&gt;

&lt;p&gt;Una vez que VirtualBox y Vagrant están instalados procederemos a descargar los scripts de Oracle que se encuentran en este &lt;a href="https://github.com/oracle/vagrant-projects" rel="noopener noreferrer"&gt;repositorio&lt;/a&gt; en GitHub. Pueden clonarlo o descargarlo totalmente y luego descomprimir el archivo en un directorio local de su preferencia. &lt;/p&gt;

&lt;p&gt;En este ejemplo usaré un equipo con Ubuntu 20.04 como anfitrión, aunque las instrucciones son las mismas para cualquier sistema operativo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhs1mrdk2qv7rszgmu8x2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhs1mrdk2qv7rszgmu8x2.png" alt="Directorio vagrant-projects" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En mi caso hice una clonación del repositorio, en la imagen anterior se ve el contenido del directorio.&lt;/p&gt;

&lt;p&gt;Antes de iniciar la creación de la máquina virtual, es importante hacer notar que si es la primera vez que estamos ejecutando Vagrant en nuestro equipo es recomendable tener una buena conexión a internet, ya que el &lt;em&gt;script&lt;/em&gt; descargará tanto la imagen del sistema operativo (Oracle Linux 7) y el instalador de la base de datos XE.&lt;/p&gt;

&lt;p&gt;Para iniciar la creación de la máquina virtual de Oracle XE 18c procederemos al directorio &lt;code&gt;vagrant-projects/OracleDatabase/18.4.0-XE&lt;/code&gt; y ejecutaremos el comando &lt;code&gt;vagrant up&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpahz9wfs03a7rfzugo19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpahz9wfs03a7rfzugo19.png" alt="Inicio con vagrant up" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El proceso de instalación se encargará de:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Descargar e instalar el sistema operativo (Oracle Linux 7)&lt;/li&gt;
&lt;li&gt;Descargar e instalar las dependencias necesarias para la instalación de Oracle XE 18c.&lt;/li&gt;
&lt;li&gt;Descargar e instalar Oracle XE 18c.&lt;/li&gt;
&lt;li&gt;Configurar el redireccionamiento IP necesario para poder comunicarse con la VM desde el equipo anfitrión.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;El proceso de instalación puede tomar varios minutos dependiendo del ancho de banda de su conexión y/o de la potencia de su equipo; en la consola verán el progreso de la misma.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxk0419hz5m2ktvd7yllv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxk0419hz5m2ktvd7yllv.png" alt="Proceso de instalación 1" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxk0419hz5m2ktvd7yllv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxk0419hz5m2ktvd7yllv.png" alt="Procesao de instalación 2" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al finalizar el proceso tomen nota del usuario y contraseña de los usuarios &lt;code&gt;sys&lt;/code&gt;, &lt;code&gt;system&lt;/code&gt; y &lt;code&gt;pdbadmin&lt;/code&gt; que aparecerán en la consola. (Si no pudieron tomar nota tampoco hay que entrar en pánico, es muy sencillo cambiar estas contraseñas y lo explicaré un poco más abajo)&lt;/p&gt;

&lt;p&gt;¡Y eso es todo! Ya tienen una base de datos &lt;strong&gt;Oracle XE 18c&lt;/strong&gt; funcional en su equipo. Para configurar un cliente como &lt;strong&gt;SQL Developer&lt;/strong&gt; utilicen los siguientes datos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hostname: &lt;code&gt;localhost&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Port: &lt;code&gt;1521&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;SID: &lt;code&gt;XE&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PDB: &lt;code&gt;XEPDB1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Usen las contraseñas generadas automáticamente&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9kj39ibakrn7w4c5157f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9kj39ibakrn7w4c5157f.png" alt="Configuración SQL Developer" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si prefieren cambiar la contraseña pueden ingresar a la máquina usando el comando &lt;code&gt;vagrant ssh&lt;/code&gt; estando en el mismo directorio desde el que ejecutaron &lt;code&gt;vagrant up&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frpb9rsh8isve906fxacz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frpb9rsh8isve906fxacz.png" alt="Ingresando al VM con vagrant ssh" width="747" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez hayan ingresado a la máquina virtual ejecuten estos comandos:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo su - oracle&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/home/oracle/setPassword.sh &amp;lt;nuevoPassword&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Donde &lt;code&gt;&amp;lt;nuevoPassword&amp;gt;&lt;/code&gt; es la nueva contraseña que quieren utilizar. Recuerden que es posible que la base de datos exija que la contraseña cumpla con ciertos parámetros de complejidad.&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>spanish</category>
      <category>xe</category>
      <category>virtualbox</category>
    </item>
  </channel>
</rss>
