Ideas on running a batch of threads?

Hi All,
I have a class which makes system calls. However, sometimes it is ok to wait for the method to finish, but then sometimes it would be much more efficient to make multiple calls at the same time and wait for them all to finish. So I wanted to augment my SystemCaller class such that it has the ability to do both, and the usage of this class would be very simple and not require much coding from a user point of view.
I'm just wondering if anyone had any other suggestions to this?
Here is a comparison:
This is the normal way, which may be ok in some cases for my app:
// No suprises, just init an object and make the call.
SystemCaller systemCaller1 = new SystemCaller();
SystemCaller systemCaller2 = new SystemCaller();
// Since each one runs in turn, it will take 2
// seconds to complete
systemCaller1.sleep(1000);
systemCaller2.sleep(1000);And this would be the more efficient way:
SystemCaller systemCaller1 = new SystemCaller();
SystemCaller systemCaller2 = new SystemCaller();
// Inform the class that when a method is called, do NOT execute the
// command.  Save the command and just return null.
systemCaller1.setRunnable(true);
systemCaller2.setRunnable(true);
// Because boolean is set, the command is not executed right here. Instead
// the command string will be saved and these methods return null.
systemCaller1.sleep(1000);
systemCaller2.sleep(1000);
// Now set up our batch job.
Thread thread1 = new Thread(systemCaller1);
Thread thread2 = new Thread(systemCaller2);
// Begin actual execution
thread1.start();
thread2.start();
// It doesn't make sense in our program to continue until all jobs are done.
// This coding method will only take 1 second instead of 2.
thread1.join();
thread2.join();In the second example, the time to execute would be cut in half because both commands are executed simultaneously. Here is what the execute method would look like:
public class SystemCaller implements Runnable {
public Result sleep(int msec) {
        this.systemCall = new SystemCall();
        this.executeCmd = "sleep " + msec;
        if(!runnable) {
            // Execute the command NOW and return the result.
            Result result = systemCall.execute(cmd);
            return result.getStdout();
        else {
            //The command string is saved for later execution. Do nothing.
            return null;
}Thanks for any comments. I just wanted to work out this idea and see if anyone would shoot it down with something better.

Yes, I do want the class to be two things at once.
The first suggestion with the code sample seems interesting. You mentioned that it wouldn't be friendly from an external/user point of view? It doesn't seem any more unfriendly that what I had.
I like the idea in the sense that I can setup my command to run, but the command is not executed until I call getResult(). So usage would be like this (I'm using an example. Assume it takes the system a long time to print out "Hello World" :-).
// Create objects - no suprise
SystemCaller systemCaller1 = new SystemCaller();
SystemCaller systemCaller2 = new SystemCaller();
// Although we call the function here, it is not executed until
// we call getResult();
systemCaller1.echoCmd("Hello world!");
systemCaller2.echoCmd("Hello world!");
// Here is where the actual call is made
Result result1 = systemCaller1.getResult();
Result result2 = systemCaller2.getResult();
// Same old...
SystemCaller systemCaller1 = new SystemCaller();
SystemCaller systemCaller2 = new SystemCaller();
// Prepare the commands to run
systemCaller1.echoCmd("Hello world!");
systemCaller2.echoCmd("Hello world!");
// Wrap them in a thread. Since SystemCaller implements
// the run() method, it will be called automatically when
// we start.
Thread thread1 = new Thread(systemCaller1);
Thread thread2 = new Thread(systemCaller2);
thread1.start();
thread2.start();
thread1.join();
thread2.join();
// The results are waiting, so just get it.
Result result1 = systemCaller1.getResult();
Result result2 = systemCaller2.getResult();MMmmm, thanks for all the comments. If anyone cares to elaborate, feel free.

Similar Messages

  • Running batches of threads at regular intervals

    My requirement is to run a batch of threads, one after the other, at regular intervals. The idea is to get a summary of each batch at the completion of the same. The interval between two batches of threads is less than the time a batch takes to execute completely. Since I need the summary at the end of each batch, I am using a join() statement to wait for completion of all threads in that batch.
    Each batch is in turn a thread.
    The problem arises when I want to start these batches at intervals which are less than the time a batch would take to execute. Any pointers on how to tackle this?

    You could have a main thread for each batch which holds all the Threads for the work in a collection then, once it's launched them all it simply runs through the collection of Threads joining each (order is irrelevant, since if you call join on a thread that's already finished it returns immediately. Once all the worker threads have been joined the batch thread outputs the summary.
    You probably need to ensure that the summaries don't interleave on your output. You can achieve this simply by making the report delivery section of the batch thread synchronized on some common object.

  • Running a batch process (via thread) in java

    Friends I have gone thru 2 books of java and everywhere it says
    that
    1) the main thread is the one from which other child threads will
    be spawned.
    2)Main thread must be the last thread to finish execution.When the main thread stops,your program terminates.
    Then I am wondering how it works in my case (albeit with little unpredictably !)
    I have this JSP and java application.I throw this JSP and pressing a Submit button I execute a java method in Myclass.java.
    If the book is true then this should not work.But it works.
    Note that I am using Apache server.
    please help.
    Myjsp.jsp
    processSubmission(true)
    class Myclass implements runnable
    public void processSubmission(boolean background) throws Exception
    if (background) {
    Thread oThread = new Thread(this);
    oThread.setDaemon(false);
    oThread.start();
    message = "submission being processed in the background";
    return;
    my huge batch processing java codes.
    public void run()
    try
    processSubmission(false);
    catch(Exception e)

    Friends I have gone thru 2 books of java and
    everywhere it says
    that
    1) the main thread is the one from which other child
    threads will
    be spawned.
    2)Main thread must be the last thread to finish
    execution.When the main thread stops,your program
    terminates.
    No.
    Your program stops when all of the non-daemon threads exit or if the application is explicitly exited - via System.exit().
    Even if you substitute daemon for 'child' in the above it still does not apply.
    From the java docs
    The Java Virtual Machine exits when the only threads running are all daemon threads.
    It doesn't say anything about a 'main' thread. And specifically it is likely that all of your threads will be done before the daemon threads have stopped. So it is much more likely that any 'main' threads will stop first and then the daemon threads stop (I can't see it happening any other way.)
    Even so I would not rely on execution ordering threads for any purpose. If you need execution ordering then you must explicitly provide for it in your code.

  • Unable to run a Batch File Operating System Command

    Using XI 3.0, I am unable to run a Batch File Operating System Command After Message Processing.
    My Batch file:
    gpg -se -r BOA3RSKY --armor --passphrase-fd 0 %1 < C:\Progra~1\GNU\GnuPG\gpgin
    My Command Line (ID scenario)
    exec "cmd.exe /c C:\Progra~1\GNU\GnuPG\boagpg.bat %F"
    If I execute
    exec "cmd.exe /c type C:\Progra~1\GNU\GnuPG\boagpg.bat >xis.txt"
    It displays the contents of boagpg.bat file in xis.txt.
    I just don't understand why when I run the batch file, I would expect an %F.asc encrypted file in the same directory as the %F unencrypted file.
    Any ideas?
    or will I need Basis to create commands that will allow me to run GPG from XI Command Line?

    Check this links if its helpful
    http://help.sap.com/saphelp_nw04/helpdata/en/bb/c7423347dc488097ab705f7185c88f/frameset.htm
    /people/sap.user72/blog/2004/01/30/command-line-help-utility
    Check this thread a similar problem
    Process Integration (PI) & SOA Middleware
    Note 841704 - XI File & JDBC Adapter: Operating system command
    http://service.sap.com/sap/support/notes/841704
    Try to see the below links
    /people/michal.krawczyk2/blog/2005/08/17/xi-operation-system-command--error-catching
    OS Command on FTP
    OS command line script - Need help
    FTP - Run OS Command before file processing
    Note: reward points if solution found helpfull
    Regards
    Chandrakanth.k

  • Problems Force Running a batch file

    Hi There,
    I am trying to force-run a batch file to copy files from a local NBO Appliance to the C:\tmp directory on the user's workstation. The batch file lives at c:\tmp\branding.bat.
    I cant get the batch file to force run. Zen reporting advises that the batch file has distributed and launched successfully, however the files do not copy.
    However, if i click on the icon for the batch file app - the files copy no problem. I have tried running Workstation Associated and (Unrestricted) User Associated as well as Workstation - Force Run as User.
    Path to executable file:
    %*WinSysDir%\cmd.exe
    Parameters:
    /c "c:\tmp\branding.bat"
    Any ideas? The batch file has to refer to the P: drive as the application covers 40 different sites each with their own appliance containing source files.
    Running NBO2 - ZFD 4 Agent 4.0.1.60 - Clientless
    Desktop XP Workstations
    Thanks
    Thax

    Have the app object copy the batch file to the hard drive from the
    server and then run it locally. This should work with a Middle Tier server.
    thax wrote:
    > Hi there,
    >
    > I cant use the actual server name as this is an application which runs
    > through a middle tier server for multiple NBO sites so therefore needs to
    > use the P: reference...
    >
    >>>> kokoo<[email protected]> 9/03/2006 12:37 >>>
    >
    > TRY edit Scrirts:
    > #\\FS_SERVER_name\VOL\BATCH.BAT
    >
    > edit batch file:
    > xcopy "p:\nal\wxp\ZenPolicies\Branding\*.*" "C:\tmp\ZenPolicies\Branding\"
    > /s /v /e /y
    > ==>
    > xcopy p:\nal\wxp\ZenPolicies\Branding\*.* C:\tmp\ZenPolicies\Branding\ /s
    > /v /e /y
    >
    > "thax" <[email protected]>
    > *******:[email protected]...
    > Hi Jeremy,
    >
    > xcopy "p:\nal\wxp\ZenPolicies\Branding\*.*" "C:\tmp\ZenPolicies\Branding\"
    > /s /v /e /y
    > pause
    >
    > Thax
    >
    > >>> Jeremy Mlazovsky<[email protected]> 8/12/2005 00:20
    >
    > Can we see the contents of your batch file?
    >
    > thax wrote:
    > > Hi There,
    > >
    > > I am trying to force-run a batch file to copy files from a local NBO
    > > Appliance to the C:\tmp directory on the user's workstation. The batch
    >
    > > file lives at c:\tmp\branding.bat.
    > >
    > > I cant get the batch file to force run. Zen reporting advises that the
    >
    > > batch file has distributed and launched successfully, however the files
    >
    > > do not copy.
    > >
    > > However, if i click on the icon for the batch file app - the files copy
    >
    > > no problem. I have tried running Workstation Associated and
    > > (Unrestricted) User Associated as well as Workstation - Force Run as
    > User.
    > >
    > >
    > > Path to executable file:
    > >
    > > %*WinSysDir%\cmd.exe
    > >
    > > Parameters:
    > >
    > > /c "c:\tmp\branding.bat"
    > >
    > > Any ideas? The batch file has to refer to the P: drive as the
    > > application covers 40 different sites each with their own appliance
    > > containing source files.
    > >
    > > Running NBO2 - ZFD 4 Agent 4.0.1.60 - Clientless
    > >
    > > Desktop XP Workstations
    > >
    > > Thanks
    > >
    > > Thax
    > >
    >
    >
    Jeremy Mlazovsky
    Senior System Engineer - Enterprise Desktop
    UDit-Central Hardware Systems & Network Storage
    University of Dayton
    http://forge.novell.com/modules/xfmod/project/?udimage
    http://vmpconfig.sourceforge.net/
    http://regeditpe.sourceforge.net

  • Running a Batch File on another Server with an Oracle Job

    hi, i have the following code
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
    job_name => 'test_job_bat',
    job_type => 'EXECUTABLE',
    job_action => '\\10.1.1.63\test\test.bat',
    enabled => true,
    comments => 'test bat'
    END;
    So i want to run a batch file, which lies on another pc in the network
    The code runs, without a failure.
    The bat file just contains "MD D:\bla" .
    When i run the code, no bla directory is created, so it seems that the batch file never ran.
    i approved read/write on the test folder. (Windows 7 machine)
    any ideas?
    Edited by: user1067632 on 31.05.2010 05:03
    in dba_scheduler_job_run_details the job is listed as FAILED:
    ORA-27370: Job-Unterprozess konnte einen Job vom Typ EXECUTABLE nicht starten
    ORA-27300: BS-abhängiger Vorgang accessing execution agent mit Status: 2 nicht erfolgreich
    ORA-27301: BS-Fehlermeldung: Das System kann die angegebene Datei nicht finden.
    ORA-27302: Fehler aufgetreten bei: sjsec 6a
    ORA-27303: Zusätzliche Informationen: Das System kann die angegebene Datei nicht finden.
    Edited by: user1067632 on 31.05.2010 05:16

    ok sorry, i made my testjob run, the OracleJobScheduler was not started.
    But now i ran into an another Problem.
    Now i want to java bla.jar in my batch, and got that new error
    ORA-27369: Job vom Typ EXECUTABLE nicht erfolgreich mit Exit-Code: Unzulässige Funktion.
    STANDARD_ERROR="Unable to access jarfile start.jar"
    anything to consider when accessing .jar files in my batch?
    edit:
    there was a classpath problem.
    Edited by: ginkgo on 01.06.2010 04:29

  • RE: Reporting after many forte tasks run in batch mode?

    Actually, if you're looking for MAKEAPPDISTRIB (I assume that's how you
    create distributable) you can see if the command was succesfull or not.
    <<deployrep.js>> This Jscript will look for this string and it will
    generate a report based on the next line in the log file.
    The script assumes you have an environment variable (DESCARTES_ROOT) that
    points to a folder (let's say "D:\TEST"). Under that folder you have a log
    folder ("d:\test\log") which holds the deploy.log log file. You can easily
    change the script to reflect your systems settings.
    The generated report looks like that : <<deployrep.txt>>
    Norocel Popa
    Forte SysEng
    (519)746-8110 x 2292
    -----Original Message-----
    From: [email protected] [mailto:[email protected]]
    Sent: Tuesday, March 16, 1999 11:58 AM
    To: Forte-Users (Adresse de messagerie)
    Subject: Reporting after many forte tasks run in batch mode ?
    Hi,
    I would like to know if overnight builds went okay, and therefore need to
    parse the log(s).
    The issue is that I don't have a proper string to look for (i.e. for
    grep).
    If I consider 'ERROR", then the following message won't be understandable.
    There might a way to cheat with the indentation (i.e. the lines with only
    two first blank chars)..
    Has anyone experimented such a need ?
    J-Paul Gabrielli
    DTS
    SYSTEM ERROR: Service object MySuperApplicationServer.MySuperMgrSO has
    not been partitioned. Therefore, you cannot move it to an existing
    partition.
    Class: qqsp_UsageException
    Error #: [1602, 606]
    Detected at: qqcf_StandardConfig::MoveServiceObject at 3
    Error Time: Tue Mar 16 17:39:26
    Exception occurred (locally) on partition "Fscript_cl9_Client",
    (partitionId = B84E6180-D639-11D2-82F2-1863030AAA77:0x244:0x1,
    taskId =
    [B84E6180-D639-11D2-82F2-1863030AAA77:0x244:0x1.1]) in application
    "fscript", pid 22713 on node rambo in environment SuperEnv.

    Hi,
    To trap error message from Forte log, I usually do this
    egrep '(EXCEPTION|Exception|exception|ERROR|Error|error)' filename
    This takes a regular expression to 'egrep' all occurrences of "exception" or
    "error" not matter they are in upper case or lower case.
    Hope this help.
    Regards,
    Peter Sham.
    -----Original Message-----
    From: [email protected] [SMTP:[email protected]]
    Sent: Wednesday, March 17, 1999 12:58 AM
    To: Forte-Users (Adresse de messagerie)
    Subject: Reporting after many forte tasks run in
    batch mode ?
    Hi,
    I would like to know if overnight builds went okay, and
    therefore need to parse the log(s).
    The issue is that I don't have a proper string to look for
    (i.e. for grep).
    If I consider 'ERROR", then the following message won't be
    understandable.
    There might a way to cheat with the indentation (i.e. the
    lines with only two first blank chars)..
    Has anyone experimented such a need ?
    J-Paul Gabrielli
    DTS
    SYSTEM ERROR: Service object
    MySuperApplicationServer.MySuperMgrSO has
    not been partitioned. Therefore, you cannot move it to an
    existing partition.
    Class: qqsp_UsageException
    Error #: [1602, 606]
    Detected at: qqcf_StandardConfig::MoveServiceObject at 3
    Error Time: Tue Mar 16 17:39:26
    Exception occurred (locally) on partition
    "Fscript_cl9_Client",
    (partitionId =
    B84E6180-D639-11D2-82F2-1863030AAA77:0x244:0x1, taskId =
    [B84E6180-D639-11D2-82F2-1863030AAA77:0x244:0x1.1]) in
    application
    "fscript", pid 22713 on node rambo in environment
    SuperEnv.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

  • Displaying the correct value of Y in page X of Y when running a batch

    Hi There
    Does anyone know how I can re-set the Y of page X of Y in the footer for each PO when running a batch?
    I am using <?for-each@section:G_HEADERS?> which is working great for each PO - re-setting the PO number in the header and re-setting the X in page X of Y in the footer for each PO, but unfortunetly the Y is set to the maximum number of pages of the first PO. I.e. If the first PO have 5 pages then each PO after that will have a Y set to 5 even if they have less or more pages.
    Does anyone know what I can do to get round this?
    I am running version 5
    Regards
    Ruth

    OK I don't have the time to try it out - here just the solution idea.
    1) XSL allows you to have links that gets the page number of an object with an id.
    This is used for example in our table of contents.
    2) You create a link to an object (empty fo-block) on the last page.
    3) The problem is that each of the objects for each of the sections needs a seperate
    identifier otherwise you have the same bug that 5.0 has.
    4) You use i.e. the position() from the loop (@section loop) to concatanate it to the id.
    Total Page Number
    <fo:page-number-citation ref-id="MY_KF_END_OF_PAGE{position()}" />
    End of Page reference
    <fo:inline id="MY_KF_END_OF_PAGE{position()}" />
    You may have to save the position in a varaible - be careful to use the correct
    context - probably incontext - check the user guide on contexts.... I would need
    to play with the context for the variable myself.
    Hope that helps.

  • Attaching a document from program running in batch

    Hi experts,
    i need to find a way, to attach a document (e. G. a CV) to an applicant via object services. Problem is, the document will be provided by a program, running in batch-mode without front-end access. I tried to debug the manual action, but unsuccessful.
    My initial idea was, to find out what happens directly after uploading and then using the same function modules in my prog.
    Shed your light on me please.
    regards
    Jörg

    Hi Jorg,
    In a way when the batch job runs it polls that document and you need to attach that doc to an applicant. Firstly , I don't know whether debugging can help. But normally I had almost the same situation wherein I needed to change something to the file that was being used by the batch job and I didn't know where the file was.
    There's a T-Code 'FILE' that I had used which gives you the location of all the files from where the batch job or the program picks them whenever they get executed.
    But in my case even this didn't help. Then I had to ask the respective guys as to where it was stored. Maybe you could try the above t-code or if you do have time, again check using de-bugging for any logical path mentioned in the code.
    Please let me know if this could help.

  • We are running 3 batches parallel(a.ksh,b.ksh,c.ksh parallel ) .if a.ksh will complete then d.ksh will start('d' start when 'a' will terminate successfully) and we have to handle error for all jobs ( if some job got aborted during runtime) ?

    we are running 3 batches parallel(a.ksh,b.ksh,c.ksh parallel ) .if a.ksh will complete then d.ksh will start('d' start when 'a' will terminate successfully) and we have to handle error for all jobs ( if some job got aborted during runtime) ?

    Moderator Action:
    You already asked this question, two days earlier.
    https://forums.oracle.com/thread/2585158
    Stay with your original post.   Deliberate multiple posting is the same as spamming the forums.
    This new post is locked.

  • Reporting after many forte tasks run in batch mode ?

     

    Hi,
    To trap error message from Forte log, I usually do this
    egrep '(EXCEPTION|Exception|exception|ERROR|Error|error)' filename
    This takes a regular expression to 'egrep' all occurrences of "exception" or
    "error" not matter they are in upper case or lower case.
    Hope this help.
    Regards,
    Peter Sham.
    -----Original Message-----
    From: [email protected] [SMTP:[email protected]]
    Sent: Wednesday, March 17, 1999 12:58 AM
    To: Forte-Users (Adresse de messagerie)
    Subject: Reporting after many forte tasks run in
    batch mode ?
    Hi,
    I would like to know if overnight builds went okay, and
    therefore need to parse the log(s).
    The issue is that I don't have a proper string to look for
    (i.e. for grep).
    If I consider 'ERROR", then the following message won't be
    understandable.
    There might a way to cheat with the indentation (i.e. the
    lines with only two first blank chars)..
    Has anyone experimented such a need ?
    J-Paul Gabrielli
    DTS
    SYSTEM ERROR: Service object
    MySuperApplicationServer.MySuperMgrSO has
    not been partitioned. Therefore, you cannot move it to an
    existing partition.
    Class: qqsp_UsageException
    Error #: [1602, 606]
    Detected at: qqcf_StandardConfig::MoveServiceObject at 3
    Error Time: Tue Mar 16 17:39:26
    Exception occurred (locally) on partition
    "Fscript_cl9_Client",
    (partitionId =
    B84E6180-D639-11D2-82F2-1863030AAA77:0x244:0x1, taskId =
    [B84E6180-D639-11D2-82F2-1863030AAA77:0x244:0x1.1]) in
    application
    "fscript", pid 22713 on node rambo in environment
    SuperEnv.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

  • VB script to run a batch script as admin

    I have batch script the I need to run as an administrator, I created a VBscript wrapper that calls a runas and runs my batch file, however the batch file is not being elevated high enough on Windows 7 and Vista, it works fine on XP.  The batch script
    needs to create a folder in Program files, and copy the necessary files, install several programs, as well as make several registry key changes.  If I am logged in as a user with admin rights, right click on the batch file and select "Run as Administrator"
    the batch works fine.  Using the VBscript to elevate the rights, it installs the programs, but when it comes to creating the folder in Program files\Program data and Registry edits, it fails.  Is there any way to script so I can elevate the batch
    file to the same level as selecting "Run as Administrator?
    Set objShell = WScript.CreateObject("WScript.Shell")
    objShell.Run("runas /user:domain\user \\unc\location\Install.bat"), 1, True
    WScript.Sleep 100
    oShell.Sendkeys "password~"
    Another issue, I am having with the script is that it will not send the password, I have to type it manually to test.
    The idea is to have the end user be able to click on a link from a webpage and install the program itself, as opposed for our Helpdesk be required to install the program.  So psexec is no doable as it is not on any of the PCs and user login scripts
    is not an option either, as we don't want the program install on every PC.

    Evers_Mark,
    Here is a VB Script Vall Script that will get around the Password Prompt when "RunAs" is called...
    'Start
    ' To Run other VB Scripts or even Batch Files with Admin Priviliges'
    Dim WshShell, objFSO
    suser = "[email protected]"
    sPass = "YourPassWord"
    'Put your Domain Account and Password in between the qoutes, REMEMBER! the Password will be clear text. If this is a standalone just take off the @YourDomain.com
    sCommand = "wscript \\UNCServerName\ShareFolder\YourScript.vbs"
    'This will be the path were the scripted you want called will be at. Please note you can substitute the ablove for a local directory (Example: C:\Folder\YourScript.vbs)
    Set objComputer = CreateObject("Shell.LocalMachine")
    Set WshNetwork = CreateObject("WScript.Network")
    Set WshShell = CreatObject("WScript.Shell")
    Set WshEnv = wshShell.Environment("Process")
    WinPath = WshEnv("SystemRoot")&"\System32\runas.exe"
    rc = WshShell.Run ("runas /noprofile /user:" & suser & " " $ Chr(34) & sCommand & Chr(34))
    WScript.Sleep 900
    WshShell. AppActivate(WinPath)
    WScript.quit
    'End
    I've used this myself to call up scripts with admin rights however I've not tested it with the UAC on in either Vista or 7, However works like a peach with 2000 & XP. From this point you can add in the script into Peagus's disabling the UAC Script as
    mentioned below. The usual warnings apply on the security, passwords are sent in plain text.
    John M. Keller MCP (XP & 2003) | Security + E-Mail : [email protected]
    Sorry but this topic has been closed for almost a year.
    If you have a script to share feel free to put it in the repository. (link above).
    If you have a new question then please start a new topic.
    ¯\_(ツ)_/¯

  • [Resolved][ODQ] Error Running Exported Batch Script Outside of ODI

    Dear ODI experts,
    I have Installed 10.1.3.4.0 ---> selected "Oracle Data Integrator, Oracle Data Profiling, Oracle Data Quality 10.1.3.4.0" ---> Complete (1012MB)
    - follow all steps of "Design a Name and Address Cleansing Project" section in Sample Tutorial
    - in "Oracle DQ User Interface", right click Projects->Quality->customer master[1]
    - select "Run" from the context menu
    - the background tasks completed 100% properly
    - export the project as a Batch Script
    - make changes to config.txt, runProjectN.cmd, and *.stx files following as specified in the Sample Tutorial document
    - at step 13-f, got the following errors by executing runProjectN.cmd
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e7_us_globrtr_p2.dat>. errno = 2; N
    o such file or directory Occurred in Transformer - (cl_open).
    I did a full search in ODI folders and couldn't find "e7_us_globrtr_p2.dat".
    I tried both export with data and export w/o data with proper change to specify input file path, and got the same error.
    Appreciate any suggestions and/or hints help me further debug of fix this issue.
    Regards,
    Roy
    The following is a complete message echo of runProjectN.cmd
    ===========================================================================
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>runproject1.cmd
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_PROJECT=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_CONFIG=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts\config.txt
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_SETTINGS=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_DATA=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>cd /D D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tranfrmr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e5_tranfrmr_p1.stx
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call globrtr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e6_globrtr_p2.stx
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tranfrmr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e9_tranfrmr_p3.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e7_us_globrtr_p2.dat>. errno = 2; N
    o such file or directory Occurred in Transformer - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call cusparse D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e10_cusparse_p4.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e9_us_tranfrmr_p3.dat>. errno = 2;
    No such file or directory Occurred in Customer Data Parser - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tsqsort D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e11_srtforpm_p5.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e10_us_cusparse_p4.dat>. errno = 2;
    No such file or directory Occurred in tsqsort - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call uspmatch D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e12_pmatch_p6.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e11_us_srtforpm_p5.dat>. errno = 2;
    No such file or directory Occurred in CGeoIO::initGIO - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call winkey D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e13_winkey_p7.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e12_us_pmatch_p6.dat>. errno = 2; N
    o such file or directory Occurred in CWKD::initWKD - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tsqsort D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e14_srtforrl_p8.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e13_us_winkey_p7.dat>. errno = 2; N
    o such file or directory Occurred in tsqsort - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call rellink D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e15_rellink_p9.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e14_us_srtforrl_p8.dat>. errno = 2;
    No such file or directory Occurred in CMatcher::InitMatcher - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call common D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e16_common_p10.stx
    Wed Nov 28 17:18:39 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e15_us_rellink_p9.dat>. errno = 2;
    No such file or directory Occurred in Create Common - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call datarec D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e17_datarec_p11.stx
    Wed Nov 28 17:18:39 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e16_us_common_p10.dat>. errno = 2;
    No such file or directory Occurred in CReCons::initRC - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>
    ===========================================================================
    Solution:
    Needs to modify "e9_tranfrmr_p3.stx" to point to "e6_nomatch_globrtr_p2_us.dat".

    Seems to be the DRM service went down, try running the batch after stopping & restarting the service.

  • How can I debug a sequence that has a subsequence is running in a separate thread?

    Hi,
    How can I debug a sequence that has a subsequence is running in a separate thread?
    I have to have a continues check for a  digital in signal to be able to terminate the sequence if a physical button is pushed.
    This is running in a separate thread, but this way I cannot debug the main sequence.
    Is there any workaround for this?
    Thanks,
    Andras

    This KB might help you:
    http://digital.ni.com/public.nsf/websearch/46D1E157756C37E686256CED0075E156?OpenDocument
    Let me know if this does not help.
    Allen P.
    NI

  • Running a batch file - VERY URGENT .. help

    Hi people
    I am attempting to run a batch file from with a JSP page.
    the code i am using is:
    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec("cmd.exe /c d:\\uploadfiles.bat");
    This jsp file is located on the c: of a webserver.
    the uploadfiles.bat is located on the d: of the webserver and the code is:
    copy d:\videos\008214?.rm d:\blah
    copy d:\images\008214.* d:\blah
    copy d:\xml\008214.* d:\blah
    cd \blah
    pkzip -es -m 008214.zip *.*
    copy 008214.zip d:\upload\008214.zip
    del 008214.zip
    If I run this batch file from a command line, it works fine, though when I try and call it through my JSP page, it doesnt do anything .. a command window just pops up for a while, and then closes.
    How can I fix this ... I need this quite quickly
    Thanks people

    1) It is O.K. that you see nothing in that console. Its output is captured by Java and is not displayed on the screen.
    In general, that console should not be visible, but actually it behaves differently according to JDK and OS versions (treat that as a feature).
    2). Look at this article:
    http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
    It it does not answer your problem, try to search the forums:
    http://search.java.sun.com/search/java/index.jsp?qp=%2Bforum%3A31&nh=10&qt=%2B%22exec%22+-%22Replies%3A+0%22&col=javaforums
    Questions about Runtime.exec() has been asked hundreds of times.
    3) runtime.exec() can execute BAT files. It is not necessary to specify that "cmd /C".

Maybe you are looking for