Re: Suspended processes

Sam Seaver <[email protected]>
Newsgroups gmane.comp.java.sun.servlet
Message-ID <[email protected]>
I can see how i can get an OutputStream with a Pipe.sinkChannel as a
parameter, but I cannot see how I can go from proc.getOutputStream to the
NIO OutputStream...(!)(!)

S

"JC Rules"




>From: Eric Noriega <[email protected]>
>Reply-To: "A mailing list for discussion about Sun Microsystem's Java
>         Servlet API Technology." <[email protected]>
>To: [email protected]
>Subject: Re: Suspended processes
>Date: Tue, 4 Mar 2003 14:44:31 -0500
>MIME-Version: 1.0
>Received: from mc10-f32.bay6.hotmail.com ([65.54.166.168]) by
>mc10-s5.bay6.hotmail.com with Microsoft SMTPSVC(5.0.2195.5600); Tue, 4 Mar
>2003 11:40:39 -0800
>Received: from swjscmail2.java.sun.com ([192.18.99.108]) by
>mc10-f32.bay6.hotmail.com with Microsoft SMTPSVC(5.0.2195.5600); Tue, 4 Mar
>2003 11:39:30 -0800
>Received: from swjscmail1 (swjscmail1.Sun.COM [192.18.99.107])by
>swjscmail2.java.sun.com (Postfix) with ESMTPid 936A022326; Tue,  4 Mar 2003
>12:35:16 -0700 (MST)
>Received: from JAVA.SUN.COM by JAVA.SUN.COM (LISTSERV-TCP/IP release 1.8d)
>with          spool id 5960327 for [email protected]; Tue, 4
>Mar 2003          12:32:41 -0700
>Received: from fourier.sag.gwu.edu (fourier.sag.gwu.edu [128.164.127.73])
>by          swjscmail1.java.sun.com (Postfix) with ESMTP id 16A3A484E for
>        <[email protected]>; Tue,  4 Mar 2003 12:32:41 -0700
>(MST)
>Received: from fuchs.sag.gwu.edu (fuchs.sag.gwu.edu [192.168.61.126]) by
>       fourier.sag.gwu.edu (Sun Internet Mail Server
>sims.4.0.2000.05.17.04.13.p6) with ESMTP id
><[email protected]> for
>[email protected]; Tue,  4 Mar 2003 14:38:38 -0500 (EST)
>Received: from fermi.nit.gwu.edu (localhost [127.0.0.1]) by
>fuchs.sag.gwu.edu          (8.10.2+Sun/8.10.2) with ESMTP id h24JYi302515
>for          <[email protected]>; Tue, 04 Mar 2003 14:34:44
>-0500 (EST)
>Received: from gwu.edu ([128.164.229.111]) by fermi.nit.gwu.edu
>(8.12.8/8.12.8)          with ESMTP id h24JcN3C029955 for
><[email protected]>;          Tue, 04 Mar 2003 14:38:24 -0500
>(EST)
>X-Message-Info: dHZMQeBBv44lPE7o4B5bAg==
>Delivered-To: [email protected]
>X-Accept-Language: en-us, en
>User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.2)
>Gecko/20021120            Netscape/7.01
>References: <[email protected]>
>Message-ID:  <[email protected]>
>Sender: "A mailing list for discussion about Sun Microsystem's Java
>       Servlet API Technology." <[email protected]>
>Organization: The George Washington University, Department of Computer
>Science
>Return-Path: [email protected]
>X-OriginalArrivalTime: 04 Mar 2003 19:39:31.0506 (UTC)
>FILETIME=[C6E29120:01C2E285]
>
>You need to use a channel, and set it to non-blocking.  I haven't been
>able to find the code I wrote, but look up
>java.nio.channels.Pipe.
>
>
>Sam Seaver wrote:
>
>>I knew it was something like that!
>>
>>I just had a look at the NIO classes, and to be honest, i dont see where
>>they fit in, it would be great to simply have non-blocking IO, but does
>>anyone have an example of how I can have a non-blocking read of output
>>and
>>stderr?
>>
>>Thanks
>>Sam
>>
>>
>>
>>
>>>    I'm not sure but it I would guess at one of two issues:
>>>
>>>   1. You don't seem to be reading the output and stderr in the
>>>      fragment.  You need to keep these channels moving, otherwise the
>>>      process will hang trying to deliver output.  You could consider
>>>      setting the IO to /dev/null (or NUL:) in the script so as to
>>>      assure there is no output pending.
>>>   2. If you do start reading from these, keep in mind that the
>>>      container is usually in charge of managing threads.  Since most
>>>      examples show creating threads to read and process the output,
>>>      this may be a problem.  This is because the default read/write
>>>      facilities don't support non-blocking IO, you need to use the NIO
>>>      classes for that.
>>>
>>>
>>>
>>>Sam Seaver wrote:
>>>
>>>>I have a JSP web interface that runs a perl script natively using a
>>>>bean:
>>>>
>>>>String[] cmd ={"/home/seaver/MONSTER/monster", "-i" + getJobID(),
>>>>filePath +
>>>>dir + getPdbFileName()};
>>>>        try{
>>>>            Process proc = Runtime.getRuntime().exec(cmd);
>>>>            BufferedWriter output = new BufferedWriter(new
>>>>OutputStreamWriter(proc.getOutputStream()));
>>>>            BufferedReader input = new BufferedReader(new
>>>>InputStreamReader(proc.getInputStream()));
>>>>            BufferedReader error = new BufferedReader(new
>>>>InputStreamReader(proc.getErrorStream()));
>>>>        }catch (Throwable t){
>>>>            t.printStackTrace();
>>>>        }
>>>>
>>>>The program perl script, monster, runs fine natively, and it runs fine
>>>>when
>>>>activated from the web interface.
>>>>
>>>>The files passed into the web interface contains records which monster
>>>>parses and then inputs into a small C program.  This all works fine,
>>>>even
>>>>with multiple records (leading to the one monster instance running
>>>>the C
>>>>program multiple times)
>>>>
>>>>however, if a file with multiple records is passed through the web
>>>>interface, after doing the first few records, the perl script just
>>>>simply
>>>>suspends.  From the look of the output, it is almost as if it never
>>>>recieves
>>>>back a PID from the C program, and so it hangs.
>>>>
>>>>But this only happens when i run it via the web interface, so what is
>>>>happening here!?
>>>>
>>>>S
>>>>
>>>>_________________________________________________________________
>>>>MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*.
>>>>http://join.msn.com/?page=features/virus
>>>>
>>>>___________________________________________________________________________
>>>>
>>>>
>>>>To unsubscribe, send email to [email protected] and include in the
>>>>body
>>>>of the message "signoff SERVLET-INTEREST".
>>>>
>>>>Archives: http://archives.java.sun.com/archives/servlet-interest.html
>>>>Resources: http://java.sun.com/products/servlet/external-resources.html
>>>>LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
>>>>
>>>
>>>___________________________________________________________________________
>>>
>>>To unsubscribe, send email to [email protected] and include in
>>>the body
>>>of the message "signoff SERVLET-INTEREST".
>>>
>>>Archives: http://archives.java.sun.com/archives/servlet-interest.html
>>>Resources: http://java.sun.com/products/servlet/external-resources.html
>>>LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
>>
>>
>>
>>_________________________________________________________________
>>The new MSN 8: advanced junk mail protection and 2 months FREE*
>>http://join.msn.com/?page=features/junkmail
>>
>>___________________________________________________________________________
>>
>>To unsubscribe, send email to [email protected] and include in the
>>body
>>of the message "signoff SERVLET-INTEREST".
>>
>>Archives: http://archives.java.sun.com/archives/servlet-interest.html
>>Resources: http://java.sun.com/products/servlet/external-resources.html
>>LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
>>
>
>___________________________________________________________________________
>To unsubscribe, send email to [email protected] and include in the body
>of the message "signoff SERVLET-INTEREST".
>
>Archives: http://archives.java.sun.com/archives/servlet-interest.html
>Resources: http://java.sun.com/products/servlet/external-resources.html
>LISTSERV Help: http://www.lsoft.com/manuals/user/user.html


_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE*
http://join.msn.com/?page=features/junkmail

___________________________________________________________________________
To unsubscribe, send email to [email protected] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.