cancel
Showing results for 
Search instead for 
Did you mean: 

CCM Publication Failed with runtime error TSV_TNEW_OCCURS_NO_ROLL_MEMORY

Former Member
0 Kudos

Hi,

I met an issue when publishing a procurement catalog in CCM. I got runtime error on TSV_TNEW_OCCURS_NO_ROLL_MEMORY. We do have many items in this procurement however we also published this catalog a few weeks ago with no issue.

It looks like memory shortage so I requested our BASIS person to restart the catalog server. But when I re-published it, I got same runtime error.

Can anybody help me to get an idea on this issue and any suggestion?

Below I captured some information from ST22 error analysis. Sorry it's all in text as I don't know how I can post screenshots here.

Error analysis

The internal table "\DATA=GT_HISTOR

Y_BUF[86078]-REC" could not be filled.

Memory location: "Session memory"

You attempted to create an OCCURS area 12288 bytes long for the internal

table "\DATA=GT_HISTORY_BUF[86078]-

REC". This is because the first entry is to be stored

in the internal table.

The amount of memory requested is no longer available.

Last error logged in SAP kernel

Component............ "EM"

Place................ "SAP-Server SIRDCM_PCM_02 on host SIRDCM (wp 19)"

Version.............. 37

Error code........... 7

Error text........... "Warning: EM-Memory exhausted: Workprocess gets PRIV "

Description.......... " "

System call.......... " "

Module............... "emxx.c"

Line................. 1897

The error reported by the operating system is:

Error number..... " "

Error text....... " "

Information on where terminated

Termination occurred in the ABAP program "/CCM/CL_CHAR_VALUATION_MANAGERCP" -

in "DELETE_HISTORY".

The main program was "/CCM/PE_START_REG_PUBLICATION ".

In the source code you have the termination point in line 88

of the (Include) program "/CCM/CL_CHAR_VALUATION_MANAGERCM00S".

Source Code Extract

Line SourceCde

58 ls_timestamp-high = lv_timestamp_to.

59 APPEND ls_timestamp TO lt_timestamp.

60 lt_history_db = me->read_all_history_db( iv_guid = iv_guid

61 it_timestamp = lt_timestamp ).

62

63 * sort results from database

64 SORT lt_history_db BY process guid timestamp.

65

66 * now consolidate results with buffer table

67 LOOP AT lt_history_db REFERENCE INTO lr_history_db.

68 * only consider records that aren't in buffer

69 READ TABLE gt_history_buf BINARY SEARCH TRANSPORTING NO FIELDS

70 WITH KEY process = lr_history_db->process

71 guid = lr_history_db->guid

72 timestamp = lr_history_db->timestamp.

73 IF sy-subrc NE 0.

74 lv_sytabix = sy-tabix.

75 ls_history_buf-process = lr_history_db->process.

76 ls_history_buf-guid = lr_history_db->guid.

77 ls_history_buf-timestamp = lr_history_db->timestamp.

78 INSERT ls_history_buf INTO gt_history_buf INDEX lv_sytabix REFERENCE INTO lr_history_

79 ENDIF.

80

81 IF lr_history_buf IS BOUND AND

82 lr_history_buf->process = lr_history_db->process AND

83 lr_history_buf->guid = lr_history_db->guid AND

84 lr_history_buf->timestamp = lr_history_db->timestamp.

85

86 ls_history_obj_buf-rec = lr_history_db->*.

87 ls_history_obj_buf-rec_op = /ccm/cl_data_access_constants=>co_operation_delete.

>>>>> APPEND ls_history_obj_buf TO lr_history_buf->rec.

89

90 ELSE.

91 CLEAR lr_history_buf.

92 ENDIF.

93

94 ENDLOOP.

Many thanks!

Best Regards,

Ellly

Accepted Solutions (0)

Answers (1)

Answers (1)

jason_boggans
Active Contributor
0 Kudos

Hi Elly,

Do you have the history functionality switched on or off? (See note 1068821)

If it is still on you can switch it off to improve the runtime of the publishing and update.

Otherwise I would check the table /ccm/d_value_h to see how many records there are there. I expect it is a lot, you can use the report /CCM/DELETE_HISTORY_BG to remove some of these older entries which should also help. Mkae sure you use small segments when using this report as it also has a tendency to time out/dump due to long runtime when large amounts of data are processed.

If you do not want/need the history then you should turn it off as defiend in the note then you can delete the data in this table (safely) using either db tools to drop the table or by implemening a simple report like:

&----


*& Report ZDELETEHISTORY

*&

&----


*&

*&

&----


REPORT ZDELETEHISTORY.

delete from /CCM/D_VALUE_H.

commit work.

Regards,

Jason