cancel
Showing results for 
Search instead for 
Did you mean: 

startsap: Cannot write class prefetch list

j_bayrhammer
Participant
0 Kudos

Hello,

at startup from SAP on oracle 11.2.0.4 with a Java Only Netweaver 7.4 I have got a problem with the file "class_prefetch.lst".

Error message:

sidadm> startsap

Checking SID Database

-------------------------------------------

setTrace: false

WARNING: Cannot write class prefetch list; classload performance may be affected

WARNING: java.io.FileNotFoundException: class_prefetch.lst (Permission denied)

WARNING: To fix the problem, remove the inaccessible file /oracle/SID/saptrace/diag/rdbms/sid/SID/trace/class_prefetch.lst

System is starting and working.

But I can't solve this problem. On other systems I don't find a file class_prefetch.lst in the mentioned path, so there is nothing to remove.

How can I solve this warning / problem?

Regards,

Julia

Accepted Solutions (1)

Accepted Solutions (1)

j_bayrhammer
Participant

Hello,

Ashutosh supported me with a workaround but problem is not solved for me.

Where does this message comes from?

And why I can't find such a file /oracle/SID/saptrace/diag/rdbms/sid/SID/trace/class_prefetch.lst in other systems?

Regards,

Julia

ashish_vikas
Active Contributor
0 Kudos

Change the ownership of file class_prefetch.lst to sidadm:sapsys.

After this, give it permission 775 and see if this warning do not come.

*because, you are stating SAP with sidadm.. so sidadm user will need read/write permission for this file.

Regards,

Ashish

j_bayrhammer
Participant
0 Kudos

Thanks for your help, Ashish.

I did already created the file and start of SAP works now without error message.

But I'm still confused about this file - where does this message comes from? Why didn't this file exist in my folder? And why I can't find such a file /oracle/SID/saptrace/diag/rdbms/sid/SID/trace/class_prefetch.lst in other systems?

Do you have a file class_prefetch.lst in your folder /oracle/SID/saptrace/diag/rdbms/sid/SID/trace/ ?

Regards,

Julia

ashish_vikas
Active Contributor
0 Kudos

no, not in our system.

Can you share what class_prefetch.lst contains.. ? But anyway i will not bother much as different systems can have some different files based on release/product.

Regards,

Ashish

j_bayrhammer
Participant
0 Kudos

Hello Ashish,

File contains following a lot of entries like (~4KB):

.....

oracle/jdbc/driver/T4CRawAccessor.class

antlr/MismatchedTokenException.class

com/sap/sql/trace/TraceResultSet.class

com/sap/sql/jdbc/ConnectionHandle.class

oracle/sql/ORAData.class

com/sap/tc/logging/FileLogInfoData.class

com/sap/dictionary/database/dbs/DbObject.class

com/sap/sql/jdbc/basic/BasicConnection.class

oracle/jdbc/driver/T4CTTIokeyval.class

oracle/jdbc/driver/T4CTTIokpn.class

com/sap/tc/logging/Location.class

com/sap/sql/jdbc/oracle/Oracle9iPortingServices.class

com/sap/sql/connect/pool/Pool$State.class

...

Regards,

Julia

divyanshu_srivastava3
Active Contributor
0 Kudos

Hi Julia,

You can see classes are pre-fetched before loading.

In fact, it seems to be parameter is set for logging and tracing - generating the trace of this pre-fetch load.

May be the actual loading takes place after system is started - like a LAZY mode.

Regards,

Reagan
Advisor
Advisor
0 Kudos

One quick question.

Did you run the startsap when the present working directory "pwd" was /oracle/SID/saptrace/diag/rdbms/sid/SID/trace location ?

If the startsap is executed from the home directory then this file gets created in the home directory.

j_bayrhammer
Participant
0 Kudos

Hello Reagan,

yes, this can be the cause!

I had a look into /home/sidadm - there I can find a file class_prefetch.lst.

And because of some administrative doings I was in folder  /oracle/SID/saptrace/diag/rdbms/sid/SID/trace as sidadm and started SAP from here.

Thank you - I think this is the cause. And correctly sidadm has no write access in /oracle/SID path!

Regards,

Julia

Answers (4)

Answers (4)

Reagan
Advisor
Advisor
0 Kudos

setTrace: false

WARNING: Cannot write class prefetch list; classload performance may be affected

WARNING: java.io.FileNotFoundException: class_prefetch.lst (Permission denied)

WARNING: To fix the problem, remove the inaccessible file /oracle/SID/saptrace/diag/rdbms/sid/SID/trace/class_prefetch.lst

Based on the trace information and if you look at the above sequence it looks like the startsap script is creating the class_prefetch.lst file and then it is trying to remove the file and in both cases the it fails due to permission issues.

Regards

RB

Sriram2009
Active Contributor
0 Kudos

Hi Julia

Is the \USR folder volume is full no free space ?

BR

SS

j_bayrhammer
Participant
0 Kudos

Hello S.,

the /usr folder is not full.

I could create the file and it was filled at startup.

Regards,

Julia

divyanshu_srivastava3
Active Contributor
0 Kudos

WARNING: To fix the problem, remove the inaccessible file /oracle/SID/saptrace/diag/rdbms/sid/SID/trace/class_prefetch.lst

Check for permissions or follow what ashutosh has quoted.

former_member185239
Active Contributor
0 Kudos

Hi Julia,

Goto the directory /oracle/SID/saptrace/diag/rdbms/sid/SID/trace/

and run the command

touch class_prefetch.lst


hope it will help!


Also do check the permission of trace it should have a owner orasid and sapsys

With Regards

Ashutosh

j_bayrhammer
Participant
0 Kudos

Hello Ashutosh,

I thought about creating file too, but I don't know what this file stands for.

So I created file now with chmod 777. Permission of folder trace is correct (orasid,dba).

Now warning message disappeard and some entries are written in file.

But although I'm wondering because this file does not exist in other systems.

So for what is this file? Is there any misconfiguration in JAVA stack?

Regards,

Julia