BookmarkSubscribeRSS Feed
DThompson
Fluorite | Level 6
Has anyone seen / encountered the following error:

ERROR: There is not enough memory to perform class method OM_NEW(3) of "PRINTER.TCELL".

I'm getting this error in a Proc Report step that produces a PDF output running as a SAS IntrNet routine. A run a similar version of this code in another routine with out problem, but in this routine, it continually fails and I can explain way. The amount of data going into this Proc Report step is not that large, approx. 10-15k OBS.

Any ideas / help would be greatly appreciated.
6 REPLIES 6
ChrisNZ
Tourmaline | Level 20
Bizarre error messages are best addressed by tech support. 🙂
DThompson
Fluorite | Level 6
Understood and have already opened a Tech Support case with SAS on this error. However, they don't have solution for this error at the moment. I did find a reference to this type of error on SAS-L from a couple of years ago, but no resolution. Just checking with the SAS Community...assumption being some one else might have encounter this or similar problem.
Cynthia_sas
SAS Super FREQ
Hi:
There are some references to getting that error with the JavaObj in these papers:
http://analytics.ncsu.edu/sesug/2003/TU04-DeVenezia.pdf
http://www2.sas.com/proceedings/sugi29/033-29.pdf
http://www.devenezia.com/papers/nesug-2005/nesug-2005-devenezia.pps (Error mentioned in the Notes View -- not in the ppt slides themselves)

cynthia
DThompson
Fluorite | Level 6
Cynthia,

Thank you for the input on this, these articles are helpful and do seem to support what SAS Tech Support believes might be occurring...that this is some type of internal Proc Report or ODS problem.

The errors mentioned in these articles are very similar to the error I'm seeing...the "class method OM_NEW(3)" matches exactly. The errors in these articles are all related to using / running Java directly from a SAS session, which I'm not doing (at least directly).

My assumption is that Proc Report is probably not using any Java sub-routines natively "under the covers", but the ODS functionality I'm guessing is another matter...

The ODS style attribute I'm using is "Printer", so my next question(s) is / are: "what is the 'TCELL' in the ODS Printer style and what about the 'TCELL' would cause a memory error?"
DThompson
Fluorite | Level 6
To all who are following this thread and or might read it:

In my case, what triggered this error was the volume of data I was trying to process in the Proc Report set and output in PDF format. Initially, I didn't think of this because this Proc Report routine was / is a clone of another routine that runs successfully. The difference between the two are their data sources, which have the same structure, but differ significantly in their size (i.e # of OBS). Once this occurred to me, I performed a simple test on the routine that was failing by limiting the size of the input dataset and it worked properly.

This issue appears to be primarily associated with the ODS PDF functionality because I was able to successfuly run the full dataset through the Proc Report routine, but to and ODS Excel output. I'm assuming it would work OK with the ODS HTML as well.

As such, it does appear there is a memory limitation of some type with the ODS PDF functionality that doesn't exist in some of the other ODS formats. I was able to overcome this problem by basically separating my data and creating two separate reports (e.g. Group A Data Report and Group B Data Report).
Lajode
Calcite | Level 5

I am new to this company, and have inherited a nightly batch process (running on an IBM mainframe) that is sloppily written.  Every morning I check the listings for ABENDS or COND CODE 0008...Like your situation, PROC REPORT is wrapped in ODS, the output destination being PDF.  my error message was:

ERROR: There is not enough memory to perform class method OM_NEW(3) of "TEMPLATE.STYLE".

Thank you for the post-mortem.  It has been many years since your posting, but I would like to let you know that this information was useful. 

No resolution yet, but may have to add logic to check the size of the data set, and split it.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 1871 views
  • 1 like
  • 4 in conversation