Monday, November 11, 2019

OCT2019CPU WebLogic "3L3H" Breaks Jython?

In a recent post, I listed the patches included in Oracle's October 2019 "Critical Patch Update".  Among them is a patch for Oracle WebLogic 10.3.6, which is part of the Oracle Middleware infrastructure that supports Hyperion

Customers who use Jython scripting within FDMEE may want to do extra regression testing before promoting this patch into Production.

A little background:

My team uses custom scripts to maintain 7 rolling days of Hyperion LCM backups.  One stumbling block with this is: when rolling off the 7th folder so it may be replaced, traditional MS-DOS "rmdir" doesn't work for certain subfolders in Windows Server 2012 R2 (usually Reporting Analysis Framework and Financial Close / ARM).  This is due to the famous "directory path too deep" error.

To work around this, we created a very simple Jython script.  Jython bypasses the Microsoft API, allowing us to delete folders containing paths which exceed the Microsoft limitation.

You do this:

SET CLASSPATH=%CLASSPATH%;%HYPDRIVE%\Oracle\Middleware\oracle_common\modules\oracle.jrf_11.1.1\jrf-wlstman.jar
%JAVA_HOME%\bin\java weblogic.WLST %SCRIPTDIR%/

And the Jython script looks like this:

# This Python/Jython script removes the oldest LCM backup folder.
# We use this technique to work around the Windows Server 2012
# limitation concerning directories containing pathnames exceeding
# 260 characters.
#  Written on 11/02/2016 by Dave Shay (Datavail)
# Modified on MM/DD/YYYY by Your Name - Briefly list changes

import shutil


I like simple solutions like this.  It uses technology that is already baked into the EPM infrastructure.  Now, a new challenger appears: WebLogic OCT2019CPU patch ID "3L3H".  This is what happens when trying to run our Jython script after applying the patch.

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Problem invoking WLST - Traceback (innermost last):
  File "D:\Scripts\", line 13, in ?
  File "D:\Oracle\Middleware\wlserver_10.3\common\wlst\modules\jython-modules.jar\Lib/shutil$py.class", line 117, in rmtree
  File "D:\Oracle\Middleware\wlserver_10.3\common\wlst\modules\jython-modules.jar\Lib/shutil$py.class", line 132, in _build_cmdtuple
  File "D:\Oracle\Middleware\wlserver_10.3\common\wlst\modules\jython-modules.jar\Lib/javaos$py.class", line 135, in listdir

The Rotation7 folder remains and now we essentially have 6 rolling days of backups instead of 7.

When I look at the "jython-modules.jar" file, I can see the timestamp changed to when it was patched.  It would appear Oracle accidentally broke something?

My team will open an SR with Oracle and try to get to the bottom of this.  In the meantime, I would tend to shy away from this specific patch.

1 comment:

  1. Following up. My team has observed inconsistent results across our customer portfolio with this WebLogic patch. I still feel gun-shy about this patch, but I would encourage regression testing in one of your non-Production environments.


Thank you very much for your interest in this blog! I hope you're finding it helpful.

Please keep comments relevant to the topic in the post, as this blog is not a free-for-all substitute for Oracle Support or traditional consulting. If you have many questions unrelated to the specific topic at hand, consider contacting me on LinkedIn ( so we may discuss the possibility of consulting.

Commenting on posts older than 90 days unfortunately goes into moderation, thanks to spammers who've been hitting this blog. Please have patience, and thanks for your understanding!

Comments including URLs linking back to gambling or other things unrelated to Oracle EPM will be deleted on sight. If you're an EPM consultant and are offering me constructive criticism or a tip, go ahead and DO link back to your blog or firm's website if you so desire.

Thanks again for reading!