Connecting Oracle Developer 10g to 11G database takes long time

We migrated to 11G R2 (11.2.0.4) for our Oracle Applications R12 few years back, yes few years back (2017) & lived with one of the worst experiences…

Connecting Oracle Developer 10g (Forms/Reports) suite to 11G database.

I have scavenged through community articles for long time before giving up. I hardly came across a single fix for the connection time that used to hang up the Developer suite at times…

Today, I decided to find a solution for the nagging SSH connection issues from Windows 11 to our LINUX application servers and realized that we didn’t update the DNS settings for them once after we decommissioned a domain controller. Once the SSH issues were rectified and addressed, my next attempt was to find a solution for “frmcmp_batch” taking long time to start compiling modules & I landed on the below post.

Credit: Oracle Applications DBA: Form Compilation Against a 11g Database Hangs or Takes a Very Long Time [ID 880660.1] (appsjagan.blogspot.com)

As we are already on 11G R2 11.2.0.4, patching was not required. All I needed was to alter the hidden parameter “_FIX_CONTROL” as mentioned in the article.

SQL> ALTER SYSTEM SET "_FIX_CONTROL"='8560951:ON';

(Use scope=spfile to make this change permanent. This will require you to restart the database.)

I opted to go without spfile for testing & as soon as applied, the “frmcmp_batch” started compiling the modules instantly, against the usual delay that ran into many minutes other times.

Out of curiosity, I tried to connect to the database from Developer 10g & the connection was instant! within a fraction of a second.

So DNS being one of the most important elements establishing successful connections, patches and fixes also play crucial role in providing stable connections. Were you stuck with the same issue? give the solution a try and let us know whether it helped you also.

Install Oracle Developer 10G on Windows 11

Today I re-installed Windows 11 on my computer. Actually I had upgraded from Windows 10 to Windows 11 on October 5th, 2021 the same day Microsoft released the half baked OS to public & all of a sudden I realized that, it was a blunder. So, after regretting over a month, I decided to re-install the OS and started installing all my development tools & you know what, I had to refer my Windows 7 post for installing Oracle Developer Suite 10g on my Windows 11!

Much of the post below is from the earliest post that I had for Windows 7, explaining hacks to install Oracle Database 10g and the Suite. Oracle Database 10g is not anymore significant, hence I removed the database part and posting the rest for few unfortunate Oracle developers out there. Well, 10g is used by many business application as on date & if you are looking for a method to install Oracle Database 10g on Windows 11, Please search the blog for Database 10g and you will land on multiple posts explaining to how (Refer Windows 10 articles)

Step 1 Setup Virtual Memory

If your computer has 8GB or more physical memory, all you need is to setup the Virtual Memory for the name sake. Limit the virtual memory to 2048 (2G) or max 4096 (4G). Please use the below images only for reference purposes. After changing the Virtual Memory, You will be asked to restart the computer and please restart.

Step 2 Setting up the Developer Suite

Depending upon the media that you are using for the installation, Oracle Developer 10g has 2 discs & I have copied the content from both disks inside a folder on my computer. (As you could see in the image above)

Open the Disk 1 folder and locate “Setup.exe’, right click and change the compatibility to Windows XP Service Pack 2 or 3 (doesn’t make any difference)

That’s all. Right click and run “setup.exe” as Administrator. If you have a JAVA installation already on the computer, you might receive a warning message for missing entry point, that you can safely ignore.

Follow the same compatibility setting for patch sets, if you have any. Let me know about your experience through comments.

Windows 11 | Dial a VPN Connection using PowerShell script

I started blogging once after upgrading to Windows 7 & posted mostly about the ridiculous bugs Microsoft exported with that OS. Gradually Windows 7 got matured (hardly ever fixing the yellow triangle network icon issue) & my entire attention switched to what I do for salaries, Oracle development & later much of my posts were about the stack.

Now Microsoft has released another half cooked OS, Windows 11. From a layman perspectives I cannot understand how someone could make such decisions that affect the established stability and ease of use of an OS that creates huge disappointments for general userbase!

Other than cosmetic changes and revamped settings area, I cannot defer Windows 11 from Windows 10, plus the disappointment of losing the start menu that I was getting used to after loads of patience and efforts. Among many of such grievances, connecting to VPN that is defined using Windows new connection wizard at work is so ridiculous, requiring 4 mouse clicks! So I decided to go with a cmd/powershell script this time to avoid those 4 mouse clicks. If you are using Cisco or other VPN solutions, this will not apply to you.

After weighing the possibilities of extending , I decided to go with PowerShell (Version 5)

So let us check how it works. Copy the following in to a text file

rasdial.exe "Your VPN Name"

