Concurrent processing & file.renameTo(...)

Hi,
I've can successfully move a file in the single thread/process environment using file.renameTo
However in the multithreaded/multiple process environment, the initial file is several MB (about 100mb). It is created on the fly outside of my thread and takes several minutes to build.
I would like to rename it after the file is finished building.
In my code I do the following:
boolean success = false;
while (! success)
success = inputFile.renameTo(dest);
QuickSleep(1500); // Performs a Thread.sleep in a try/catch
I've seen some weird behavior however. On a windows box the renameTo seems to return false if the other process is still writing to the file. However on linux the .renameTo is returning true even though the file hasn't finished building.
The end result on linux is I end up with two files. One that got renamed and is partially filled and the other original with the rest of the file.
Is there a way to know when the file isn't being written by another process/thread?
Thanks in advance.

if by now you still have the problem (FYI this is working on AIX) have a look at my solution:
for (int i = 0; i < dir.listFiles().length; i++) {
try {
     Process p = Runtime.getRuntime().exec("/usr/sbin/fuser " + dir.listFiles().getAbsolutePath());
     p.waitFor();                              
     InputStream in = p.getInputStream(); // we have to read the stream to verify if there is a process id
     int c = in.read();
     String stream = "";
     while (c != -1) {
          stream = stream + (char)c;
          c = in.read();
     if (stream.trim().length() > 0) {
          logger.info("File: " + dir.listFiles()[i] + " is in use by process ID:" + stream);
          try {
               Thread.sleep(5000); //sleep for 5 sec
          } catch (InterruptedException e){
               // the VM doesn't want us to sleep anymore,
               // so get back to work
          continue;
} catch (Exception e) {
     logger.error("fuser exception: " + e.getMessage());

Similar Messages

  • Concurrent Request 를 처리하는 File과 Tables

    제품 : AOL
    작성날짜 : 2003-12-02
    Concurrent Request 를 처리하는 File과 Tables
    =================================================
    PURPOSE
    이 Note는 Concurrent Reqeust output & Log 의 저장위치와 DB내 저장되는
    Object들에 대한 설명입니다. Purge Concurrent Request and Output을 실행할때 다음 table들의 해당 record들이 삭제됩니다.
    Explanations
    - FND_CONCURRENT_REQUESTS
    This table contains a complete history of all concurrent requests and
    stores information about all submitted jobs(requested directly or by a
    report set) within applications.
    There's one request_id for each requested job in this tables.
    - FND_RUN_REQUESTS
    When a user submits a report set, this table stores information about the
    reports in the report set and the parameter values for each report.
    Stores information about all request sets submittted within applications.
    Columns parent_request_id and request_id reflect the job# for the
    report-set and the jobs it calls to.
    - FND_CONC_REQUEST_ARGUMENTS
    This table records arguments passed by the concurrent manager to each program
    it starts running.
    FND_DUAL
    This table records when requests do not update database tables.
    FND_CONCURRENT_PROCESSES
    This table records information about Oracle Applications and operating system
    processes.
    FND_CONC_STAT_LIST
    This table collects runtime performance statistics for concurrent requests.
    FND_CONC_STAT_SUMMARY
    This table contains the concurrent program performance statistics generated by
    the Purge Concurrent Request and/or Manager Data program.
    The Purge Concurrent Request and/or Manager Data program uses the data in
    FND_CONC_STAT_LIST to compute these statistics.
    FND_CONC_PP_ACTIONS
    Stores the post request processing actions(e.g., print, notify) for each
    submitted request. There's a concurrent_request_id here for each request_id
    in the FND_CONCURRENT_REQUESTS.
    FND_RUN_REQ_PP_ACTIONS
    Stores the post request processing actions(e.g., print, notify) for
    submitted request set programs that are stored in FND_RUN_REQUESTS.
    Reference Documents
    Note 132823.1

  • COncurrent process fails with warning for OPP

    Concurrent process generates xml output (version 5.6.2) .
    When it tries to publish it , the log suggests checking out the OPP log.
    The OPP log has a series of java entries for the request, including one of the type
    Caused by: oracle.xdo.parser.v2.XPathException: Expected 'QNAME' instead of ''.
    header of the OPP log says
    Resolution History
    18-OCT-06 20:36:05 GMT
    Can you easily recover from, bypass or work around the problem? = NO
    Does your system or application continue normally after the problem occurs? =
    YES
    Are the standard features of the system or application still available; is the
    loss of service minor? = YES
    ### Informational Only:Warning Presented to Customer ###
    You chose 'Other technical issues with this product' from the Type of Problem
    list. This is a generic Service Request form which will require additional time
    to be routed appropriately. You may be able to expedite the resolution of your
    Service Request by doing the following: 1. Use your browser’s back button to
    return to the Create a SR – Brief Description page. 2. Select an option from
    the Type of Problem list that more closely describes the problem.
    ### Requested files:ACT(Note 183274.1),RDA (Note 175853.1). Files to be loaded.
    None
    ### Detailed Problem Statement ###
    Concurrent process for XML Publisher fails with warning. Cannot see Diagnostics
    --> XML output completely. Only first page visible. Buttons and Menu items
    disabled not allowing to view the whole XML file to troubleshoot for
    correct/incorrect tags.
    Attached are OPP Manager log file, Screen shot of 'Preview' output jjst before
    submitting request. Also log file of failed concurrent request which contains
    standard error " See OPP Service log file for more".
    ### Steps to Reproduce Problem ###
    Registered a concurrent process with XML template , and running the process
    from Receivables Manager responsibility.
    Ran concurrent process for 1) Standard RAXINV report , with output method as
    'XML'. 2) Customised RAXINV report, with output method as 'XML'
    ### Instance Name(s) and Type of System(s) Where Error Occurs ###
    Lunix, 11.5.10 on 10g
    ### Recent Changes to this Environment ###
    None
    ### Workarounds Used ###
    None
    ### How is this Issue Impacting Your Business ###
    Business is readying for CRP3, so would like to have reports ready by then.
    Contact me via : MetaLink
    18-OCT-06 20:48:07 GMT
    The customer : [email protected] : has uploaded the following file via MetaLink:
    C:\Documents_and_Settings\broy\BareEscentuals\Reports\Errors\XML_Pub1.bmp
    18-OCT-06 20:49:14 GMT
    The customer : [email protected] : has uploaded the following file via MetaLink:
    C:\Documents_and_Settings\broy\BareEscentuals\Reports\Errors\XMLPublisher_java.t
    xt
    18-OCT-06 21:17:26 GMT
    Hi Bashobi,
    Thank you for using MetaLink. We are currently reviewing/researching the situation and will update the SR as soon as we have relevant information
    Best Regards,
    Bill
    Oracle Support Services
    STATUS
    =======
    @WIP -- Work In Progress
    18-OCT-06 21:18:04 GMT
    Email Update button has been pressed: Sending email to [email protected].
    18-OCT-06 21:21:45 GMT
    ISSUE CLARIFICATION
    ====================
    On 11.5.10.2 in Production:
    Find concurrent process for XML Publisher fails with warning. Cannot see Diagnostics
    --> XML output completely. Only first page visible. Buttons and Menu items
    disabled not allowing to view the whole XML file to troubleshoot for
    correct/incorrect tags.
    EXPECTED BEHAVIOR
    Expect the processes run successfully
    STEPS
    The issue can be reproduced at will with the following steps:
    1. Registered a concurrent process with XML template .
    2. Run the process from Receivables Manager responsibility.
    3. Ran concurrent process for
    1) Standard RAXINV report , with output method as 'XML'
    2) Customised RAXINV report, with output method as 'XML'
    BUSINESS IMPACT
    The issue has the following business impact:
    Business is readying for CRP3, so would like to have reports ready by then.
    ACTION PLAN
    ============
    Hi Bashobi,
    1. Can you reproduce the issue from sysadmin responsibility with Active users report? if yes
    please upload OPP log file after reproduce it and upload the request log file.
    Thanks.
    18-OCT-06 23:09:02 GMT
    New info : [email protected] : Did the same as suggested, Request
    completes successfully.
    But what is the relation between Active Users report and a report sent via XML
    Publisher?
    19-OCT-06 15:54:26 GMT
    ACTION PLAN
    ============
    Hi Bashobi,
    1. When you reproduce the issue from sysadmin responsibility with Active users report change the format out put to XML,
    Save your change:
    2. Upload OPP manager log file and upload the request log file.
    Thanks,
    Bill.
    19-OCT-06 15:54:33 GMT
    Email Update button has been pressed: Sending email to [email protected].
    19-OCT-06 16:42:23 GMT
    New info : [email protected] : Bill,
    No, I could not reproduce the problem with Active Users program.
    Attaching OPP manager log in the next update. Bashobi
    19-OCT-06 17:05:07 GMT
    New info : [email protected] : Bill, Attaching internal log and manager
    log
    Bashobi
    19-OCT-06 17:06:08 GMT
    The customer : [email protected] : has uploaded the following file via MetaLink:
    C:\Documents_and_Settings\broy\BareEscentuals\Reports\Errors\OPP_internal_log.tx
    t
    19-OCT-06 17:07:10 GMT
    The customer : [email protected] : has uploaded the following file via MetaLink:
    C:\Documents_and_Settings\broy\BareEscentuals\Reports\Errors\OPP_manager_log.txt
    19-OCT-06 18:14:32 GMT
    UPDATE
    =======
    Hi Bashobi,
    Thank you for providing the requested information.
    Best Regards,
    Bill
    STATUS
    =======
    @WIP -- Work In Progress
    19-OCT-06 18:14:36 GMT
    Email Update button has been pressed: Sending email to [email protected].
    19-OCT-06 18:59:25 GMT
    DATA COLLECTED
    ===============
    SCREEN SHOTS
    XML_Pub1.bmp:
    Error:
    Jave.sql SQL Exception No corresponding LOB data found: select File_data_dbms_lob...........
    LOG FILE
    1. XMLPublisher_java.txt:
    [10/18/06 11:16:57 AM] [5670:RT277479] Completed post-processing actions for request 277479.
    [10/18/06 11:29:06 AM] [OPPServiceThread1] Post-processing request 277488.
    [10/18/06 11:29:06 AM] [5670:RT277488] Executing post-processing actions for request 2
    77488.
    [10/18/06 11:29:06 AM] [5670:RT277488] Starting XML Publisher post-processing action.
    [10/18/06 11:29:06 AM] [5670:RT277488]
    Template code: XXBE_TEST_INV
    Template app: AR
    Language: en
    Territory: US
    Output type: null
    [10/18/06 11:29:07 AM] [UNEXPECTED] [5670:RT277488] java.lang.reflect.InvocationTarg
    etException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    10/18/06 11:29:07 AM] [5670:RT277488] Completed post-processing actions for reque
    st 277488.
    2. OPP_manager_log.txt:
    [10/19/06 5:22:36 AM] [main] Starting GSF service with concurrent process id = 5688.
    [10/19/06 5:22:36 AM] [main] Initialization Parameters: oracle.apps.fnd.cp.opp.OPPServiceThread:2:0:max_threads=5
    [10/19/06 5:22:37 AM] [Thread-12] Service thread starting up.
    [10/19/06 5:22:37 AM] [Thread-13] Service thread starting up.
    ISSUE VERIFICATION
    =================
    Issue veryfied by the screen shots: XML_Pub1.bmp which shows:
    Jave.sql SQL Exception No corresponding LOB data found: select File_data_dbms_lob...........
    ACTION PLAN
    ============
    Hi Bashobi,
    1. Since you can not reproduce the issue from sysadmin responsibility can we say the issue specific to Receivables Manager
    responsibility<INV xml report>?
    2. You said before: "Concurrent process for XML Publisher fails with warning. Cannot see Diagnostics
    --> XML output completely. Only first page visible. Buttons and Menu items
    disabled not allowing to view the whole XML file to troubleshoot for
    correct/incorrect tags.":
    Is the above mean :
    -The xml publisher report completed but you can not view the whole XML file
    -Or the xml publisher report error out with "Jave.sql SQL Exception No corresponding LOB data found: select File_data_dbms_lob.."
    Thanks.
    19-OCT-06 18:59:32 GMT
    Email Update button has been pressed: Sending email to [email protected].
    20-OCT-06 21:36:13 GMT
    Email Update button has been pressed: Sending email to [email protected].
    24-OCT-06 21:50:06 GMT
    New info : [email protected] : Hi,
    We are in the process of upgrading XML Publisher at the moment. I would like to
    wait a day or two to test the report with the upgrade.
    Thanks,Bashobi
    26-OCT-06 20:15:07 GMT
    New info : [email protected] : Hi,
    Our DBA has applied the 5.6.2 patch on our dev instance. My concurrent process
    runs to a warning.
    The warnings in the OPP manager log file say
    Template code: BE_RAXINV
    Template app: XXBE
    Language: en
    Territory: US
    Output type: PDF
    [10/26/06 12:50:13 PM] [UNEXPECTED] [5849:RT281617]
    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    Any idea?

    Hi All,
    I have ran into the same issue.
    "The Output Post-processor is running but has not picked up this request.
    Any ideas.
    Thanks
    Ravi

  • Single queue: concurrent processing of messages in multiple consumers

    Hi,
    I am new to jms . The goal is to  process messages concurrently from a queue in an asynchronous listener's onMessage method  by attaching a listener instance to multiple consumer's with each consumer using its own session and running in a separate thread, that way the messages are passed on to the different consumers for concurrent processing. 
    1) Is it ossible to process messsages concurrently from a single queue by creating multiple consumers ?
    2)  I came up with the below code, but would like to get your thoughts on whether the below code looks correct for what I want to accomplish.  
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Properties;
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import com.walmart.platform.jms.client.JMSConnectionFactory;
    public class QueueConsumer implements Runnable, MessageListener {
      public static void main(String[] args) {
       // Create an instance of the client
        QueueConsumer consumer1 = new QueueConsumer();
        QueueConsumer consumer2 = new QueueConsumer();
        try {
        consumer1.init("oms","US.Q.CHECKOUT-ORDER.1.0.JSON");   //US.Q.CHECKOUT-ORDER.1.0.JSON   is the queue name
        consumer2.init("oms","US.Q.CHECKOUT-ORDER.1.0.JSON");
        }catch( JMSException ex ){
        ex.printStackTrace();
        System.exit(-1);
        // Start the client running
        Thread newThread1 = new Thread(consumer1);
        Thread newThread2 = new Thread(consumer1);
        newThread1.start();newThread2.start();
        InputStreamReader aISR = new InputStreamReader(System.in);
              char aAnswer = ' ';
              do {
                  try {
      aAnswer = (char) aISR.read();
    catch (IOException e)
      // TODO Auto-generated catch block
      e.printStackTrace();
    } while ((aAnswer != 'q') && (aAnswer != 'Q'));
              newThread1.interrupt();
              newThread2.interrupt();
              try {
      newThread1.join();newThread2.join();
      } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
              System.out
      .println("--------------------exiting main thread------------------------"+Thread.currentThread().getId());
            System.exit(0);
    // values will be read from a resource properties file
    private static String connectionFactoryName = null;
    private static String queueName = null;
    // thread safe object ref
      private static ConnectionFactory qcf = null;
      private static Connection queueConnection = null;
    // not thread safe
      private Session ses = null;
      private Destination queue = null;
      private MessageConsumer msgConsumer = null;
      public static final Logger logger = LoggerFactory
      .getLogger(QueueConsumer.class);
      public QueueConsumer() {
      super();
      public void onMessage(Message msg) {
      if (msg instanceof TextMessage) {
      try {
      System.out
      .println("listener is "+Thread.currentThread().getId()+"--------------------Message recieved from queue is ------------------------"
      + ((TextMessage) msg).getJMSMessageID());
      } catch (JMSException ex) {
      ex.printStackTrace();
      public void run() {
      // Start listening
      try {
      queueConnection.start();
      } catch (JMSException e) {
      e.printStackTrace();
      System.exit(-1);
      while (!Thread.currentThread().isInterrupted()) {
      synchronized (this) {
      try {
      wait();
      } catch (InterruptedException ex) {
      break;
      * This method is called to set up and initialize the necessary Session,
      * destination and message listener
      * @param queue2
      * @param factoryName
      public void init(String factoryName, String queue2) throws JMSException {
      try {
      qcf = new JMSConnectionFactory(factoryName);
      /* create the connection */
      queueConnection = qcf.createConnection();
      * Create a session that is non-transacted and is client
      * acknowledged
      ses = queueConnection.createSession(false,
      Session.CLIENT_ACKNOWLEDGE);
      queue = ses.createQueue(queue2);
      logger.info("Subscribing to destination: " + queue2);
      msgConsumer = ses.createConsumer(queue);
      /* set the listener  */
      msgConsumer.setMessageListener(this);
      System.out.println("Listening on queue " +queue2);
      } catch (Exception e) {
      e.printStackTrace();
      System.exit(-1);
      private static void setConnectionFactoryName(String name) {
      connectionFactoryName = name;
      private static String getQueueName() {
      return queueName;
      private static void setQueueName(String name) {
      queueName = name;

    Hi Mark,
    if the messages are sent with quality of service EO (=exactly once) you can add queues.
    From documentation:
    Netweaver XI -> Runtime -> Processing xml messages -> Queues for asynchronous message processing
    ...For incoming messages you set the parameter EO_INBOUND_PARALLEL from the Tuning category.
    If more than one message is sent to the same receiver, use the configuration parameter EO_OUTBOUND_PARALLEL of the Tuning category to process messages simultaneously in different queues.
    Transaction: SXMB_ADM
    Regards
    Holger

  • How to configure number of concurrent processes in XI?

    Hi experts,
    I have a simple interface:
    FILE -> XI -> FILE
    The input file is a huge file containing thousands of records.
    XI will split the huge input files, so that each record gets written to one file each.
    Owing to the huge number of files being generated, I have many messages in status = "To Be Delivered" in the RWB.
    When I do a filter for status = "Delivering", I see 4 messages in that status. (Of course the message IDs will differ from time to time, but at any point in time, I can only see 4 messages with the status = "Delivering").
    How can I increase the number of concurrent processes that produces the output files?
    Please advise.
    Thanks.
    Ron

    Ron,
    From this perfromance tuning guide , page 12 ,
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70ada5ef-0201-0010-1f8b-c935e444b0ad
    <i>The Adapter Framework requires a set of fixed application threads within the J2EE Engine for proc-essing different internal messaging queues (AFW queue, BC Adapter, CIDX Adapter, and so on). Ad-ditionally, certain channel configurations also require a fixed set of application threads (for example, RFC sender channel, File adapter channels). This may require a higher number of application threads. Therefore, within the J2EE Engine configuration (configtool or Visual Admin), go to:
    Global Configuration -> Server -> Kernel -> ApplicationThreadManager
    Set the MaxThreadCount property to 300</i>
    Not sure if this is the exact property but this is sure worth giving a shot.
    Regards
    Bhavesh

  • Concurrent Processing

    After starting Apps. and going to the apllication manager I noticed that there is a X under concurrent processing and a tick under the others. Is this X a problem?
    I didn't noticed any errors when running the startup scripts, all the exit stauses was 0. One thing though, when I do a ps - ef | grep FNDLIBR I get 7 lines resembling the follwoing:
    applmgr 1385 1259 0 08:32 ? 00:00:00 FNBLIBR
    applmgr 1388 1259 0 08:32 ? 00:00:00 FNDLIBR
    I am running Linux Red Hat, with apps 11i.5.10.2 and the database is 9.2.0.6
    Any help grateful

    Try to start the concurrent manager with the below steps and post the output /Error displayed on screen
    1.Log in as Applmgr
    2.Execute the environmental file
    3.Navigate to common_top/admin/scripts
    4.Execute the command
    ./adcmctl.sh apps/apps start

  • File.renameTo() and locking

    Hi,
    I would like to rename file, but File.renameTo() will not work if the file will be locked by some other process. If other process has locked the file, I would like to wait for it to release the lock. So I have:
    FileLock lock = new RandomAccessFile(file, "rw").getChannel().lock(0L, Long.MAX_VALUE, false);
    file.renameTo(destFile);
    lock.release();But this does not work, because file is locked and renameTo does not work (returns false).
    What can I do to lock the file myself (wait for other locks to be released) and to rename it (rename does not work when file is locked).
    Regards
    Pawel Stawicki

    hi, I don't thik you have to lock the file yourself while renaming it because that is (from my point of view) an opperating system's job to do it.
    you could maybe make a
    while(! file.renameTo()){
    thread.sleep(1000);
    to wait till its unlocked.
    I'm not sure that helps but that's just an idea

  • Oracle Service Bus: Concurrency using File Transport Provider?

    We're using the OSB File Transport Provider but we're not able to process files concurrently.
    Each time processing of a file is started - processing of other files (in the stage directory) halts.
    Does anyone know if this is a "feature", or are we missing out on some configuration?

    Do you have a clustered environment? What is the load? You may like to create a separate work-manager for your File proxy and assign appropriate number of threads to it.
    Regards,
    Anuj

  • File.renameTo method issue

    I have a Java program which processes upto 10000 text files a day. The average size of these files are 1KB to 2KB and the java program parses the contents of the text file, validates and loads them into a database table.
    The program outline is as follows
    File[] filesToProcess = sourceFolder.listFiles();
    int fileCount = filesToProcess.length;
    for (int i=0;i<fileCount;i++) {
    File currentFile = filesToProcess;
    MsgParser fileParser = new MsgParser(currentFile);
    if ( fileParser.isMessageValid()) {
    boolean uploadSuccess = fileParser.uploadToDB();
    if (uploadSuccess) {
    if (currentFile.renameTo(parseSuccessArchiveFile))
    logger.info("File successfully moved to archive folder);
    else
    logger.info("File cannot be moved to archive folder);
    } else {
    if (currentFile.renameTo(parseFailureArchiveFile)
    logger.info("Parser failed file moved to archive folder);
    else
    logger.info("Parser failed file cannot be moved to archive folder);
    The above program outline works well. However the renameTo method is not renaming the parsed files successfully on all occasions. There is no performance issue involved here as the files keep streaming in throughout the day and the program is able to handle the parsing of the file(s) in a fraction of second.
    The issue for me is that I keep picking the files to parse from the source folder at regular intervals ( after a full iteration of the files list, wait for 10 seconds before calling for a new set of files ) and cannot afford to have a failure in moving the file to the archive folder as otherwise, I end up parsing the same file multiple number of times, which I want to avoid.
    Can anyone shed some light on the behavior of File.renameTo and how to make it work successfully?
    Sundar

    I am making the code more readable for you all and corrected some typo errors...
    File[] filesToProcess = sourceFolder.listFiles();
    int fileCount = filesToProcess.length;
    for (int i=0;i<fileCount;i++) {
          File currentFile = filesToProcess;
          MsgParser fileParser = new MsgParser(currentFile);
          boolean uploadSuccess = false;
          if ( fileParser.isMessageValid())
               uploadSuccess = fileParser.uploadToDB();
          if (uploadSuccess) {
                if (currentFile.renameTo(parseSuccessArchiveFile))
                      logger.info("File successfully moved to archive folder);
                else
                      logger.info("File cannot be moved to archive folder);
          } else {
                if (currentFile.renameTo(parseFailureArchiveFile)
                      logger.info("Parser failed file moved to archive folder);
                else
                      logger.
                      info("Parser failed file cannot be moved to archive folder);
    }

  • File renameto issue

    I have been tracking this down for a couple of days now and thought I would ask the forum for their input.
    I have a very simple process that opens a file, reads in the data, writes some data to a DB, and them moves the file to a processed folder.
    SOME of the instances I have running that are performing this process are moving the files into the wrong directory. I am going round and round with this
    being an OS issue and/or jvm issue. The oddest thing is that the wrong directory that some of the processes write their files to is always the last
    directory created under that particular filesystem.
    System:
    sun-jdk-1.5.0.06
    Linux; SMP; 2.6.12
    Process is run via shell script every 10 minutes where a directory is passed to the process, the process then looks in the directory for files,
    does what it does, and then renames the file. ex. "LogProcessor /var/log/10.5.1.2/". The process should move the file to the folder /var/log/10.5.1.2/processed,
    instead it is moving the file to "/var/log/10.5.1.52/processed". All of the debug code you see below is telling me that everything is what and where it should
    be, however, it is not.
    Other information: There are about 15 independent processes running started by separate shell scripts and all should be reading and writing to their respective folders.
    Any input would be greatly appreciated.
    CODE:
    File dirName = new File(args[0]);
    String[] files = dirName.list();
    //test if directory actually has something we want
                   if (files != null) {
                        // loop through list of files found in directory
              for (int i=0; i<files.length; i++) {
              // Get filename of file or directory
                   if(debug)
                        System.err.println("File Extension: " + files.substring(files[i].length() - 3));
                   // test last 3 characters for file extension we need
                   if (files[i].substring(files[i].length() - 3).equalsIgnoreCase("log") || files[i].substring(files[i].length() - 3).equalsIgnoreCase("alm")) {
              fileName = args[0] + files[i];
                   // Call each method respectively passing in all the local objects
                   if (alarms) {
                                       logProcessor.alarmsProcessor(fileName, logFile, job, jobActions, errors, debug);
                                  } else {
                                       logProcessor.storeLogsProcessor(fileName, logFile, job, jobActions, errors, debug);
                   //SLD 11/28/2007: move the file to the processed folder after read
                   File file1 = new File(fileName); //this file already existed on the file system
                   File file2 = new File(args[0]+"processed/"+files[i]);
                        if (file1.renameTo(file2)) {
                             System.out.println("File "+files[i]+" Moved to processed folder "+ args[0] + "processed" + file2.toString());
                             System.out.println("From: " + file1.toString() + " To: " + file2.toString() );
                        } else {
                             System.out.println("File "+files[i]+" NOT Moved to processed folder "+ args[0] + " due to either permissions, folder nonexistant or file already exists");

    Well, just to update the issue. The problem has been solved. There was an entry into the list of IP's that was 10.58.?.??, which in the unix world is a special character/place holder for all
    files/folders that resemble it. This was wreaking havoc on my java program when moving files.
    Thanks,

  • Linking PL\SQL procedure as Concurrent Process

    Hi.
    I'm link PL-proc as concurrent process, and it runs without any
    errors.
    Now I need also run it as standart report, but can't generate
    output file to store any words to.
    help.
    mailto: [email protected]

    Thanks for your response.
    I am writing a BPEL PM process for inserting AP Invoices by inserting data into the interface tables, and then executing the corresponding concurrent program (APXIIMPT). I would like to trap any errors and send them back to the BPEL process.
    One suggestion on how to do this is to write a pl/sql procedure which inserts the data, executes the concurrent program, collects any error messages, and passes them back via OUT parameters. Such a procedure could be called using an adapter from BPEL PM.
    So the issue for this forum is how to make the single pl/sql procedure wait for completion of the concurrent process.
    Alternatively, is there a business event raised when the concurrent process completes?

  • Creating database problem with ORA-01519: error while processing file '' ne

    Dear all,
    I am having rough time with creating database manually. can anyone help me with the following errors.
    ALERT LOGFILE:-
    Sun May 31 12:00:39 2009
    Errors in file d:\oracle\product\10.1.0\admin\oracle5\udump\oracle5_ora_3444.trc:
    ORA-01501: CREATE DATABASE failed
    ORA-01519: error while processing file '%ORACLE_HOME%\RDBMS\ADMIN\SQL.BSQ' near line 5744
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01119: error in creating database file 'D:\oracle\product\10.1.0\oradata\ORACLE5 \datafile\undotbs1.dbf'
    ORA-27040: file create error, unable to create file
    OSD-04002: unable to open file
    O/S-Error: (OS 3) The system cannot find the path specified.
    Error 1519 happened during db open, shutting down database
    USER: terminating instance due to error 1519
    Sun May 31 12:00:39 2009
    Errors in file d:\oracle\product\10.1.0\admin\oracle5\bdump\oracle5_reco_3416.trc:
    ORA-01519: error while processing file '' near line
    CREATE DATABASE SCRIPT:-
    create database ORACLE5
    user sys identified by bala
    user system identified by bala
    logfile
    group 1 ('D:\oracle\product\10.1.0\oradata\ORACLE5\logfile\redo01.log') SIZE 50M,
    group 2 ('D:\oracle\product\10.1.0\oradata\ORACLE5\logfile\redo02.log') SIZE 50M,
    group 3 ('D:\oracle\product\10.1.0\oradata\ORACLE5\logfile\redo03.log') SIZE 50M
    maxlogfiles 5
    maxlogmembers 5
    maxloghistory 1
    maxdatafiles 50
    maxinstances 1
    datafile 'D:\oracle\product\10.1.0\oradata\ORACLE5\datafile\system01.dbf' size 200m autoextend on maxsize unlimited extent management local
    undo tablespace UNDOTBS1 datafile 'D:\oracle\product\10.1.0\oradata\ORACLE5 \datafile\undotbs1.dbf' size 10m autoextend on maxsize unlimited
    sysaux datafile 'D:\oracle\product\10.1.0\oradata\ORACLE5\datafile\sysaux01.dbf' size 100m autoextend on maxsize unlimited
    default temporary tablespace temp tempfile 'D:\oracle\product\10.1.0\oradata\ORACLE5 \datafile\temp01.dbf' size 10m autoextend on maxsize unlimited
    character set US7ASCII
    NATIONAL CHARACTER SET AL16UTF16
    INIT.ORA FILE:-
    # Copyright (c) 1991, 2001, 2002 by Oracle Corporation
    # Archive
    log_archive_format=ARC%S_%R.%T
    # Cache and I/O
    db_block_size=8192
    db_cache_size=25165824
    db_file_multiblock_read_count=16
    # Cursors and Library Cache
    open_cursors=300
    # Database Identification
    db_domain=""
    db_name=oracle5
    # Diagnostics and Statistics
    background_dump_dest=D:\oracle\product\10.1.0\admin\oracle5\bdump
    core_dump_dest=D:\oracle\product\10.1.0\admin\oracle5\cdump
    user_dump_dest=D:\oracle\product\10.1.0\admin\oracle5\udump
    # File Configuration
    #db_create_file_dest=D:\oracle\product\10.1.0\oradata
    db_recovery_file_dest=D:\oracle\product\10.1.0\flash_recovery_area
    db_recovery_file_dest_size=2147483648
    # Job Queues
    job_queue_processes=10
    # Miscellaneous
    compatible=10.1.0.2.0
    # Pools
    java_pool_size=50331648
    large_pool_size=8388608
    shared_pool_size=83886080
    # Processes and Sessions
    processes=150
    # Security and Auditing
    remote_login_passwordfile=EXCLUSIVE
    # Shared Server
    dispatchers="(PROTOCOL=TCP) (SERVICE=oracle5XDB)"
    # Sort, Hash Joins, Bitmap Indexes
    pga_aggregate_target=25165824
    sort_area_size=65536
    # System Managed Undo and Rollback Segments
    undo_management=AUTO
    undo_tablespace=UNDOTBS1
    control_files=("D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE5\CONTROLFILE\control01.CTL", "D:\ORACLE\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\ORACLE5\CONTROLFILE\control02.CTL")

    Hi,
    undo tablespace UNDOTBS1 datafile 'D:\oracle\product\10.1.0\oradata\ORACLE5 \datafile\undotbs1.dbf' size 10m autoextend on maxsize unlimited
    After ORACLE5 there is a space character. Typo? Create proper directory or delete this character.
    Bartek

  • ORA-01519: error while processing file '?/rdbms/admin/sql.bsq' near line 401

    I receive the following error by creating dataabse as below sql:
    ORA-01501: CREATE DATABASE failed
    ORA-01519: error while processing file '?/rdbms/admin/sql.bsq' near line 401
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01119: error in creating database file '/sisdev04/dbs/users01.dbf'
    ORA-27039: create file failed, file size limit reached
    Additional information: 1
    CREATE DATABASE SISDEV04
         LOGFILE GROUP 1 ('/sisdev04/dbs/log01a.dbf','/sisdev04/dbs/log01b.dbf') SIZE 10M,
              GROUP 2 ('/sisdev04/dbs/log02a.dbf','/sisdev04/dbs/log02b.dbf') SIZE 10M
         NOARCHIVELOG
         CHARACTER SET ZHT16BIG5
         NATIONAL CHARACTER SET ZHT16BIG5
         DATAFILE '/sisdev04/dbs/system01.dbf'      
              SIZE 210M AUTOEXTEND OFF
         , '/sisdev04/dbs/rbs01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev04/dbs/temp01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev04/dbs/users01.dbf'
    SIZE 1050M AUTOEXTEND OFF
         , '/sisdev04/dbs/ts_index_ivr01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev04/dbs/ts_ivr01.dbf'
    SIZE 21M AUTOEXTEND OFF
         , '/sisdev04/dbs/ts_ems01.dbf'
    SIZE 21M AUTOEXTEND OFF
         , '/sisdev04/dbs/ts_index_ems01.dbf'
    SIZE 21M AUTOEXTEND OFF
    I have issue df to check the directory sisuat04
    / >df
    Filesystem 512-blocks Free %Used Iused %Iused Mounted on
    /dev/hd4 98304 45664 54% 2446 10% /
    /dev/hd2 2097152 78992 97% 30280 12% /usr
    /dev/hd9var 65536 20536 69% 308 4% /var
    /dev/hd3 294912 262432 12% 147 1% /tmp
    /dev/hd1 49152 5712 89% 1290 21% /home
    /dev/mfcobol 81920 25520 69% 608 6% /mfcobol
    /dev/magiclv 81920 22304 73% 346 4% /usr/magic
    /dev/sispro02lv 6553600 6347792 4% 18 1% /sisdev02
    /dev/sispro03lv 6553600 6347784 4% 19 1% /sisdev03
    /dev/sisappllv 229376 173288 25% 1846 7% /sisappl
    /dev/lvbaklog 98304 85552 13% 68 1% /app/bak_log
    /dev/noteslv0 1048576 541352 49% 2195 2% /notes
    /dev/noteslv1 4194304 1479304 65% 5269 2% /notesrv
    /dev/noteslv2 2097152 898128 58% 51 1% /notesrv/sitesch
    /dev/lvoracle 2097152 237240 89% 8280 4% /opt/oracle
    /dev/u01lv 4194304 128720 97% 11697 3% /u01
    /dev/sisdev01lv 4096000 3021552 27% 27 1% /sisdev04
    Is is still a not enough space problem?

    I receive the following error by creating dataabse as below sql:
    ORA-01501: CREATE DATABASE failed
    ORA-01519: error while processing file '?/rdbms/admin/sql.bsq' near line 401
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01119: error in creating database file '/sisdev04/dbs/users01.dbf'
    ORA-27039: create file failed, file size limit reached
    Additional information: 1
    CREATE DATABASE SISDEV04
         LOGFILE GROUP 1 ('/sisdev04/dbs/log01a.dbf','/sisdev04/dbs/log01b.dbf') SIZE 10M,
              GROUP 2 ('/sisdev04/dbs/log02a.dbf','/sisdev04/dbs/log02b.dbf') SIZE 10M
         NOARCHIVELOG
         CHARACTER SET ZHT16BIG5
         NATIONAL CHARACTER SET ZHT16BIG5
         DATAFILE '/sisdev04/dbs/system01.dbf'      
              SIZE 210M AUTOEXTEND OFF
         , '/sisdev04/dbs/rbs01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev04/dbs/temp01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev04/dbs/users01.dbf'
    SIZE 1050M AUTOEXTEND OFF
         , '/sisdev04/dbs/ts_index_ivr01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev04/dbs/ts_ivr01.dbf'
    SIZE 21M AUTOEXTEND OFF
         , '/sisdev04/dbs/ts_ems01.dbf'
    SIZE 21M AUTOEXTEND OFF
         , '/sisdev04/dbs/ts_index_ems01.dbf'
    SIZE 21M AUTOEXTEND OFF
    I have issue df to check the directory sisuat04
    / >df
    Filesystem 512-blocks Free %Used Iused %Iused Mounted on
    /dev/hd4 98304 45664 54% 2446 10% /
    /dev/hd2 2097152 78992 97% 30280 12% /usr
    /dev/hd9var 65536 20536 69% 308 4% /var
    /dev/hd3 294912 262432 12% 147 1% /tmp
    /dev/hd1 49152 5712 89% 1290 21% /home
    /dev/mfcobol 81920 25520 69% 608 6% /mfcobol
    /dev/magiclv 81920 22304 73% 346 4% /usr/magic
    /dev/sispro02lv 6553600 6347792 4% 18 1% /sisdev02
    /dev/sispro03lv 6553600 6347784 4% 19 1% /sisdev03
    /dev/sisappllv 229376 173288 25% 1846 7% /sisappl
    /dev/lvbaklog 98304 85552 13% 68 1% /app/bak_log
    /dev/noteslv0 1048576 541352 49% 2195 2% /notes
    /dev/noteslv1 4194304 1479304 65% 5269 2% /notesrv
    /dev/noteslv2 2097152 898128 58% 51 1% /notesrv/sitesch
    /dev/lvoracle 2097152 237240 89% 8280 4% /opt/oracle
    /dev/u01lv 4194304 128720 97% 11697 3% /u01
    /dev/sisdev01lv 4096000 3021552 27% 27 1% /sisdev04
    Is is still a not enough space problem? i think you have specified 1050m for users01.dbf file, your file system /sisdev04 has something like
    1.5gb of free space. it failed because of lack of free space. may be you can reduce your datafile size or try to
    create in another filesystem.

  • How to Compile & Deploy the Java Concurrent Program File

    Hi,
    There is a requirement to create the Java Concurrent Program in Oracle eBusiness. I am able to create the Java Concurrent Program file. But unable to do the following things:
    1.Since it is custom file, which location I will deploy the file?
    2. How to compile the file?
    3. In the execution file path and executable file name what should I specify for JCP?
    Please guide me.
    Thanks

    Please see (How to register and execute Java Concurrent Program ?in Oracle Applications R11i ? [ID 186301.1]) for the complete steps (i.e. define concurrent program and add it to the request group, .etc.) -- This is also applicable to R12.
    You may also see:
    Classpath Setting of Third Party Jar Files in R12 Java Concurrent Program (JCP) [ID 1292694.1]
    Integrating Custom Applications with Oracle Applications [ID 176852.1]
    Java Concurrent Program FAQ [ID 827575.1]
    https://forums.oracle.com/forums/search.jspa?threadID=&q=Java+AND+Concurrent+AND+Program&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • Issue while archiving the processed file in sender communication channel using SFTP adapter

    Hi All,
    In one of my scenario (File to IDOC), we are using SFTP sender communicationchannel.
    we are facing an issue while archiving the processed file. Some times PI processed the file successfully but unable to archive it and in the next poll PI process & archives the same file successfully which will creates duplicate orders in ECC.
    Please let us know how to resolve this issue.

    Hi Anil,
    Refer Archiving concepts in below links.
    http://help.sap.com/saphelp_nw73/helpdata/en/44/682bcd7f2a6d12e10000000a1553f6/content.htm?frameset=/en/44/6830e67f2a6d12e10000000a1553f6/frameset.htm
    http://scn.sap.com/docs/DOC-35572
    Warm Regards,
    DNK Siddhardha.

Maybe you are looking for