Simple threaded job scheduler memory issues
Hi,
I'm working on a very simple job scheduler that triggers some processes to be run (based on a config file) and will spawn a thread to run the command every X number of seconds.
My initial version of the code showed an obvious memory leak, starting at about 20MB usage and increasing after running overnight to about 80MB... I have since stripped down the program to a very minimal bit of code that will basically create 100 job objects and trigger threads on each of them to go way and run a Cygwin sleep.exe for 5 seconds and then return, once for each job every 15 seconds. After running the profiler with this within Netbeans, the VM Memory utilisation graph showed a very similar graph, and exhibited the same memory utilisation as my previous version.
I've tried to tweak the code as much as I can with my level of knowledge, so now I'm hoping someone might be able to help out to see if there are any flaws in my code, or any improvements that I could make in order to resolve my problem?
Below is the code for the 3 classes that I'm using:
Main class:
package javascheduler;
import java.util.ArrayList;
public class Main {
private ArrayList<Job> allJobs = new ArrayList();
public static Main instance;
public static void main(String[] args) {
if (instance == null) {
instance = new Main();
instance.loop();
public Main() {
// Create lots of jobs
for (int i = 0; i < 100; i++) {
Job j = new Job(i);
allJobs.add(j);
System.out.println("Created 100 jobs");
private boolean loop() {
// Main loop
int i = 0;
int x = 0;
while (true) {
x++;
try {
Thread.sleep(500);
} catch (InterruptedException ex) { }
i++;
if(i >= 10) {
Runtime.getRuntime().gc();
i=0;
for(Job j : allJobs) {
long now = System.currentTimeMillis();
// Jobs run every 15 secs
if(now >= j.getLastRunTime() + 15000 && !j.isRunning()) {
j.runJob();
}Job class:
package javascheduler;
public class Job {
private NativeJob runningJob = null;
private String command = "c:/cygwin/bin/sleep.exe 5";
private int jobId;
private long lastRunTime = -1;
public Job(int id) {
jobId = id;
public void runJob() {
System.out.println("runJob started" + jobId);
lastRunTime = System.currentTimeMillis();
runningJob = null;
runningJob = new NativeJob(command,jobId);
runningJob.start();
System.out.println("runJob returned" + jobId);
public long getLastRunTime() {
return lastRunTime;
public boolean isRunning() {
if(runningJob == null) {
return false;
} else {
if(runningJob.isRunning()) {
return true;
} else {
runningJob = null;
return false;
}NativeJob class:
package javascheduler;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class NativeJob extends Thread {
String command;
int jobId;
boolean running = false;
Runtime r = Runtime.getRuntime();
public NativeJob(String command, int i) {
super();
this.command = command;
this.jobId = i;
@Override
public void run() {
running = true;
try {
System.out.println("Running command " + jobId);
Process p;
p = r.exec(command);
int returnCode = p.waitFor();
p.getErrorStream().close();
p.getInputStream().close();
p.getOutputStream().close();
} catch (IOException ex) {
Logger.getLogger(NativeJob.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(NativeJob.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("Finished command " + jobId);
running = false;
public boolean isRunning() {
return running;
}Thanks
Adam
Thanks ejp and sabre.
I've made some changes to the code following your suggestions, and am now trying out jconsole on windows (rather than the Netbeans profiler).. I'll post back after I've had it running a little while.
If you could take a quick look at the updates I've made that's be very much appreciated.
Main class:
package javascheduler;
import java.util.ArrayList;
public class Main {
private ArrayList<Job> allJobs = new ArrayList();
public static Main instance;
public static void main(String[] args) {
instance = new Main();
instance.loop();
public Main() {
// Create lots of jobs
for (int i = 0; i < 100; i++) {
Job j = new Job(i);
allJobs.add(j);
System.out.println("Created 100 jobs");
private boolean loop() {
// Main loop
int i = 0;
int x = 0;
while (true) {
x++;
try {
Thread.sleep(500);
} catch (InterruptedException ex) { }
i++;
if(i >= 10) {
Runtime.getRuntime().gc();
i=0;
for(Job j : allJobs) {
long now = System.currentTimeMillis();
// Jobs run every 15 secs
if(now >= j.getLastRunTime() + 15000 && !j.isRunning()) {
new Thread(j).start();
}Job class:
package javascheduler;
import java.io.IOException;
public class Job implements Runnable {
private String[] command = { "c:/cygwin/bin/sleep.exe","5" };
private int jobId;
private long lastRunTime = -1;
Runtime r = Runtime.getRuntime();
boolean isRunning = false;
public Job(int id) {
jobId = id;
public void run() {
System.out.println("runJob started" + jobId);
isRunning = true;
lastRunTime = System.currentTimeMillis();
try {
Process p = r.exec(command);
StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), "ERROR");
StreamGobbler outputGobbler = new StreamGobbler(p.getInputStream(), "OUTPUT");
errorGobbler.start();
outputGobbler.start();
int exitVal = p.waitFor();
} catch (IOException ex) {
ex.printStackTrace();
} catch (InterruptedException ex) {
ex.printStackTrace();
System.out.println("runJob returned" + jobId);
isRunning = false;
public long getLastRunTime() {
return lastRunTime;
public boolean isRunning() {
return isRunning;
}Edited by: Adamski2000 on Aug 2, 2010 3:12 AM
Similar Messages
-
Job Scheduler Timer issue in Cisco Prime Infrastructure 1.2 ?
Has anyone run into this issue where the job scheduler in CPI 1.2 report that the job that is being scheduled is before the current time even though it isn't ?
This only started happening after our time change yesterday. The system is setup for the correct time (NTP) this is confirmed in the app and also on the CLI console access (show clock)
Anyway we get this error message (attachment) in the lower right corner of the attachement.
It's not allowing the jobs to be scheduled. Rebooted the system yesterday and thought that it fixed it, but evidently I tried another scheduled job today and it's got the same issue.
TAC Case is already opened on this but I thought I'd ask here as well.
Regards,
Tom W.I'm answering my own question: upgrade to 1.3 from 1.2 and the problem is resolved. Rebooting the VM on 1.2 did help for 1 day but then the problem came back, so my advice is simply to upgrade to 1.3 which I would have done initially if I had known that 1.3 was available. Hope this helps. The problem itself in 1.2 is unclear what is causing it because NTP and the APP and the underlying time in the console (cli) are all good; so somewhere in the scheduler it may have gone off track after the daylight savings time shift this past week. Bottom line: 1.3 upgrade and keep hope alive, bro.
-
Regarding Memory issues((error) while scheduling the job
Hi Friends
I am facing memory issue while rerunning BODS jobs in production.As we have rapid mart when jobs got failed i rerun the
job suddenly job got failed and in logs i found Memory issue
please help me what i have to do in steps
ThanksI think there is no one solution to buffer pool issue. Buffer pool issue happens due to many reasons like how you design the data flow, requirement of push down or even insufficient memory in the running environment.
You can check by checking 'collect statistics for optimization' during running the job. Also in the data flow, try changing from pageable cache to memory cache by right clicking and selecting properties. The below link give some details on caching, might be helpful.
https://wiki.sdn.sap.com/wiki/display/BOBJ/CachinginDI
Arun -
Hi Friends,
I Developed a Bdc Program which is Daily backgroud Job Scheduled, But in my Program I am using GUI_DOWNLOAD to download
the data which is in internal table to a flat file. Issue is the Background Job is failing, because iam using the FM-->GUI_DOWNLOAD
so, Please help me is there any way to download the internal table data to a Flatfile without using FM-->GUI_DOWNLOAD. or pls
help me with any links.
Regards,
Neetha
Moderator message: FAQ, please search for previous discussions of this topic.
Edited by: Thomas Zloch on Aug 4, 2011 12:03 PMThe issue was with RFC user Authorization.
-
Archive Complete, but delete job not scheduled. Issue with Archives now
As someone tried at work to schedule archive/delete process, we are finding issues now.
We have job scheduled for Archive but not delete. The job is archiving the messages, Meanwhile because of the growing disk space, folks deleted the archive files.
Now Archive is Complete, but with out Deletion.
So how do we start from scratch again
Also if I understood correctly after deleting the infostructure the session goes into error/red light since we can no longer build the related data from the archives due to the missing infostructures right?Dear friend of XI,
I fully understand the issue; sure you cannot use RSXMB_DELETE_ARCHIVED_MESSAGES as the archive files have been deleted.
Tha paradigma of archving is that once the write phase is complete the deletion phse must complete at any rate. As this is impossible for the deleted archive files there is no way in the standard to erase the incomplete archive runs from management overview in SARA. In case you would like to clear the entries in SARA please open an OSS message such that SAP can take a look into the affected system and evaluate an individual solution for you.
irrespective of whether you clear the management entries in SARA you can simply run another archive session. Please note that the interfaces action (field ITFACTION) reflects the action to be taken for an indivirual message. It does not depict a state, in particular it does not mean that the message has been archived already. The interface action is determined right when the mesage enters the Integration Server. Contrary, the information on whether the message has been archived alteady (or still needs to) is stored in a different statuis field.
Best regards,
Harald Keimer -
SIS package works in development environment but fails when job scheduler executes, file path invalid
Relatively simple package to get OLE-DB connection to MS FoxPro 9.0 DB
The failure in the job log states that the path is invalid its a network path (\\192.168.1.xxx\foldername) this has been run several ways with the remote computer being mapped as a network drive and through the \\ notation described above.
Thinking it was a security issue between the SQL agent account and my account I tested by subsitution myself as a proxy account for the agent when running this job, again same result failed on network path.
One issue I see is that the remote computer is running Server 2000 (legacy software incompatable with newer versions)
Is it possible that this is a security issue, since if i understand correctly the current MS domain security model didn't exist until Server 2003.Hi REIData,
Have you got the issue resolved? Based on your description, please make sure the target folder is shared properly. If the computer on which the SQL Server Agent job runs doesn’t join the domain as the server that hosts the shared folder, you have to share
the folder with everyone by adding “Everyone” to the people list on the File Sharing page of the folder and assign "Read/Write" permission to it.
Regards,
Mike Yin
TechNet Community Support -
hi,
In RAR I have a message in the Job Scheduler which says :
Job Scheduler Status: unknown error
therefore jobs are not working...
thanks for help me
actual config :
GRC AC 5.3 SP10
Edited by: Aurélien GARDE on Jan 21, 2010 3:18 PMHi Aurélien GARDE ,
I am not very clear about your question, however I am assuming that you are getting the error when running the Background Job , If this is the case ,please check following
1) http://:/sap/CCBgStatus.jsp - it should come up with status u201Crunningu201D
2) Check Analysis Engine Daemon Manager
Type URL http://:/sap/CCADStatus.jsp - it should come up with
status u201Crunningu201D By default you should see 3 bg job threads and 5 web services threads per server
Could you please let us know the findings ,If there is blank screen for step 2, then you need to apply note number 999785 , which will resolve your issue.
Thanks & Regards
Umashankar T -
Weblogic job scheduler not works in cluster
I have configured a cluster with two managed servers. I have configured a datasource for job scheduler for this cluster
if I shut down one server job does not start on other server of cluster.
manged server logs give below exception
Exception in thread "Thread-211" java.lang.NullPointerException
at com.mysql.jdbc.Statement$1.run(Statement.java:96)
If I remove the option 'datasource for job scheduler' in Clsuter->MyServer->scheduling , this exception goes.
job scheduler table weblogic_timers also remains empty.
I feel that there is some issue with the schema of weblogic_timers. How can I see something in log to know what is the issue.
Please help I am struggling from a week.I have configured a cluster with two managed servers. I have configured a datasource for job scheduler for this cluster
if I shut down one server job does not start on other server of cluster.
manged server logs give below exception
Exception in thread "Thread-211" java.lang.NullPointerException
at com.mysql.jdbc.Statement$1.run(Statement.java:96)
If I remove the option 'datasource for job scheduler' in Clsuter->MyServer->scheduling , this exception goes.
job scheduler table weblogic_timers also remains empty.
I feel that there is some issue with the schema of weblogic_timers. How can I see something in log to know what is the issue.
Please help I am struggling from a week. -
Application is not working due to memory issue
Hi Friesnds,
Kindly help me regarding settings in java. Scenario is like that. I have one server having two jboss versions (jboss-4.2.3 GA and jboss- 3.2.6). Each having java memory (JVM settings) 1 GB. The total memory of that server is 3 GB.
Problem is that every two days my application is not working due to memory issue. Once i freed the memory (through run the commands - (1). sync
(2). echo 3 > /proc/sys/vm/drop_caches
Application works fine.
I heared that the above command (echo 3 > /proc/sys/vm/drop_caches) can't run frequently because of server crash.
Kindly help me regarding this issue and provide the resolution.
Let me know if you need more information from my side.
Thanks
Ashish ShuklaAll of the above. I tested on 4 different networks and had no luck, I also had friends test my network and the other networks with their iPhones and all had no issues using FaceTime.
Also after I wiped my phone (erased all content and settings) I was able to successfully initiate a FaceTime call with no changes to my network and was also able to initiate another call when connected to another previously tested network that didn't work before. Once I restored from backup though, FaceTime stopped working again.
I did find this discussion: https://discussions.apple.com/thread/5163024?start=0&tstart=0
and tried the suggestions found there too. That discussion describes my issue I am having as well. -
How to correct internal memory issue
This is related to the standard SAP program SAPRCKM_MR11 in which there is one include RCKM_MR11F01 which contains a select statement :
SELECT *
INTO CORRESPONDING FIELDS OF TABLE t_bhistory
FROM v_ckmlgrir
WHERE bukrs EQ p_bukrs
AND ebeln IN r_ebeln
AND ebelp IN r_ebelp
AND lifnr IN r_lifnr
AND ekorg IN r_ekorg
AND ekgrp IN r_ekgrp
AND werks IN r_werks
AND bedat IN r_bedat
AND bsart IN r_bsart
AND bstyp IN ht_bstyp
AND vgabe IN ('1', '2', '3') "Wareneingang/Rechnung/Nachbel.
AND loekz_k NE 'L' "Loeschkz. Bestellkopf
AND loekz_p NOT IN ('L', 'S') "Loeschkz. Bestellposition
AND ( frgrl EQ space "Freigabe unvollständig
OR frgrl IS NULL )
AND ( memory EQ space "Bestellung noch nicht komplett
OR memory IS NULL ) "falls Feld nicht initialisiert
AND ( xwoff EQ space "Wertbildung offen
OR xwoff IS NULL ) "falls Feld nicht initialisiert
bei Dienstleistungsbestellungen werden mehrfach kontierte
Bestell-Pos. gegen das WE/RE-Konto gebucht, deshalb dürfen
mehrfach kontierte Pos. nicht generell überlesen werden.
AND vrtkz EQ space "keine Mehrfachkontierung
AND wepos EQ 'X' "Wareneingang wird erwartet
AND repos EQ 'X' "Rechnung wird erwartet
AND weunb EQ space "Wareneingang unbewertet
AND stapo EQ space. "Item is not statistical
There is one job FMT612P which contains this standard program and the job is going to abend
because of the select statement given above which is because of some memory issue with the internal table t_bhistory, please give us a suggestion how we can avoid the same.Hi,
I am also facing the same issue. We had copied this report into a custom report and are trying to improve performance by breaking the view into separate queries on EKKO, EKPO and EKBE.
Can someone advise the best way to deal with this view v_ckmlgrir or a best approach to break down the view into separate queries.
Thanks
Edited by: Shreyas Shrikant Kulkarni on Jun 29, 2009 4:56 PM -
Error in Backup job scheduling in DB13
Hi All
Backup job scheduled in DB13 kicks error ,I am using Oracle as database and ERP6.0
database and application are on diffrent servers.Before it was working fine,I didn't changed any password
I can run backupjob sucessfully directly from BRtools on database server.Please provide any hint
Job started
Step 001 started (program RSDBAJOB, variant &0000000000060, user )
No application server found on database host - rsh/gateway will be used
Execute logical command BRBACKUP On host DLcSapOraG08
Parameters:-u / -jid INLOG20090120204230 -c force -t online -m incr -p initerd.sap -w use_dbv -a -c force -p in
iterd.sap -cds -w use_rmv
BR0051I BRBACKUP 7.00 (31)
BR0128I Option 'use_dbv' ignored for 'incr'
BR0055I Start of database backup: bdztcorv.ind 2009-01-20 20.42.31
BR0484I BRBACKUP log file: D:\oracle\ERD\sapbackup\bdztcorv.ind
BR0280I BRBACKUP time stamp: 2009-01-20 20.42.32
BR0301E SQL error -1017 at location BrDbConnect-2, SQL statement:
'CONNECT /'
ORA-01017: invalid username/password; logon denied
BR0310E Connect to database instance ERD failed
BR0280I BRBACKUP time stamp: 2009-01-20 20.42.32
BR0301E SQL error -1017 at location BrDbConnect-2, SQL statement:
'CONNECT /'
ORA-01017: invalid username/password; logon denied
BR0310E Connect to database instance ERD failed
BR0056I End of database backup: bdztcorv.ind 2009-01-20 20.42.32
BR0280I BRBACKUP time stamp: 2009-01-20 20.42.32
BR0054I BRBACKUP terminated with errors
BR0280I BRBACKUP time stamp: 2009-01-20 20.42.32
BR0291I BRARCHIVE will be started with options '-U -jid INLOG20090120204230 -d disk -c force -p initerd.sap -cds -w use_rmv'
BR0002I BRARCHIVE 7.00 (31)
BR0181E Option '-cds' not supported for 'disk'
BR0280I BRARCHIVE time stamp: 2009-01-20 20.42.33
BR0301W SQL error -1017 at location BrDbConnect-2, SQL statement:
'CONNECT /'
ORA-01017: invalid username/password; logon denied
BR0310W Connect to database instance ERD failed
BR0007I End of offline redo log processing: adztcorw.log 2009-01-20 20.42.32
BR0280I BRARCHIVE time stamp: 2009-01-20 20.42.33
BR0005I BRARCHIVE terminated with errors
BR0280I BRBACKUP time stamp: 2009-01-20 20.42.33
BR0292I Execution of BRARCHIVE finished with return code 3
External program terminated with exit code 3
BRBACKUP returned error status E
Job finishedHi,
not sure if the recommendations given will address this issue.
You are getting this error:
BR0301E SQL error -1017 at location BrDbConnect-2, SQL statement:
'CONNECT /'
ORA-01017: invalid username/password; logon denied
the log file indicates:
> No application server found on database host - rsh/gateway will be used
This indicated that the user that is connecting from the AS to the DB server is not properly configured to perform the DB tasks on it.
So, first question would be to know if you have configured a gateway on the DB server and how, or if you are using remote shell.
Second question, you can do backups on the DB server.
> I can run backupjob sucessfully directly from BRtools on database server
How did you run exactly the backup job (what is the exact command line, what is the exact OS user that executed it)?
What is the OS of the DB server?
I have reread your post, your OS is windows therefore you fall in the "typical" error in Windows.
You have executed your backup as <sid>ADM and it works. Unfortunatelly, in windows, SAP is exectuted by SAPSERVICE<sid>, and this is the user who should be connecting to your DB server, and this is the user who cannot execute the backup.
The fact that you can run the backup with <sid>ADM in Windows does not means that you have SAPService<sid> properly configured.
For the error (see before) I think your ops$ user for this user is not properly configured in the DB server. take a look at the note mentioned by KT and pay attention to the SAPSERVICE<sid> configuration
Edited by: Fidel Vales on Jan 24, 2009 12:45 AM -
Background job schedule and mail triggering
Hi Experts,
I schedule a background job to run a custom program for project closure.The job is running successfully. But,the mail I am getting from this job run is same all the time (means it's showing same project closure again and again though I am running job for different projects). Is it some bug in our custom program or any parameters required to be check in job schedule?
Kindly suggest.
Thanks & Regards
SaurabhYes. That is the point I am missing. Just one 'date' is checked and project is taken into account for the custom program and after its successful run the mail is sent to users.
And when the same program I am assigning in SM36,it is actually running the program accurately for project/s but sending the same mail which it send for very first project earlier.
Can you please guide me on the way to create these variants?
You will need to Save different variants for different projects and then assign the variants with your job.
Will it be required to create variant again and again and assign different projects individually? As, we are not sure that which project is gonna be created in future. So, need guideline how these variants can help me to sort out the e-mail issue.
Regards
Saurabh -
Job scheduling failed because the user has no permission to access this rep
Hi. I've OBIP 10.1.3.4.1.
When I launch a print with the scheduler I see this error:
oracle.apps.xdo.servlet.scheduler.ProcessingException: Job scheduling failed because the user has no permission to access this report. [REPORT_URL]=[folderreport/report/report.xdo], [USERNAME]=[administrator]
at oracle.apps.xdo.servlet.ui.scheduler.SchedulerServlet.scheduleJob(SchedulerServlet.java:1140)
at oracle.apps.xdo.servlet.ui.scheduler.SchedulerServlet.doPost(SchedulerServlet.java:295)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
at oracle.apps.xdo.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:100)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
In this env. I've a LDAP Security Model and all the report and all the users work.Please check whether you have assigned below responsibility to the user trying to schedule report.
XMLP_SCHEDULER -
What is the spool, what is its role in background job scheduling
Hi,
I want to know what is meant by Spool request and spool number generated.
Tell about transaction SP01.
How it is linked to Background job scheduling.
thanks.
sam.Hi,
Refer this link.
https://www.sdn.sap.com/irj/sdn/inf?rid=/library/uuid/7a5f4061-0a01-0010-c9bc-a4e4cb100438
About SP01.
Printing does not work in SAP. There is a printer definition for your local printer, but it does not work. Presuming that you use the program SAPLPD on your computer.
Boot your computer and start only the SAPLogon and the SAPLpd program.
Delete all of your old print jobs in the SAP system (Transaction SP01).Generate only one new print job.
Check that there is enough resource in your computer. Check the free memory (Win 3.1x) and the free disk space (The lists are temporarily saved on your disk).
Open the SAPLPD and read the print log in the window. The printer definition must correspond with the parameters shown here.
Check that the standard printer is on the same lpt (Win 3.1: Control panel, Printer) as defined for the printer (usually lpt1).
In Transaction SP01 read the protocol of your print job. Do not generate new print jobs! Wait till the SAP system changes the status of the print job.
If you can not find the print job in SP01 anymore, then the print job was successfully printed out. If it didn't come out on your printer and the SAPLpd didn't indicate an incoming print job, then the connection was realised with another PC. Then SAP printer definition you used, does not correspond with your computer.
Scheduling Background Jobs:
1. Background jobs are scheduled by Basis administrators using transaction SM36.
2. To run a report in a background, a job needs to be created with a step using the report name
and a variant for selection parameters. It is recommended to create a separate variant for each
scheduled job to produce results for specific dates (e.g. previous month) or organizational units (e.g.
company codes).
3. While defining the step, the spool parameters needs to be specified
(Step-> Print Specifications->Properties) to secure the output of the report and help authorized users
to find the spool request. The following parameters needs to be maintained:
a. Time of printing: set to u201CSend to SAP spooler Only for nowu201D
b. Name u2013 abbreviated name to identify the job output
c. Title u2013 free form description for the report output
d. Authorization u2013 a value defined by Security in user profiles to allow those users to access
this spool request (authorization object S_SPO_ACT, value SPOAUTH). Only users with matching
authorization value in their profiles will be able to see the output.
e. Department u2013 set to appropriate department/functional area name. This field can be used in
a search later.
f. Retention period u2013 set to u201CDo not deleteu201D if the report output needs to be retained for more
than 8 days. Once the archiving/document repository solution is in place the spool requests could
be automatically moved to the archive/repository. Storage Mode parameter on the same screen
could be used to immediately send the output to archive instead of creating a spool request.
Configuring user access:
1. To access a report output created by a background job, a user must have at
least access to SP01 (Spool requests) transaction without restriction on the user
name (however by itself it will not let the user to see all spool requests). To have
that access the user must have S_ADMI_FCD authorization object in the profile with
SPOR (or SP01) value of S_ADMI_FCD parameter (maintained by Security).
2. To access a particular jobu2019s output in the spool, the user must have
S_SPO_ACT object in the profile with SPOAUTH parameter matching the value used
in the Print Specifications of the job (see p. 3.d above).
3. Levels of access to the spool (display, print once, reprint, download, etc) are
controlled by SPOACTION parameter of S_SPO_ACT. The user must have at least
BASE access (display).
On-line reports:
1. Exactly the same configuration can be maintained for any output produced
from R/3. If a user clicks u201CParametersu201D button on a SAP Printer selection dialog, it
allows to specify all the parameters as described in p. 3 of
u201CScheduling background jobsu201D section. Thus any output created by an online report
can be saved and accessed by any user authorized to access that spool request
(access restriction provided by the Authorization field of the spool request
attributes, see p. 3.d of u201CScheduling background jobsu201D section).
Access to reportu2019s output:
1. A user that had proper access (see Configuring user access above) can
retrieve a job/report output through transaction SP01.
2. The selection screen can be configured by clicking u201CFurther selection
criteriau2026u201D button (e.g. to bring u201CSpool request name (suffix 2)u201D field or hide other
fields).
3. The following fields can be used to search for a specific output (Note that
Created By must be blank when searching for scheduled jobu2019s outputs)
a. Spool request name (suffix 2) u2013 corresponds to a spool name in p. 3.b in
u201CScheduling background jobsu201D section above).
b. Date created u2013 to find an output of a job that ran within a certain date range.
c. Title u2013 corresponds to spool Title in p. 3.c in u201CScheduling background jobsu201D
section above).
d. Department - corresponds to spool Department in p. 3.e in u201CScheduling
background jobsu201D section above).
4. Upon entering selection criteria, the user clicks the Execute button to
retrieve the list of matching spool requests.
5. From the spool list the user can use several function such as view the
content of a spool request, print the spool request, view attributed of the spool
request, etc. (some functions may need special authorization, see p.3 in
Configuring user access)
a. Click the Print button to print the spool request with the default attributes
(usually defined with the job definition). It will print it on a printer that was
specified when a job was created.
b. Click the u201CPrint with changed attributedu201D button to print the spool request
with the different attributes (e.g. changing the printer name).
c. Click the u201CDisplay contentsu201D button to preview the spool request contents. A
Print and Download functions are available from the preview mode.
Exporting the Contents of a Spool Request
Use
You want to export the contents of a spool request as a text file to the SAP GUI working directory or to a directory of your choice. The content of the spool request is downloaded as plain text without, for example, graphics, images, or specific fonts.
The following procedures are irrelevant for the PDF-based form printing integrated as of SAP Web Application Server 6.40, since the print data can be opened and stored as a PDF. See also Displaying and Printing PDF-Based Forms.
Procedure
Exporting to the SAP GUI Working Directory:
Choose Spool Request ® Forward® Export as Text.
The entire text is stored in your SAP GUI working directory in ASCII format.
A file of this type is named using the following pattern:
.txt
Example: ABC0000004327.txt
You require appropriate authorization for this function.
Exporting to a Directory of Your Choice:
With this method of exporting a spool request, the content of the spool request is first displayed and you then download the screen list as a text file to the directory of your choice.
1. Select the spool request to be exported and choose Display Contents.
2. In the case of SAPScript/Smart Forms documents, activate list display by choosing Goto.
3. Choose System ® List ® Save ® Local File.
4. Choose one of the available formats and confirm your choice.
5. Choose a directory and save the spool request.
By default, only the first 10 pages of a spool request are saved in a file. You can increase the number of pages to be saved by choosing Goto ® Display Requests ® Settings and making the desired entries in the Display Area group box. -
IPod Nano 5th Gen memory issues?
Hello. My iPod Nano 5th gen is great, and I've been able to use it for 2 years now, and it serves me well. Perfect condition since the day I got it. However, there are some memory issues...
First off, I have only two recorded videos totaling 1 minute and 29 seconds, so it shouldn't take up much memory at all. And I don't have any other videos on my iPod either.
Well, when I go to "About" under "Settings", then it always says that there are only 902 MB left, and it's an 8 GB. What's weirder is that it says that 6.1 GB are being used my audio, and I only have 712 songs. When I select all of the songs that are on my iPod on my PC, then it tells me that it totals to only 3.53 GB. Kinda weird, and I really need this extra space now.
Secondly, I should tell you that I don't use iTunes to syncronize my iPod. I use a third-party program called CopyTrans Manager because it's simpler, easier to navigate, and faster in my opinion. Idk what it is, but it's bothering me. Hopefully some of you can tell me where I can go to eliminate these issues and finally get my iPod back to better use and full memory.
Help me please. I don't know where to go next...
Thankee.I don't use iTunes to syncronize my iPod. I use a third-party program called CopyTrans Manager
Contact the manufacturer. Check with them to determine if the issue is with them.
Maybe you are looking for
-
How can i remove a card from iTunes ?
How can i remove a card from iTunes ?
-
I can no longer open .pdf files in Firefox 4
Ever since I moved to the beta version of Firefox 4, I have lost the ability to view .pdf files in Firefox. I was convinced this was a problem totally with Firefox, but at around the same time I upgraded from an old G4 PPC laptop to a new Macbook Pro
-
A problem changing applet's background colour
Hi there, I'm hoping somebody can help me with what I believe to be a problem I have in changing the background colour of an applet, the source code of which is posted below. If super.paint(g); is commented out, the background of the applet will be c
-
Removing duplicates in the Internal Table
Dear friends, Could any one of you kindly help me with a code to delete the duplicates in the internal table, but each duplicate should be counted, how many times that appeared and should be displayed again as a report with the messages and no of t
-
Elgato Turbo.264?
So I am looking into expanding my mac mini for use of audio and video editing. I have used my mini for about a year now for doing professional audio editing in Logic Express and have found it just dandy, still do. But my 80GB internal harddrive was g