I can’t confidently say whether it is the KB4557957 or something that deliberate by me, I had serious troubles connecting to IKEV2 VPN, ending with a message “Parameter is incorrect”.
Although I landed on the solution earlier, I disrespected the order & spent another day trying to figure out the “issues”. Finally I did as the post asks & “fixed” the problems. Enough talks, just follow the instructions as mentioned on this page
I hardly had any issues with Windows 10, to conclude my experience with this specific OS. I’ve started using the OS from the 1st preview builds, was an insider etc.
Yesterday I couldn’t start the OS. Windows logo loads, OS loading animation starts and that’s all. After breaking the load process thrice, Windows initiated the Automatic Repair process and loaded the OS after a considerable amount of time.
As a practice, from years, I always move the Documents and Download folders to a different partition for my user account. This saves me additional time to backup and restore the user files when I need to rebuild the box.
Once Windows finally started, from experiences, I started checking for the partitions and found that two of the partitions on which I had the Documents and Downloads folders “WERE” missing. Now the difficult task was to identify the physical disk. My machine has total 6 disks (2 SSD, 4 various capacity mechanical drivers & couple of them 6+ years old) & after a thorough examination, realized that the disk that was having the “Downloads” and “Documents” folders has a SATA cable that was not anymore holding up it’s physical connection on the port. Once changed, everything went back to normal. Actually the user profile was trying to access the missing disk, causing the lockup during boot.
So, if you have heavily customized desktop computers once in a while, make sure that your connections are in place. Every time you open the case, make sure you are having all the cables checked and insured that tightly secured!
Internet explorer? Java client? Yes! Oracle E-Business Suite (Oracle Apps) uses NPAPI client when accessed through a web browser for Oracle Forms/Reports based applications. Currently the only one browser that allows the NPAPI client to load is Internet Explorer.
Depending upon the complex JAVA dependencies your version of Oracle Applications must be supporting a particular version of java client. Although you can use switches to load latest versions of JRE for your legacy Oracle application, not always advisable as I’ve experienced non-responsiveness & freezing.
Windows 10 version 2004 (Released by late May 2020) & subsequent cumulative updates MUST be the reason, causes a major issue with Internet Explorer (as on 26th June 2020). Once you installed & removed a higher version of JRE, JRE 6.x will not load anymore on the browser. You can reset Internet Explorer, reset your JRE & what not? Trying to open the Oracle forms based application would show the plugin being loaded and that’s all!
Strangely, I can see this issue is with only JRE 6.x when JRE 7.x and later load as usual without any problems. So if you think you have tried “everything” already & landed on this page, let us give it another try.
You can divide the below tasks into two sections. If JRE 6.x is the only one java client remaining after removing all other versions & if the JAVA_HOME or other Java related keys are not set under environment variables, just delete the “Sun” & “Java” Folders from “AppData” “Roaming”, “LocalLow” & “Local” folders. You may delete the “Javasoft” entry from “Computer\HKEY_CURRENT_USER\SOFTWARE\JavaSoft” registry path also. Try to load Oracle forms based application and if the java client is NOT at all loading, follow the below instructions.
Uninstall Java Software
After uninstallation remove all remnants of Java software from the system.
This should open the appdata folder the current user.
Let us find and delete all “Java” and “Sun” folders and content within those folders. Please note, if you are using JAVA for other than accessing Oracle EBS, the following instructions may result disastrous situations. Hence I recommend you to continue with utter caution.
Delete “Sun” and “Java” folders as I have said before from “Roaming”, “LocalLow” & “Local”
and open the below path
Delete the “JavaSoft” folder completely.
Now switch to “Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft”
This is the registry path where 32 Bit version of Java software is installed. Delete this folder also (if exists after uninstallation).
Now you are ready to re-install the Java client once again. I would prefer a computer restart prior attempting re-installation, which is not mandatory.
After the re-installation of JRE, opening the internet explorer should ask you for permission to enable the client and Oracle EBS should able to load the NPAPI client properly. Do let me know whether it helped you.
I started using Windows 10 from the early developer previews & was lucky until yesterday (24th June 2020). Few things didn’t work as expected then onwards.
I noticed the troubles when I clicked on the network icon on the taskbar, which usually pops up a window from which I can connect to another available connection or turn “Airplane Mode” on or off etc
Unfortunately, this has stopped on me all of a sudden. I started searching for a solution & came across few, which didn’t solve my issues. Today morning 25th June 2020, I noticed that it was not just the network connection icon, my clock and action center also had the same issue of not responding to mouse clicks!
Please refer the above links for situation those may not be fixed by the below simple instruction. While trying to find a solution, accidently I landed on the below settings area & toggled the “Get notifications from apps and other senders” from on to off & then reversed it.
That was it! Toggling Notifications on and off has brought back the functionality to whole those icons which were not responding. Give it a try and let me know whether it helped you! (No need to restart the computer)
Today we will see how to setup FileZilla FTP server with TLS. Well there are many documents explaining it, however, as usual I am going one step ahead and explain few elements those are missed by most of those posts.
Once installed (accept the defaults, letting FileZilla run as a Windows service) you can start configuring it for PASSIVE mode transfers and TLS.
As you could see, the installation sets port 21 as default listening port for FTP. If you choose to, can change it an available port. Usually you don’t have to do it.
If your FTP server/desktop machine has multiple IP addresses, you may assign a particular IP for the FTP Server under “IP Bindings”
Leaving it to default will not hurt you, usually.
Setting up Passive Mode can be bit tricky, especially when you are going to let users from internet to access your FTP server. Let us consider you have a router that is the gateway for all your computers in the network. So any communication that is leaving your network passes through this router. This is called a NAT network. Getting a FTP server to respond to a request from internet could be quite confusing for someone who doesn’t understand the NAT properly (I don’t, all the time)
Usually such a requirement is handled by forwarding the requests received by the router to one of the servers or computers hosting the FTP or other services.
Here for FileZilla, the router should forward port 21 to the server that is hosting the FTP server, to that the communication and transfer could happen. So basically, your router should have an entry like below. With the given example, FTP Server software is installed on a computer that has STATIC IP address 192.168.1.200, hence the below entry. Please make sure that all your computers/servers those host services have STATIC IP addresses.
Please note, based on the manufacturer, Applications & Gaming tab will be labelled differently. You need to check the router manual to find out where exactly you can locate “Single Port Forwarding”. If you are lucky enough, you may able to pick FTP from an available dropdown list, like the one I have. Else, just create one entry like the one you could see with this image for FTP.
Now you need to configure the ports for Passive mode, which most of the modern FTP clients will try to use for the transfer. I believe, without configuring the passive mode, FileZilla FTP server fails to establish connections.
Here you could see that I am using a custom port range for Passive mode. Most of the people who successfully configured FileZilla recommend using the port range between 50000-51000. You can try the ranges like 50000-50100 or like the one I have, which is approximately a 1000 ports.
Next couple of points are going to be vital for users from internet. I have a static IP address from ISP, hence for the area External IP address, I can use it safely. However, this may not be the case of most home users, as ISP provide them dynamic IP addresses which keep on change once in a pre-planned interval. So http://www.noip.com is your friend and I suggest you create a ddns.net hostname for yourself before proceeding. You can use their client software to keep update your host IP address against ddns.net hostname. You can use your hostname, eg: johwick3.ddns.net in the place of external IP address.
You can try the “Retrieve external IP address from” option as well. I cannot guarantee the success rate.
The other important setting on this page is “Don’t use External IP for local connections”. You must not uncheck this box in case if your FTP server has external IP configured and expecting both local and external users to access the server.
Once set, you need to open the range of ports on your router. This time you need to access the page “Port range forwarding” and create an entry like the seen below.
This completes the initial level settings for the FTP server. Let us configure TLS in the next step. This involves creating a self signed certificate and secret key (secret key is not mandatory). Luckily FileZilla has built-in ability to create a self-signed certificate for you!
Once you are on the FTP over TLS settings page, you can use generate new certificate button to bring this window up. Fill in correct information & generate the certificate. FileZilla will automatically setup the certificate for you. “Save key and certificate to this file:” should be chosen wisely. Your certificate is accessed from this location, so make sure that you will generate the certificate in a location/folder which is not accidently prone to get deleted.
Now we will create a new user & setup few details for the testing.
In the above step, I have created a user with read only privileges and assigned a single directory access. As long as you want your users NOT to upload files to your FTP server, this setup is sufficient for a normal user. Please refer FileZilla documents for in-depth knowledge about creating groups and users.
Finally, we will configure Windows Firewall in order to establish the connection. Please note, I am against disabling firewall and other security suites those are installed/configured on any environment, unless for testing. You must NOT disable them permanently. If your browsing and other internet activities are limited to reputed websites and services, I can insure that you don’t need a commercial product to protect your Windows box. The built in Defender suite does a wonderful job protecting your computer. Follow the below images to create an incoming rule for the FTP traffic in the very server/computer on with you have install FileZilla FTP server.
Please note, there is no need to open the port 990 that is used for TLS. Unfortunately while I was trying everything, included the port in my setup. You only need to allow TCP Ports 21 & the range 50000-51000 (or the port range that you prefer to use)
That’s all take for setup. We can try to connect to our FTP server now!
Download and install FileZilla FTP Client/Or one of the other FTP clients available (You may not succeed to connect to FTP server using Windows built in command line FTP, as it doesn’t support TLS)
As you could see from the quick connections area, I have connected to FTP server from both local and internet & both attempts were successful.
I hope, if you are desperately looking for FileZilla FTP server setup guidelines, this post helps.
Hope you and your loved ones are safe and secure during this tough period. I am home stuck from almost 3 months and hoping that the normality will resume very soon.
So, during the lockdown I’ve decided to take some “risks” by upgrading my production computers/laptop with the forthcoming version of Windows 10 2004 for Windows Subsystem for Linux aka WSL2 using Windows Insider preview ISO.
I work with real Linux enterprise servers at work & throughout last 10 years got myself accustomed with writing simple shell scripts and other Linux specific activities, so that I can handle them as comfortable as I interact with Windows Servers. I usually don’t get in to the silly arguments like which OS is better by comparing the features & other aspects. We never had issues with Windows Servers, neither had issues with Linux servers as we maintained them meticulously.
So, why subsystem for linux is important? Well, not many have the luxury of working with Linux servers. Especially students and developers from small business which depend completely on Windows environments. Subsystem for Linux on Windows opens doors for those who desperately need Linux environment & WSL is their friend. Unlike a virtual machine hosted on Oracle VirtualBox or VMWare, the user don’t have to dedicate hardware resources specifically for WSL & environment is always available. The only feature you may lack should be the ability to start the services automatically. Well, I am sure within a short time Microsoft will figureout a way to.
Okay, let us see how we can start availing WSL2 on Windows 10 already!
Please note, if you are not ready to take the responsibility of what you are going to do, please don’t attempt the below instructions which includes upgrading your Windows 10 version with yet to be officially released version of the same OS.
Once you upgraded your Windows 10 to version 2004
You are all ready to go. Please make sure that you have all the cumulative updates applied before proceeding.
Please note, if you are using Oracle VirtualBox on regular basis, I will suggest that you reconsider proceeding further. Enabling few of the Windows 10 features for WSL2 will completely compromise/degrade the performance of the Virtualizer and you will not even able to start your virtual machines (at times)
In order to avail the WSL2 functionality, you will have to enable few additional features of Windows 10.
I am upgrading my existing WSL to WSL2. If you are trying to configure WSL for the first time, Please refer documents explaining how to thoroughly (I have few posts towards enabling WSL with my blog, you may refer them)
You need to enable “Virtual Machine Platform” and restart the computer before upgrading WSL to WSL2.
Alternatively, you may use powershell as administrator to enable these features.
Please note, if you are using PowerShell, make sure that after enabling the features, you will restart the computer as both shell commands have /norestart switch
Once you restart the computer, you can try to upgrade your existing WSL to WSL2
Either from elevated PowerShell or CMD issue the following command
wsl --set-default-version 2
This is going to take a while, to complete. Once the upgrade has been completed you can start upgrading your existing WSL distros.
Before upgrading your WSL distros, you need to update the existing WSL kernel. Currently, you need to download and manually install the upgraded kernel, and let us hope Microsoft will include the kernel updates for WSL within their update packages.
Open a command prompt as administrator and issue the following command
wsl --list --verbos
This should list all the distros you already have on your system and the corrsponding WSL version numbers associated
So, my work laptop has 2 distros and both are already upgraded to WSL2. Regardless, let us see how we can upgrade an existing WSL1 distro to WSL2
Consider my distro listing was showing VERSION information as “1” instead of “2”, then I would have issued the following command to upgrade my Ubuntu-18.04 distro
wsl --set-version Ubuntu-18.04 2
That’s all. Your distro will be upgraded to version 2.
My personal takes on WSL2
Well, my interest towards new features are limited to getting them installed and configured. I’ve had very limited handson with the upgraded Ubuntu distro and I was able to have a buttery smooth experiece with XRDP this time. To my utter surprise, Mozilla Firefox loaded without crashing & I felt I was truly interacting with a real Linux machine.
Please refer my previous posts towards WSL about installing XRDP, MySQL and other software those are usually configured on Linux environments.
Guys, almost every other tip and tricks I have listed are coming from many sites and I encourage you to visit those sites for further reading. All I have done was to put them in single place and to post this consolidated thread.
At times we have to have a recent backup of the SQL database on a development machine to insure that our testing is false-proof prior the same is pushed to a production instance. As SSMS (SQL Server Management Studio) doesn’t allow remote backup functionality out of the box, we can try the following (applies to both home networks and windows domain networks)
From your local machine, setup a shared folder, giving full read/write access to the entity “Everyone”
Now, prior attempting below instructions, be sure of your privileges against the target database. Are you a sys admin? Does your database account have the rights to make a backup? If yes, go ahead
Now, start SSMS & proceed with the backup task
Depending upon the security constraints, you may disable the sharing of local folder immediately after the backup completion.
My laptop has many software development components installed, say few of them are there from last many years (regardless whether I still need them) & such get me in to complicated situations (most of the times)
I’ve had Visual Studio 2013 Professional edition installed for last many years & recently I have switched to the community edition (which is as good as pro edition & costs nothing)
After upgrading my SQL Server 2017 (Developer Edition) on my home computer using 2019 ISO mounted media, I decided to upgrade the SQL Server 2017 on my laptop and it failed, miserably!
So I decided to do a fresh installation, that also failed. Luckily I came across the following thread:
While, there could be more reasons for the failure to install/upgrade your existing SQL server, make sure whether you have “Microsoft SQL Server 2012 Native Client” already installed, if yes, remove it (Which might popup a warning stating the dependency of Local DB 2016 on the Native client, hence make sure that you know what you are doing)
Once the 2012 Native client uninstalled, try again to upgrade/fresh installation of SQL Server 2019.
As I started developing a web application for our business, One of the toughest requirements from end users were to “freeze” the header row of data grid views. I left .Net development almost 11 years back and was struggling to catch up with the whole set of changes .Net has came up with.
I’ve scavenged through dozen’s of articles explaining different hacks to freeze/lock the header row of grid views & was surprised to see that Microsoft didn’t address this requirement throughout their .Net iterations. Few of the workarounds those I tried out were ONLY applicable to static set of data, not at all applicable to data grids those have more than three or four columns and failed while column contents exceeded certain number of characters.
The post has a VS solution download (Dated 21st February 2011) which was giving me multiple reference errors while opened with VS 2019 Community edition. So I decided to open the .aspx and code behind pages manually and create a new solution using VS 2019
Although the java script does freeze the header rows (while no themes applied to the grid & has limited columns), the moment a theme applied to the grid, the header row alignment with the data columns go for a toast. You will able to see how it works with attached example that you can download from the provided link by the bottom of the post.
I’ve created a huge employee list with 20 columns, where few of the columns have varying data lengths (like employee name, department, section name & job positions) as an XML source and throughout the examples I will be using the same data source to demonstrate how each page adjusts the GridView with minor hacks using both java script and CSS styling.
public partial class Default : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
DataSet ds = new DataSet();
GridView1.DataSource = ds;
Executing Default.aspx brings up a page like below
Now, we will use the java script to see how far the intended results are achieved.
Example Two, Calling java script function to freeze the header row
public partial class Gridjs : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
DataSet ds = new DataSet();
GridView1.DataSource = ds;
I’ve applied one of the built-in themes available for GridView control with the above example, which causes the header and data rows misalignment.
However, the java script has done what it was meant to do! Freezing the header row and providing a scrolling function without breaking much sweat. I have noticed one thing, if the theme is removed from the GridView control, everything goes back to as expected, header row is perfectly aligned with the data row & the scrolling works as expected. Please note, if your grid is populated with huge volume of data, then it will take few moments before the java script manages to bring up the effects in place. I’ve tested this solution using Microsoft Edge Chromium, Mozilla Firefox & Internet Explorer. Both the modern browsers deal with the java script much efficiently while Internet Explorer experiences were NOT that good.
Example Three, fixing the misalignment issues by using some simple CSS styling.
public partial class Gridjscss : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
DataSet ds = new DataSet();
GridView1.DataSource = ds;
Now, everything looks fine! A theme is applied, header and data rows are in perfect sync & the header row is locked when the data rows are scrolled up and down.
There are many alternatives, modern approaches using jQuery and other, which I do not understand at this point of learning. Once I am confident enough to, will sure try them and get back to you guys. Happy coding!
Please note, this solution has been developed using .Net 4.7.2 & I have modified the java script in a way that I can call the script from any page by passing couple of parameters to it. The whole credit for the java script goes to original coder.
We’re integrating MS SQL servers everywhere for our business along with long trusted technology partner Oracle & will try to include what we have “learned” in our labs within this blogosphere.
Our bio metric attendance system reports are designed with virtual dates (weekends when the employees are not punching, yet the reporting requires the whole month dates appearing in the final output, marking the date and day name for the date) from a virtual calendar created using connect by level pseudocolumn
CREATE OR REPLACE FORCE VIEW XXFPAUTOCALNDR_V
SELECT NULL EMPLOYEE_NUMBER,
TRUNC (TO_DATE ('01-JAN-2009', 'DD-MON-YYYY') + LEVEL) day_date,
TO_CHAR (TRUNC (TO_DATE ('01-JAN-2009', 'DD-MON-YYYY') + LEVEL),
CONNECT BY TO_DATE ('01-JAN-2009', 'DD-MON-YYYY') + LEVEL <=
LAST_DAY (TRUNC (SYSDATE));
Well, MS SQL doesn’t provide connect by level approach, instead recursive CTE (common table expression) & let us see how we can create a virtual calendar using CTE on MS SQL
CREATE VIEW UnisVCalendar
WITH CTE(virtual_date) AS (
SELECT cast('1/1/2016' as datetime) as virtual_date
WHERE virtual_date <= GETDATE()
SELECT * FROM CTE
CTE allows referring the table itself, thus indirectly providing a level sort of reference.
Well, the downside of such a virtual calendar is, one should make sure that to use option(maxrecursion 0) to avoid “The maximum recursion 100 has been exhausted before statement completion” error
Select CONVERT(date,virtual_date,105) from UnisVCalendar
WHERE CONVERT(date,virtual_date,105) BETWEEN '01-JAN-2020' AND '31-JAN-2020'
option (maxrecursion 0)
Now you can safely refer this virtual calendar at applicable situations.