DUAS 5.x : Calculator and Launcher Wake-up dates Set to an Older Date After 31/12/2020 Midnight

book

Article ID: 205471

calendar_today

Updated On:

Products

CA Automic Dollar Universe

Issue/Introduction

Dollar Universe 5.x has been End of Support since October 2015 or before ( as announced in September 2013). In case you have nodes that are still running on 5.x, then this article is for you.

The Calculator and Launcher engines of the Dollar Universe 5.x (5.0x, 5.1.x, 5.3.x, 5.5.x, 5.6.x) Application Server Nodes get stuck with a Wake Up date in the past after 31/12/2020 00:00

The issue does NOT affect Dollar Universe 5.0 for OpenVMS so no intervention is necessary in OpenVMS 5.0 nodes.

As a result, the Task Launches are no longer calculated and the Uprocs are no longer Launched and remain in Launch Wait Status with a Start Date in the past.

Note that this is not a one-time event happening only on 31/12/2020, but continues from 31/12/2020 forward.

Cause

Due to a limitation in the Calculator and Launcher algorithm in versions 5.x, system is unable to calculate the next Wake Up date correctly after 31/12/2020.

Environment

Release : 5.x

Component : DOLLAR UNIVERSE

OS: Unix/Linux/Windows and potentially OS/400

Resolution

Solution:

This issue has been fixed on Dollar Universe 6.x as the Calculator and Launcher algorithms have been redesigned. Accordingly, upgrade the 5.x nodes to version 6.x (currently 6.10.51) to permanently resolve this issue.

Note that Dollar Universe version 5.6 (and previous 5.x) was in End of Support since October 2015.

In case you need assistance for upgrading the Nodes to version 6.x, please reach out to your Account Manager or HCL Enterprise Studio that can be reached out at [email protected]

 

Workaround:

Disclaimer: the proposed workaround uses some Dollar Universe commands and some example scripts. However, the same can be accomplished using other methods as per the customer implementation.

If you prefer to launch a loop script via a Dollar Universe Uproc, be aware that the script may not run after a system reboot. You need to have a different workaround to stop/start the Calculator and Launcher Engines after reboot.

This workaround has been tested on Dollar Universe 5.3 and 5.6 for Production Area (X) but should as well work on previous versions, should a command fail, please refer to that Product Documentation for your version, look at the command syntax and check / adapt the Dollar Universe commands to the environment. 

Multiple workarounds are possible to solve this issue. However, the less impacting one is to run a command that will force the impacted engine to Wake up.

1. To wake up the Calculator, stop/start the Calculator Engine with the following commands, for example:

uxend atm cal
sleep 10 (%UXEXE%\uxsleep 10 for Windows)
uxstr atm cal

2. To wake up the Launcher, update an existing Job in Event Wait Status with a Start Time in the past (which will remain forever in Event Wait Status) with an End Date in the future using the following command:

uxupd fla mu=* nseq=LAUNCH_NUMBER upr=*

 

All the commands should be executed every minute to ensure that no launches will be missed. To do this, use a script that will continuously run in the system through a Uproc, or through other schedulers like the Windows Tasks Scheduler for Windows or Crontab for Unix/Linux systems.

Additional Information

Workaround implementation for Windows systems using Windows Task Scheduler (Automatic procedure):

1. Download the file attachment V5_WA_Windows.txt and save it as V5_WA_Windows.bat 

2. Edit the file V5_WA_Windows.bat and modify the value of the variables so that they map the correct Account both in Dollar Universe side and Windows System side ( DU_ADMIN_USER and WTSK_USER)

3. Open a cmd as Administrator and load the Dollar Universe environment ( %UXMGR%\uxsetenv.bat)

4. Check the format of the U_FMT_DATE variable:

echo %U_FMT_DATE%

The script expects a format mm/dd/yyyy , dd/mm/yyyy , jj/mm/aaaa or mm/jj/aaaa 

If you get a different output, like YYYY-MM-DD you will need to replace in the script V5_WA_Windows.bat  the three occurrences of "12/12/2020" by the correct date, for example "2020-12-12"

5. Check the file %UXMGR%\useralias.txt and verify that there is a mapping between the User that has started the Command line (NT_AUTHORITY\SYSTEM or DOMAIN\USER) and your Dollar Universe administrator user like for example:

NT_AUTHORITY             SYSTEM          uni560a
DOMAIN                          USER               uni560a                

 

If not, please create the missing lines and Save the file.

Then launch a $U command line like %UXEXE%\uxlst atm to validate that the useralias.txt is correct:

6. Launch the script V5_WA_Windows.bat (in case some $U commands fail with UxCmd_LoadUniverse Initialization error - check again the step 4, a line must be missing in useralias.txt). In case you cannot find the missing line, launch the script as a Uproc CL_EXT with the dollar universe administrator user.

