on 04-13-2009 3:26 AM
Hi Experts,
I am seeing a lot of OBJECTS_OBJREF_NOT_ASSIGNED dumps in one of our productions servers with the a few of the cancelled background jobs.
We have just upgraded from 4.7 to ECC6
The error text is
***********************************************************************************************************************
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_REF_IS_INITIAL', was not
caught in
procedure "GET_SPECIAL_DATA_INTERNAL" "(METHOD)", nor was it propagated by a
RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
You attempted to use a 'NULL' object reference (points to 'nothing')
access a component (variable: "ME->GO_PARENT_CBASE_PROFILE").
An object reference must point to an object (an instance of a class)
before it can be used to access components.
Either the reference was never set or it was set to 'NULL' using the
CLEAR statement.
*********************************************************************************************************************
We have tried to find the SAP notes,but could not find the proper ones
Kindly help us fix the dump issue
Rgds-
Venu
Hi Venu,
In your setup of the shared memory area in SHMA, do you have the versioning option unchecked? If you do that might explain your issue. If a user tries to access the one instance of the object in the shared memory area while it is currently being refreshed to memory they will get this short dump. The one way to protect against this error would be to make sure that the user reading from the memory area does a check for success in attach_for_read( ) before going further. See this example:
DATA: lv_tries TYPE i,
lv_subrc TYPE sy-subrc.
CONSTANTS: lc_max TYPE i VALUE '10000''.
Initialize variables for a max of 10000 tries
CLEAR lv_tries.
lv_subrc = 1.
Attach for read from shared memory area
WHILE lv_tries < lc_max AND lv_subrc <> 0.
TRY.
cl_area = zcl_shm_employee_master=>attach_for_read( ).
lv_subrc = sy-subrc.
CATCH: cx_shm_inconsistent,
cx_shm_no_active_version,
cx_shm_read_lock_active,
cx_shm_exclusive_lock_active,
cx_shm_parameter_error,
cx_shm_change_lock_active.
lv_tries = lv_tries + 1.
ENDTRY.
ENDWHILE.
Raise exception if tries reaches count of 10000
IF lv_tries = lc_max.
RAISE READ_ERROR.
ENDIF.
The number 10000 is an arbitrary number chosen for the example but you can get the idea from it. This will ensure that either a success attach is performed or an exception is thrown. Of course you could always just call multiple times until you get a successful attach. I did it this way to avoid a potential infinite loop in the case that it is not able to attach successfully.
Regards,
Ryan Crosby
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Ryan,
Thanks for your reply,it is really been informative and looks like going to fix the issue as well.
I would be very thankful to you,if you can eloborate on your comment "setup of the shared memory area in SHMA, do you have the versioning option unchecked?"
Where can I see the setup,I mean..... is it in profile parameter level or it is in ABAP development level
Pls.guide me thru,thanks
Rgds-
Venu
Hi venu,
Can you post dump data with transaction code
and error analysis. This will help to find out when and which program cause this problem
Regards,
Nitin Salunkhe
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Nitin,
Sry, tht I cudnt reply back as I was on a vaccation
Pls.find the required data as pasted below..
*********************************************************************************************************************
User and Transaction
Client.............. <nnn>
User................ "XXXXX"
Language Key........ "E"
Transaction......... " "
Transactions ID..... "49E5C99A35C800BDE10080000A82216E"
Program............. "CL_CUX_INSTANCE_TREE_CORE=====CP"
Screen.............. "SAPMSSY1 3004"
Screen Line......... 2
Information on caller of Remote Function Call (RFC):
System.............. <SID>
Database Release.... 620
Kernel Release...... 640
Connection Type..... 3 (2=R/2, 3=ABAP System, E=Ext., R=Reg. Ext.)
Call Type........... "synchron and transactional (emode 0, imode 0)"
Inbound TID.........." "
Inbound Queue Name..." "
Outbound TID........."0A0110F82E0949E8F074438C"
Outbound Queue Name.."R3AUORDER_0118291279"
Client.............. <nnn>
User................ "CP32389DG"
Transaction......... " "
Call Program........."SAPLERFC"
Function Module..... "ARFC_DEST_SHIP"
Call Destination.... "XXXXX"
Source Server....... "abcd"
Source IP Address... "n.n.n.n"
Additional information on RFC logon:
Trusted Relationship " "
Logon Return Code... 0
Trusted Return Code. 0
Note: For releases < 4.0, information on the RFC caller are often
only partially available.
********************************************************************************************************
Thanks in advance
Rgds-
Venu
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.