Save the file as “Dial VPN.ps1” or any other name you prefer with extension “.ps1”.

Make sure you wrap the VPN name using double quotes. “rasdial.exe” is not a powershell cmdlet, an old Windows OS friendly dialer. This executable is generally found in the Windows\System32 folder and there is no need to specify the path, unless you modified the PATH environment variable. Now create a new shortcut on the desktop and type/copy the following (Please adjust the file path as per your setup) as command for the shortcut

powershell.exe -File "C:\scripts\Dial-VPN.ps1"

Please note, you must configure the Powershell execution police “RemoteSigned” inorder to make this work. Example:

PS C:\Users\<username>> Set-ExecutionPolicy RemoteSigned

Usually I keep all my scripts in a folder named “Scripts” on the C: drive. Hence the -File parameter clearly mentions the script’s path.

That’s all, you can double click and open the pre-configured VPN connection without going through the 4 click hassles on Windows 11 (or multiple clicks on other Windows OS versions)

Now, let us look at a fancier version of the above. What if you want to connect if not connected and disconnect if already connected? Please note, this script could be extended beyond this level depending upon specific requirements. I have started with the skeleton and will be happy to receive better scripts from you.

Code block modified on 11th December 2022 for better error handling.

<#
https://community.spiceworks.com/topic/2271983-auto-connect-vpn
http://woshub.com/popup-notification-powershell/
POWERSHELL error handling for Invoke-Expression
https://stackoverflow.com/questions/32348794/how-to-get-status-of-invoke-expression-successful-or-failed
#>
            
$vpnname = 'Your VPN Name'
$vpnusername = "YOURUSERNAME"
$vpnpassword = "YOURPASSWORD"
$cmd = $env:WINDIR + "\System32\rasdial.exe"
            
try {
    $vpn = Get-VpnConnection -Name $vpnname -ErrorAction Stop
    $Success = $vpn.ConnectionStatus
}
catch {
    Write-Host "Please use Windows Network and Internet Setting to define a VPN Connection"
}

try {
    if ($vpn.ConnectionStatus -eq "Disconnected") {
        $expression = "$cmd ""$vpnname"" "
        $Success = Invoke-Expression -Command $expression 
        if ($LASTEXITCODE -ne 0) {
            $wshell = New-Object -ComObject Wscript.Shell
            $Output = $wshell.Popup("$Success", 0, "$vpnname Status", 64)
        }
        else {
            $wshell = New-Object -ComObject Wscript.Shell
            $Output = $wshell.Popup("Connected.", 0, "$vpnname Status", 64)
        }
    }
    else {
        $vpnstatus = $vpn.ConnectionStatus
        if ($vpnstatus -eq "Connected") {
            $wshell = New-Object -ComObject Wscript.Shell
            $Output = $wshell.Popup("$vpnname will be disconnected, Are you sure?", 0, "$vpnname Status", 4 + 32)
            if ($Output -eq 6) {
                $expression = "$cmd ""$vpnname"" /DISCONNECT"
                Write-Host $expression
                Invoke-Expression -Command $expression 
                $wshell = New-Object -ComObject Wscript.Shell
                $Output = $wshell.Popup("VPN Disconnected", 0, "$vpnname Status", 64)
            }
        }
    }
}
catch {
    $wshell = New-Object -ComObject Wscript.Shell
    $Output = $wshell.Popup("There was an unexpected error connecting VPN," + 
        " Please check whether you have defined the $vpnname correctly." + 
        " Check your username & password, Server IP address etc", 0, "$vpnname Status", 64)
}
 

Please note, I am a beginner with PowerShell(Also) and always will be. As usual, I have provided the links to original codes & possible other links those helped me to device the above.

The above can, dial your VPN connection, warn you before you disconnect etcetera. For my ease, I prefer to use the extended version of the script as I keep on switching the connections. You may able to extend the script once again by accepting the VPN connection name, so that you can use the same script for dialing different VPN connections (if you have many)

Have suggestions? please pass them to me through the comments section.

Windows 11 | Remote Server Administration Tools (RSAT)

A wonderful article about installing RSAT (Remove server administration tools) on Windows 11 is available at How To Install RSAT On Windows 11 PCs HTMD Blog (anoopcnair.com)

I would like reiterate something Anoop has mentioned in his article. If you are using Microsoft SCCM or Windows Update Services (WU), then you must enable the local group policy as he has mentioned clearly in his post.

The image attached by Anoop could be bit confusing for the local group policy setup, hence I am uploading one with better visibility. The path is “Computer Configuration->Administrative Templates->System” & you need to open “Specify settings for optional component installation and component repair”

No need to reboot the computer for installing RSAT components. Follow Anoop’s thread and be a happy Administrator!