Question
JPMC
US
Last activity: 29 Feb 2016 10:46 EST
Invalid java class objects
We are seeing invalid java class objects in a single database schema based 7.1.5 system with oracle, most of these classes are related to DirectStreamReader, CachedDirectStream, BadReferenceExcep etc. I have checked and found that the pr_read_from_stream, pr_read_int_from_stream and pr_read_decimal_from_stream functions are generated and are in valid state. SO can you please answer my below queries:
1. How to resolve this issue? will running generateudf.sh resolve this issue?
2. What are all areas affected if these objects are kept in invalid state for sometime?
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Accepted Solution
JPMC
US
We tried below steps but still having same issue with only one java class object (com/pega/pegarules/data/udf/directstreamreader/DirectStreamReader):
Steps followed:
1. Dropped existing all 3 udf functions.
2. Re-ran generateudf.sh
3. Ram Alter Java class and Resolve queries given at https://docs-previous.pega.com/troubleshooting-ora-29541-log-error-when-running-report-directstreamreader-could-not-be-resolved
Please let me know if there is any other way to resolve this issue or do I need to open a SR for the same?
Pegasystems Inc.
IN
Hi Dhirendra,
Running generateudf.sh should resolved these.
UDF is generally used in Report definition.
Pegasystems Inc.
US
Run the below query to show the full names of the invalid objects:
SELECT dbms_java.longname(object_name) FROM user_objects WHERE status!='VALID' AND object_type LIKE 'JAVA%';
JPMC
US
Thank you Arvind Malav and Celeste Dufresne!! we will try to regenerate the udfs and see if that resolve the issue.
JPMC
US
Hello Celeste Dufresne and Arvind Malav! we tried regenerating the udf by running generateudf.sh but Java class objects are still in INVALID state. Can someone please help me resolve this issue. Below is the list of INVALID Objects.
Pegasystems Inc.
IN
Can you please review below PDN article:
JPMC
US
Thank you Arvind Malav!! I followed the article to you suggested and resolved issue for all necessary JAVA CLASS object except one DirectStreamReader. I am getting below error(object does not exist) for this particular class.
SQL> ALTER JAVA CLASS "com/pega/pegarules/data/udf/directstreamreader/DirectStreamReader"
2 RESOLVER ((*RMS_SIM_CI)(* public))
3 RESOLVE;
ALTER JAVA CLASS "com/pega/pegarules/data/udf/directstreamreader/DirectStreamReader"
*
ERROR at line 1:
ORA-04043: object /32d1f03d_DirectStreamReader does not exist
Can you please let me know what can we do to resolve this one?
Pegasystems Inc.
IN
seems this does not exist.
You can try following below article:
Accepted Solution
JPMC
US
We tried below steps but still having same issue with only one java class object (com/pega/pegarules/data/udf/directstreamreader/DirectStreamReader):
Steps followed:
1. Dropped existing all 3 udf functions.
2. Re-ran generateudf.sh
3. Ram Alter Java class and Resolve queries given at https://docs-previous.pega.com/troubleshooting-ora-29541-log-error-when-running-report-directstreamreader-could-not-be-resolved
Please let me know if there is any other way to resolve this issue or do I need to open a SR for the same?
PEG
IN
Hi,
Can you check whether UDF functions ends with semi column(;) or not? In oracle db do you see any red cross mark in the UDF functions?
JPMC
US
There is no red cross on udf function i.e. they all are in valid state. What do you mean by "whether UDF functions ends with semi column(;) or not?". As long as function definition goes they all are fine and ending with ; as shown below:
language java
name 'com.pega.pegarules.data.udf.directstreamreader.DirectStreamReader.get(java.lang.String, java.lang.String, java.sql.Blob) return java.lang.String';
/
Show errors;
But we are able to run the below query successfully so can we ignore the issue which I am facing?:
SELECT pr_read_from_stream('pzInsKey', pzInsKey, pzPVStream) as "StringValue",
pr_read_int_from_stream('pzRuleSetVersionMajor', pzInsKey, pzPVStream) as "IntegerValue",
There is no red cross on udf function i.e. they all are in valid state. What do you mean by "whether UDF functions ends with semi column(;) or not?". As long as function definition goes they all are fine and ending with ; as shown below:
language java
name 'com.pega.pegarules.data.udf.directstreamreader.DirectStreamReader.get(java.lang.String, java.lang.String, java.sql.Blob) return java.lang.String';
/
Show errors;
But we are able to run the below query successfully so can we ignore the issue which I am facing?:
SELECT pr_read_from_stream('pzInsKey', pzInsKey, pzPVStream) as "StringValue",
pr_read_int_from_stream('pzRuleSetVersionMajor', pzInsKey, pzPVStream) as "IntegerValue",
pr_read_decimal_from_stream('pzRuleSetVersionMinor', pzInsKey, pzPVStream) as "DecimalValue"
from RMS_PEGA_RULES.pr4_rule where pxInsID like 'CANNOT%'
JPMC
US
Just to update you all - The issue turn out to be some junk character with (com/pega/pegarules/data/udf/directstreamreader/DirectStreamReader) class which I copied from PDN. After retyping this class name manually it got resolved and not it is in VALID status.