The -classic option doesn't help me.  I tried it and saw the same results.
My installation of java may not have the classic environment (though no
error was emitted).  Do you suggest we stick with 2.1.1 until a future
release can solve this problem (or some other solution is found)?

Thanks

Geoffrey A. Lowney
Senior Software Development Engineer
Recreational Equipment, Inc.
Phone 253-395-8164 Fax 253-437-7291
Pager 206-625-8477 [EMAIL PROTECTED]
[EMAIL PROTECTED] http://www.rei.com/
In order to draw a limit to thinking, we should have to think both sides
of this limit.
-- Ludwig Wittgenstein, Tractatus Logico-Philosophicus 



> -----Original Message-----
> From: Andreas Mueller [mailto:[EMAIL PROTECTED]]
> Sent: Friday, June 29, 2001 2:14 PM
> To: [EMAIL PROTECTED]
> Subject: [developers] progarm hangs under 2.1.2
> 
> 
> We've experienced the same behavior, although we haven't 
> changed anything 
> there. The same program exits under NT but not under Unix 
> (1.3.0 hotspot). 
> We've checked all threads and they are terminating properly. 
> We terminate the reader thread with socket.close() and 
> additionally we do 
> a hardcore stop() on the reader thread in connection.close(). 
> It hangs 
> in read. But if we start the JVM with java -classic, the 
> program exists 
> properly! 
> 
> >     "Thread-0" (TID:0x80033668, stillborn, sys_thread_t:0x30522840,
> > state:R,
> > native ID:0x405) prio=5: pending=java.lang.ThreadDeath
> 
> As you see above, the Thread is death. 
> 
> -- 
> Andreas Mueller, IIT GmbH, Bremen/Germany, http://www.iit.de
> SwiftMQ - JMS Enterprise Messaging System, http://www.swiftmq.com
> 
> 
> -----Original Message-----
> From: Geoffrey Lowney <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Date: Fri, 29 Jun 2001 22:19:20 +0200
> Subject: [developers] progarm hangs under 2.1.2
> 
> > Programs which seemed to work fine under 2.1.1 have strange problems
> > under
> > 2.1.2.  For example, the program below is a simple test 
> program which
> > creates a connection and then destroys the connection.  
> Nothing else is
> > done.  Under 2.1.1 the program runs fine.  Under 2.1.2 the program
> > never
> > exits.  It appears that the problem may be a swiftmq thread 
> is hanging
> > (see
> > the javacore details below).
> > 
> > I am not an expert at JMS or SwiftMQ (or even Java for that 
> matter), so
> > it
> > is possible there are errors in my code (masked by 2.1.1 bugs?).  I
> > would
> > appreciate suggestions regarding the steps the code uses to 
> connect and
> > disconnect from the router.
> > 
> > Any idea what is going on?  Has anyone else seen problems 
> with 2.1.2?  
> > Some
> > of my other programs under 2.1.2 appear to have problems which also
> > seem to
> > be related to threads hanging (I see javacore output 
> similar to what I
> > show
> > below).
> > 
> > Thanks
> > 
> >   Geoffrey A. Lowney
> >   Senior Software Development Engineer
> >   Recreational Equipment, Inc.
> >   Phone 253-395-8164 Fax 253-437-7291
> >   Pager 206-625-8477 [EMAIL PROTECTED]
> >   [EMAIL PROTECTED] http://www.rei.com/
> > 
> > Here are the gory details of my test program and results...
> > 
> > JVM version: J2RE 1.2.2 IBM build ca122-19991217
> > OS Level   : AIX 4.3.3.0
> > 
> > Here is the output from the program.  It looks the same 
> under 2.1.1 and
> > 2.1.2.
> > 
> >   $ java com.rei.mom.ConnectTest    
> >   main: entering go
> >   main: entering connect
> >   main: creating Context
> >   main: Context created
> >   main: creating QueueConnectionFactory
> >   main: creating QueueConnection
> >   main: creating QueueSession
> >   main: creating Queue
> >   main: starting QueueConnection
> >   main: closing Context
> >   main: leaving connect
> >   main: entering disconnect
> >   main: closing QueueSession
> >   main: closing QueueConnection
> >   main: leaving disconnect
> >   main: leaving go
> >   $ 
> > 
> > Under 2.1.2, after the final message is displayed, I generated a
> > javacore.
> > Here is the thread that appears to be hanging (its the only one in R
> > state,
> > and the only one that references swiftmq):
> > 
> >     "Thread-0" (TID:0x80033668, stillborn, sys_thread_t:0x30522840,
> > state:R,
> > native ID:0x405) prio=5: pending=java.lang.ThreadDeath
> >         at java.net.SocketInputStream.socketRead(Native Method)
> >         at 
> java.net.SocketInputStream.read(SocketInputStream.java:98)
> >         at
> > java.io.BufferedInputStream.fill(BufferedInputStream.java(Compiled
> > Code))
> >         at
> > java.io.BufferedInputStream.read(BufferedInputStream.java(Compiled
> > Code))
> >         at
> > java.io.DataInputStream.readInt(DataInputStream.java(Compiled
> > Code))
> >         at
> > com.swiftmq.tools.dump.Dumpalizer.construct(Dumpalizer.java(Compiled
> > Code))
> >         at
> > 
> com.swiftmq.jms.ConnectionImpl.readObject(ConnectionImpl.java(Compiled
> > Code))
> >         at 
> com.swiftmq.jms.ConnectionImpl.run(ConnectionImpl.java:424)
> >         at java.lang.Thread.run(Thread.java:481)
> >          ----- Native Stack -----
> >         merge_into_successors
> >         _pthread_event_wait
> >         _cond_wait_local
> >         _cond_wait
> >         pthread_cond_wait
> >         try_suspend
> >         realObjAlloc
> >         allocArray
> >         utf2JavaString
> >         jni_NewStringUTF
> >         jni_ThrowNew
> >         JNU_ThrowByName
> >         NET_ThrowNew
> >         NET_ThrowCurrent
> >         Java_java_net_SocketInputStream_socketRead
> >         mmisInvoke_OIIOO_IHelper
> >         entryCmp
> > 
> > Here is the test program (username, password and queuename removed):
> > 
> > ///////////////////////////////////////////////////////////
> > package com.rei.mom;
> > 
> > import javax.jms.*;
> > import javax.naming.*;
> > import java.util.*;
> > import com.rei.mom.*;
> > 
> > public class ConnectTest {
> >   public static final String QUEUECONFAC = "QueueConnectionFactory";
> >   private String                    username = "******";
> >   private String                    password = "******";
> >   private String                    queueName = "*******";
> >   private Context                   jndiContext = null;
> >   private QueueConnectionFactory    queueConnectionFactory = null;
> >   private QueueConnection           queueConnection = null;
> >   private QueueSession              queueSession = null;
> >   private Queue                     queue = null;
> > 
> >   public static void main(String[] args) {
> >     ConnectTest test = new ConnectTest();
> >     test.go();
> >   }
> > 
> >   public void go() {
> >     System.out.println(Thread.currentThread().getName() + 
> ": entering
> > go");
> >     connect();
> >     disconnect();
> >     System.out.println(Thread.currentThread().getName() + ": leaving
> > go");
> >   }
> > 
> >   public void connect() {
> >     System.out.println(Thread.currentThread().getName() + 
> ": entering
> > connect");
> >     try {
> >       if (jndiContext == null) {
> >         Hashtable env = new Hashtable();
> >  
> > 
> env.put(Context.INITIAL_CONTEXT_FACTORY,"com.swiftmq.jndi.Init
> ialContex
> > tFact
> > oryImpl");
> >        
> > env.put(Context.PROVIDER_URL,"smqp://localhost:4001/timeout=10000");
> >         System.out.println(Thread.currentThread().getName() + ":
> > creating
> > Context");
> >         jndiContext = new InitialContext(env);
> >         System.out.println(Thread.currentThread().getName() + ":
> > Context
> > created");
> >       }
> >       if (queueConnection == null) {
> >         if (queueConnectionFactory == null) {
> >           System.out.println(Thread.currentThread().getName() + ":
> > creating
> > QueueConnectionFactory");
> >           queueConnectionFactory = (QueueConnectionFactory)
> >             jndiContext.lookup(QUEUECONFAC);
> >         }
> >         System.out.println(Thread.currentThread().getName() + ":
> > creating
> > QueueConnection");
> >         queueConnection =
> >           queueConnectionFactory.createQueueConnection(username,
> > password);
> >       }
> >       System.out.println(Thread.currentThread().getName() + 
> ": creating
> > QueueSession");
> >       queueSession = queueConnection.createQueueSession(false,
> >         Session.AUTO_ACKNOWLEDGE);
> >       System.out.println(Thread.currentThread().getName() + 
> ": creating
> > Queue");
> >       queue = (Queue) jndiContext.lookup(queueName);
> >       System.out.println(Thread.currentThread().getName() + 
> ": starting
> > QueueConnection");
> >       queueConnection.start();
> >       if (jndiContext != null) {
> >         System.out.println(Thread.currentThread().getName() + ":
> > closing
> > Context");
> >         jndiContext.close();
> >         jndiContext = null;
> >       }
> >     } catch (Exception e) {
> >       System.out.println(Thread.currentThread().getName() +
> > e.toString());
> >     }
> >     System.out.println(Thread.currentThread().getName() + ": leaving
> > connect");
> >   }
> > 
> >   public void disconnect() {
> >     System.out.println(Thread.currentThread().getName() + 
> ": entering
> > disconnect");
> >     try {
> >       if (queueSession != null) {
> >         System.out.println(Thread.currentThread().getName() + ":
> > closing
> > QueueSession");
> >         queueSession.close();
> >       }
> >       if (queueConnection != null) {
> >         System.out.println(Thread.currentThread().getName() + ":
> > closing
> > QueueConnection");
> >         queueConnection.close();
> >       }
> >       if (jndiContext != null) {
> >         System.out.println(Thread.currentThread().getName() + ":
> > closing
> > Context");
> >         jndiContext.close();
> >       }
> >     } catch (Exception e) {
> >       System.out.println(Thread.currentThread().getName() +
> > e.toString());
> >     } finally {
> >       queue = null;
> >       queueSession = null;
> >       queueConnection = null;
> >       queueConnectionFactory = null;
> >       jndiContext = null;
> >     }
> >     System.out.println(Thread.currentThread().getName() + ": leaving
> > disconnect");
> >   }
> > }
> > ///////////////////////////////////////////////////////////
> > 
> > ------------------------------------------------------
> > SwiftMQ developers mailing list * http://www.swiftmq.com
> > To unsubscribe from this list, send an eMail to 
> > [EMAIL PROTECTED] and write in the body of your message:
> > UNSUBSCRIBE developers <your-email-address>
> > Archive: http://www.mail-archive.com/developers@mail.iit.de/
> > 
> > 
> > 
> > 
> 
> 
> ------------------------------------------------------
> SwiftMQ developers mailing list * http://www.swiftmq.com
> To unsubscribe from this list, send an eMail to 
> [EMAIL PROTECTED] and write in the body of your message:
> UNSUBSCRIBE developers <your-email-address>
> Archive: http://www.mail-archive.com/developers@mail.iit.de/
> 
> 
> 
> 

------------------------------------------------------
SwiftMQ developers mailing list * http://www.swiftmq.com
To unsubscribe from this list, send an eMail to 
[EMAIL PROTECTED] and write in the body of your message:
UNSUBSCRIBE developers <your-email-address>
Archive: http://www.mail-archive.com/developers@mail.iit.de/




Reply via email to