Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

ORA-29541 in a report DirectStreamReader could not be resolved

SA-693

Summary



You have a report that has a reference to a non-exposed property.
Executing the report yields this error, ORA-29541: class schema.com/pega/pegarules/data/udf/directstreamreader/DirectStreamReader could not be resolved

Compiling the various JAVA classes based on the PDN article https://pdn.pega.com/reporting/troubleshooting-ora-29541-log-error-when-running-a-report-directstreamreader-could-not-be-resolved does not help as many of the Classes still remain un-compiled. The message reported is "ORA-24344: success with compilation error".

Error Messages



ORA-29541 log error when running a report, DirectStreamReader could not be resolved


Steps to Reproduce



Run a report definition that has an unexposed column.


Root Cause



The root cause of this problem is defect/misconfiguration in the PRPC operating environment. The movement of the operating environment from one level to the next was done with native database tools. The Java code for the UDF functions was not moved, though the function prototype definitions were present in the database.



Resolution



This issue is resolved through the following local change:

You need to install the UDFs again after an install. This is true if they become broken due to databases being manipulated or moved using native DB tools.

A change is made to the OOTB setupDatabase.xml and install.bat/sh to allow a turnkey solution that makes use of the existing installation infrastructure.

This implementation requires that the setupDatabase.properties be configured as described in the installation documentation.


Step (1)

A change is made to setupDatabase.xml to add this target - the file is saved as updateUDF.xml.

 

<!-- Install the UDF functions only used by installUDF.bat installUDF.sh -->
<target name="udfInstall" depends="Initialization, Configuration,
 UDF Generation">

  <echo message="UDF install complete."/>

</target>

 
Step (2) from windows
This change is made to install.bat and the file is saved as installUDF.bat

rem Invoke our ant script, passing in the arguments as collected
echo Invoke our ant script, passing in the arguments as collected

call "%ANT_HOME%\bin\ant.bat" %ANT_PROPS% -f updateUDF.xml udfInstall

if not (%errorlevel%)==(0) goto Error

 
Step (2) from unix
This change is made to install.sh and the file is saved as installUDF.sh.

# Run Ant, given the configuration we collected
"`dirname "$0"`/bin/ant" $ANT_PROPS -f ./updateUDF.xml udfInstall


Note that the UDF functions must be dropped from the database before this script is run.

At this point you run either the installUDF.bat or installUSF.sh script to reinstall the UDF functions.
Suggest Edit

Published March 21, 2016 - Updated October 8, 2020

Did you find this content helpful? Yes No

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us