7. Validate that the Return Code of the Task (by default TASKNAME) in the Windows Task Scheduler is 0x0 and that is launched every minute

7. The created Windows Task Scheduler Task (by default called ORSYP2020) should start being launched by 31/12/2020 00:00  to avoid any impact. It is not necessary to have it enabled before that time.

8. Once the Windows Task has been proved to be working fine, we suggest to update it to change the following two options to remain hidden and to continue to be launched when the User is not Logged into the System as shown in the screenshot below

 

Workaround implementation for Linux/Solaris/Hp-ux/AIX systems using crontab (Automatic procedure):

1. Download the file attachment V5_WA_Linux.txt and save it as V5_WA_Linux.ksh 

2. Edit the file V5_WA_Linux.ksh and modify the value of the variables so that they map the correct Account both in Dollar Universe side and System side ( DU_ADMIN_USER and DU_CRON_USER)

3. Open a shell as root and source the Dollar Universe v5 environment ($UXMGR/uxsetenv)

4. Check the format of the U_FMT_DATE variable:

echo $U_FMT_DATE

The script expects a format mm/dd/yyyy , dd/mm/yyyy , jj/mm/aaaa or mm/jj/aaaa 

If you get a different output, like YYYY-MM-DD you will need to replace in the script V5_WA_Linux.ksh  the three occurrences of "12/12/2020" by your date format, for example "2020-12-12"

5. Launch the script V5_WA_Linux.ksh all the necessary objects and entry in the crontab will be automatically created to be launched every minute

6. Check that the script is running fine by displaying the latest lines of the $UXLEX/universe.log or the crontab system log

a) In Linux check via tail -f /var/log/cron that the script is launched every minute with no errors as below:
Jan  1 13:21:01 frstl26dunbu CROND[25825]: (univ53a) CMD (/SocieteQualif/DUAS/UNIV53/mgr/uxsetenv_wake_cal_lan > /dev/null 2>&1)
Jan  1 13:22:01 frstl26dunbu CROND[26492]: (univ53a) CMD (/SocieteQualif/DUAS/UNIV53/mgr/uxsetenv_wake_cal_lan > /dev/null 2>&1)

b) In Unix, check the corresponding crontab log to verify that the script runs every minute with no errors.

In $UXLEX/universe.log we should see the following kind of entries:

Workaround implementation for other systems  (OS/400 5.1):

a) You can use the sample script V5_WA_Linux.txt given in the above Linux Automatic  and adapt the Dollar Universe commands to the target OS

b) Else, you can schedule a stop/start of the Calculator and Launcher engines every minute using the Dollar Universe command line:

uxend atm cal

uxend atm lan

wait for a couple of seconds (10s for example)

uxstr atm cal

uxstr atm lan

 

 

Workaround implementation for Windows systems using Windows Task Scheduler (Manual procedure):

1. Create a Uproc with a Launch Formula condition that will never be fulfilled like waiting for the same Uproc in a specific session to which the uproc does not belong, for example:

2. Launch this uproc with a Start Date in the Past (ie 30/12/2020) and an End Date way long in the future (ie 01/01/2035) and display its launch to retrieve the Launch Number. The Launch Number will be used in the script to Wake up the Launcher:

3. Use the above launch number "0000276" for populating a new file called %UXMGR%\script_wake_up_lan.bat with the following command:

%UXEXE%\uxupd fla mu=* nseq=0000276 upr=*

4. Create another script for the calculator called %UXMGR%\script_wake_up_cal.bat with the following commands:

%UXEXE%\uxend atm cal
%UXMGR%\uxsleep.exe 10
%UXEXE%\uxstr atm cal

5. Now that we have the two scripts that need to be launched every minute, we need to schedule its launch after having loaded the Dollar Universe environment (uxsetenv). One way to do so, would be copy/paste the uxsetenv.bat file from the mgr folder and save it as uxsetenv_wake_cal_lan.bat

6. Add the following two lines at the end of the file uxsetenv_wake_cal_lan.bat :


 if exist %UXMGR%\script_wake_up_calc.bat CALL %UXMGR%\script_wake_up_calc.bat
 if exist %UXMGR%\script_wake_up_lan.bat CALL %UXMGR%\script_wake_up_lan.bat

7. Open Windows Tasks Scheduler and create a Task that will run uxsetenv_wake_cal_lan.bat every minute since Startup (to avoid issues after system reboot) and at the current date as shown in the screenshot below:

 

Validate that the script executes successfully with a return code 0 as above. With the scheduler set, the calculator and launcher will be woken up every minute and the node will no longer be affected by the issue.

 

Attachments

1608804715954__V5_WA_Linux.txt get_app
1608722309755__V5_WA_Windows.txt get_app