Docker Container - Oracle Database deadlock - oracle

I have a .Net Core 3.1 api that uses Dapper to call a stored procedure in a Oracle Database. Everything works fine locally, but when the app is deployed in a docker container, it never responds even when the stored procedure has end all his tasks.
Stored procedure takes around 20 minutes to finish when it is executed from oracle developer.
Api is deployed in a windows server docker engine.
Docker log is not showing any usefull data.
I already tried:
Running it on IIS, works great
Deploying it on a docker container and calling the stored procedure with Oracle ODP instead of dapper, did not worked.
Call it sync instead of async, deployed in container, did not worked.
Do you have any clue of what is happening?
Thanks in advance for your help.

Related

Sql Script file (apex_epg_config.sql) is missing in Oracle Apex 20.2

I have Oracle Apex 20.1 Installed on Oracle Linux 6.10 Server with Oracle Database 12.2. Recently I am trying to update into Apex 20.2 but this script file (apex_epg_config.sql) is missing in zip folder.
When I load the site then giving me this error:
There is a problem with your environment because the Application Express files are not up-to-date! The
files for version 20.1.0.00.13 have been loaded, but 20.2.0.00.20 is expected. Please verify that you
have copied the images directory to your application server as instructed in the Installation Guide.
How to solve this error?
The embedded PL/SQL Gateway (EPG) along with mod_plsql are no longer supported for Oracle APEX. This deprecation was announced in APEX 20.1.
Oracle REST Data Services (ORDS) is the only supported and documented Web listener for APEX. The configuration instructions are here. ORDS includes an embedded Web server, so in addition to being supported with Apache Tomcat and WebLogic Server, you can also run ORDS standalone.
I had the same problem after upgrading from APEX 18.2 to 20.2. I solved the problem by not executing this script. It seems that it isn't needed any longer. Update succeeded without running this script.
Attention: There is a pitfall: After upgrading you must clear your browser cache (only images). When I cleared the browser cache, the error message disappeared.

Can the installation of Oracle APEX on LINUX be accomplished if Oracle DB resides on separate system?

Wonder if this can be achieved. Install Oracle APEX onto a Linux VM and have Oracle DB residing on a separate server to point to it. Is it possible to install Oracle APEX without Oracle currently installed on the same box? Can't find any documentation on the Oracle site for this setup.
No. Application Express (APEX) runs out of the database itself. APEX is a collection of PL/SQL packages and tables.
Now the web tier could most definitely be moved to another machine (linux even). That would be something like Oracle REST Data Services and Apache Tomcat.

Oracle xe 18c database shutdowns automatically

I have installed Oracle xe 18 with apex and ORDS successfully on Centos 7, every thing runs fine but after certain inactivity on database like 6/8 hours later Oracle stopped and ORDS throws 503 error code.
Once I start the database up, all are normal then.
Can you please suggest me how to keep Oracle up all time/ unless manually shutdown VPS or the like?
Thanks
After your database is restarted, connect with an ADMIN level user, and use SQL Developer to inspect the Alert Log - you'll find this as one of the standard reports we ship in the Database Administration section.
Look for things like 'fatal' 'ora-600' 'abort' - this should clue you in as to what is happening.
We'll assume you don't have a job scheduled on Centos that shuts down the database.

Replacing mod_plsql with Oracle Rest Data Services

We are in the process of upgrading an application running on Oracle 10g and oracle HTTP server to Oracle 12C.
Due to mod pl/sql being deprecated we have chosen following combination.
oracle 12c + ORDS 3.0 and tomcat. (we are not using APEX)
A major functionality of our application is uploading files via website to the documents table in the database schema.
While doing that we are getting error "500 Internal Server Error" which has been experienced by others on this link https://community.oracle.com/thread/3891751
If anyone has got a sucessfull file upload into Documents table via Oracle Rest Data Services config I would like to know.
As far as I could prove, it is not possible to upload files with ORDS without having APEX installed. You will have to install APEX even if you do not use it in your application.
You can try another gateway but most are deprecated, I have started to develop one in Java without APEX dependencies. When I have it ready I will publish it in github.
You might want to have a look at the latest ORDS release as explained my own question related to this topic:
File uploads in a non-Apex PL/SQL application migrated to ORDS

Embedded or managed Oracle instance for integration tests

For MySQL, the MXJ connector makes it very easy to launch a managed MySQL instance.
I know that Oracle provides Oracle XE for quick setup, but I've only found an RPM distribution that needs to be installed. Is there a neatly packaged jar that I can just drop in the classpath and start up by calling a specific JDBC url, a la HSQLDB or MXJ?
I'm interested in having developers use this locally for running tests, as well as on our continuous integration server.
The short answer is No. Oracle is a big meaty chunk of database. Amongst other things, it generally expects itself to be run by its own special user rather than the client user.
For simplicity, your best bet is a separate DB server with each of your developers having their own username/password (and hence their own independent schema) in the database.
Although Oracle does not provide an embedded database, spinning up a local Docker container running Oracle XE might be an ideal way to accommodate Oracle-specific local integration tests. Since Docker containers are ephemeral in nature by design, the database could also be completely torn down as desired providing clean sandboxing.
The alexeiled/docker-oracle-xe-11g image on DockerHub I found has particularly clear setup and documentation instructions: https://hub.docker.com/r/alexeiled/docker-oracle-xe-11g/
After spinning up the Docker container, be sure to:
First connect to the APEX web console, login, as per the instructions
Then open Oracle SQL Developer and select Reset Password... first. Otherwise the following error may be thrown java.lang.ArithmeticException when attempting to get connection in Oracle 11.2.0.2.0 (64 bit)
As the documentation describes, the docker run command can also be designed to automatically run SQL scripts on the container's startup, which could also be very valuable in the CI/integration testing workflow.
Hope this helps!

Resources