Recently I was approached by a party to migrate their 14+ years old mini ERP system that is client/server architecture to a new hardware. This legacy application has such a small footprint that, the export dump was hardly reaching 300Mbs in size after a full database export.
- OS: Windows 2003 SP3, 32-Bit
- Oracle Database: 10g Release 1
- Client side, Developer 6i with Patch 18
- Clients using Windows 7, 64-Bit with DLL hacks for running forms/reports based application
- Database upgrade to 11g R2 64-Bit, in order to maximize the performance and properly utilize the new hardware (HP DL380 g9 with 32GB memory and more than 1TB storage)
We’ve initiated the migration by testing all possible scenarios using ORACLE VirtualBox. Created a VM for Windows 2008 R2 server, Created both Windows 10 & Windows 7 SP1 VMs for client side testing. After thorough checking to insure that there were no technical errors, decided to move the solution to physical server. Throughout the testing using VMs we never changed any database parameters (not even CASE SENSITIVE logon), yet all clients were happily connecting and executing forms and reports as expected.
The following were performed on the physical server after installing & updating Windows Server 2008 R2
- Installed Developer Suite 6i
- Installed Oracle Database 11g r2 (220.127.116.11), accommodating 40% the physical memory and set the memory management as automatic.
- Configured RMAN
- Imported specific users from the latest export dump
We tried to start the application from one of the clients and the application started & the queries were executed at lightning speed. Client exit from the application and tried to restart, hitting Oracle not found error!
All of a sudden from the smirks, panic took over all the parties involved. We shutdown the services, restarted. Client gets connected, and 2nd attempt returns the same error ‘Oracle not found’
Again the client connects and trying to run the reports prompts them a popup windows asking for logon to database.
After cross checking between VMs and Physical server, we confirm that both the scenarios share the same database and client settings (totally missing the PROCESSES parameter). Yet the physical scenario was continuously falling victim to Oracle not found error
A quick googling brought to me a blog page that asked to check the number of processes parameter set in the database instance, which was 150 by default in our case. I have cross checked with the VM instance and found the value to be 200. I have to redo the exercises to figure out whether I have changed the parameter after creating the database using DBCA.
Next I ran the following SQL as root to figure out the max processes count registered by the database
select resource_name, current_utilization, max_utilization from v$resource_
limit where resource_name in (‘processes’,’sessions’);
which returned me the following:
RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION
—————————— ——————- —————
processes 47 175
sessions 54 173
Obviously, the max_utilization has crossed the default value of 150 processes & I changed the parameter with 450 using alter system command.
Alter system set processes=450 scope=spfile;
After altering the system, a shutdown immediate followed by startup has fixed nightmare.
Further readings has given me a fairly good idea that 11g R2 has not the above said issues related to number of processes, many other related to network stack.
So, if you are planning to setup 11g to work with Developer 6i, which is not certified as a combination by Oracle, be prepared to bite the silver bullet(S)