DOS CMD - Wait for Parallel MAXL Shell Scripts to Complete

152 Views Asked by At

I'm testing loading data to an Essbase Cube via a Load_Buffer. The goal here is to load data through in parallel and then commit the data. Currently, the fastest approach I've found is running the SQL load rule on it's own via MAXL. I've also tried using MAXL "using multiple rules_files" and that took even longer.

The Oracle Essbase Database Administrators Guide mentions you can load data to a buffer for improved speed in parallel. In order to do this, I need to launch 3 MAXL shells simultaneously to a load_buffer.

The problem I'm experiencing is Data C, M, and R complete at different times in :SUB_C. Rule C has 12 million records, Rule M has 10.5M, and Rule R has 15M. I was expecting Data R to complete last, but Rule C persisted and the procedure advanced to committing the change in :SUB_E before all data was loaded.

With the current SQL load rule, execution time is around 333 seconds. With the load_buffer (when it does work), execution time reaches 450 seconds. Each load rule on it's own (C,M, R) takes 100,96, and 220 seconds.

Here is my code:

SET $1-$9 (Parameters 1-9)
CALL    :SUB_A
CALL    :SUB_B
CALL    :SUB_C
CALL    :SUB_D
CALL    :SUB_E
CALL    :SUB_F

GOTO    :EOF

:SUB_A
    ECHO STARTING_REBUILD_%$4%- Started at %time% on %date% > D:\Logs\Rebuild_%$4%_Start.log
EXIT /B

:SUB_B
    REM DIMENSION BUILDS
    ECHO STARTING REBUILD_%$4%
    START "REBUILD %$4%" /W CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
    ECHO ENDING REBUILD_%$4%
EXIT /B

:SUB_C
REM DATA LOADS USING LOAD_BUFFER - After a lot of research, these loads tend to end at different times and skip to the next section so parallel won't work
    START "DATA_C %$4%" CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%_Data_C.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
    START "DATA_M %$4%" /W CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%_Data_M.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
    START "DATA_R %$4%" /W CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%_Data_R.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
EXIT /B

:SUB_D
REM - Test
EXIT /B

:SUB_E
    REM COMMIT DATA
    START "COMMIT %$4%" /W CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%_Data_Z.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
EXIT /B


:SUB_F
    ECHO ENDING_REBUILD_%$4%- Ending at %time% on %date% > D:\Logs\Rebuild_%$4%_End.log
EXIT /B

:EOF
0

There are 0 best solutions below