Well I got a new laptop at work and new install of 9.4 M6 (64bit) and just got around to noticing the ODS GRAPHICS is not working. I think I had the same issue 2 years ago with my last machine and called the SAS help line. Getting ready to go to an afternoon meeting and thought I would throw this out to you all for a hopefully quick fix. Below is from my Log, which shows the PROC and error.
Thanks!
1406 ods graphics off; 1407 ODS GRAPHICS ON; 1408 proc lifetest data=jscc_analyze 1409 PLOT = survival(ATRISK = 0 TO 5000 BY 500 1410 CB=HW TEST); 1411 time follow_up_1*outcome_1(0); 1412 strata hosp_code; 1413 run; NOTE: The LOGLOG transform is used to compute the confidence limits for the quartiles of the survivor distribution and the confidence limit for the survivor function. To suppress using this transform, specify CONFTYPE=LINEAR in the PROC LIFETEST statement. [Fatal Error] :1:8: The processing instruction target matching "[xX][mM][lL]" is not allowed. Internal Exception:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; The processing instruction target matching "[xX][mM][lL]" is not allowed. org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; The processing instruction target matching "[xX][mM][lL]" is not allowed. at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at com.sas.graphics.app.StatGraphSSR.parseXML(StatGraphSSR.java:604) at com.sas.graphics.app.StatGraphSSR.render(StatGraphSSR.java:218) Problem reading XML java.lang.NullPointerException at com.sas.graphics.applets.statgraph.StatGraph.getSessionLocale(StatGraph.java:4204) at com.sas.graphics.app.StatGraphSSR.render(StatGraphSSR.java:227) java.lang.NullPointerException ERROR: Physical file does not exist, C:\Users\smithhl\AppData\Local\Temp\SAS Temporary Files\_TD11984_UPH307196_\_C1B6FBA9BB94FEBB3832AB25E07714E.bmp. ERROR: Physical file does not exist, C:\Users\smithhl\AppData\Local\Temp\SAS Temporary Files\_TD11984_UPH307196_\_C1B6FBA9BB94FEBB3832AB25E07714E.bmp. NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE LIFETEST used (Total process time): real time 0.46 seconds cpu time 0.12 seconds 1414 ODS GRAPHICS OFF;
So the results are outputted by no plots.
No idea what that is 🙂
I am running a piece of code that I ran prior to the computer upgrade. So to my knowledge, I opened a file from earlier this year and when I execute it, no graphics output.
I will also not that I went from 32bit to 64bit, but the code seems pretty basic.
What is your ODS destination? ODS HTML, RTF, PDF, LISTING or something else?
The fatal error appears to be related to XML in some flavor which would typically be related to the destination.
Did you try any other graphics such as:
proc sgplot data=sashelp.class; scatter x=height y=weight; run;
does that create a graph?
I get no output with that code and below is what is in the Log.
1415 proc sgplot data=sashelp.class;
1416 scatter x=height y=weight;
1417 run;
WARNING: SASUSER.TEMPLAT is not a template store! It will be ignored.
NOTE: PROCEDURE SGPLOT used (Total process time):
real time 0.21 seconds
cpu time 0.06 seconds
[Fatal Error] :1:8: The processing instruction target matching "[xX][mM][lL]" is not allowed.
Internal Exception:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; The processing
instruction target matching "[xX][mM][lL]" is not allowed.
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; The processing instruction target
matching "[xX][mM][lL]" is not allowed.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at com.sas.graphics.app.StatGraphSSR.parseXML(StatGraphSSR.java:604)
at com.sas.graphics.app.StatGraphSSR.render(StatGraphSSR.java:218)
Problem reading XML
java.lang.NullPointerException
at com.sas.graphics.applets.statgraph.StatGraph.getSessionLocale(StatGraph.java:4204)
at com.sas.graphics.app.StatGraphSSR.render(StatGraphSSR.java:227)
java.lang.NullPointerException
ERROR: Physical file does not exist, C:\Users\smithhl\AppData\Local\Temp\SAS Temporary
Files\_TD11984_UPH307196_\_16B6F03876B47A6A03E1498C1E2C54F.bmp.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 19 observations read from the data set SASHELP.CLASS.
Hmmm, nothing seems to be working now, in that I just went to run code from last week post new computer and install and that isn't running outputting either??? Gonna restart my machine and keep my fingers crossed.
1504 Proc univariate data=complete_step;
1505 var BMI_Calc
1506 FEV1
1507 age
1508 min_sat
1509 max_HR
1510 Recovery_Time__Sec__contin
1511 age;
1512 histogram BMI_Calc / normal kernel;
1513 histogram FEV1 / normal kernel;
1514 histogram age / normal kernel;
1515 histogram min_sat / normal kernel;
1516 histogram max_hr / normal kernel;
1517 histogram Recovery_Time__Sec__contin / normal kernel;
1518 histogram age;
1519 run;
NOTE: The normal kernel estimate for c=0.7852 has a bandwidth of 0.8114 and an AMISE of 0.0004.
NOTE: 22541 bytes written to C:\Users\smithhl\AppData\Local\Temp\SAS Temporary
Files\_TD11984_UPH307196_\univar4.png.
ERROR: An exception has been encountered.
Please contact technical support and provide them with the following traceback information:
The SAS task name is [UNIVARIATE]
ERROR: Read Access Violation UNIVARIATE
Exception occurred at (04F58350)
Task Traceback
Address Frame (DBGHELP API Version 4.0 rev 5)
0000000004F58350 000000005C476BC0 saswob:tkvercn1+0x7310
00000000097AA9BA 000000005C476BC8 sasoda:tkvercn1+0x7997A
0000000009750053 000000005C476C70 sasoda:tkvercn1+0x1F013
0000000004F5888F 000000005C476D10 saswob:tkvercn1+0x784F
0000000006F71D0A 000000005C476D18 sasods:tkvercn1+0x220CCA
0000000006DC2D08 000000005C47C060 sasods:tkvercn1+0x71CC8
0000000006F71D0A 000000005C47C0A0 sasods:tkvercn1+0x220CCA
0000000006DD50AD 000000005C47C4E0 sasods:tkvercn1+0x8406D
0000000041D81CCA 000000005C47C4E8 sasquniv:tkvercn1+0x140C8A
0000000041D31F5D 000000005C47C6D0 sasquniv:tkvercn1+0xF0F1D
0000000041C9D31A 000000005C47CB50 sasquniv:tkvercn1+0x5C2DA
0000000041C43C73 000000005C47CD90 sasquniv:tkvercn1+0x2C33
0000000041C42642 000000005C47FBE0 sasquniv:tkvercn1+0x1602
000000000363A346 000000005C47FBE8 sashost:Main+0x11E86
000000000364040D 000000005C47FF50 sashost:Main+0x17F4D
00007FFF5D023DC4 000000005C47FF58 KERNEL32:BaseThreadInitThunk+0x14
00007FFF5DBF3691 000000005C47FF88 ntdll:RtlUserThreadStart+0x21
NOTE: The SAS System stopped processing this step because of errors.
ERROR: Generic error in the XOB subsystem.
NOTE: PROCEDURE UNIVARIATE used (Total process time):
real time 0.45 seconds
cpu time 0.29 seconds
1415 proc sgplot data=sashelp.class; 1416 scatter x=height y=weight; 1417 run; WARNING: SASUSER.TEMPLAT is not a template store! It will be ignored. NOTE: PROCEDURE SGPLOT used (Total process time): real time 0.21 seconds cpu time 0.06 seconds
Makes me think that somewhen recently you ran some code involving Proc Template and may have modified the template path setting.
If that is the case then perhaps this will reset things back to default.
Proc template;
path reset;
run;
@ballardw - well before seeing your post - I did restart and everything works normally as I can tell. Sorry for taking everyone's time with a trivial issue that next time I will try a restart.
H
@H wrote:
@ballardw - well before seeing your post - I did restart and everything works normally as I can tell. Sorry for taking everyone's time with a trivial issue that next time I will try a restart.
H
No problem, better some solution than none.
I would suggest looking at any code with Proc Template very closely though. Or find the source of any macros that may have been used to see if they call proc template.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.