Threads, Process, exec( ), and destroy( )

I have the following code:
public class A extends Thread
  private Process   myProcess;
  public synchronized void killProcess()
    if(myProcess != null)
       myProcess.destroy();
  public void run()
        try
          synchronized(this)
            myProcess = Runtime.getRuntime().exec( "some process");
            ...... code to handle streams ..........
          myProcess.waitFor();         
        catch(Exception e)
          e.printStackTrace();
}One thread will be creating a Process and then waiting for it to finish. Another thread may
determine that the process needs to be destroyed. I cannot put the call to waitFor( ) in the
syncrhonized block bacause that would block any other operation on the Process.
Is it ok that two threads will be using the same reference at the same time?
Do you think there is any other problem with this code?
Thanks in advance!

Doesnt look that good, however an important thing you
forgot so far if multiple threads are using the inner
var myProcess - you not only have to synchronize your
thread itself (methods) but also the object myProcess
too...Not really. Whoever wants to access the myProcess variable will have to go through killProcess which
is synchronized. So there is no way two threads can access this variable at the same time.
Well.. no way other than what my original question is: one thread calling waitFor( ) and another tread calling destroy( ).
But since waitFor( ) blocks, I cannot synchronize it. Btw, I have actually tried this code and it does exactly what I want, but I am just not sure if it's likely to see any unpleasant surprises at some point.

