Un activator process es el equivalente a un process starter de BW5.
Cuando se realiza una migración de proyectos de BW5 a BW6, los process starters son convertidos a activator process (en el mejor de los casos) por lo que hay que validar que estos se generan de manera correcta en el proyecto migrado.
La mala migración de procesos con estas características o la conversión por procesos normales con actividades de inicio (timer, file poller, queue receiver, etc) puede generar un mal o diferente funcionamiento en la aplicación migrada.
Características de un activator process
Equivalente a process starter de BW5
Un activator process solo puede existir dentro de un application module.
No puede ser creado dentro de un shared module.
Se ejecuta antes que cualquier proceso con actividades de inicio (timer, file poller, queue receiver...)
Uso
La importancia de un activator process radica en la capacidad de ejecutar actividades o subprocesos antes de cualquier otro proceso dentro de la aplicación.
Algunos ejemplos de esto son: inicializar variables compartidas, leer archivos, consultar base de datos, crear directorios, etc.
Les dejo aquí abajo un video de cómo crear un activator process dentro de una aplicación de BusinessWorks 6 / BWCE.
El término trascendencia, trascendental o trascendente (del latín trascendens; trascender, superar, sobrepasar, ser mejor que otros, extenderse) indica la idea de sobrepasar o superar. Es el carácter de lo trascendente, es decir, lo que está más allá de lo perceptible y de las posibilidades de lo inteligible (comprensión) y se opone al concepto de inmanencia.
Estoy obteniendo el error ORA-28001: The password has expired en una base de datos Oracle 19c.
Esto provoca que las aplicaciones estén enviando errores al momento de conectarse a la base de datos usando estos usuarios. Los usuarios no están bloqueados pero se muestran como EXPIRED.
Para conocer el estatus de los usuarios se puede utilizar el siguiente query:
SELECT username, account_status, expiry_date FROM dba_users;
Importante mencionar que el error ORA-28001 es consecuencia de ignorar el error ORA-28002: the password will expire in 7 days 😅. Este error aparece primero y es una advertencia para actualizar el password del usuario en cuestión. Durante este tiempo la cuenta se pone en estado de EXPIRED(GRACE) indicando que el password debe ser actualizado.
Solución
Ls solución es actualizar el password del o los usuarios en cuestión. Preferentemente desde el momento de la advertencia pero también funciona cuando la contraseña ya expiró como en mi caso.
Ejecutar la siguiente instrucción para setear el password del usuario.
La contraseña puede ser la misma, no necesariamente una nueva. Esto para evitar problemas con las aplicaciones.
sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Sun Sep 17 15:39:43 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0
SQL> ALTER USER myuser IDENTIFIED BY my password; User altered.
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; Profile altered.
SQL> commit;
SQL> exit;
Muy importante ejecutar la instrucción commit para aplicar el cambio de profile.
El trabajo "SYSTEM"."SYS_IMPORT_FULL" se ha parado debido a un error fatal
Hola.
Estoy obteniendo el siguiente error al intentar importar una base de datos Oracle 19c con la utilidad impdp
Importante mencionar que estoy haciendo un full import por lo que es requisito que todos los tablespaces de la base de datos fuente existan en la base de datos destino.
C:\WINDOWS\system32>impdp FULL=y DUMPFILE=230710EXPDAT.DMP LOGFILE=full_log_import.log Import: Release 19.0.0.0.0 - Production on Dom Jul 23 14:07:20 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
La tabla maestra "SYSTEM"."SYS_IMPORT_FULL_05" se ha cargado/descargado correctamente Iniciando "SYSTEM"."SYS_IMPORT_FULL_05": system/******** FULL=y DUMPFILE=230710EXPDAT.DMP LOGFILE=full_log_import.log Procesando el tipo de objeto DATABASE_EXPORT/PRE_SYSTEM_IMPCALLOUT/MARKER Procesando el tipo de objeto DATABASE_EXPORT/PRE_INSTANCE_IMPCALLOUT/MARKER Procesando el tipo de objeto DATABASE_EXPORT/TABLESPACE ORA-39014: Uno o mßs trabajos han salido antes de tiempo. ORA-39029: el trabajo 1 con el nombre de proceso "DW00" ha terminado antes de tiempo ORA-39014: Uno o mßs trabajos han salido antes de tiempo. ORA-39029: el trabajo 2 con el nombre de proceso "DW00" ha terminado antes de tiempo El trabajo "SYSTEM"."SYS_IMPORT_FULL_05" se ha parado debido a un error fatal en Dom Jul 23 14:10:40 2023 elapsed 0 00:03:00
Solución
Primero hay que revisar el alert log para tener mas información acerca del error.
El alert log se encuentra en una ruta similar a esta (BACKGROUND_DUMP_DEST): F:\app\oracle\diag\rdbms\{dbname}\{sid}\trace\alert_{dbname}.log
Al analizar el contenido del alert log encuentro el siguiente error:
2023-07-23T14:07:56.542039-04:00 Exception [type: INT_DIVIDE_BY_ZERO, ] [] [PC:0x7FFCCA342CE2, skgfrcre()+450] Errors in file F:\APP\ORACLE\diag\rdbms\cmsdrdb\cmsdrdb\trace\cmsdrdb_dw00_8884.trc (incident=15825): ORA-07445: se ha encontrado una excepción: volcado de memoria [skgfrcre()+450] [INT_DIVIDE_BY_ZERO] [] [PC:0x7FFCCA342CE2] [] [] Incident details in: F:\APP\ORACLE\diag\rdbms\cmsdrdb\cmsdrdb\incident\incdir_15825\cmsdrdb_dw00_8884_i15825.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details.
El error se encuentra justo después de un comando CREATE TABLESPACE. Este tablespace no estaba creado en la base de datos destino por lo que no puede encontrarlo.
Con esta información verifico que todos los tablespaces de la base de datos fuente existan en la base de datos destino. La ubicación de los datafiles puede ser diferente pero los tablespaces deben existir con el mismo nombre. Esto es un requisito para un full import.
SQL> select name from v$tablespace;
Después de crear el tablespace faltante, repito la instrucción de import impdp y finalmente puedo importar la base de datos.
El trabajo "SYSTEM"."SYS_IMPORT_FULL_06" ha terminado con 14 error(es) en Dom Jul 23 14:52:37 2023 elapsed 0 00:07:18
ORA-12154: TNS:no se ha podido resolver el identificador de conexión especificado
Hola.
Estoy teniendo el siguiente error al intentar importar un backup de base de datos de Oracle 19c con el comando impdp justo después la creación de una nueva base de datos.
Import: Release 19.0.0.0.0 - Production on MiÚ Jul 12 19:58:41 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
UDI-12154: la operación ha generado un error ORACLE 12154
ORA-12154: TNS:no se ha podido resolver el identificador de conexión especificado
El error es un tanto genérico porque no ofrece mucha información y las causas pueden ser diversas.
En mi caso particular es importante mencionar que la base de datos está recién creada y este comportamiento ya lo he experimentado con una base de datos nueva.
Solución
Verificar que existe el archivo tnsnames.ora en la siguiente ubicación: $ORACLE_HOME/network/admin/tnsnames.ora
Si no existe el archivo, crearlo manualmente y generar una entrada con la descripción del servicio en el siguiente formato:
En la misma ubicación, verificar que el archivo sqlnet.ora contenga TNSNAMES en el parámetro NAMES.DIRECTORY_PATH
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
En este punto verificar si la aplicación ya reconoce el servicio y puede conectarse.
Se puede verificar que el servicio responde usando la utilidad tnsping
$ORACLE_HOME\bin>tnsping MYSERVICE
En este y otros casos es importante que el listener esté prendido cuando se inicia la base de datos para que reconozca la instancia de Oracle.
Lo primero que hay que revisar es que el listener esté activo y que tenga comunicación con la instancia/servicio de Oracle. Para esto ejecutar la siguiente instrucción en un command prompt:
C:\WINDOWS\system32>lsnrctl status
LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 12-JUL-2023 19:57:24
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Conectßndose a (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS:no hay ningún listener
TNS-12560: TNS:error del adaptador de protocolo
TNS-00511: No hay ningún listener
64-bit Windows Error: 61: Unknown error
Como se ve en este caso, el estatus del listener está apagado por lo que hay que prenderlo pero debe ser en el siguiente orden que incluye reiniciar la base de datos.
1.- En otro command prompt conectarse a la base de datos y apagarla con el comando: shutdown immediate
2.- En el otro command prompt prender el listener con el comando: lsnrctl start
*Si es necesario se puede usar también el comando: lsnrctl stop
3.- En el command prompt de la base de datos, iniciar la base de datos con el comando: startup
Al iniciarse la base de datos, el listener la va a reconocer y reportar como un servicio disponible.
4.- Por último, verificar el estatus del listener con el comando: lsnrctl status
Con este orden de reinicio pude corregir el error inicial que tenía.
PostgreSQL ERROR: relation “table” does not exist 42P01
Hola.
PostgreSQL está devolviendo el siguiente error al ejecutar un stored procedure que utiliza diversas tablas dentro de una base de datos.
SQL Exception occurred (SQL STATE = 42P01) - detailMessage - ERROR: relation “table” does not exist
Importante mencionar que el stored es reconocido y ejecutado sin problemas pero las tablas que se utilizan dentro provocan el error al momento de ejecución.
El stored está firmado con el nombre del esquema pero las tablas no tienen la firma del esquema.
Solución.
La línea de conexión a la base de datos tanto en pgAdmin como en la aplicación están usando el parámetro currentSchema con el nombre del esquema de las tablas y es aquí donde se encontraba el problema.
En la línea de conexión, el parámetro currentSchema debe estar en camel case format para que el esquema sea reconocido en la conexión y por lo tanto las tablas del esquema también lo sean.
Cómo ver errores descriptivos de ASP clásico en navegador con IIS 10
Hola.
Enviar los errores de ejecución a navegador no están habilitados por default en IIS 10 por lo que se tienen que activar manualmente.
El error genérico que se ve en un navegador cuando hay un error de ejecución de código ASP classic es el siguiente:
An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.
Este error no es descriptivo y no ayuda en nada para debuguear algún problema con el código por lo que hay que hacer lo siguiente para ver el error descriptivo.
Esta solución asume que ya han instalado la opción de ASP clásico desde Add or remove Windows Features.
Solución.
1.- Ir al sitio desde IIS manager
2.- Seleccionar el icono de ASP
3.- Expandir Debug Properties y cambiar la opción Send Errors to Browser a true
Después de esto hay que volver a refrescar la dirección para ver el error.
Oracle out parameter se trunca a la mitad de caracteres
Hola.
Estoy teniendo un problema en la llamada a un stored procedure de Oracle 19c.
El problema consiste en que tengo definido un parámetro de salida de tipo VARCHAR2 en el stored procedure que al ser ejecutado devuelve el campo pero lo corta a la mitad de caracteres.
Ejemplo:
"hola_mundo" -> "hola_"
Esto está ocasionando problemas de funcionamiento porque el valor completo es requerido para la autenticación de la aplicación.
La versión de base de datos que estoy usando es Oracle 19c en Windows Server y la aplicación web es ASP.NET 4.8 con C#
Es importante mencionar que tanto la versión de .NET como la versión de base de datos están siendo actualizadas. Anteriormente la versión .NET era 4.0 y la versión de Oracle era 11g.
Solución.
La solución de este problema es cambiar el tipo del parámetro de salida de VARCHAR2 a CHAR.
PROCEDURE SP_LGN_WS(p_status OUT NUMBER, p_roles OUT VARCHAR2)
Cambiar por:
PROCEDURE SP_LGN_WS(p_status OUT NUMBER, p_roles OUT CHAR)
Con este cambio el parámetro de salida devuelve el campo completo.
*Otro de los problemas que existen es que la aplicación usa la siguiente librería obsoleta: System.Data.Oracle.Client
La cual ya no es recomendada para trabajar con Oracle.
Estoy obteniendo el siguiente error al intentar ejecutar mi aplicación de TIBCO BusinessWorks 6.
java.lang.ClassCastException: class org.apache.commons.dbcp2.DelegatingCallableStatement cannot be cast to class oracle.jdbc.OracleCallableStatement (org.apache.commons.dbcp2.DelegatingCallableStatement and oracle.jdbc.OracleCallableStatement are in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @71cea1b8)
Esta aplicación fue migrada de la versión 5 y utilizaba una actividad Get Connection que ya no existe en la versión 6 por lo que se han auto generado clases de Java para proveer la misma funcionalidad.
Dentro de estas clases se utilizan clases de conexión a base de datos genéricas en forma de wrapper ya que la aplicación puede manejar diversos maneadores de base de datos. Esta es la razón del error al intentar hacer cast de un objeto de tipo DelegatingCallableStatement a un objeto de tipo OracleCallableStatement
Esto aplica para variables de tipo conexión y statement del paquete Java.sql
Solución
Lo que hay que hacer es quitar el wrapper al objeto utilizando el método unwrap para dejarla en su tipo de clase original la cual hay que especificar como parámetro del mismo método.
He descargado e instalado una nueva versión de Java en Mac y ahora necesito saber en donde está instalado porque requiero hacer más configuraciones que dependen de la ubicación de Java.
También necesito saber la version default que tengo configurada.
Solución.
Para encontrar el home directory de la version Java mas reciente instalada, ejecutar el siguiente comando en una Terminal de Mac
/usr/libexec/java_home
Para saber la ubicación del Java home de una versión en específico se puede agregar el parámetro -v con la versión a buscar.
Estoy obteniendo el siguiente error al tratar de levantar una base de datos de Oracle 11g en una nueva base de datos Oracle 19c.
Estoy intentando una migración de base de datos de Oracle 11g a una Oracle 19c pluggable database. Obtengo el siguiente error cuando estoy intentando abrir la base de datos con el comando startup.
ORA-00603: ORACLE server session terminated by fatal error
ORA-00604: error occurred at recursive SQL level 1
ORA-00904: "I"."UNUSABLEBEGINNING#": invalid identifier Process ID: 92131 Session ID: 11 Serial number: 25309
Solución
Para poder abrir la base de datos utilizar la opción upgrade del comando startup:
SQL> startup upgrade
Esta instrucción permite iniciar la base de datos en modo upgrade y poder accederla para completar el proceso de migración.
*Esta solución no es definitiva debido a que se tiene que ejecutar cada que se quiere levantar la base de datos. Se requiere finalizar el proceso de migración completo que incluya la restauración completa de la base de datos en un nuevo servidor.
Cómo desplegar Aplicación TIBCO BusinessWorks Container Edition en Docker con Azure Artifacts
Hola.
En este post voy a describir cómo desplegar una aplicación REST con TIBCO BusinessWorks Container Edition usando Docker container con Azure Artifacts.
Mi aplicación es un servicio REST que recibe un request y publica un mensaje a una queue de EMS con la información recibida.
En este caso requiero que las librerías de TIBCO EMS se encuentren en el repositorio y que sean descargadas al momento de construir la aplicación e incluidas en la imagen de Docker generada. Con esto al iniciar mi contenedor estas dependencias son resueltas y la aplicación se ejecute correctamente.
Conexión a Azure Artifacts
Lo primero que tienen que tener configurado en el proyecto es una conexión a un Feed Artifact de Azure.
En la sección de Azure Artifacts, seleccionar el feed deseado y la opción Connect to Feed para ver la información de conexión al Feed desde nuestro proyecto. En esta sección se encuentra toda la información referente a la configuración de la conexión del Feed al proyecto.
1.- Editar el archivo settings.xml (Este se encuentra en la instalación de Maven: /opt/apache-maven-3.5.0/conf o también en el user home ${user.home}/.m2, se puede crear si no existe). Agregar el elemento de server siguiente:
El Personal Access Token se genera desde ahi mismo siguiendo las instrucciones para generarlo con Packaging read & write scopes.
2.- Colocar los elementos: repositories y repository dentro del archivo POM de la aplicación. Los datos de conexión de estos elementos están disponibles en Azure Artifacts > Connect to Feed. Algo similar a lo siguiente
Hasta este punto tenemos conexión al Artifact Feed de Azure desde nuestro proyecto de TIBCO BusinessWorks Container Edition.
Subir plugins al feed con mvn deploy:deploy-file
Para subir los archivos hacia el repositorio se utiliza la instrucción de Maven deploy-file. En el caso particular de las librerías de EMS, es necesario primero empaquetar las librerías de la siguiente manera
1.- Copiar las carpetas desde /opt/tibco/ems/8.6/components/shared/1.0.0/plugins hacia una carpeta temporal con la siguiente estructura: runtime/plugins
2.- Crear un archivo zip de la carpeta runtime y asignarle un nombre descriptivo para las librerías como en la siguiente imagen: TIB_bwpluginjms_8.6.0_bwce-runtime.zip
Este nombre se usará en la instrucción deploy-file
*Podría ser también un archivo con extensión .jar
La estructura de directorios y archivo zip final deben verse como en la siguiente imagen.
3.- Para subir el archivo zip antes generado con las librerías de EMS se utiliza la siguiente instrucción desde la carpeta donde se encuentra el archivo:
Los nombres de groupId, artifactId y versión dependen del paquete que se suba así como de la organización de nombres de archivos que se requiera.
Agregar dependencias al proyecto en el POM application
Después de subir las librerías al repositorio o Feed ya pueden ser referenciadas desde un proyecto de BWCE. Para lograr esto, dentro del archivo POM de la aplicación es necesario agregar las dependencias que se encuentran en el repositorio externo.
1.- Ir a la URL del repositorio y seleccionar el Artifact deseado. 2.- En la pestaña Overview > Get this Package > Maven Seleccionar el fragmento de XML para agregar al archivo POM de la aplicación. Algo similar a lo siguiente:
3.- Ir al proyecto de BWCE y pegar el fragmento XML en el POM de la aplicación (ej. MiProyecto.application/pom.xml). Agregar el elemento type como zip porque en este caso las librerías fueron subidas en ese formato. El valor por default es jar
<project> . . <dependencies>
<dependency>
<groupId>com.tibco.jms</groupId>
<artifactId>plugin</artifactId>
<version>8.6.0.004</version>
<type>zip</type>
</dependency>
</dependencies> </project>
Al momento de incluirlo en el archivo, y estar configurada la conexión a Azure Artifacts - Feed, la dependencia es descargada automáticamente en el folder local ${user.home}/.m2/repository con lo que se vuelve disponible para el proyecto.
Agregar dependencias en Docker image build
Con las dependencias incluidas en el proyecto, es necesario referenciarlas en el build de la imagen Docker que se genera al ejecutar el goal docker:build
Para esto hay que modificar el archivo POM de la aplicación (ej. MiProyecto.application/pom.xml) agregando el elemento de assembly como en el ejemplo siguiente:
Esta configuración va a producir la siguiente estructura de directorios y Dockerfile.
Posteriormente la imagen de Docker será construida incluyendo las dependencias del repositorio y las colocará en la ruta del contenedor especificada en el elemento XML assembly/targetDir. En este caso: /resources/addons/plugins
En el caso de las librerías EMS es necesario colocarlas en el folder plugins (/resources/addons/plugins) con el formato comprimido pues de ahí son tomadas y copiadas al momento de desplegar la aplicación en el contenedor.
Desplegar aplicación BWCE desde Business Studio
Con todos los cambios de arriba realizados y probada la conexión al repositorio de Artifacts de Azure desde el proyecto de BWCE, realizar el despliegue utilizando los siguientes goals de Maven:
Resolver Unable to read data from the transport connection: net_io_connectionclosed
Hola.
Estoy obteniendo el siguiente error al hacer envíos de correo electrónico utilizando ASP.NET. Estoy utilizando el Framework 4.0
El error completo es el siguiente:
20220704 12:30:32 : Application Mail Error: System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: Unable to read data from the transport connection: net_io_connectionclosed.
at System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
at System.Net.Mail.CheckCommand.Send(SmtpConnection conn, String& response)
at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)
at System.Net.Mail.SmtpClient.Send(MailMessage message)
--- End of inner exception stack trace ---
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at Models.Funciones.enviarEmailRegistroActivacion(SegmentoModel _model) in C:\www\www.misitio.com\Models\Funciones.cs:line 166
La razón es que Microsoft ha dejado de dar soporte para TLS1.0 y TLS1.1 para los endpoints default de SMTP. En mi caso smtp.office365.com
El problema es que las definiciones de SecurityProtocolType.Tls11 y SecurityProtocolType.Tls12 no están definidas en en el Framework 4.0 por lo que se tienen que especificar con una representación numérica de estos valores.
Abajo dejo el bloque de código con la linea de código que agregué para hacer funcionar el envío de correos.
La configuration de envío que estoy usando es similar a la siguiente en donde he agregado el atributo enableSsl="true" a mi configuración smtp. Si no lo hiciera desde ahí se tiene que agregar en el código mismo.
Funciones.GrabaArchivo(ArchivoLog, "Application Mail Error: " + ex.ToString(), true);
}
}
Si no se agrega la propiedad EnableSsl, obtengo el siguiente error:
20220704 13:01:17 : Application Mail Error: System.Net.Mail.SmtpException: Error in processing. The server response was: 5.7.3 STARTTLS is required to send mail [MN2PR15CA0060.namprd15.prod.outlook.com]
at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)
Al utilizar contenedores de Docker en ocasiones es necesario saber qué es lo que está pasando dentro del contenedor.
Algunas cosas que se requieren saber comúnmente son: saber la estructura del sistema de archivos, las rutas importantes dentro del contenedor, los archivos incluidos en el contenedor como resultado de las instrucciones del Dockerfile, los comandos disponibles dentro del contenedor, etc.
docker exec
Para poder ingresar a un contenedor Docker que se encuentra ejecutándose (Docker run) se utiliza la siguiente instrucción utilizando el nombre o el id del contenedor. Si es el id, con los tres primeros dígitos es suficiente.
docker exec -t -i nombrecontenedor /bin/bash
Esta instrucción permite entrar a los archivos del contenedor en ejecución. Una vez dentro se puede explorar los folders utilizando los comandos comunes de exploración como es: ls (list), cd (change dir)
Para mayor referencia del comando docker exec, ver la documentación en linea de la página de documentación de Docker:
Ejecutar aplicaciones en silent mode es muy útil cuando queremos dejar corriendo algo sin preocuparnos por el estado de la aplicación.
Generalmente se usa para aplicaciones de las cuales no se requiere mucha información sobre su ejecución.
También sirve para no dejar ventanas abiertas con programas ejecutándose porque es estorboso. También es riesgoso cerrar una ventana por accidente y terminar con la ejecución de una aplicación.
Para ejecutar un programa en silent mode:
Abrir un command prompt y moverse a la ruta donde se encuentra el .exe Dependiendo del programa y los permisos que requiera, abrir el command prompt como administrador o de manera normal.
Este post es para explicar cómo crear una nueva base de datos de Oracle 19c en una máquina con Windows.
Oracle es un gestor de base de datos muy popular en la industria que permite administrar la información de una organización de manera eficaz. Puede manejar altos volúmenes de información, diversos niveles de seguridad, importar y exportar la información, recuperación de datos, etc.
Para la creación de una base de datos de Oracle 19c existen diferentes métodos. En este caso estoy utilizando el Database Configuration Assistant de Oracle 19c también conocido como dbca.
Lo primero que hay que hacer es ir a la ruta donde se encuentra el ejecutable dbca y ejecutarlo. Esta ruta se encuentra dentro del path ORACLE_HOME. La ruta debe ser similar a la siguiente: