Translate

Upgrading windows server 2008 to windows server 2019, two step upgrade required

 For upgrading windows 2008 to windows 2019 - it can be straightly done with an in place upgrade to windows server 2019/

To simplify the steps follows:-

1. Upgrade your current windows server 2008 to either windows servre 2012 or 2016 first

2. Then from either 2012 or 2016 upgrade to 2019.

Simple as that.

In most cases there are scenarios where customers with windows server 2008 or 2008 R2 are reaching the maintenance end date, therefore Microsoft gives flexible choices, 

1. Move your Windows 2008 R2 as it is to Microsoft Azure, in which you will be given time of extended warranty, as this gives you time to plan for you future upgrade to Windows server 2019 upgrade. 

You may need to check the latest white papers from Microsoft portal if these features are still available.

Always consider not fogetting ipconfig and systeminfo file to be backup before starting the upgrade.

As for the procedure for upgrading , i would say it's a preety much wizard driven process that you don't have to crack your head so much.

For the steps and screen shots for upgrading, you can already get via google search, youtube for those independent people posting it or get it directly from Microsoft itself since you already would have a runtime license.

Applying SAP Maintenance Certificate - SAP Note 1898812 How to Renew a maintenance certificate

 

As for SAP maintenance certificate are concern it's very important as if you are planning to update and software within SAP landscape and if your maintenance certificate are not updated, their error would pop up in the abap system hence causing issue.


You can easily request maintenace certificate or license key from SAP one launchpad under 

Application lifecycle management -> SAP Solution Manager -> Processes 7.2 -> Maintenance certiciate. 

The component name of Maintenance certificate in case if you run into issue and you plan to lodge a case with SAP then choose SV-SMG-LIC

Maintenance certificate is just ensuring customers with the right corresponding maintenance agreement are allowed to apply SPAM, SAINT, JSPM and etc..

Remember before you do import or Support packages ensure to apply maintenance certificate others standard error might pop up this is applicable to SPAM/SAINT version 0034.

You might not need to worry if you SAP product is running on SAP Netweaver 7.0 but if its higher then Maintenance certificate is required.

Validity of maintenance certificate is somewhat within 3 months.

As a rule of thumb to checkif you have maintenance certificate just execute t-code SLICENSE and check the New License to see if it displays infor such as Digital -signed License Keys.






Migrating to SAP Hana Database consideration on SAP Netweaver Parameter

Just ome quick tips on parameter to be alert when initiating SAP Netweaver Hana Database Migration  


All Databases: r3load and jload Procedures

While migrating to SAP hana Database consideration requirement for SAP Netweaver Instance parameters

rsdb/prefer_in_itab_opt
rsdb/max_in_blocking_factor
rsdb/min_in_blocking_factor
rsdb/prefer_union_all
rsdb/prefer_join
rsdb/prefer_fix_blocking
rsdb/max_blocking_factor
rsdb/min_blocking_factor
rsdb/max_union_blocking_factor
rsdb/min_union_blocking_factor





SAP Business Objects BI Essential components

 SAP Business Objects BI Essential components

Do you know the most basic essential component of  SAP Business Objects BI is as below. 

  • Reporting.
  • Data Discovery and Visualization.
  • Application and Dashboard Building.
  • Deployment and Administration.
  • You can also call it centralized suite for reporting dashboard and visualization. While being a BI laters in SAP technology front. It's sophistication makes data to be visualized in a more predominant way. 



Of course as I'm writting based on my own experience therefore the below just based on my experience and not from any master guide perhaps it could be a minimum guide from it.

This is just my shortcut of notes performing installation, however you can always google sap public domain sites for more tips and tricks info or guides. 

Installation quite straight forward all you need in a minimum is 
8GB or more RAM
Disk space of 20GB
CPU around 4 Cores
Windows operating system x64
Java 1.6 or more higher version
Microsoft .Net framwrk and Windows installer all 3.5 higher. 








Check your pre-requisite

The press next on welcome screen and accept the license agreement
After which product key required to be entered. 
Choose your language - English

I normally choose full installation type




You can select whether to configure and install Sybase SQL Anywhere 

You also need to choose the CMS database

You must select Tomcat web application in this case normally it would be TOMCAT 7.0

The configure install subversion 

Proceed with SIA - Server intelligence agent

CMS Port info to be entered. 

Password for Administrator

Configure sybase sql anywhere

Configure Tomcat

Configure HTTP listening port

Enter subversion repository port number, user account and password.

configure SMD agent for solution manager connectivity

You may choose introscope enterprise manager

Finally Start the installation - it will take a short while till you reach Finish installation. 

Post steps

Login to CMC to further configure - you may use the configuration wizard.



























SAP Maintenance Planner, Transaction ID, Push to Download Basket, Download Stack.xml


This maybe the qiuckest, simplified note on how to learn about generating stack.xml and what its about.

In the current SAP technology I'm sure those SAP basis folks would have heard or went through the following ways to get their new system or existing system installed or even would have downloaded simplest pluggin of support pakcages to certain extreme. 

But i know rarely SAP basis folks touched so much on Maintenance optimizer, Maintenance Planner, knowing what is Support Package Stacks and side-effect reports outcomes. 

Well today i would like to share with you simple ways to understand SAP Maintenance Planner


Scenario 1 - If you plan to download a new installation 

In Maintenance Planner choose --> Plan a new system 

Scenario 2- If plan for upgrade example SAP ECC6 EHP5 to SAP ECC6 EHP8

In Maintenance Planner choose -->  Choose Explore system

Scenario 3 - If you plan to download Support Packages only 

In Maintenance Planner choose -->  Choose Explore system


Answer : Goto SAP one lauchpad --> login with S user id, -> in the screen goto Maintenance Planner -> Choose Explore system or Plan a new system tab --> enter relevant details such as sap product, db , os and then next button top left all the way till you get few options 

Push to Download basket , Download Stack.XML

So what happens here is that once you have went through the Plan process, maintenance planner have created a repository requirement of all your components required for installation or upgrade, where you dont have to choose manually during those days before maintenance planner existed.

Then at the screen it gives you option either to download on the spot by choosing download basket  and generate Stack.xml where both are required unless if  want to manually perform installation or upgrade. 

Push to Download basket , Download Stack.XML

Define change -> Select Files --> Download Files -- > Complete


As you can see the Push to download basket option, basically what it does, is that all the selected software component are then linked or pushed to your SAP download manager tagged to your S user id. ( In ur repository server you need to have SAP download manager application downloaded which are available in SAP one launch pad download center. 

At the ame time you need to download stack.xml - this is used for installing any system for example sapinst with xxxxxxxstack.xml file and the rest are taken care by the  installation process.

At the end when you click complete - a PDF file given stating your Stack.xml details of all the software selected, purpose of the software and transaction id. 

All downloaded software , stack.xml and PDF file need to be kept in 1 single location. 

You may have notice Transaction ID. what is this?

Well its basically content of all the stack.xml that you have generated, for example if you have generated 10 stacks.xml either r new system or upgrade, then all these are recorded as transaction in the Transaction tab in Maintenance Planner. Therefore in the future you can always enter the Transaction tab and check your Stack.XML that you have created. 


Well hope this helps and clarifies all relevant information required for you to use Maintenance planner confidently. The understanding is very important.





My Experience with the SAP Solution Manager Internet Demo System

When I first wanted to get hands-on with SAP Solution Manager 7.2, I discovered SAP’s Internet Demo System — and it turned out to be a fantastic way to explore the platform without needing a full installation or license.

🚀 What It Offers

This demo system is publicly accessible and designed for anyone — customers, consultants, or curious learners — who want to try out SAP Solution Manager in a live environment. You don’t need to install anything or pay for access. It’s hosted online and refreshed regularly to keep things up to date.

🧰 What’s Inside

The system includes:

  • SAP Solution Manager 7.2 (SP20)

  • A connected SAP S/4HANA 1909 system

  • SAP HANA 2.0 as the database backend

You can explore features like:

  • The Launchpad interface for personalized navigation

  • Fiori apps for a modern user experience

  • Tools for process management, release planning, and project tracking

👥 Demo Users & Roles

SAP provides a list of demo user accounts, each tied to a specific role — like Portfolio Manager, Developer, Tester, or Change Manager. You simply log in using the provided credentials and start exploring based on the role you choose.





SAP Greenfield vs Brownfield Approach

 


I have come across that many SAP Technical Consultants are struggling to relate their current activity which they are already possibly doing in migration and implementation activity related to SAP.  The simple explanation I dedicate to the consultant who needs to understand what is SAP Greenfield and Brownfield approach. 


What is SAP Greenfield Approach?

Well in a simple explanation, 
1. Download media from service marketplace or sap support portal

2. Choose the platform, OS, and Cloud or Datacenter

3. Install and Deliver

4. Build new data, new customization, etc.

Summary - Implementing new SAP application, mainly this concept is being used for implementation of SAP S/4 HANA



What is the SAP Brownfield Approach? 

1. You have the current SAP ECC EHPxx  system with somewhat customization 

2. Planning to migrate the ECC data to SAP S/4 HANA, the meaning of migration is straight forward bringing forward data to the new system without losing them.

3. Most cases Agile approach are being in such implementation as iteration which is a repetition of technical activity are done to get the best output of the desired time.

4. Mainly this approach makes sure that business operation does not get disrupted. 

5. The best advantage of the Brownfield approach is that it gives customers time toe evaluate their current state of reports and tune and fit them to the newly migrated system to function better. 




How to change SAP Hana Sql Output results are limited to 5000 Records

How to change SAP Hana Sql Output results are limited to 5000 Records

These are quick fixes that are often overlooked because the products come with standard configurations.


The SAP Hana SQL Output results in ECLIPSE, for example, have a limit of 5000 records.


With the following setup, you can change this number to a higher one.

Windows Tab - > Preference -> General - > Runtime - > Result -> Maximum number of rows displayed in results. 

2147483647 is usually the maximum record that can be achieved.

How I Start and Stop SAP HANA Tenant Databases — My Go-To Methods

 Managing SAP HANA tenant databases is something I’ve had to do regularly, especially during system maintenance or troubleshooting. Whether you're using command-line tools or graphical interfaces, the process is pretty straightforward once you get the hang of it.

🖥️ Using the Command Line

When I’m working directly on the server, I prefer using the HDB command. It’s quick and reliable.

  • To start a tenant database, I use:

    Code
    hdbsql -i <instance number> -u SYSTEM -p <password> "ALTER SYSTEM START DATABASE <tenant_name>"
    
  • To stop a tenant database, I run:

    Code
    hdbsql -i <instance number> -u SYSTEM -p <password> "ALTER SYSTEM STOP DATABASE <tenant_name>"
    

These commands are executed via hdbsql, SAP’s SQL command line tool. You’ll need the correct instance number and credentials, of course.

🧪 Using SAP HANA Studio

If I’m in a GUI mood or working remotely, SAP HANA Studio makes it easier:

  • I right-click on the system database connection, then navigate to the “Configuration” tab.

  • Under the “Landscape” view, I can see all tenant databases listed.

  • From there, I right-click on the tenant I want to manage and choose either “Start” or “Stop”.

It’s visual, intuitive, and great for monitoring the status of multiple tenants at once.

🧭 SAP HANA Cockpit (Optional)

In some setups, I’ve also used SAP HANA Cockpit — a web-based interface. It allows you to:

  • View tenant status

  • Start/stop tenants

  • Monitor performance and alerts

Though not always available in every environment, it’s a solid option when configured.

What I Learned About Inactive Objects in SAP (SE80 / SE11)

When I first started working with ABAP development in SAP, I kept running into something called “inactive objects.” At first, I didn’t think much of it — but during system upgrades and transports, they became a real headache. Here’s how I came to understand and manage them.

🔍 What Are Inactive Objects?

Inactive objects are basically unfinished or unactivated changes in the system. They show up when you:

  • Modify a program, table, or structure

  • Save your changes but don’t activate them

Sometimes it’s because the object has syntax errors, or maybe you got pulled into another task and forgot to activate. Either way, these objects sit in the system and can cause issues later — especially during upgrades or transports.

🛠️ How I Found Them Using SE80

In SE80 (Object Navigator), there’s a handy way to search for inactive objects:

  • Go to the Repository Browser

  • Use the dropdown to select “Inactive Objects”

  • By default, it filters by your username — but you can remove that to see all users’ inactive items

You’ll see a list organized by object type (Programs, Tables, Classes, etc.). Just a heads-up: the nodes don’t expand automatically, so I had to manually click and use the arrow keys to open them.

🧪 SE11 and Other Transactions

You can also spot inactive objects in SE11 (Data Dictionary), SE38 (ABAP Editor), or SE24 (Class Builder). If you’ve saved changes but haven’t activated them, the system will show a warning or highlight the object as inactive.

⚠️ Why They Matter

Inactive objects aren’t always a problem — until they are. For example:

  • During an SAP system upgrade, all inactive objects must be cleaned up

  • If a report or function module is called, the system uses the last activated version, not the latest saved one

  • This can lead to confusion if your changes aren’t reflected in runtime

✅ What I Did to Fix Them

When I needed to clean up inactive objects:

  • I reviewed the list in SE80 and activated the ones I recognized

  • For objects with errors, I fixed the syntax and reactivated

  • If I wasn’t sure who created them, I checked the assigned user and reached out to the developer

In some cases, I had to delete old or unused objects from the DWACTIV table — but only after confirming they weren’t needed.

How I Kill SAP HANA Sessions When Things Get Stuck

There was a time when our SAP HANA system started lagging badly — CPU usage spiked, memory was maxed out, and users were getting frustrated. After digging into the performance dashboard, I found a few long-running sessions hogging resources. That’s when I learned how to properly terminate them.

🛠️ Method 1: Using SQL Command Line (hdbsql)

This is my go-to method when I’m working directly on the server. I use the following command to cancel a session:

sql
ALTER SYSTEM CANCEL SESSION '<connection_id>';

You just need the connection ID of the session you want to kill. It’s fast and works well for most cases.

🧪 Method 2: SAP HANA Studio

If I’m using the graphical interface, I go to:

  • Performance → Sessions

  • Right-click on the session that’s causing trouble

  • Select Cancel Session

It’s intuitive and gives you a clear view of what each session is doing.

🧭 Method 3: SAP GUI via DBACOCKPIT

In some setups, I use transaction code DBACOCKPIT:

  • Navigate to Performance → Threads

  • Find the problematic thread

  • Click Cancel Threads

This method is useful if you’re working from SAP GUI and want to avoid command-line tools.

🧱 Method 4: Using hdbcons (Advanced)

For deeper control, I sometimes use:

bash
hdbcons 'connection c <conn_id>'

This is more technical and usually reserved for system administrators who need to dig into the internals.

Prince 2 Agile approach on SAP enterprise projects





 It's strange that in SAP projects, SAP Activate are the content to be used in a guided way to conduct,engage into a project or execute BAU activity that are similar to a project. 

However there's always this craving where Programme Manager whom is in charge of the project managers and would always wants to report to the board or rather the PM itself would like to report to the Board / Stakeholders using Prince 2 framework, reporting structure and its methodology. Although since prince 2 carries Agile word in it, that does not differ so much on SAP Activate. But on a broader audience the world outside SAP  likes Prince 2 Agile approach and mostly merging them with SAP Activate approach. 

This also could be because the board or stakeholder might not live or use SAP, since SAP is mostly related to IT projects. However Prince 2 are applicable broadly on any non IT projects as well. that's the reason why such preference are adapted. 

Having said such , SAP Activate is always the key for running SAP projects regardless implementation, migration, BAU and others. 

In a single word SAP Activate methodology in Agile meaning flexibility to deliver your projects and not getting locked into waterfall methodology.


What i know about SAP Patch day

When I first started managing SAP systems, I quickly learned that SAP Patch Day is a big deal. It’s basically the day when SAP releases its latest security updates—kind of like a monthly health check for your system. It usually happens on the second Tuesday of every month, and it’s when SAP publishes what they call Security Notes. These notes contain fixes for vulnerabilities that could be exploited if left unpatched.

I think of it like this: just like your phone gets software updates to fix bugs and improve security, SAP systems need the same kind of attention. But because SAP is used for critical business operations—finance, HR, supply chain—you can’t afford to ignore these updates. A missed patch could mean exposing sensitive data or opening the door to cyberattacks.

What I usually do is check the list of new Security Notes released on Patch Day, figure out which ones apply to the systems I manage, and then prioritize them based on how severe the issues are. Some are labeled as “Hot News,” which means they’re urgent and need to be addressed immediately. Others are less critical but still important.

The key is not just knowing that Patch Day exists, but having a process in place to review, test, and apply these patches regularly. It’s part of keeping the SAP environment secure and compliant with industry standards.




How I Handle SAP HANA Database Restore and Track Its Progress

Restoring a SAP HANA database isn’t just about clicking “recover” and walking away — it’s a process I monitor closely, especially during critical system recovery or migration. Here’s how I typically approach it.

🧰 Step-by-Step: How I Perform the Restore

When I need to restore a HANA tenant or system database, I usually:

  • Log into SAP HANA Studio or Cockpit using the SYSTEM user.

  • Right-click on the database (either SYSTEMDB or tenant) and choose “Recover”.

  • Select the appropriate backup image from the catalog — either file-based or Backint.

  • Choose the restore type (complete recovery, point-in-time, etc.).

  • Confirm and start the recovery process.

I always make sure the target instance is in a ready state and that the backup catalog is accessible before initiating anything.

📊 How I Monitor Restore Progress

SAP HANA doesn’t show a flashy progress bar during restore — so I rely on log files and trace directories to track what’s happening behind the scenes.

Here’s what I do:

  • Navigate to the trace directory:

    Code
    /hana/shared/<SID>/HDB<instance>/hostname/trace/
    
  • Look for the file named backup.log — this is where all restore activity is recorded.

  • Use commands like:

    bash
    more backup.log | grep 'RECOVERY'
    

    to filter entries related to the restore process.

In the log, I can see entries like:

Code
RECOVERY progress of service: indexserver, volume: 3, 31% 59/189
RECOVERY progress of service: indexserver, volume: 3, 34% 65/189

These tell me exactly how far along the restore is — both in percentage and data blocks.

⏱️ How I Check Restore Duration

To calculate how long the restore took:

  • I look for the start and end timestamps in the same backup.log file.

  • For example:

    Code
    #####START OF THE RECOVERY##### 2025-09-15T11:32:16
    #####END OF RECOVERY##### 2025-09-15T17:48:10
    
  • From this, I know the restore took just over 6 hours.

This helps me estimate future restore windows and plan downtime more accurately.


SAP Hana Numeric Error Codes, How I Understand SAP HANA Error Codes


When I first started working with SAP HANA, I quickly realized that the system communicates problems through numeric error codes. These codes aren’t just random numbers—they’re like shorthand messages that tell you what went wrong and where to look.

🔍 How I Understand SAP HANA Error Codes

Each numeric code in SAP HANA represents a specific type of issue. Instead of giving long descriptions, the system throws out a number, and it’s up to us to interpret it. Over time, I’ve learned to group these codes based on the nature of the problem:

🧩 Common Categories I’ve Encountered

1. General Warnings and Errors

  • These are the mild ones. A warning might mean something didn’t go perfectly, but it’s not a showstopper.

  • A general error usually means the system hit a snag, but it’s not clear exactly what caused it—so you need to dig deeper.

2. Memory and Resource Issues

  • If you see an error about memory, it means the system tried to do something but didn’t have enough RAM or disk space.

  • These are serious because they can crash processes or slow everything down.

3. Invalid Inputs or Arguments

  • These errors pop up when you feed the system something it doesn’t expect—like a wrong data type or an out-of-range value.

  • It’s like trying to fit a square peg in a round hole; the system just says “nope.”

4. Authentication and Permissions

  • If you’re not allowed to do something—like access a table or run a query—you’ll get an error code related to security.

  • It’s the system’s way of saying, “You don’t have the keys to this door.”

5. Transaction Failures

  • These are more complex. They happen when something goes wrong during a database transaction—like a deadlock, a timeout, or a rollback.

  • It’s like trying to save a file while someone else is editing it at the same time—conflicts arise.

6. File and Disk Errors

  • These codes show up when the system can’t read or write to a file, or when storage runs out.

  • It’s a reminder to check your infrastructure, not just your code.

🧠 Why These Codes Matter to Me

Understanding these codes has saved me countless hours. Instead of guessing what went wrong, I can look at the number, match it to the category, and start troubleshooting with purpose. It’s like having a map in a maze—still tricky, but way better than wandering blind.




Labels

sap hana hana database aws s4 hana hana db s4hana conversion steps sap hana azure bw4hana hana migration s4hana migration sap cloud migration steps sap hana migration steps sap hana migration to azure s4hana sap fiori fiori performance fiori erp s4 hana fiori sap fiori app sap fiori client sap fiori launchpad sap s4 hana fiori cisco ecc AI SAP AI abap dumps hana sap S/4HANA S/4HANA Conversion best sap ui5 & fiori training configuration database fiori tutorial on webide free sap ui5 & fiori training s/4 hana sap dumps sap fiori tutorial sap ui5 sap ui5 & fiori sap ui5 & fiori tutorial sara ui5cn 2367245 - Troubleshooting performance issues with SAP BPA Amazon free tier for SAP AWS setup Experience CALL_FUNCTION_NOT_FOUND CCMS Configuration and Use Create New Data Class in SAP (Oracle) Critical top SAP Abap dumps DHCP Clients Not Receiving IP Addresses Download Stack.xml HAN-DB HAN-DB-ENG High CPU Usage Due to Excessive Process Switching How To How to Start and Stop SAP Hana Tenant Database How to change SAP Hana Sql Output results are limited to 5000 Records How to perform SAP Dual Stack Split - Netweaver Inactive Objects in SAP Intercompany transactions in SAP AP / AR : Cross Company Code Transaction Interface Flapping Due to Duplex Mismatch KBA LOAD_PROGRAM_LOST MSSQL shrinking transaction log file Migrating to SAP hana database NAT Overload Causing Internet Access Failure Note 500235 - Network Diagnosis with NIPING OSPF Adjacency Not Forming PRINCE2 Foundation Sample Questions Preparing for S/4HANA Conversion and the MUST know items Push to Download Basket S/4HANA Migration Cockpit S/4JANA SAP BI Support Data Load Errors and Solutions SAP BI/BW Landscape SAP BPA SAP Basis SAP Basis Automation SAP Business Objects SAP CPS SAP Certification SAP FI Certification SAP FI Certification Sample Questions SAP HANA Admin - Cockpit SAP HANA DB Engines SAP HANA Database SAP HANA terminate session connection disconnect cancel kill hang stuck SAP Hana DB restore SAP Hana Numeric Error Codes SAP Landscape SAP Language installation SAP MM and Purchase Order Tables SAP Maintenance Planner SAP Note 500235 SAP R/3 Glossary SAP Readiness Check SAP S/4HANA 1709 Installation Files SAP S/4HANA 2023 SAP S/4HANA 2023 Installation SAP S/4HANA 2023 running SAP S/4HANA Installation SAP Scheduling SAP Solman 7.2 CHARM: SAP Support Package Stack Strategy SAP Support package SAP Upgrade SAP support stack upgrade SP stacks STORAGE_PARAMETERS_WRONG_SET SUSE/SLES/Kernel versions Setup of S/4hana 2023 TSV_TNEW_PAGE_ALLOC_FAILED TSV_TNEW_PAGE_ALLOC_FAILED error Transaction ID Unable to download an SAP Note Unix/Linux Command That Are Helpful For SAP Basis Upgrading SAP Kernel Without Downtime Upgrading windows server 2008 to windows server 2019 What is OSS Notes? SAP SNOTE Tutorial accounting agile ale idoc ale/edi archive FI documents audit auditing auditor aws aws cloud basic type bluefield approach ccms ccmsidb charm copilot datavard dbacockpit download sap note download snote edi idoc electronic data interchange enable sap archiving objects erpprep ffid firefighter fraud functional hana admin how to apply sap security note https://www.erpprep.com/ idoc install install sap fiori installation interfaces intermediate document internal control license key linux version materials management messsage niping test order type port prince2 agile prince2 agile practitioner purchasing quick info s4 hana sap abap dumps sap abbreviations sap activate certification sap activate project manager sap authorization sap aws sap brownfield sap ccms sap ccms configuration sap erp sap error sap grc sap greenfield sap internet demo system sap license sap maintenance certificate sap material management sap meaning sap mm sap mm consultant sap monthly security note sap netweaver sap network diagnostic sap niping sap note sap oss sap patch day sap performance sap performance issue sap purchase order sap s/4hana sap sales and distribution sap sap otc sap sd sap sd certification training sap sd course sap sd jobs sap sd module sap sd online training sap sd training sap sd tutorial sap sd tutorial for beginners sap security sap security note sap snote sap snote tutorial sap solution manager sap sql segregation of duties separation of duties sles slicense smc snote snote in sap system sod conflict solution manager solution maneger stop start hana database suse linux techie trex two step upgrade required waterfall