Similar Messages

  • Process.exec and '-character

    I am trying to run external program from my java-program on linux-platform. One of the parameters that I send to the external program is a directory and can contain spaces so I need to surround it with " ' "-characters. For some reason this does not seem to work. When I try to run the program the external program prinst out error message "Could not find rdiff-backup repository at '/somedirectory/otherdirectory/' ". This the same error message that you get if you for example misstype the third parameter to the program. If I print out the contents of the commands array and simply copypaste it to the terminal and run the external program directly without my java-program, it works fine. Also if I remove the '-characters from my java -program it works fine except when the name of the source directory contains spaces.
    public FileInputStream GetFile(String source,String destination,Calendar backupDate)
                String[] commands = new String[4];
                commands[0]="rdiff-backup";
                commands[1]="-r" +backupDate.get(Calendar.YEAR)+"-"+(backupDate.get(Calendar.MONTH)+1)+"-"+backupDate.get(Calendar.DATE);
                //commands[2]=backupPath+source;  //this works if the name of the source directory does no contain spaces.
                commands[2]="\'"+backupPath+source+"\'"; //this does not work
                commands[3]=destination;
                Process p = Runtime.getRuntime().exec(s);
                BufferedReader stdError = new BufferedReader(new
                   InputStreamReader(p.getErrorStream()));
                p.waitFor();
                while ((output = stdError.readLine()) != null) {
                    System.out.println(output);
                }

    When you place the command and arguments as separate items in a String[] you don't need to quote the arguments since they are implicitly quoted.
    commands[2]=backupPath+source;
      Also, you are not handling stdout, stderr and the return code properly. Read http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html and implement the recomendations.
    Edited by: sabre150 on Oct 17, 2008 10:24 PM

  • Problems with Runtime.exec() and certain Unix processes

    Certain Unix processes don't behave correctly when run from Java using Runtime.exec(). This can be seen by running /bin/sh and trying to interact with it interactively. The issue appears to be that /bin/sh (and many other Unix tools) are checking the file handles on the spawned process to see if they are associated with a TTY.
    Is there any way to associate a process spawned by Runtime.exec() with a terminal or alternatively, is there a JNI library available that would setup the process correctly and still provide access to the input and output streams?
    Our objective is to have the flexibility of expect in being able to run and interact with spawned processes. A bug was opened at one point but closed back in 1997 as being a fault in the spawned process, not Java.
    Bug ID: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4058689

    #include <stdio.h>
    void doit() {
    int c;
            while((c=getc(stdin)) != EOF) {
                    printf("%c",c);
    int main() {
            freopen("/dev/tty", "r", stdin);
            doit();
    }This program reopens its standard input against /dev/tty and catenates it to stdout. And voila, it takes its standard input from the terminal, even though it was started with stdin against /dev/null..
    $ gcc b.c -o b
    $./b < /dev/null
    buon giorno
    buon giorno

  • How to stop threads, process, streams when closing a (internal) JFrame?

    Dear all,
    I read a Javaworld article about Runtime.exec(), which will output the process outputs and error outputs to either a file or System.out. Now I want to practice it by outputing the process output/error to a Swing JTextArea. It works fine if the process ends successfully.
    My problem is that I want to stop all the output threads and clear all the streams when user click close JFrame button before the process finished. The code is shown below. Note that this frame is poped up by a click from another main frame. ( it is not exiting the main Swing application). This happened when I want to kill a process when it is running.
    I tried to implements a WindowListener and add
    public void windowClosing(WindowEvent e) to the JFrame.
    Inside this method I used process.destroy() and errorGobbler = null, outputGobbler = null, or outputGobbler.interrupt(), errorGobbler.interrupt(). But all these seems does not work. Sometimes thread was not stopped, sometimes process was not destroyed (because the stream was still print out something), sometimes the error stream was not successfully closed - by printing out interruptted by user error message.
    How can I make sure all the underlying streams and threads, including the PrintStream in StreamGobbler class are closed?
    Again this Frame could be a Dialog or InternalFrame, i.e, when I close the frame, the main frame does not exit!
    import java.util.*;
    import java.io.*;
    class StreamGobbler extends Thread
        InputStream is;
        String type;
        OutputStream os;
        StreamGobbler(InputStream is, String type, JTextArea out)
            this(is, type, null, out);
        StreamGobbler(InputStream is, String type, OutputStream redirect, JTextArea out)
            this.is = is;
            this.type = type;
            this.os = redirect;
        public void run()
            try
                PrintWriter pw = null;
                if (os != null)
                    pw = new PrintWriter(os);
                InputStreamReader isr = new InputStreamReader(is);
                BufferedReader br = new BufferedReader(isr);
                String line=null;
                while ( (line = br.readLine()) != null)
                    if (pw != null)
                        pw.println(line);
                    out.append(type + ">" + line);   
                if (pw != null)
                    pw.flush();
            } catch (IOException ioe)
                ioe.printStackTrace(); 
    public class Test extends JFrame
        private JTextArea output;
        private StreamGobbler outputGobbler;
        private StreamGobbler errorGobbler;
        public Test (String file)
            super();
            output = new JTextArea();
            try
                FileOutputStream fos = new FileOutputStream(file);
                Runtime rt = Runtime.getRuntime();
                Process proc = rt.exec("java jecho 'Hello World'");
                errorGobbler = new
                    StreamGobbler(proc.getErrorStream(), "ERROR", out);           
                outputGobbler = new
                    StreamGobbler(proc.getInputStream(), "OUTPUT", fos, out);
                errorGobbler.start();
                outputGobbler.start();
                int exitVal = proc.waitFor();
                output.append("ExitValue: " + exitVal);
                fos.flush();
                fos.close();       
            } catch (Throwable t)
                t.printStackTrace();
         setSize(400,400);
         show();
    }Thanks !

    Thread.interrupt() doesn't stop a thread. You'll have to read the API for more specifics. You could use something like interrupt to force interruption of the thread for the reason of checking the terminating case though. I believe you would want to use this in the case where operations can take a long time.
    Setting your reference to the thread to be null won't stop the thread since it's running. You just lose your reference to it.
    I believe once the thread stops running your streams will be closed, but possibly not cleanly. Someone who has more knowledge of threads might be able to answer this better, but I would generally say clean up after yourself especially if you are writting out data.

  • Runtime.getRuntime().exec() and Garbage Collection

    I am programming a piece of software in both Java and C that has some strict real time requirements. Garbage collection, which pauses all threads in Java, sometimes causes loss of incoming data. In order to get around this, I am thinking to start another process using Runtime.getRuntime().exec("c_program") and using interprocess controls (in a UNIX environment) to retrieve data from the new process.
    My only worry is that the Process created by the above call would be a child process of whatever JVM thread created it, (as far as I understand, the JVM implementation in Unix uses multiple processes) and would also be paused when garbage collection occurs. Does anyone know the implementation of the exec functionality and the JVM well enough to say that this will or will not happen?
    Thanks in advance,
    Benjamin

    You're going to create a whole new process? I don't
    know what a "child process" means, but Runtime.exec()
    gets the operating system to produce an entirely new
    process, outside the JVM. However if it produces
    output on stdout or stderr, you're going to have
    threads in your JVM that read that output, otherwise
    that process will hang.
    Why is your idea better than just calling the C
    program via JNI?Thank you both for your replies. My plan was to create a whole new process, yes. In UNIX, a process C is created by another process P using fork() or the exec() family. Process P is then the parent of process C, and process C is the child of Process P. P has an amount of control over C since it can send various signals to pause, kill, etc to C.
    My concern was that the JVM implementation would use these signals to implement the pause of all threads before garbage collecting. If it did, it may also pause the Process that it spawned from the Runtime.exec() call. Pausing my C program in this manner would cause the loss of data I was trying to avoid in the first place.
    My plan for the new process was not to produce anything on stdout or stderr, but to pass data back to the JVM using ipc (interprocess communication) resources of UNIX. I would have to use the JNI to access these resources.
    The whole reason for wanting to do this is to avoid the pause during garbage collection that all Java Threads experience. If I were just to call the C program through the JNI with a normal Java Thread as I think you were suggesting, this Java Thread would still be paused during garbage collection.
    To the second reply about RTSJ, I had heard about this but couldn't find info about it! Thanks for the link. I'm checking it out at the moment. The java runtime must be considerably different for the specifications I see that they guarantee.
    Again, thanks for the replies,
    Benjamin

  • Reading InputStream from Runtime.exec() and ffmpeg?

    I've got a lot of things going on here and I'm having trouble debugging. I'm working on a streaming music player, and the platform only handles MP3 natively. Specifically, the method that handles incoming requests has to return an InputStream for further processing upstream (out of my visibility).
    I'm trying to extend the music player to play AAC files with the extension ".m4a". To do this, my plan is to transcode from MP3 to AAC using Runtime.exec() and ffmpeg, and then return an InputStream that contains the MP3. This works fine if I use ffmpeg to transcode to a temp file, and then return a FileInputStream constructed from that temp file. But like I said, this is supposed to be a steaming music player, and the blocking for the ~30 seconds it takes to completely transcode to a file is too much of a delay.
    So what I'm trying to do is have ffmpeg transcode to stdout, and then use Process.getInputStream() to return the InputStream that contains ffmpeg's stdout while the transcoding is still going on. This doesn't work and I'm not sure why. (I'm fairly new to java, and this is the first time I've used Runtime.) My player just hangs there. I know Runtime is picky about exhausting the stdout and stderr streams, so I'm not sure if it's something related to that, or if I somehow need to buffer the stdout before returning it, or if I need to run something in a different thread, or if I'm just completely barking up the wrong tree.
    If anyone has any experience with something like this, or can point me at some code that implements something similar, I'd appreciate the help.
    Below a sample of the code in question. Also, for what it's worth, all of the console messages that I put in there are printing, but the music doesn't play.
       public InputStream getStream(String uri) throws IOException
                 System.out.println("Entering Factory.getStream()");
                  System.out.flush();
                File file = new File(URLDecoder.decode(uri, "UTF-8"));
                if (file.exists())
                     if(file.getPath().toLowerCase().endsWith(".mp3")) {
                            // This code for playing MP3 files works correctly
                          System.out.println("Playing MP3");
                          System.out.flush();
                          InputStream in = new FileInputStream(file);
                          return in;
                     else if(file.getPath().toLowerCase().endsWith(".m4a")){
                          System.out.println("Playing M4A");
                          System.out.flush();
                          // Create array for ffmpeg command line
                            // This command line transcodes to STDOUT
                          String[] command = { this.ffmpeg_path,
                                                             "-i", 
                                                             "input.m4a",
                                                             "-acodec",
                                                             "libmp3lame",
                                                             "-ac",
                                                             "2",
                                                             "-ab",
                                                             "256",
                                                             "-f",
                                                             "mp3",
                          // Begin transcoding with ffmpeg
                          System.out.println("Transcoding...");
                          System.out.flush();
                          Runtime runtime = Runtime.getRuntime();
                          Process ffmpeg = runtime.exec(command);
                          // Must exhaust error stream, or the application can become deadlocked.
                          System.out.println("Exhausting stderr...");
                          System.out.flush();
                          this.exhaustInputStream(ffmpeg.getErrorStream());
                          // Return ffmpeg's stdout as an input stream
                          System.out.println("Returning stdout...");
                          System.out.flush();
                          return ffmpeg.getInputStream();
                     else {
                          System.out.println("Unsupported Audio File");
                          System.out.flush();
                          return null;
                else
                    // We aren't requesting a file, so let the API handle the request upstream...
                    return super.getStream(uri);
         private void exhaustInputStream(final InputStream inputStream) {
                  // Since InputStream.read() blocks, exhast the stream in a separate thread
                  new Thread() {
                       public void run() {
                            try {
                                 while(inputStream.read() >= 0) {
                                      // Just throw the bytes away
                            catch(IOException e) {
                                 e.printStackTrace();
                  }.start();
             }

    Read this article
    http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

  • Process Orchestration - Configuration Wizard "Process Integration and Orchestration Package" shows running

    Hi SAP Gurus,
    I have installed an SAP PO system and am running the Config Wizard from NWA. The functional unit I have selected from NWA is - "Process Integration and Orchestration Package". This functional unit has in turn selected few more functional units like AEX, SLD. The issue that I am facing is that the wizard does not appear for my inputs and it shows that the selected wizards are running. Please see attachment "config_wizard_running.jpeg"
    I read some forums and found a thread where in it was mentioned how to stop the config wizard and restart it. http://scn.sap.com/thread/1422958
    Even after restarting my server, the functional units are still showing as running in NWA --> Configuration --> Scenarios --> Configuration Wizard --> Functional Unit Configuration UI. Please see attachment "Config_wizard_stuck.jpeg"
    I restarted the application as suggested in the post so that I could run Config Wizard again. But its now allowing me to start it as the status is Running.
    Please suggest.
    Regards,
    Amit

    Hi Dimitri,
    Thanks a lot. I have resetted the functional units. This time the wizard comes up ok.
    Regards,
    Amit

  • Java.lang.Process.exec()

    I have read a article about the "java.lang.Process.exec()" (url:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html)
    Having some questions with the example in it.
    The example code:
    import java.util.*;
    import java.io.*;
    public class BadExecJavac
        public static void main(String args[])
            try
                Runtime rt = Runtime.getRuntime();
                Process proc = rt.exec("javac");
                //int exitVal = proc.exitValue();
                int exitVal = proc.waitFor();
                System.out.println("Process exitValue: " + exitVal);
            } catch (Throwable t)
                t.printStackTrace();
    }The process can run but never complete.
    Why? Just because when invoke the javac.exe without any argument,it will product a set of usage statements that describe how to run the program and the meaning of all the available program options.So the process is in deadlock.
    The question is, when i change the exec("javac") to exec("javac a.java"), in which the "a.java" is not exist, so the jvm should product error:
    error: cannot read: a.java
    1 error
    But after i changed the code and run the class, at this time the process can run and complete.
    The two codes both product some statements,but why the first one never complete,but the second did. Why?

    import java.util.*;
    import java.io.*;
    public class A
        public static void main(String args[])
            try
                Runtime rt = Runtime.getRuntime();
                Process proc = rt.exec("javac");
                InputStream is = proc.getErrorStream();
                int i=0;
                while ((i = is.read()) != -1)
                    System.out.print((char)i);
                // int exitVal = proc.exitValue();
                // int exitVal = proc.waitFor();
                // System.out.println("Process exitValue: " + exitVal);
            } catch (Throwable t)
                t.printStackTrace();
    }usng this modification, i could see some error messages.
    because exec(cmd) executes the command in a separate process, it will not display the results on the current console. If you want see the results, you should use getInputStream() and getErrorStream().
    good luch ^^

  • Thread caching generally and the print API specifically

    hi - new slant on the old "printing" chestnut
    code goes something like this.
    a)
    PrintService[] x = javax.print.PrintServiceLookup.lookupPrintServices(null, null);
    System.out.println (x.length)
    code end, then repeat
    b)
    PrintService[] y = javax.print.PrintServiceLookup.lookupPrintServices(null, null);
    [break point]
    PrintService[] z = javax.print.PrintServiceLookup.lookupPrintServices(null, null);
    code end
    example a)
    if i run the same piece of code twice over, deleting a printer after the first time thru, i get the right answer on the second run.
    example b)
    if i stop the code at the break point, and then delete a printer; i get the same answer for z as for y. Still using the same JVM and thread, remember.
    i think the JVM or thread is caching the answers to this static call "lookupPrintServices". so i get the same answer until the code ends and the JVM exits.
    since this is going to run in an EJ bean, a workaround might be creating a child thread, doing the printer discovery in it, then returning the answer somehow to the waiting main program. This is nasty - does anyone have an other ideas ?
    thanks

    In fact, these server process have multiple devices attached because there are different hardware requirements depending on metadata recorded in the XML file (paper size/type, duplex printing). When a new hardware requirement arises, we may need to install a different device. It may also be the case that an XML contains a new printer name but that an existing device matches the requirements. We then install a new (logical) printer and map it to the port of the existing matching device.
    Any way, the device selection is data-driven and is somewhat dynamic (we will not add printer every day/hour but it will happen and the service should preferably not be interrupted)
    The problem of a new report type with hardware requirements already supported by existing devices could be solved by a override method but the problem of new hardware specifications, requiring the installation of a new printer can currently be solved only by bouncing the VM, which must be done carefully (being sure that a report has been processed completely and that the next one has not yet been started).

  • How to create and destroy dynamically an array

    How to create an array of container dynamically and destroy it. I have an array of container which is to be sorted by comparision, but in sorting out the elements i want to delete some of the elements based on comparision.I run a for loop based on the number of elements in the array to be sorted. So what i do is take the elements into another array which i want to create it dynamically and reassign the new array back to the old one after sorting and delete it.

    Hi kpraveen,
    Maybe this thread helps,
    http://forums.ni.com/ni/board/message?board.id=330&message.id=18421&query.id=288653#M18421
    Greetings
    Juergen
    =s=i=g=n=a=t=u=r=e= Click on the Kudos button (Gold Star) and see what happens =s=i=g=n=a=t=u=r=e=
    =s=i=g=n=a=t=u=r=e= Click on the Star and see what happens :-) =s=i=g=n=a=t=u=r=e=

  • Authorization objects for Process chain and Data sources in BW 3.x version

    Hi,
              Can any one tell me the authorization objects regaring process chain and Data source in BW 3.x versions. I guess we have auth objects for both of them in BW 3.5 that is S_RS_PC AND S_RS_DS .
    Can any one help me solving this issue
    Thanks
    Bharat

    its the same thread again
    /community [original link is broken]
    Thanks,
    Raj

  • Thread get struck and never get released

    Hi
    We are using Weblogic 8.1 SP 1, (Patch CR134364 applied). Thread get struck and never get released. Do any one faced this problem?
    Full thread dump Java HotSpot(TM) Client VM (1.4.1_03-b02 mixed mode):
    "LDAPCache-TTLTimer" daemon prio=5 tid=0x5662BE28 nid=0x7b8 in Object.wait() [5301f000..5301fd88]
         at java.lang.Object.wait(Native Method)
         at netscape.ldap.TTLTimer.run(LDAPCache.java:806)
         - locked <1671AB50> (a netscape.ldap.TTLTimer)
         at java.lang.Thread.run(Thread.java:536)
    "LDAPCache-TTLTimer" daemon prio=5 tid=0x5380A940 nid=0x928 in Object.wait() [52fdf000..52fdfd88]
         at java.lang.Object.wait(Native Method)
         at netscape.ldap.TTLTimer.run(LDAPCache.java:806)
         - locked <08A437F0> (a netscape.ldap.TTLTimer)
         at java.lang.Thread.run(Thread.java:536)
    "LDAPCache-TTLTimer" daemon prio=5 tid=0x567D5D88 nid=0xb74 in Object.wait() [5311f000..5311fd88]
         at java.lang.Object.wait(Native Method)
         at netscape.ldap.TTLTimer.run(LDAPCache.java:806)
         - locked <0D4F7D00> (a netscape.ldap.TTLTimer)
         at java.lang.Thread.run(Thread.java:536)
    "LDAPCache-TTLTimer" daemon prio=5 tid=0x56798660 nid=0x858 in Object.wait() [530df000..530dfd88]
         at java.lang.Object.wait(Native Method)
         at netscape.ldap.TTLTimer.run(LDAPCache.java:806)
         - locked <1671AB38> (a netscape.ldap.TTLTimer)
         at java.lang.Thread.run(Thread.java:536)
    "LDAPConnThread dc02.ameriquest.net:389" daemon prio=5 tid=0x537AB9D0 nid=0x90c runnable [5305f000..5305fd88]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
         - locked <1671B420> (a java.io.BufferedInputStream)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:420)
    "LDAPConnThread dc02.ameriquest.net:389" daemon prio=5 tid=0x5682CE70 nid=0x2a0 runnable [55f000..55fd88]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
         - locked <1671BD00> (a java.io.BufferedInputStream)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:420)
    "ExecuteThread: '2' for queue: 'weblogic.kernel.Non-Blocking'" daemon prio=5 tid=0x5671B410 nid=0xa44 in Object.wait() [5574f000..5574fd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <1479A770> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '1' for queue: 'weblogic.kernel.Non-Blocking'" daemon prio=5 tid=0x61CCEEB0 nid=0xa38 in Object.wait() [5570f000..5570fd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <1479A7E8> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '0' for queue: 'weblogic.kernel.Non-Blocking'" daemon prio=5 tid=0x567AAEB0 nid=0x350 in Object.wait() [51f000..51fd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <1479A860> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "LDAPConnThread dc02.ameriquest.net:389" daemon prio=5 tid=0x56557C20 nid=0x9ac runnable [5309f000..5309fd88]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
         - locked <11A34BC8> (a java.io.BufferedInputStream)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:420)
    "LDAPConnThread dc02.ameriquest.net:389" daemon prio=5 tid=0x565CEC20 nid=0xafc runnable [4df000..4dfd88]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
         - locked <11A36668> (a java.io.BufferedInputStream)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:420)
    "ListenThread.Default" prio=5 tid=0x52F69CA0 nid=0x694 runnable [5567f000..5567fd88]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
         - locked <081E7F68> (a java.net.PlainSocketImpl)
         at java.net.ServerSocket.implAccept(ServerSocket.java:448)
         at java.net.ServerSocket.accept(ServerSocket.java:419)
         at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:24)
         at weblogic.t3.srvr.ListenThread.accept(ListenThread.java:715)
         at weblogic.t3.srvr.ListenThread.run(ListenThread.java:291)
    "Thread-8" prio=5 tid=0x5334DC38 nid=0x92c in Object.wait() [5563f000..5563fd88]
         at java.lang.Object.wait(Native Method)
         at java.util.TimerThread.mainLoop(Timer.java:429)
         - locked <07F5E6E8> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "Thread-7" prio=5 tid=0x5327A498 nid=0x23c waiting for monitor entry [555ff000..555ffd88]
         at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java:3622)
         - waiting to lock <0C516F90> (a oracle.jdbc.driver.OraclePreparedStatement)
         at weblogic.jdbc.common.internal.ConnectionEnv.cleanUpStatementForReUse(ConnectionEnv.java:1024)
         at weblogic.jdbc.common.internal.ConnectionEnv.returnCachedStatement(ConnectionEnv.java:829)
         at weblogic.jdbc.wrapper.Statement.internalClose(Statement.java:263)
         at weblogic.jdbc.wrapper.Connection.closeAllStatements(Connection.java:251)
         at weblogic.jdbc.wrapper.Connection.closeAllStatements(Connection.java:239)
         at weblogic.jdbc.wrapper.PoolConnection.doClose(PoolConnection.java:146)
         at weblogic.jdbc.wrapper.Connection.forcedCleanup(Connection.java:111)
         at weblogic.common.resourcepool.ResourcePoolImpl.timeoutInactiveResources(ResourcePoolImpl.java:1643)
         at weblogic.common.resourcepool.ResourcePoolImpl.access$400(ResourcePoolImpl.java:28)
         at weblogic.common.resourcepool.ResourcePoolImpl$ResourcePoolMaintanenceTask.run(ResourcePoolImpl.java:1888)
         at java.util.TimerThread.mainLoop(Timer.java:432)
         at java.util.TimerThread.run(Timer.java:382)
    "Thread-6" daemon prio=5 tid=0x52F01D98 nid=0x1ec in Object.wait() [555bf000..555bfd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at java.util.TimerThread.mainLoop(Timer.java:403)
         - locked <07EB2F18> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "weblogic.health.CoreHealthMonitor" daemon prio=5 tid=0x53396118 nid=0xa0c waiting on condition [5557f000..5557fd88]
         at java.lang.Thread.sleep(Native Method)
         at weblogic.t3.srvr.CoreHealthMonitorThread.run(CoreHealthMonitorThread.java:124)
    "Thread-5" prio=5 tid=0x533AB648 nid=0x7c8 in Object.wait() [5553f000..5553fd88]
         at java.lang.Object.wait(Native Method)
         at java.util.TimerThread.mainLoop(Timer.java:429)
         - locked <07D0EB90> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "ExecuteThread: '0' for queue: 'Multicast'" daemon prio=5 tid=0x5337AF20 nid=0x918 in Object.wait() [554ff000..554ffd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <07CE3030> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "NodeManagerAgent" prio=5 tid=0x52F71CE8 nid=0x938 runnable [554bf000..554bfd88]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.net.SocketInputStream.read(SocketInputStream.java:182)
         at weblogic.utils.io.ChunkedInputStream.read(ChunkedInputStream.java:122)
         at com.certicom.tls.record.Util.readUInt8(Unknown Source)
         at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
         at com.certicom.tls.record.ReadHandler.read(Unknown Source)
         - locked <07C90EF8> (a com.certicom.tls.record.ReadHandler)
         at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)
         at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:448)
         at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
         - locked <065E61B8> (a java.io.InputStreamReader)
         at java.io.InputStreamReader.read(InputStreamReader.java:167)
         at java.io.BufferedReader.fill(BufferedReader.java:136)
         at java.io.BufferedReader.readLine(BufferedReader.java:299)
         - locked <065E61B8> (a java.io.InputStreamReader)
         at java.io.BufferedReader.readLine(BufferedReader.java:362)
         at weblogic.nodemanager.internal.NMMessage.receive(NMMessage.java:109)
         at weblogic.nodemanager.wlscontrol.NodeManagerCommandListener.readInputCommand(NodeManagerCommandListener.java:131)
         at weblogic.nodemanager.wlscontrol.NodeManagerCommandListener.run(NodeManagerCommandListener.java:60)
    "Thread-4" prio=5 tid=0x52E59E80 nid=0xb50 in Object.wait() [5547f000..5547fd88]
         at java.lang.Object.wait(Native Method)
         - waiting on <07C0A878> (a java.util.TaskQueue)
         at java.lang.Object.wait(Object.java:426)
         at java.util.TimerThread.mainLoop(Timer.java:403)
         - locked <07C0A878> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:382)
    "LDAPConnThread 192.168.32.60:4001" daemon prio=5 tid=0x535B4738 nid=0x9f4 runnable [5543f000..5543fd88]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
         - locked <07BBFAA8> (a java.io.BufferedInputStream)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:420)
    "VDE Transaction Processor Thread" prio=2 tid=0x53506AC0 nid=0xa04 in Object.wait() [553ff000..553ffd88]
         at java.lang.Object.wait(Native Method)
         - waiting on <07B74C80> (a com.octetstring.vde.backend.standard.TransactionProcessor)
         at java.lang.Object.wait(Object.java:426)
         at com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:355)
         - locked <07B74C80> (a com.octetstring.vde.backend.standard.TransactionProcessor)
         at com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:215)
    "ExecuteThread: '2' for queue: 'weblogic.admin.RMI'" daemon prio=5 tid=0x531E0C80 nid=0x670 in Object.wait() [553bf000..553bfd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <079BF888> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '1' for queue: 'weblogic.admin.RMI'" daemon prio=5 tid=0x52E0D6F8 nid=0xb54 in Object.wait() [5537f000..5537fd88]
         at java.lang.Object.wait(Native Method)
         - waiting on <079BF380> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <079BF380> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '0' for queue: 'weblogic.admin.RMI'" daemon prio=5 tid=0x5367FA50 nid=0x68c in Object.wait() [5533f000..5533fd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <079BEE58> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '4' for queue: 'weblogic.socket.Muxer'" daemon prio=5 tid=0x536DD340 nid=0xb90 runnable [552ff000..552ffd88]
         at weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:85)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" daemon prio=5 tid=0x536E2DE0 nid=0xab0 runnable [552bf000..552bfd88]
         at weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:85)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" daemon prio=5 tid=0x536E23F0 nid=0xb48 runnable [5527f000..5527fd88]
         at weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:85)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" daemon prio=5 tid=0x536DFA90 nid=0x77c runnable [5523f000..5523fd88]
         at weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:85)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" daemon prio=5 tid=0x536DC928 nid=0xb58 runnable [551ff000..551ffd88]
         at weblogic.socket.NTSocketMuxer.getIoCompletionResult(Native Method)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:85)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "weblogic.security.SpinnerRandomSource" daemon prio=5 tid=0x536D5990 nid=0x9f0 in Object.wait() [54d8f000..54d8fd88]
         at java.lang.Object.wait(Native Method)
         - waiting on <078B9F48> (a java.lang.Object)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.security.SpinnerRandomBitsSource.run(SpinnerRandomBitsSource.java:60)
         - locked <078B9F48> (a java.lang.Object)
         at java.lang.Thread.run(Thread.java:536)
    "weblogic.time.TimeEventGenerator" daemon prio=9 tid=0x536D2238 nid=0x69c in Object.wait() [54d4f000..54d4fd88]
         at java.lang.Object.wait(Native Method)
         at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:271)
         - locked <078AF4C0> (a weblogic.time.common.internal.TimeTable)
         at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:118)
         at java.lang.Thread.run(Thread.java:536)
    "ExecuteThread: '4' for queue: 'weblogic.kernel.System'" daemon prio=5 tid=0x536D0648 nid=0xa40 in Object.wait() [54d0f000..54d0fd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <078AEC78> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '3' for queue: 'weblogic.kernel.System'" daemon prio=5 tid=0x536CF9F0 nid=0x664 in Object.wait() [54ccf000..54ccfd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <078AE7E8> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '2' for queue: 'weblogic.kernel.System'" daemon prio=5 tid=0x536CED98 nid=0x9b0 in Object.wait() [54c8f000..54c8fd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <078AE358> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '1' for queue: 'weblogic.kernel.System'" daemon prio=5 tid=0x536CE140 nid=0x9a4 in Object.wait() [54c4f000..54c4fd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <078ADEC8> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '0' for queue: 'weblogic.kernel.System'" daemon prio=5 tid=0x536CDCF8 nid=0xa5c in Object.wait() [54c0f000..54c0fd88]
         at java.lang.Object.wait(Native Method)
         - waiting on <078ADA20> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <078ADA20> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '34' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x536CC7B0 nid=0x684 runnable [54bcf000..54bcfd88]
         at java.net.PlainDatagramSocketImpl.receive(Native Method)
         at java.net.DatagramSocket.receive(DatagramSocket.java:680)
         - locked <036BC240> (a java.net.DatagramPacket)
         - locked <07EA5528> (a java.net.MulticastSocket)
         at weblogic.cluster.FragmentSocket.receive(FragmentSocket.java:169)
         at weblogic.cluster.MulticastManager.execute(MulticastManager.java:377)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "ExecuteThread: '33' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x536CB340 nid=0x9b8 runnable [54b8e000..54b8fd88]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at oracle.net.ns.Packet.receive(Unknown Source)
         at oracle.net.ns.DataPacket.receive(Unknown Source)
         at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:931)
         at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:375)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
         at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:1199)
         - locked <07F4DBD8> (a oracle.jdbc.ttc7.TTC7Protocol)
         at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2512)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2840)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:608)
         - locked <0C516F90> (a oracle.jdbc.driver.OraclePreparedStatement)
         - locked <07F4DC48> (a oracle.jdbc.driver.OracleConnection)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:536)
         - locked <0C516F90> (a oracle.jdbc.driver.OraclePreparedStatement)
         - locked <07F4DC48> (a oracle.jdbc.driver.OracleConnection)
         at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:80)
         at tavant.app.wolf.appraisal.dao.LoanDAO.getAllOrderHistory(LoanDAO.java:216)
         at tavant.app.wolf.appraisal.business.sessionejbs.ResolveSessionFacadeBean.getValuationHistoryData(ResolveSessionFacadeBean.java:459)
         at tavant.app.wolf.appraisal.business.sessionejbs.ResolveSessionFacadeBean_r2meeg_EOImpl.getValuationHistoryData(ResolveSessionFacadeBean_r2meeg_EOImpl.java:216)
         at tavant.app.wolf.appraisal.business.webservices.AppraisalWsImpl.getValuationHistoryData(AppraisalWsImpl.java:139)
         at tavant.app.wolf.appraisal.business.webservices.CorpAppraisalEngineSoapBindingImpl.getValuationHistoryData(CorpAppraisalEngineSoapBindingImpl.java:27)
         at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:383)
         at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:291)
         at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:330)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
         at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:475)
         at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "ExecuteThread: '32' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x536CA6E8 nid=0x66c runnable [54b4e000..54b4fd88]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at oracle.net.ns.Packet.receive(Unknown Source)
         at oracle.net.ns.DataPacket.receive(Unknown Source)
         at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.net.ns.NetInputStream.read(Unknown Source)
         at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:931)
         at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:375)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
         at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:1199)
         - locked <07F52838> (a oracle.jdbc.ttc7.TTC7Protocol)
         at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2512)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2840)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:608)
         - locked <176922E0> (a oracle.jdbc.driver.OraclePreparedStatement)
         - locked <07F528A8> (a oracle.jdbc.driver.OracleConnection)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:536)
         - locked <176922E0> (a oracle.jdbc.driver.OraclePreparedStatement)
         - locked <07F528A8> (a oracle.jdbc.driver.OracleConnection)
         at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:80)
         at tavant.app.wolf.cdm.AppraisalOrdersBean_1vds1s__WebLogic_CMP_RDBMS.ejbFindByPrimaryKey(AppraisalOrdersBean_1vds1s__WebLogic_CMP_RDBMS.java:3743)
         at sun.reflect.GeneratedMethodAccessor285.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.findByPrimaryKey(RDBMSPersistenceManager.java:234)
         at weblogic.ejb20.manager.BaseEntityManager.findByPrimaryKey(BaseEntityManager.java:1428)
         at weblogic.ejb20.manager.BaseEntityManager.localFindByPrimaryKey(BaseEntityManager.java:1384)
         at weblogic.ejb20.internal.EntityEJBLocalHome.findByPrimaryKey(EntityEJBLocalHome.java:264)
         at tavant.app.wolf.cdm.AppraisalOrdersBean_1vds1s_LocalHomeImpl.findByPrimaryKey(AppraisalOrdersBean_1vds1s_LocalHomeImpl.java:205)
         at tavant.app.wolf.cdmal.appraisal.sessionejbs.OrderALSessionBean.getOrderforCheckStatus(OrderALSessionBean.java:1519)
         at tavant.app.wolf.cdmal.appraisal.sessionejbs.OrderALSessionBean_vmnknu_EOImpl.getOrderforCheckStatus(OrderALSessionBean_vmnknu_EOImpl.java:952)
         at tavant.app.wolf.appraisal.business.sessionejbs.OrderSessionFacadeBean.CheckOrderStatus(OrderSessionFacadeBean.java:1265)
         at tavant.app.wolf.appraisal.business.sessionejbs.OrderSessionFacadeBean_d5o7z0_EOImpl.CheckOrderStatus(OrderSessionFacadeBean_d5o7z0_EOImpl.java:46)
         at tavant.app.wolf.appraisal.web.delegate.OrderManagementDelegate.checkOrderStatus(OrderManagementDelegate.java:193)
         at tavant.app.wolf.appraisal.resolve.web.actions.UpdatePropertyValuationDetailsAction.checkStatus(UpdatePropertyValuationDetailsAction.java:66)
         at sun.reflect.GeneratedMethodAccessor1289.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:252)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:480)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "ExecuteThread: '31' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x536C9A90 nid=0xa28 in Object.wait() [54b0f000..54b0fd88]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:426)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:145)
         - locked <078ABBA8> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:164)
    "ExecuteThread: '30' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x536C8E38 nid=0xb80 waiting for monitor entry [54acf000..54acfd88]
         at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1400)
         - waiting to lock <07F3A228> (a oracle.jdbc.driver.OracleConnection)
         at weblogic.jdbc.wrapper.JTSConnection.internalRollback(JTSConnection.java:344)
         - locked <17587290> (a weblogic.jdbc.wrapper.JTSConnection_oracle_jdbc_driver_OracleConnection)
         at weblogic.jdbc.wrapper.JTSXAResourceImpl.rollback(JTSXAResourceImpl.java:75)
         at weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:1283)
         at weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:631)
         at weblogic.transaction.internal.ServerSCInfo.startRollback(ServerSCInfo.java:729)
         at weblogic.transaction.internal.ServerTransactionImpl.localRollback(ServerTransactionImpl.java:1787)
         at weblogic.transaction.internal.ServerTransactionImpl.globalRollback(ServerTransactionImpl.java:2461)
         at weblogic.transaction.internal.TransactionImpl$1.execute(TransactionImpl.java:1759)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    "ExecuteThread: '29' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x536C81E0 nid=0x9c0 waiting for monitor entry [54a8f000..54a8fd88]
         at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1400)
         - waiting to lock <07F528A8> (a oracle.jdbc.driver.OracleConnection)
         at weblogic.jdbc.wrapper.JTSConnection.internalRollback(JTSConnection.java:344)
         - locked <17692418> (a weblogic.jdbc.wrapper.JTSConnection_oracle_jdbc_driver_OracleConnection)
         at weblogic.jdbc.wrapper.JTSXAResourceImpl.rollback(JTSXAResourceImpl.java:75)
         at weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:1283)
         at weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:631)
         at weblogic.transaction.internal.ServerSCInfo.startRollback(ServerSCInfo.java:729)
         at weblogic.transaction.internal.ServerTransactionImpl.localRollback(Se

    I suspect you have a deadlock in the database. There are some WLS threads that seem to be waiting for a response from the DB and there are some others waiting for locks held by those threads. The latter threads are trying to rollback transactions, probably because the transactions have timed out. I'd examine the DB log files to figure out where the deadlock is.

  • Clearing Images and Destroying Instances

    Two separate questions here.
    First I'd like to know how to clear an image that has been drawn, with it being on a random background with multiple colors, without having to redraw the background over and over again. I have an image that moves across the screen and I have the background update only when it needs to to save processing power, but now, obviously, the moving image remains drawn wherever it goes. That or if there's a way to "move" an already drawn image.
    Secondly, I'd like to know how to delete an instance of a class from within that class. I have a class that gets called a lot (example: Caller.java), and each time it's called, it creates a new instance of another class (example: NewClass.java), but when Caller.java is called, it is only used once, and I don't want all those instances to just remain there. I'd like to force GC to take care of them at the end of their tasks.
    If anyone can provide answers to either of those questions, thank you.

    hi,
    try to read this it may helpfor the subject:its from thinking in java 2nd edition by bruce eckel:
    Cleanup: finalization and
    garbage collection
    Programmers know about the importance of initialization, but often forget the importance of cleanup. After all, who needs to clean up an int? But with libraries, simply �letting go� of an object once you�re done with it is not always safe. Of course, Java has the garbage collector to reclaim the memory of objects that are no longer used. Now consider a very unusual case. Suppose your object allocates �special� memory without using new. The garbage collector knows only how to release memory allocated with new, so it won�t know how to release the object�s �special� memory. To handle this case, Java provides a method called finalize( ) that you can define for your class. Here�s how it�s supposed to work. When the garbage collector is ready to release the storage used for your object, it will first call finalize( ), and only on the next garbage-collection pass will it reclaim the object�s memory. So if you choose to use finalize( ), it gives you the ability to perform some important cleanup at the time of garbage collection. [ Add Comment ]
    This is a potential programming pitfall because some programmers, especially C++ programmers, might initially mistake finalize( ) for the destructor in C++, which is a function that is always called when an object is destroyed. But it is important to distinguish between C++ and Java here, because in C++ objects always get destroyed (in a bug-free program), whereas in Java objects do not always get garbage-collected. Or, put another way: [ Add Comment ]
    Garbage collection is not destruction.
    If you remember this, you will stay out of trouble. What it means is that if there is some activity that must be performed before you no longer need an object, you must perform that activity yourself. Java has no destructor or similar concept, so you must create an ordinary method to perform this cleanup. For example, suppose in the process of creating your object it draws itself on the screen. If you don�t explicitly erase its image from the screen, it might never get cleaned up. If you put some kind of erasing functionality inside finalize( ), then if an object is garbage-collected, the image will first be removed from the screen, but if it isn�t, the image will remain. So a second point to remember is: [ Add Comment ]
    Your objects might not get garbage-collected.
    You might find that the storage for an object never gets released because your program never nears the point of running out of storage. If your program completes and the garbage collector never gets around to releasing the storage for any of your objects, that storage will be returned to the operating system en masse as the program exits. This is a good thing, because garbage collection has some overhead, and if you never do it you never incur that expense. [ Add Comment ]
    What is finalize( ) for?
    You might believe at this point that you should not use finalize( ) as a general-purpose cleanup method. What good is it? [ Add Comment ]
    A third point to remember is:
    Garbage collection is only about memory.
    That is, the sole reason for the existence of the garbage collector is to recover memory that your program is no longer using. So any activity that is associated with garbage collection, most notably your finalize( ) method, must also be only about memory and its deallocation. [ Add Comment ]
    Does this mean that if your object contains other objects finalize( ) should explicitly release those objects? Well, no�the garbage collector takes care of the release of all object memory regardless of how the object is created. It turns out that the need for finalize( ) is limited to special cases, in which your object can allocate some storage in some way other than creating an object. But, you might observe, everything in Java is an object so how can this be? [ Add Comment ]
    It would seem that finalize( ) is in place because of the possibility that you�ll do something C-like by allocating memory using a mechanism other than the normal one in Java. This can happen primarily through native methods, which are a way to call non-Java code from Java. (Native methods are discussed in Appendix B.) C and C++ are the only languages currently supported by native methods, but since they can call subprograms in other languages, you can effectively call anything. Inside the non-Java code, C�s malloc( ) family of functions might be called to allocate storage, and unless you call free( ) that storage will not be released, causing a memory leak. Of course, free( ) is a C and C++ function, so you�d need to call it in a native method inside your finalize( ). [ Add Comment ]
    After reading this, you probably get the idea that you won�t use finalize( ) much. You�re correct; it is not the appropriate place for normal cleanup to occur. So where should normal cleanup be performed? [ Add Comment ]
    You must perform cleanup
    To clean up an object, the user of that object must call a cleanup method at the point the cleanup is desired. This sounds pretty straightforward, but it collides a bit with the C++ concept of the destructor. In C++, all objects are destroyed. Or rather, all objects should be destroyed. If the C++ object is created as a local (i.e., on the stack�not possible in Java), then the destruction happens at the closing curly brace of the scope in which the object was created. If the object was created using new (like in Java) the destructor is called when the programmer calls the C++ operator delete (which doesn�t exist in Java). If the C++ programmer forgets to call delete, the destructor is never called and you have a memory leak, plus the other parts of the object never get cleaned up. This kind of bug can be very difficult to track down. [ Add Comment ]
    In contrast, Java doesn�t allow you to create local objects�you must always use new. But in Java, there�s no �delete� to call to release the object since the garbage collector releases the storage for you. So from a simplistic standpoint you could say that because of garbage collection, Java has no destructor. You�ll see as this book progresses, however, that the presence of a garbage collector does not remove the need for or utility of destructors. (And you should never call finalize( ) directly, so that�s not an appropriate avenue for a solution.) If you want some kind of cleanup performed other than storage release you must still explicitly call an appropriate method in Java, which is the equivalent of a C++ destructor without the convenience. [ Add Comment ]
    One of the things finalize( ) can be useful for is observing the process of garbage collection. The following example shows you what�s going on and summarizes the previous descriptions of garbage collection:
    //: c04:Garbage.java
    // Demonstration of the garbage
    // collector and finalization
    class Chair {
    static boolean gcrun = false;
    static boolean f = false;
    static int created = 0;
    static int finalized = 0;
    int i;
    Chair() {
    i = ++created;
    if(created == 47)
    System.out.println("Created 47");
    public void finalize() {
    if(!gcrun) {
    // The first time finalize() is called:
    gcrun = true;
    System.out.println(
    "Beginning to finalize after " +
    created + " Chairs have been created");
    if(i == 47) {
    System.out.println(
    "Finalizing Chair #47, " +
    "Setting flag to stop Chair creation");
    f = true;
    finalized++;
    if(finalized >= created)
    System.out.println(
    "All " + finalized + " finalized");
    public class Garbage {
    public static void main(String[] args) {
    // As long as the flag hasn't been set,
    // make Chairs and Strings:
    while(!Chair.f) {
    new Chair();
    new String("To take up space");
    System.out.println(
    "After all Chairs have been created:\n" +
    "total created = " + Chair.created +
    ", total finalized = " + Chair.finalized);
    // Optional arguments force garbage
    // collection & finalization:
    if(args.length > 0) {
    if(args[0].equals("gc") ||
    args[0].equals("all")) {
    System.out.println("gc():");
    System.gc();
    if(args[0].equals("finalize") ||
    args[0].equals("all")) {
    System.out.println("runFinalization():");
    System.runFinalization();
    System.out.println("bye!");
    } ///:~
    The above program creates many Chair objects, and at some point after the garbage collector begins running, the program stops creating Chairs. Since the garbage collector can run at any time, you don�t know exactly when it will start up, so there�s a flag called gcrun to indicate whether the garbage collector has started running yet. A second flag f is a way for Chair to tell the main( ) loop that it should stop making objects. Both of these flags are set within finalize( ), which is called during garbage collection. [ Add Comment ]
    Two other static variables, created and finalized, keep track of the number of Chairs created versus the number that get finalized by the garbage collector. Finally, each Chair has its own (non-static) int i so it can keep track of what number it is. When Chair number 47 is finalized, the flag is set to true to bring the process of Chair creation to a stop. [ Add Comment ]
    All this happens in main( ), in the loop
    while(!Chair.f) {
    new Chair();
    new String("To take up space");
    You might wonder how this loop could ever finish, since there�s nothing inside the loop that changes the value of Chair.f. However, the finalize( ) process will, eventually, when it finalizes number 47. [ Add Comment ]
    The creation of a String object during each iteration is simply extra storage being allocated to encourage the garbage collector to kick in, which it will do when it starts to get nervous about the amount of memory available. [ Add Comment ]
    When you run the program, you provide a command-line argument of �gc,� �finalize,� or �all.� The �gc� argument will call the System.gc( ) method (to force execution of the garbage collector). Using the �finalize� argument calls System.runFinalization( ) which�in theory�will cause any unfinalized objects to be finalized. And �all� causes both methods to be called. [ Add Comment ]
    The behavior of this program and the version in the first edition of this book shows that the whole issue of garbage collection and finalization has been evolving, with much of the evolution happening behind closed doors. In fact, by the time you read this, the behavior of the program may have changed once again. [ Add Comment ]
    If System.gc( ) is called, then finalization happens to all the objects. This was not necessarily the case with previous implementations of the JDK, although the documentation claimed otherwise. In addition, you�ll see that it doesn�t seem to make any difference whether System.runFinalization( ) is called. [ Add Comment ]
    However, you will see that only if System.gc( ) is called after all the objects are created and discarded will all the finalizers be called. If you do not call System.gc( ), then only some of the objects will be finalized. In Java 1.1, a method System.runFinalizersOnExit( ) was introduced that caused programs to run all the finalizers as they exited, but the design turned out to be buggy and the method was deprecated. This is yet another clue that the Java designers were thrashing about trying to solve the garbage collection and finalization problem. We can only hope that things have been worked out in Java 2. [ Add Comment ]
    The preceding program shows that the promise that finalizers will always be run holds true, but only if you explicitly force it to happen yourself. If you don�t cause System.gc( ) to be called, you�ll get an output like this:
    Created 47
    Beginning to finalize after 3486 Chairs have been created
    Finalizing Chair #47, Setting flag to stop Chair creation
    After all Chairs have been created:
    total created = 3881, total finalized = 2684
    bye!
    Thus, not all finalizers get called by the time the program completes. If System.gc( ) is called, it will finalize and destroy all the objects that are no longer in use up to that point. [ Add Comment ]
    Remember that neither garbage collection nor finalization is guaranteed. If the Java Virtual Machine (JVM) isn�t close to running out of memory, then it will (wisely) not waste time recovering memory through garbage collection. [ Add Comment ]
    The death condition
    In general, you can�t rely on finalize( ) being called, and you must create separate �cleanup� functions and call them explicitly. So it appears that finalize( ) is only useful for obscure memory cleanup that most programmers will never use. However, there is a very interesting use of finalize( ) which does not rely on it being called every time. This is the verification of the death condition[29] of an object. [ Add Comment ]
    At the point that you�re no longer interested in an object�when it�s ready to be cleaned up�that object should be in a state whereby its memory can be safely released. For example, if the object represents an open file, that file should be closed by the programmer before the object is garbage-collected. If any portions of the object are not properly cleaned up, then you have a bug in your program that could be very difficult to find. The value of finalize( ) is that it can be used to discover this condition, even if it isn�t always called. If one of the finalizations happens to reveal the bug, then you discover the problem, which is all you really care about. [ Add Comment ]
    Here�s a simple example of how you might use it:
    //: c04:DeathCondition.java
    // Using finalize() to detect an object that
    // hasn't been properly cleaned up.
    class Book {
    boolean checkedOut = false;
    Book(boolean checkOut) {
    checkedOut = checkOut;
    void checkIn() {
    checkedOut = false;
    public void finalize() {
    if(checkedOut)
    System.out.println("Error: checked out");
    public class DeathCondition {
    public static void main(String[] args) {
    Book novel = new Book(true);
    // Proper cleanup:
    novel.checkIn();
    // Drop the reference, forget to clean up:
    new Book(true);
    // Force garbage collection & finalization:
    System.gc();
    } ///:~
    The death condition is that all Book objects are supposed to be checked in before they are garbage-collected, but in main( ) a programmer error doesn�t check in one of the books. Without finalize( ) to verify the death condition, this could be a difficult bug to find. [ Add Comment ]
    Note that System.gc( ) is used to force finalization (and you should do this during program development to speed debugging). But even if it isn�t, it�s highly probable that the errant Book will eventually be discovered through repeated executions of the program (assuming the program allocates enough storage to cause the garbage collector to execute). [ Add Comment ]

  • IPhone 6  Process Time and Shipment

    Okay.  I ordered an iPhone 6+ 128GB in Space Gray at 12:17am PST.  I started my order around 11:56pm, and had to have a chat with a representative on how to go about buying the phone at retail (it was, obviously, the month-to-month option), finished the order with her help, and then exited the chat.  User sirmalloc in his threads located here and here that he not only ordered several minutes after me, but after being persistent was able to get a hold of a tracking number for his order - an order that is identical to mine (although I also ordered a stylus with my phone).  So I expected that today I would receive a tracking number.
    I'm usually a patient person, but having a broken phone currently and paying full price for the 6+ has left me a little less than patient.
    Throughout the order, as with many other individuals, the order stated that I would have my phone delivered by 9/19.  Even on confirmation page it stated this date.  If I had known it would be anything but this date, I would have simply ordered from the Apple Store via the app on my phone.  Also on the confirmation page, it said that my confirmation email can take anywhere up to 24 hours to arrive.  Cool, no big deal.  It's just an email.  The email arrived at 1:52am, stating a shipping date of 10/7.
    My anxiety over this different shipping date lead me into another chat where I asked if a tracking number was available to my order - and this was after viewing sirmalloc's successful tracking number post.  I was told that no, and my order would be delivered 10/7.
    Then a Verizon Representative via these forums sent me a direct message.  I responded with my account details, and received the same reply - my order will arrive 10/7.
    THEN I called up Verizon CS to ask for a tracking number earlier today.  The woman was very friendly, but she told me the same thing - my order will arrive 10/7.  HOWEVER, she said my order - which I placed at 12:17am, did not process until 1:52am. hmm.. that time sounded familiar.  It was the same time my email was sent!  But it's only suppose to be an email, RIGHT?  It shouldn't affect what place I was in the line of ordering.
    So why is it that this has happened?  Why was my order bumped so far back in the line where it shouldn't have been that my shipping date is now WEEKS away instead of only days?

    My current phone is usable, just broken (screen colors are super inverted, phone gets very hot quickly, edges of screen are completely black, phone darkens with usage, imprint of pages are made onto the screen, back of phone shattered, pictures incapable of being viewed, print/text barely able to be read, etc etc).  I can still operationally DO everything on the phone, but the effectiveness of the operations performed at poor at best (if capable at all).
    I realize the people who ordered the 128 6+ are mostly getting theirs in October.  My question is why am I behind the line of people who ordered after me?  I have another example**, and this person ordered at 8:30AM! (if their claims are to be believed; the user in my original post at least provides proof)
    **"Minkink     Sep 16, 2014 7:18 AM  (in response to Angela Irene)      
    So I got my tracking number package will be here by 3PM EST on 9/19/14 super! For anyone wondering if ordered the 128GB Space Gray at about 8:30AM EST on 9/12/14"
    Why are users being penalized for when Verizon decided to get around to processing the orders, instead of put in their spot in line for when the user placed the order?

  • Process chains and event collectors

    Hi All,
    I need help in Process chains and event collectors.I joined in new project and this client using process chains and event collectors and they ask me to work on these areas.I didnt work on this as of now So please send any docs on this area and explain the procedure and technology methods behind this concept.I would really appreciate If someone can send me the full documentation on this concept as I couldnt find any  any docs on this.
    Thanks,
    Ras

    Hi Ras,
    Process chains are a sequence of processes to be performed. The are put together in a chain with the necessary dependancies (process A needs to finish before B can start) and conditions (if A and B are successful then C else send an email), and then scheduled. They usually revolve around processes related to data loading: Load, activate, roll up, compress etc.
    Please take a look at this links/threads for more info:
    http://help.sap.com/saphelp_nw04/helpdata/en/8f/c08b3baaa59649e10000000a11402f/content.htm
    process chains
    process chains
    Process chains
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/8da0cd90-0201-0010-2d9a-abab69f10045
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/19683495-0501-0010-4381-b31db6ece1e9
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/36693695-0501-0010-698a-a015c6aac9e1
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9936e790-0201-0010-f185-89d0377639db
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3507aa90-0201-0010-6891-d7df8c4722f7
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/263de690-0201-0010-bc9f-b65b3e7ba11c
    Process Chains
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/8da0cd90-0201-0010-2d9a-abab69f10045
    http://help.sap.com/saphelp_nw2004s/helpdata/en/8f/c08b3baaa59649e10000000a11402f/frameset.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/19683495-0501-0010-4381-b31db6ece1e9
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/36693695-0501-0010-698a-a015c6aac9e1
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9936e790-0201-0010-f185-89d0377639db
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3507aa90-0201-0010-6891-d7df8c4722f7
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/263de690-0201-0010-bc9f-b65b3e7ba11c
    Re: Ho to make a variable mandatory or optional?
    There are lot of threads available in the SDN....go through them.....hope it really helps you in getting understand what are process chains and Events included in that.
    Assign points if it helps you.
    Regards,
    Sreedhar

Maybe you are looking for

  • IDOC sender: Error in Logical system name?

    Hi, In my current project, the IDOC sender system logical name is P2PCLNT100 but the SLD system name is P2P. Its an IDOC to proxy scenario. At the receiver system side, the schemeAgencyID is getting populated at P2P and not P2PCLNT100, due to which t

  • Inner join taking more time

    Hi Experts, I have joined two table prps and proj by inner join . But it is taking more time. pls advice. the code is:   select prps~posid                                                  prps~post1          prps~objnr          prps~pbukr          pr

  • Tiger won't start up....

    Last night I shut down my Mac G5 normally. This morning my wife turned it on and Mac OS X would not start up. The white/gray 'Apple' screen came up, then it shifted to the blue screen, but the Mac OS X block never came up. Instead it shifted to a bla

  • Transport Request in All client

    Dear All, In my Quality server there are 4 client (630, 650, 670, 690). When i  transport any customized request from DEV to QLT, then in each client  I have to transport it. It means i have to do same activity for 4 times. So is there any way by whi

  • Conductanc​e measuremen​t using NI PXIe 4492

    Hello, I am applying AC voltage using NI PXI 4462 card and measuring the voltage output from my device using NI PXIe 4492. I use Lockin program to measure the amplitude voltage of the signal acquired. I need to convert this output voltage/amplitude i